gengxin
author@CHENG <2393524978@qq.com>
Mon, 8 Jan 2024 09:37:21 +0000 (17:37 +0800)
committer@CHENG <2393524978@qq.com>
Mon, 8 Jan 2024 09:37:21 +0000 (17:37 +0800)
2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/primary_function/list/ICON_BLOOD_PRESSURE.png [new file with mode: 0644]
2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.c
2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_http_protocol.c
2.sdk/sdk/gui/lv_watch/lv_apps/phonebook/phonebook.c
2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c
2.sdk/sdk/gui/lv_watch/lv_watch_res.h

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 (file)
index 0000000..04691f2
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
index 154a118..582ff51 100644 (file)
@@ -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
index b00cd69..53f8c28 100644 (file)
@@ -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();
 }
index 06ae104..864e322 100644 (file)
@@ -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)
index c99a535..460e22d 100644 (file)
@@ -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
index 57120a8..a1cfe3d 100644 (file)
@@ -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