From: @CHENG <2393524978@qq.com> Date: Mon, 8 Jan 2024 09:37:21 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=2035ceb6dc38bee2df53355d7b512b7c52ff11c1;p=mirrors%2FASR3603_Z5.git gengxin --- diff --git a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/primary_function/list/ICON_BLOOD_PRESSURE.png b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/primary_function/list/ICON_BLOOD_PRESSURE.png new file mode 100644 index 00000000..04691f22 Binary files /dev/null and b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/primary_function/list/ICON_BLOOD_PRESSURE.png differ 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 154a1185..582ff511 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 @@ -5,147 +5,6 @@ #ifdef __MMI_CUSTOM_HENGAI_HEALTH__ -#if 0 -static lv_obj_t * mmi_heng_ai_warning_screen_create(lv_obj_t * activity_obj) -{ - HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - if(NULL == activity_obj) - { - lv_watch_activity_ext_t activity_ext = {0}; - - activity_ext.actId = ACT_ID_HENG_AI_WARNING; - activity_ext.create = mmi_heng_ai_warning_screen_create; - activity_ext.prepare_destory = mmi_heng_ai_warning_screen_prepare_destory; - activity_obj = lv_watch_creat_activity_obj(&activity_ext); - if(NULL == activity_obj) - return NULL; - } - - /* watch obj */ - lv_obj_t * obj = lv_watch_obj_create(activity_obj); - lv_watch_obj_set_anim_mode(obj, LV_WATCH_ANIM_HOR_RIGHT_HIDE); - lv_heng_ai_warning_obj_ext_t * ext = (lv_heng_ai_warning_obj_ext_t *)lv_obj_allocate_ext_attr(obj, sizeof(lv_heng_ai_warning_obj_ext_t)); - - lv_obj_t * cont = lv_cont_create(obj, NULL); - lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES); - lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); - //lv_obj_set_style_local_bg_color(cont, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); - lv_obj_set_click(cont, false); - - hal_rtc_t cur_time; - char time_str[8] = {0}; - - Hal_Rtc_Gettime(&cur_time); - sprintf(time_str, "%02d:%02d", cur_time.tm_hour, cur_time.tm_min); - - lv_obj_t * label_time = lv_label_create(cont, NULL); - lv_obj_add_style(label_time, LV_LABEL_PART_MAIN, &lv_watch_font26); - lv_label_set_text(label_time, time_str); - lv_label_set_align(label_time, LV_LABEL_ALIGN_CENTER); - lv_obj_align(label_time, NULL, LV_ALIGN_IN_TOP_MID, 0, 50); - - lv_obj_t * label_prompt = lv_label_create(cont, NULL); - lv_obj_add_style(label_prompt, LV_LABEL_PART_MAIN, &lv_watch_font26); - lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER); - lv_label_set_long_mode(label_prompt, LV_LABEL_LONG_BREAK); - lv_obj_set_width(label_prompt, lv_obj_get_width(obj) - 20); - lv_label_set_text(label_prompt, s_heng_ai_warning_info.prompt_str); - lv_obj_align(label_prompt, label_time, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); - - - lv_obj_t * btn = lv_btn_create(cont, NULL); - lv_obj_set_size(btn, 100, 56); - lv_obj_set_style_local_bg_color(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, lv_color_make(0x47, 0xA6, 0xFF)); - lv_obj_set_style_local_radius(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 30); - lv_obj_set_style_local_bg_color(btn, LV_BTN_PART_MAIN, LV_STATE_PRESSED, lv_color_make(0x47, 0xA6, 0xFF)); - lv_obj_set_style_local_radius(btn, LV_BTN_PART_MAIN, LV_STATE_PRESSED, 30); - lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -20); - lv_obj_set_event_cb(btn, mmi_heng_ai_warning_btn_event_cb); - - lv_obj_t * label = lv_label_create(btn, NULL); - lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font26); - lv_label_set_text_id(label, WATCH_TEXT_ID_OK); - - /* start timer (1 min) */ - ext->timer_id = Hal_Timer_Start(1000 * 60, mmi_heng_ai_warning_screen_timeout, NULL, false); - - watch_set_suspend_enable(false, ACT_ID_HENG_AI_WARNING, 0); - - return obj; -} - -lv_heart_rate_obj_ext_t * health_heart_rate_get_ext(void) -{ - lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_HEALTH_MEASURE_HEART); - if(NULL == activity_obj) - { - return NULL; - } - - lv_obj_t * watch_obj; - lv_watch_get_child_obj(activity_obj, lv_watch_obj_signal, &watch_obj); - if(NULL != watch_obj) - { - lv_heart_rate_obj_ext_t * ext = lv_obj_get_ext_attr(watch_obj); - return ext; - } - return NULL; -} - -void health_heart_rate_display_update(void) -{ - lv_heart_rate_obj_ext_t * ext = health_heart_rate_get_ext(); - if(NULL == ext) - { - return; - } - - switch(ext->measure_state) - { - case STATE_HEART_RATE_MEASURING: - lv_obj_set_hidden(ext->img, TRUE); - - lv_label_set_text_id(ext->label_info, WATCH_TEXT_ID_MEASURING); - lv_obj_align(ext->label_info, ext->cont, LV_ALIGN_IN_TOP_MID, 0, HEART_LABEL_INFO_Y); - - lv_label_set_text(ext->label_value, ext->heart_rate); - lv_obj_align(ext->label_value, ext->cont, LV_ALIGN_IN_TOP_MID, 0, HEART_LABEL_VALUE_Y); - lv_obj_set_hidden(ext->label_value, ((strlen(ext->heart_rate)) ? FALSE : TRUE)); - break; - - case STATE_HEART_RATE_MEASURE_FAIL: - lv_img_set_src(ext->img, ICON_HEART_RATE_MEASURE_FAIL); - lv_obj_set_hidden(ext->img, FALSE); - - lv_label_set_text_id(ext->label_info, WATCH_TEXT_ID_MEASURE_FAIL); - lv_obj_align(ext->label_info, ext->cont, LV_ALIGN_IN_TOP_MID, 0, HEART_LABEL_INFO_Y); - - lv_obj_remove_style(ext->label_value, LV_LABEL_PART_MAIN, &lv_watch_font40); - lv_obj_add_style(ext->label_value, LV_LABEL_PART_MAIN, &lv_watch_font30); - lv_label_set_text_id(ext->label_value, WATCH_TEXT_ID_NOT_WEAR); - lv_obj_align(ext->label_value, ext->cont, LV_ALIGN_IN_TOP_MID, 0, HEART_LABEL_VALUE_Y); - lv_obj_set_hidden(ext->label_value, FALSE); - break; - - case STATE_HEART_RATE_MEASURE_DONE: - lv_img_set_src(ext->img, ICON_HEART_RATE_MEASURE_DONE); - lv_obj_set_hidden(ext->img, FALSE); - - lv_label_set_text_id(ext->label_info, WATCH_TEXT_ID_MEASURE_DONE); - lv_obj_align(ext->label_info, ext->cont, LV_ALIGN_IN_TOP_MID, 0, HEART_LABEL_INFO_Y); - - lv_label_set_text(ext->label_value, ext->heart_rate); - lv_obj_align(ext->label_value, ext->cont, LV_ALIGN_IN_TOP_MID, 0, HEART_LABEL_VALUE_Y); - lv_obj_set_hidden(ext->label_value, FALSE); - break; - - default: - break; - } -} -#endif - - static const lv_point_t s_hengai_bp_valid_pos[] = {{0, 0}, {1, 0}, {2, 0}}; static uint8_t s_hengai_bp_measure_count = 0; static uint8_t s_hengai_bp_calibrate_times = 0; @@ -291,12 +150,11 @@ static void mmi_heng_ai_bp_screen_prepare_destory(lv_obj_t * activity_obj) mmi_hengai_bp_raw_data_free(); - //watch_set_suspend_enable(true, ACT_ID_HENG_AI_BP, 0); - lv_watch_png_cache_all_free(); - mmi_heng_ai_bp_measure_screen_clean(); mmi_heng_ai_bp_calibrate_screen_clean(); + HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + lv_watch_png_cache_all_free(); } void mmi_heng_ai_bp_screen_clean(void) @@ -375,6 +233,8 @@ void mmi_heng_ai_bp_measure_screen_prepare_destory(lv_obj_t * activity_obj) void mmi_heng_ai_bp_measure_screen_clean(void) { + HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_HENG_AI_BP_MEASURE); if(NULL != activity_obj) { @@ -603,9 +463,18 @@ void mmi_hengai_bp_measure_finish_screen(void) void mmi_hengai_bp_measure_cycle_timeout(void * para) { + if(false == mmi_health_measure_wear_state_get()) + { + mmi_hsensor_close(); + mmi_hengai_bp_measuring_flag_set(false); + mmi_hengai_bp_measure_result_screen(3); + + return; + } + s_hengai_bp_measure_count++; - if(MMI_BP_MEASURE_TOTAL_COUNT < s_hengai_bp_measure_count) // stop action when 60s + if(MMI_BP_MEASURE_TOTAL_COUNT < s_hengai_bp_measure_count) // stop action { mmi_hengai_bp_measure_finish_screen(); } @@ -933,6 +802,8 @@ void mmi_heng_ai_bp_calibrate_screen_prepare_destory(lv_obj_t * activity_obj) void mmi_heng_ai_bp_calibrate_screen_clean(void) { + HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_HENG_AI_BP_CALIBRATE); if(NULL != activity_obj) { @@ -1028,6 +899,11 @@ void mmi_ui_msg_update_hengai_bp_calibrate_result(bool is_success) mmi_hengai_bp_calibrate_result_screen(is_success); } +void mmi_hengai_bp_calibrate_second_data_send_task_cb(lv_task_t * task) +{ + mmi_hengai_bp_calibrate_raw_data_send(2, s_bp_value_high, s_bp_value_low); +} + void mmi_hengai_bp_calibrate_finish_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(); @@ -1065,7 +941,8 @@ void mmi_hengai_bp_calibrate_finish_screen(void) HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); watch_ext->result_timer_id = Hal_Timer_Start(MMI_BP_WAIT_RESULT_TIMEOUT, mmi_hengai_bp_calibrate_result_timeout, NULL, false); - mmi_hengai_bp_calibrate_raw_data_send(s_hengai_bp_calibrate_times, s_bp_value_high, s_bp_value_low); + lv_task_t * data_send_task = lv_task_create(mmi_hengai_bp_calibrate_second_data_send_task_cb, 2000, LV_TASK_PRIO_HIGH, NULL); + lv_task_once(data_send_task); } void mmi_hengai_bp_calibrate_end_input_event_cb(lv_obj_t * obj, lv_event_t e) @@ -1075,7 +952,7 @@ void mmi_hengai_bp_calibrate_end_input_event_cb(lv_obj_t * obj, lv_event_t e) if(1 == s_hengai_bp_calibrate_times) { - mmi_hengai_bp_calibrate_raw_data_send(s_hengai_bp_calibrate_times, s_bp_value_high, s_bp_value_low); + mmi_hengai_bp_calibrate_raw_data_send(1, s_bp_value_high, s_bp_value_low); // once again mmi_heng_ai_bp_calibrate_start_screen(); } @@ -1399,9 +1276,18 @@ void mmi_hengai_bp_calibrate_end_screen(void) void mmi_hengai_bp_calibrate_cycle_timeout(void * para) { + if(false == mmi_health_measure_wear_state_get()) + { + mmi_hsensor_close(); + mmi_hengai_bp_measuring_flag_set(false); + mmi_hengai_bp_calibrate_result_screen(false); + + return; + } + s_hengai_bp_measure_count++; - if(MMI_BP_MEASURE_TOTAL_COUNT < s_hengai_bp_measure_count) // stop action when 60s + if(MMI_BP_MEASURE_TOTAL_COUNT < s_hengai_bp_measure_count) // stop action { mmi_hengai_bp_calibrate_end_screen(); } @@ -1822,7 +1708,6 @@ lv_obj_t * mmi_heng_ai_bp_screen_create(lv_obj_t * activity_obj) if(NULL == watch_obj) return NULL; -#if 0 #if 1 if(false == watch_modem_sim_present_check_req()) { @@ -1840,8 +1725,7 @@ lv_obj_t * mmi_heng_ai_bp_screen_create(lv_obj_t * activity_obj) lv_obj_align(label_1, NULL, LV_ALIGN_IN_TOP_MID, 0, 278); lv_obj_set_click(label_1, false); } -#endif -#if 1 +#if 0 else if(true != mmi_watch_tcp_connect_state_get() || true != mmi_protocol_watch_bind_state_get() ) @@ -1861,7 +1745,6 @@ lv_obj_t * mmi_heng_ai_bp_screen_create(lv_obj_t * activity_obj) lv_obj_set_click(label_1, false); } #endif -#if 1 else if(false == mmi_health_measure_wear_state_get()) { lv_watch_obj_set_anim_mode(watch_obj, LV_WATCH_ANIM_HOR_RIGHT_HIDE); @@ -1879,7 +1762,6 @@ lv_obj_t * mmi_heng_ai_bp_screen_create(lv_obj_t * activity_obj) lv_obj_set_click(label_1, false); } else -#endif #endif { lv_watch_obj_set_anim_mode(watch_obj, LV_WATCH_ANIM_NO); @@ -1946,57 +1828,5 @@ void mmi_heng_ai_blood_pressure_create_event_cb(lv_obj_t * btn, lv_event_t e) } - - -#if 0 -static void * __s_debug_timer_id = NULL; -//TIMER_ID measure_timer_id; - -void __debug_timer_start(void); - -void __debug_timer_cb(void * param) -{ - char temp_buff[128] = {0}; - - //��ȡ48�ֽ�aslcc���ʮ������Ѫѹ���ݵ�blood_buf��ע��:blood_buf����Ҫ���ڵ���48*2�ֽ� - //void fr8012haq_blood_data_get(char *blood_buf) - fr8012haq_blood_data_get(temp_buff); - - HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %s\n", __FUNCTION__, __LINE__, temp_buff); - HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, temp_buff + 31); - HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, temp_buff + 63); - - __debug_timer_start(); -} - -void __debug_timer_start(void) -{ - if(NULL == __s_debug_timer_id) - uos_timer_create(&__s_debug_timer_id); - else - uos_timer_stop(__s_debug_timer_id); - - uos_timer_start(__s_debug_timer_id, MS_TO_TICKS(1000), 0, __debug_timer_cb, NULL); -} - -void __debug_stop(void) -{ - mmi_hsensor_close(); - - if(NULL != __s_debug_timer_id) - { - uos_timer_stop(__s_debug_timer_id); - uos_timer_delete(__s_debug_timer_id); - __s_debug_timer_id = NULL; - } -} - -void __debug_start(void) -{ - mmi_hsensor_bp_open(); - - __debug_timer_start(); -} #endif -#endif 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 b00cd697..53f8c289 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 @@ -432,7 +432,7 @@ void mmi_hengai_bp_calibrate_raw_data_send(uint8_t calibrate_times, uint16_t bp_ if(cJSON_IsTrue(cJSON_GetObjectItem(json_recv, "status"))) { HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: true\n", __FUNCTION__, __LINE__); - if(2 <= calibrate_times) + if(2 == calibrate_times) { mmi_hengai_bp_calibrate_model_send(); } @@ -440,7 +440,7 @@ void mmi_hengai_bp_calibrate_raw_data_send(uint8_t calibrate_times, uint16_t bp_ else { HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: false\n", __FUNCTION__, __LINE__); - if(2 <= calibrate_times) + if(2 == calibrate_times) { mmi_ui_msg_action_hengai_bp_calibrate_result(false); } @@ -777,6 +777,8 @@ uint8_t mmi_hengai_bp_calibrated_flag_get(void) void mmi_hengai_bp_calibrated_flag_set(uint8_t flag) { + HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, flag); + s_hengai_health_data.is_calibrated = flag; mmi_hengai_health_data_nv_write(); } diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/phonebook/phonebook.c b/2.sdk/sdk/gui/lv_watch/lv_apps/phonebook/phonebook.c index 06ae1046..864e3223 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/phonebook/phonebook.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/phonebook/phonebook.c @@ -74,11 +74,6 @@ void phonebook_init(void) void phonebook_create_btn_event_cb(lv_obj_t * btn, lv_event_t e) { -#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ - - mmi_heng_ai_blood_pressure_create_event_cb(btn, e); -#else - #ifdef __MMI_ZHSX_SUPPORT_PHONEBOOK_LIST_STYLE__ #ifdef __MMI_PHONEBOOK_CALLLOG_IN_ONE_MENU__ mmi_phonebook_calllog_create_event_cb(btn, e); @@ -93,8 +88,6 @@ void phonebook_create_btn_event_cb(lv_obj_t * btn, lv_event_t e) phonebook_create(NULL); } #endif - -#endif } void app_adaptor_update_phonebook_ind(app_adaptor_contact_t * contact_list, uint8_t count) diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c index c99a5350..460e22de 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c @@ -154,6 +154,9 @@ static watch_app_info_t s_main_menu_list[] = #ifdef __MMI_HEALTH_MEASURE_SPO2_SUPPORT__ { ICON_SPO2_LIST, WATCH_TEXT_ID_SPO2, health_spo2_create_event_cb}, #endif +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ + { ICON_BLOOD_PRESSURE_LIST, WATCH_TEXT_ID_BLOODPRESSURE, mmi_heng_ai_blood_pressure_create_event_cb}, +#endif #ifdef __MMI_HEALTH_MEASURE_TEMPERATURE_SUPPORT__ { ICON_TEMPERATURE_LIST, WATCH_TEXT_ID_TEMPERATURE, health_temperature_create_event_cb}, #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 57120a82..a1cfe3dc 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_watch_res.h +++ b/2.sdk/sdk/gui/lv_watch/lv_watch_res.h @@ -269,6 +269,9 @@ LV_IMG_DECLARE(img_poweron_logo); #define ICON_HEART_RATE_LIST "R:/png/primary_function/list/icon_heart_rate.png" #define ICON_SPO2_LIST "R:/png/primary_function/list/ICON_SPO2.png" #define ICON_TEMPERATURE_LIST "R:/png/primary_function/list/ICON_TEMPERATURE.png" +#ifdef __MMI_CUSTOM_HENGAI_HEALTH__ +#define ICON_BLOOD_PRESSURE_LIST "R:/png/primary_function/list/ICON_BLOOD_PRESSURE.png" +#endif #define ICON_WECHAT_LIST "R:/png/primary_function/list/icon_wechat.png" #if USE_LV_WATCH_CAMERA != 0