From: @CHENG <2393524978@qq.com> Date: Wed, 3 Jan 2024 09:26:35 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=8471aff9f11e4268e1df723bdb32c790b9d5cbab;p=mirrors%2FASR3603_Z5.git gengxin --- diff --git a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h index 2fa0ae5a..55efb74c 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h +++ b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h @@ -89,8 +89,8 @@ extern "C" { #define NV_SECTION_UI_HENG_AI_WAKE_RING_TYPE_LEN (sizeof(nv_watch_switch_t)) #define NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION_LEN (sizeof(nv_watch_heng_ai_sleep_activation_t)) #endif -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ -#define NV_SECTION_UI_HENG_AI_BLOOD_PRESSURE_LEN (sizeof(nv_watch_heng_ai_blood_pressure_t)) +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ +#define NV_SECTION_UI_HENGAI_HEALTH_DATA_LEN (sizeof(nv_watch_hengai_health_data_t)) #endif @@ -228,8 +228,8 @@ typedef lv_fs_dir_t ui_dir_t; #define NV_SECTION_UI_HENG_AI_WAKE_RING_TYPE_FILE "ui_heng_ai_wake_ring_type.nv" #define NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION_FILE "ui_heng_ai_sleep_activation.nv" #endif -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ -#define NV_SECTION_UI_HENG_AI_BLOOD_PRESSURE_FILE "ui_heng_ai_blood_pressure.nv" +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ +#define NV_SECTION_UI_HENGAI_HEALTH_DATA_FILE "ui_hengai_health_data.nv" #endif diff --git a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c index df2fff26..994860f3 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c +++ b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c @@ -150,9 +150,9 @@ uint32_t UI_NV_Get_Section_Len(NV_UI_SECTION_ID SectionId) case NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION: return (NV_SECTION_LEN(NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION)); #endif - #ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ - case NV_SECTION_UI_HENG_AI_BLOOD_PRESSURE: - return (NV_SECTION_LEN(NV_SECTION_UI_HENG_AI_BLOOD_PRESSURE)); + #ifdef __MMI_CUSTOM_HENGAI_HEALTH__ + case NV_SECTION_UI_HENGAI_HEALTH_DATA: + return (NV_SECTION_LEN(NV_SECTION_UI_HENGAI_HEALTH_DATA)); #endif @@ -305,9 +305,9 @@ char * UI_NV_Get_Section_path(NV_UI_SECTION_ID SectionId) case NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION: return (NV_SECTION_FILE_PATH(NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION)); #endif - #ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ - case NV_SECTION_UI_HENG_AI_BLOOD_PRESSURE: - return (NV_SECTION_FILE_PATH(NV_SECTION_UI_HENG_AI_BLOOD_PRESSURE)); + #ifdef __MMI_CUSTOM_HENGAI_HEALTH__ + case NV_SECTION_UI_HENGAI_HEALTH_DATA: + return (NV_SECTION_FILE_PATH(NV_SECTION_UI_HENGAI_HEALTH_DATA)); #endif @@ -400,8 +400,8 @@ uint8_t UI_NV_Reset_Default(NV_UI_SECTION_ID SectionId) #ifdef __MMI_CUSTOM_HENG_AI__ nv_watch_heng_ai_sleep_activation_t * heng_ai_sleep_activation; #endif -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ - nv_watch_heng_ai_blood_pressure_t * heng_ai_blood_pressure; +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ + nv_watch_hengai_health_data_t * hengai_health; #endif #endif @@ -730,11 +730,11 @@ uint8_t UI_NV_Reset_Default(NV_UI_SECTION_ID SectionId) break; #endif - #ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ - case NV_SECTION_UI_HENG_AI_BLOOD_PRESSURE: - heng_ai_blood_pressure = lv_mem_alloc(SectionLen); - memset(heng_ai_blood_pressure, 0x0, SectionLen); - TempData = (char *)heng_ai_blood_pressure; + #ifdef __MMI_CUSTOM_HENGAI_HEALTH__ + case NV_SECTION_UI_HENGAI_HEALTH_DATA: + hengai_health = lv_mem_alloc(SectionLen); + memset(hengai_health, 0x0, SectionLen); + TempData = (char *)hengai_health; break; #endif diff --git a/2.sdk/sdk/gui/lv_watch/include/ui_activity_id.h b/2.sdk/sdk/gui/lv_watch/include/ui_activity_id.h index ff56fde3..51886f65 100644 --- a/2.sdk/sdk/gui/lv_watch/include/ui_activity_id.h +++ b/2.sdk/sdk/gui/lv_watch/include/ui_activity_id.h @@ -213,7 +213,7 @@ enum #ifdef __MMI_CUSTOM_HENG_AI__ ACT_ID_HENG_AI_WARNING, #endif -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ ACT_ID_HENG_AI_BP, ACT_ID_HENG_AI_BP_MEASURE, ACT_ID_HENG_AI_BP_CALIBRATE, diff --git a/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h b/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h index f5411a17..a3264a1c 100644 --- a/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h +++ b/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h @@ -453,17 +453,16 @@ typedef struct } __packed nv_watch_heng_ai_sleep_activation_t; #endif -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ typedef struct { -#if 0 uint8_t is_activated; // 0-not activated; 1-activated char req_code[128]; char act_code[128]; -#endif + char token[64]; uint8_t is_calibrated; // 0-not calibrated; 1-calibrated hal_rtc_t calibrate_time; -} __packed nv_watch_heng_ai_blood_pressure_t; +} __packed nv_watch_hengai_health_data_t; #endif @@ -701,8 +700,8 @@ enum NV_SECTION_UI_HENG_AI_WAKE_RING_TYPE, // nv_watch_switch_t NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION, // nv_watch_heng_ai_sleep_activation_t #endif -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ - NV_SECTION_UI_HENG_AI_BLOOD_PRESSURE, // nv_watch_heng_ai_blood_pressure_t +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ + NV_SECTION_UI_HENGAI_HEALTH_DATA, // nv_watch_hengai_health_data_t #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.c index 09915ffa..973aaf32 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.c @@ -9,7 +9,7 @@ #include "heng_ai.c" #include "heng_ai_sleep_activation.c" #endif -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ #include "heng_ai_blood_pressure.c" #include "heng_ai_http_protocol.c" #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.h b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.h index a27ef2cd..eeaf0381 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.h @@ -23,7 +23,7 @@ extern "C" { #include "heng_ai.h" #include "heng_ai_sleep_activation.h" #endif -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ #include "heng_ai_blood_pressure.h" #include "heng_ai_http_protocol.h" #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.c index 7a0b468d..633be027 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.c @@ -3,79 +3,7 @@ #include "lv_watch.h" -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ - -static nv_watch_heng_ai_blood_pressure_t s_hengai_blood_pressure_data = {0}; - -void mmi_hengai_blood_pressure_nv_write(void) -{ - uint32_t nv_data_length = sizeof(nv_watch_heng_ai_blood_pressure_t); - - if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_HENG_AI_BLOOD_PRESSURE, 0, nv_data_length, (uint8_t *)&s_hengai_blood_pressure_data)) - { - printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__); - } -} - -void mmi_hengai_blood_pressure_nv_read(void) -{ - uint32_t nv_data_length = sizeof(nv_watch_heng_ai_blood_pressure_t); - - if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_HENG_AI_BLOOD_PRESSURE, 0, nv_data_length, (uint8_t *)&s_hengai_blood_pressure_data)) - { - printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); - _lv_memset_00(&s_hengai_blood_pressure_data, sizeof(nv_watch_heng_ai_blood_pressure_t)); - } -} - -void mmi_hengai_blood_pressure_data_set(nv_watch_heng_ai_blood_pressure_t * data) -{ - if(NULL != data) - { - _lv_memset_00(&s_hengai_blood_pressure_data, sizeof(nv_watch_heng_ai_blood_pressure_t)); - _lv_memcpy(&s_hengai_blood_pressure_data, data, sizeof(nv_watch_heng_ai_blood_pressure_t)); - mmi_hengai_blood_pressure_nv_write(); - } -} - -uint8_t mmi_hengai_bp_is_calibrated(void) -{ - return (s_hengai_blood_pressure_data.is_calibrated); -} - -#if 0 -uint8_t mmi_hengai_bp_is_activated(void) -{ - return (s_hengai_blood_pressure_data.is_activated); -} - -char * mmi_hengai_bp_req_code_get(void) -{ - return (s_hengai_blood_pressure_data.req_code); -} - -void mmi_hengai_bp_req_code_set(char * req_code) -{ - _lv_memcpy(s_hengai_blood_pressure_data.req_code, req_code, strlen(req_code)); -} - -char * mmi_hengai_bp_act_code_get(void) -{ - return (s_hengai_blood_pressure_data.act_code); -} - -void mmi_hengai_bp_act_code_set(char * act_code) -{ - _lv_memcpy(s_hengai_blood_pressure_data.act_code, act_code, strlen(act_code)); -} - -void mmi_hengai_bp_activated_finish(void) -{ - s_hengai_blood_pressure_data.is_activated = 1; - mmi_hengai_blood_pressure_nv_write(); -} -#endif - +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ #if 0 static lv_obj_t * mmi_heng_ai_warning_screen_create(lv_obj_t * activity_obj) @@ -698,7 +626,6 @@ void mmi_hengai_bp_measure_start_btn_event_cb(lv_obj_t * obj, lv_event_t e) printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); mmi_hsensor_bp_open(); mmi_hengai_bp_measure_action_time_string_set(1); - s_hengai_bp_measure_count = 0; gif_info_t * gif_info = gif_open(cont, ANIM_HENGAI_BP_MEASURE, 0); @@ -1045,7 +972,7 @@ void mmi_hengai_bp_calibrate_update_result(bool is_success) if(is_success) { - nv_watch_heng_ai_blood_pressure_t data = {0}; + nv_watch_hengai_health_data_t data = {0}; data.is_calibrated = 1; mmi_hengai_blood_pressure_data_set(&data); @@ -1109,6 +1036,7 @@ void mmi_hengai_bp_calibrate_end_input_event_cb(lv_obj_t * obj, lv_event_t e) } } +#if 0 void mmi_bp_roller_get_optstr_from_num(uint16_t sel_value, char * stropt, uint32_t user_num) { uint8_t opt_display[5]; @@ -1235,6 +1163,136 @@ void mmi_hengai_bp_calibrate_input_screen(void) mmi_bp_screen_common_bottom_button_create(watch_ext->cont, WATCH_TEXT_ID_OK, mmi_hengai_bp_calibrate_end_input_event_cb); } +#else + +void mmi_hengai_bp_calibrate_input_btn_event_cb(lv_obj_t * obj, lv_event_t e) +{ + if(LV_EVENT_CLICKED != e) + return; + + lv_heng_ai_bp_calibrate_ext_t * watch_ext = (lv_heng_ai_bp_calibrate_ext_t *)mmi_heng_ai_bp_calibrate_screen_ext_get(); + if(NULL == watch_ext) + return; + + lv_obj_t * label = NULL; + char temp_str[4] = {0}; + + uint32_t free_num = lv_watch_get_free_num(obj); + if(0 == free_num) + { + (MMI_HENGAI_BP_HIGH_VALUE_MAX > s_bp_value_high) ? s_bp_value_high++ : NULL; + sprintf(temp_str, "%d", s_bp_value_high); + label = watch_ext->label_input_high; + } + else if(1 == free_num) + { + (MMI_HENGAI_BP_HIGH_VALUE_MIN < s_bp_value_high) ? s_bp_value_high-- : NULL; + sprintf(temp_str, "%d", s_bp_value_high); + label = watch_ext->label_input_high; + } + else if(2 == free_num) + { + (MMI_HENGAI_BP_LOW_VALUE_MAX > s_bp_value_low) ? s_bp_value_low++ : NULL; + sprintf(temp_str, "%d", s_bp_value_low); + label = watch_ext->label_input_low; + } + else if(3 == free_num) + { + (MMI_HENGAI_BP_LOW_VALUE_MIN < s_bp_value_low) ? s_bp_value_low-- : NULL; + sprintf(temp_str, "%d", s_bp_value_low); + label = watch_ext->label_input_low; + } + lv_label_set_text(label, temp_str); +} + +void mmi_hengai_bp_calibrate_input_screen(void) +{ + lv_heng_ai_bp_calibrate_ext_t * watch_ext = (lv_heng_ai_bp_calibrate_ext_t *)mmi_heng_ai_bp_calibrate_screen_ext_get(); + if(NULL == watch_ext) + return; + + s_bp_value_high = 120; + s_bp_value_low = 80; + lv_obj_clean(watch_ext->cont); + + lv_obj_t * label_title = lv_label_create(watch_ext->cont, NULL); + lv_obj_add_style(label_title, LV_LABEL_PART_MAIN, &lv_watch_font32); + lv_label_set_align(label_title, LV_LABEL_ALIGN_CENTER); + lv_label_set_text_id(label_title, WATCH_TEXT_ID_INPUT_CALIBRATE_VALUE); + lv_obj_align(label_title, NULL, LV_ALIGN_IN_TOP_MID, 0, 48); + lv_obj_set_click(label_title, false); + + lv_obj_t * label = NULL; + lv_obj_t * imgbtn = NULL; + char temp_str[4] = {0}; + + label = lv_label_create(watch_ext->cont, NULL); + lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font24); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_label_set_text_id(label, WATCH_TEXT_ID_SYSTOLIC_BP); + lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_LEFT, 103, 104); + lv_obj_set_click(label, false); + + imgbtn = lv_imgbtn_create(watch_ext->cont, NULL); + lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW); + lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW); + lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20); + lv_obj_set_event_cb(imgbtn, mmi_hengai_bp_calibrate_input_btn_event_cb); + lv_watch_set_free_num(imgbtn, 0); + + label = lv_label_create(watch_ext->cont, NULL); + lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + sprintf(temp_str, "%d", s_bp_value_high); + lv_label_set_text(label, temp_str); + lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8); // 20); + lv_obj_set_click(label, false); + watch_ext->label_input_high = label; + + imgbtn = lv_imgbtn_create(watch_ext->cont, NULL); + lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW); + lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW); + lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20); + lv_obj_set_event_cb(imgbtn, mmi_hengai_bp_calibrate_input_btn_event_cb); + lv_watch_set_free_num(imgbtn, 1); + + + label = lv_label_create(watch_ext->cont, NULL); + lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font24); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_label_set_text_id(label, WATCH_TEXT_ID_DIASTOLIC_BP); + lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_LEFT, 280, 104); + lv_obj_set_click(label, false); + + imgbtn = lv_imgbtn_create(watch_ext->cont, NULL); + lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_UP_ARROW); + lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_UP_ARROW); + lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20); + lv_obj_set_event_cb(imgbtn, mmi_hengai_bp_calibrate_input_btn_event_cb); + lv_watch_set_free_num(imgbtn, 2); + + label = lv_label_create(watch_ext->cont, NULL); + lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font60); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + sprintf(temp_str, "%d", s_bp_value_low); + lv_label_set_text(label, temp_str); + lv_obj_align(label, imgbtn, LV_ALIGN_OUT_BOTTOM_MID, 0, 8); // 20); + lv_obj_set_click(label, false); + watch_ext->label_input_low = label; + + imgbtn = lv_imgbtn_create(watch_ext->cont, NULL); + lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, ICON_HENGAI_BP_DOWN_ARROW); + lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, ICON_HENGAI_BP_DOWN_ARROW); + lv_obj_align(imgbtn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); // 20); + lv_obj_set_event_cb(imgbtn, mmi_hengai_bp_calibrate_input_btn_event_cb); + lv_watch_set_free_num(imgbtn, 3); + + + mmi_bp_screen_common_bottom_button_create(watch_ext->cont, WATCH_TEXT_ID_OK, mmi_hengai_bp_calibrate_end_input_event_cb); +} +#endif + + void mmi_hengai_bp_calibrate_end_btn_event_cb(lv_obj_t * obj, lv_event_t e) { if(LV_EVENT_CLICKED != e) @@ -1316,8 +1374,10 @@ void mmi_heng_ai_bp_calibrate_start_screen(void) } else { + printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); mmi_hsensor_bp_open(); mmi_hengai_bp_measure_action_time_string_set(1); + s_hengai_bp_measure_count = 0; lv_obj_t * label_title = lv_label_create(watch_ext->cont, NULL); lv_obj_add_style(label_title, LV_LABEL_PART_MAIN, &lv_watch_font32); @@ -1348,7 +1408,6 @@ void mmi_heng_ai_bp_calibrate_start_screen(void) lv_obj_set_click(label, false); /* start timer (1 min) */ - s_hengai_bp_measure_count = 0; watch_ext->measure_timer_id = Hal_Timer_Start(1000, mmi_hengai_bp_calibrate_cycle_timeout, NULL, true); } } diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.h b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.h index 720f372e..96d837aa 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.h @@ -16,7 +16,7 @@ extern "C" { #include "../../../lv_ex_conf.h" #endif -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ #define MMI_HENGAI_BP_TAB_COUNT (3) @@ -26,6 +26,10 @@ extern "C" { #define MMI_HENGAI_BP_RAW_DATA_SAMPLE_RATE (81) +#define MMI_HENGAI_BP_HIGH_VALUE_MAX (200) +#define MMI_HENGAI_BP_HIGH_VALUE_MIN (100) +#define MMI_HENGAI_BP_LOW_VALUE_MAX (120) +#define MMI_HENGAI_BP_LOW_VALUE_MIN (60) @@ -65,6 +69,8 @@ typedef struct lv_obj_t * cont_prompt_0; lv_obj_t * cont_prompt_1; lv_obj_t * cont_prompt_2; + lv_obj_t * label_input_high; + lv_obj_t * label_input_low; gif_info_t * gif_info; TIMER_ID measure_timer_id; TIMER_ID result_timer_id; diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_http_protocol.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_http_protocol.c index 23275ec9..3d79d652 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_http_protocol.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_http_protocol.c @@ -3,7 +3,7 @@ #include "lv_watch.h" -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ #include "hal/dm/cJSON.h" @@ -221,7 +221,7 @@ void mmi_hengai_bp_measure_raw_data_send(void) else { // false - printf("[@CHENG_DEBUG][%s][%d]: fail\n", __FUNCTION__, __LINE__); + printf("[@CHENG_DEBUG][%s][%d]: false\n", __FUNCTION__, __LINE__); // update mmi_hengai_bp_measure_update_result(false, 0, 0, NULL); } @@ -268,6 +268,7 @@ void mmi_hengai_bp_calibrate_model_send(void) { printf("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, strlen(s_hengai_http_revceive_buf)); printf("[@CHENG_DEBUG][%d]: %s\n", __LINE__, s_hengai_http_revceive_buf); + printf("[@CHENG_DEBUG][%d]: %s\n", __LINE__, s_hengai_http_revceive_buf + 63); cJSON * json_recv = cJSON_Parse(s_hengai_http_revceive_buf); if(NULL != json_recv) @@ -311,7 +312,7 @@ void mmi_hengai_bp_calibrate_raw_data_send(uint8_t calibrate_times, uint16_t bp_ cJSON_AddItemToObject(json_send, "mac", cJSON_CreateString(imei)); cJSON_AddItemToObject(json_send, "begin_time", cJSON_CreateString(begin_time_str)); cJSON_AddItemToObject(json_send, "end_time", cJSON_CreateString(end_time_str)); - cJSON_AddItemToObject(json_send, "pulse_wave", cJSON_CreateString("HENGAI")); + cJSON_AddItemToObject(json_send, "pulse_wave", cJSON_CreateIntArray(mmi_hengai_bp_raw_data_ptr_get(), mmi_hengai_bp_raw_data_len_get())); cJSON_AddItemToObject(json_send, "sample_rate", cJSON_CreateNumber(MMI_HENGAI_BP_RAW_DATA_SAMPLE_RATE)); cJSON_AddItemToObject(json_send, "sbp", cJSON_CreateNumber(bp_value_high)); cJSON_AddItemToObject(json_send, "dbp", cJSON_CreateNumber(bp_value_low)); @@ -327,15 +328,14 @@ void mmi_hengai_bp_calibrate_raw_data_send(uint8_t calibrate_times, uint16_t bp_ { printf("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, strlen(s_hengai_http_revceive_buf)); printf("[@CHENG_DEBUG][%d]: %s\n", __LINE__, s_hengai_http_revceive_buf); + printf("[@CHENG_DEBUG][%d]: %s\n", __LINE__, s_hengai_http_revceive_buf + 63); cJSON * json_recv = cJSON_Parse(s_hengai_http_revceive_buf); if(NULL != json_recv) { - printf("[@CHENG_DEBUG][%s][%d]: json file\n", __FUNCTION__, __LINE__); - if(cJSON_GetIntValue(cJSON_GetObjectItem(json_recv, "status"))) { - // true + printf("[@CHENG_DEBUG][%s][%d]: true\n", __FUNCTION__, __LINE__); if(2 <= calibrate_times) { mmi_hengai_bp_calibrate_model_send(); @@ -343,8 +343,7 @@ void mmi_hengai_bp_calibrate_raw_data_send(uint8_t calibrate_times, uint16_t bp_ } else { - // false - printf("[@CHENG_DEBUG][%s][%d]: fail\n", __FUNCTION__, __LINE__); + printf("[@CHENG_DEBUG][%s][%d]: false\n", __FUNCTION__, __LINE__); } } else @@ -572,6 +571,80 @@ void mmi_hengai_algorithm_interface_login_action(void) } + + +static nv_watch_hengai_health_data_t s_hengai_blood_pressure_data = {0}; + +void mmi_hengai_blood_pressure_nv_write(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_hengai_health_data_t); + + if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_HENGAI_HEALTH_DATA, 0, nv_data_length, (uint8_t *)&s_hengai_blood_pressure_data)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__); + } +} + +void mmi_hengai_blood_pressure_nv_read(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_hengai_health_data_t); + + if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_HENGAI_HEALTH_DATA, 0, nv_data_length, (uint8_t *)&s_hengai_blood_pressure_data)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); + _lv_memset_00(&s_hengai_blood_pressure_data, sizeof(nv_watch_hengai_health_data_t)); + } +} + +void mmi_hengai_blood_pressure_data_set(nv_watch_hengai_health_data_t * data) +{ + if(NULL != data) + { + _lv_memset_00(&s_hengai_blood_pressure_data, sizeof(nv_watch_hengai_health_data_t)); + _lv_memcpy(&s_hengai_blood_pressure_data, data, sizeof(nv_watch_hengai_health_data_t)); + mmi_hengai_blood_pressure_nv_write(); + } +} + +uint8_t mmi_hengai_bp_is_calibrated(void) +{ + return (s_hengai_blood_pressure_data.is_calibrated); +} + +uint8_t mmi_hengai_bp_is_activated(void) +{ + return (s_hengai_blood_pressure_data.is_activated); +} + +char * mmi_hengai_bp_req_code_get(void) +{ + return (s_hengai_blood_pressure_data.req_code); +} + +void mmi_hengai_bp_req_code_set(char * req_code) +{ + _lv_memcpy(s_hengai_blood_pressure_data.req_code, req_code, strlen(req_code)); +} + +char * mmi_hengai_bp_act_code_get(void) +{ + return (s_hengai_blood_pressure_data.act_code); +} + +void mmi_hengai_bp_act_code_set(char * act_code) +{ + _lv_memcpy(s_hengai_blood_pressure_data.act_code, act_code, strlen(act_code)); +} + +void mmi_hengai_bp_activated_finish(void) +{ + s_hengai_blood_pressure_data.is_activated = 1; + mmi_hengai_blood_pressure_nv_write(); +} + + + + #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_http_protocol.h b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_http_protocol.h index 5d02a111..63e6c5bf 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_http_protocol.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_http_protocol.h @@ -16,7 +16,7 @@ extern "C" { #include "../../../lv_ex_conf.h" #endif -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ // ½Ó¿Úǰ׺£º diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/health_measure/health_measure.c b/2.sdk/sdk/gui/lv_watch/lv_apps/health_measure/health_measure.c index 6f373b77..fcec8ded 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/health_measure/health_measure.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/health_measure/health_measure.c @@ -785,7 +785,7 @@ bool mmi_health_measure_timed_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_ty if(NULL != lv_watch_get_activity_obj(ACT_ID_FACTORY_MODE_TEST)) return false; -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ if(mmi_hengai_bp_is_measuring()) { return false; @@ -828,7 +828,7 @@ void mmi_health_measure_app_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_type return; } -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ if(mmi_hengai_bp_is_measuring()) { return; diff --git a/2.sdk/sdk/gui/lv_watch/lv_watch.c b/2.sdk/sdk/gui/lv_watch/lv_watch.c index f77fbce4..9de967ab 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_watch.c +++ b/2.sdk/sdk/gui/lv_watch/lv_watch.c @@ -136,7 +136,7 @@ static void mmi_data_init_after_watch_create(void) #ifdef __MMI_SEDENTARY_REMIND_SUPPORT__ mmi_sedentary_remind_mission_power_on_check(); #endif -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ mmi_hengai_blood_pressure_nv_read(); #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_watch_res.h b/2.sdk/sdk/gui/lv_watch/lv_watch_res.h index b73f0669..ee9b3411 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_watch_res.h +++ b/2.sdk/sdk/gui/lv_watch/lv_watch_res.h @@ -1006,7 +1006,7 @@ LV_IMG_DECLARE(img_poweron_logo); #define ICON_SETTING_NEW_SMS_SILENT "R:/png/setting/ICON_SETTING_NEW_SMS_SILENT.png" #endif -#ifdef __MMI_CUSTOM_HENG_AI_BLOOD_PRESSURE__ +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ #define ICON_HENGAI_BP_BTN_BG "R:/png/custom_function/ICON_HENGAI_BP_BTN_BG.png" #define ICON_HENGAI_BP_BOTTOM_BTN_BG "R:/png/custom_function/ICON_HENGAI_BP_BOTTOM_BTN_BG.png" #define ICON_HENGAI_BP_ALERT "R:/png/custom_function/ICON_HENGAI_BP_ALERT.png"