From: @CHENG <2393524978@qq.com> Date: Tue, 27 May 2025 08:49:27 +0000 (+0800) Subject: Z5_HA_K18_NFC 0527需求修改 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=f92a86a57e69e87cf589e9bd49abbe8efa6da827;p=mirrors%2FASR3603_Z5.git Z5_HA_K18_NFC 0527需求修改 --- diff --git a/2.sdk/project/Z5_HA_K18_NFC/gui/lv_watch/mmi_default_CUSTOM.h b/2.sdk/project/Z5_HA_K18_NFC/gui/lv_watch/mmi_default_CUSTOM.h index c5f4c3e4..c5c58656 100644 --- a/2.sdk/project/Z5_HA_K18_NFC/gui/lv_watch/mmi_default_CUSTOM.h +++ b/2.sdk/project/Z5_HA_K18_NFC/gui/lv_watch/mmi_default_CUSTOM.h @@ -38,21 +38,21 @@ //health measure timed -#define MMI_CUSTOMER_HEART_TIMED_FLAG false +#define MMI_CUSTOMER_HEART_TIMED_FLAG (true) -#define MMI_CUSTOMER_HEART_TIMED_INTERVAL (60 * 60) // unit:s +#define MMI_CUSTOMER_HEART_TIMED_INTERVAL (5 * 60) // unit:s -#define MMI_CUSTOMER_TEMPERATURE_TIMED_FLAG false +#define MMI_CUSTOMER_TEMPERATURE_TIMED_FLAG (true) -#define MMI_CUSTOMER_TEMPERATURE_TIMED_INTERVAL (60 * 60) // unit:s +#define MMI_CUSTOMER_TEMPERATURE_TIMED_INTERVAL (5 * 60) // unit:s -#define MMI_CUSTOMER_BLOOD_TIMED_FLAG false +#define MMI_CUSTOMER_BLOOD_TIMED_FLAG (true) -#define MMI_CUSTOMER_BLOOD_TIMED_INTERVAL (15 * 60) // unit:s +#define MMI_CUSTOMER_BLOOD_TIMED_INTERVAL (5 * 60) // unit:s -#define MMI_CUSTOMER_SPO2_TIMED_FLAG false +#define MMI_CUSTOMER_SPO2_TIMED_FLAG (true) -#define MMI_CUSTOMER_SPO2_TIMED_INTERVAL (60 * 60) // unit:s +#define MMI_CUSTOMER_SPO2_TIMED_INTERVAL (5 * 60) // unit:s //default language diff --git a/2.sdk/project/Z5_HA_K18_NFC/gui/lv_watch/resource/png/custom_function/ICON_NFC_EXPERIENCE_TITLE.png b/2.sdk/project/Z5_HA_K18_NFC/gui/lv_watch/resource/png/custom_function/ICON_NFC_EXPERIENCE_HEART_M.png similarity index 56% rename from 2.sdk/project/Z5_HA_K18_NFC/gui/lv_watch/resource/png/custom_function/ICON_NFC_EXPERIENCE_TITLE.png rename to 2.sdk/project/Z5_HA_K18_NFC/gui/lv_watch/resource/png/custom_function/ICON_NFC_EXPERIENCE_HEART_M.png index a8d6c693..7385c251 100644 Binary files a/2.sdk/project/Z5_HA_K18_NFC/gui/lv_watch/resource/png/custom_function/ICON_NFC_EXPERIENCE_TITLE.png and b/2.sdk/project/Z5_HA_K18_NFC/gui/lv_watch/resource/png/custom_function/ICON_NFC_EXPERIENCE_HEART_M.png differ 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 fc292a58..e6da4817 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 @@ -1511,7 +1511,7 @@ bool mmi_hengai_health_data_parse(unsigned char * next_buff, unsigned int next_b { float value_happiness = (cJSON_GetObjectItem(json_data, "happiness"))->valuedouble; - mmi_hengai_happinss_value_set(value_happiness); + mmi_hengai_blood_happinss_value_set(value_happiness); } #endif } diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.c index f6fde751..e504c1bf 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.c @@ -33,6 +33,7 @@ typedef struct int total_duration; int remain_duration; float happiness_value; // int happiness_value; + float total_happiness_value; TIMER_ID cycle_timer_id; TASK_HANDLE * task_id; }k18_nfc_expr_data_t; @@ -48,6 +49,10 @@ static int s_happiness_raw_data_len = 0; /* happiness value */ static float s_happiness_total_value = 0; +// debug +//#define __now_test__ + + static void mmi_k18_nfc_experience_happiness_value_get(void); static int mmi_k18_nfc_experience_stop(char is_interrupt); @@ -277,14 +282,12 @@ void mmi_k18_nfc_experience_finish_screen(lv_obj_t * par) lv_obj_t * label_value = lv_label_create(img_value, NULL); lv_obj_add_style(label_value, LV_LABEL_PART_MAIN, &lv_watch_font24); char temp_value[16] = {0}; - unsigned int value1 = 0; - unsigned char value2 = 0, value3 = 0; - //value1 = (uint8_t)(s_experience_data.happiness_value); - //value2 = (uint8_t)((s_experience_data.happiness_value - value1) * 10); - //value3 = (uint8_t)(((s_experience_data.happiness_value - value1) * 10 - value2) * 10); - value1 = (unsigned int)(s_happiness_total_value); - value2 = (uint8_t)((s_happiness_total_value - value1) * 10); - value3 = (uint8_t)(((s_happiness_total_value - value1) * 10 - value2) * 10); + uint32_t value1 = 0; + uint8_t value2 = 0, value3 = 0; + float happiness_value = s_experience_data.total_happiness_value; + value1 = (uint32_t)(happiness_value); + value2 = (uint8_t)((happiness_value - value1) * 10); + value3 = (uint8_t)(((happiness_value - value1) * 10 - value2) * 10); if(0 == value3) { @@ -331,7 +334,9 @@ static void mmi_k18_nfc_experience_timer_time_cb(void * para) s_experience_data.remain_duration--; lv_ntc_experience_ext_t * ext = mmi_k18_nfc_experience_ext_get(); - if(NULL != ext && NULL != ext->label_time_remaining) + if(NULL == ext) + return; + if(NULL != ext->label_time_remaining) { if(true == lv_obj_get_hidden(ext->img)) return; @@ -340,6 +345,37 @@ static void mmi_k18_nfc_experience_timer_time_cb(void * para) mmi_k18_nfc_experience_time_remain_str(s_experience_data.remain_duration, time_remain_str, TIMER_TIME_STR_LEN_MAX); lv_label_set_text(ext->label_time_remaining, time_remain_str); } + if(0 != s_experience_data.happiness_value) + { + if(NULL != ext->img_prompt) + lv_obj_set_hidden(ext->img_prompt, true); + if(NULL != ext->img_value) + lv_obj_set_hidden(ext->img_value, false); + if(NULL != ext->label_value) + { + char temp_value[16] = {0}; + uint8_t value1 = 0, value2 = 0, value3 = 0; + float happiness_value = s_experience_data.happiness_value; + value1 = (uint32_t)(happiness_value); + value2 = (uint8_t)((happiness_value - value1) * 10); + value3 = (uint8_t)(((happiness_value - value1) * 10 - value2) * 10); + + if(0 == value3) + { + if(0 == value2) + sprintf(temp_value, "%d", value1); + else + sprintf(temp_value, "%d.%d", value1, value2); + } + else + { + sprintf(temp_value, "%d.%d%d", value1, value2, value3); + } + lv_label_set_text(ext->label_value, temp_value); + lv_label_set_align(ext->label_value, LV_LABEL_ALIGN_CENTER); + lv_obj_align(ext->label_value, NULL, LV_ALIGN_CENTER, 0, -10); + } + } } else { @@ -448,6 +484,22 @@ lv_obj_t * mmi_k18_nfc_experience_create(lv_obj_t * activity_obj) lv_img_set_src(img_prompt, ICON_NFC_EXPERIENCE_PROMPT); lv_obj_set_click(img_prompt, false); lv_obj_align(img_prompt, label_time_remaining, LV_ALIGN_OUT_BOTTOM_MID, 0, 15); + ext->img_prompt = img_prompt; + + // info + lv_obj_t * img_value = lv_img_create(img, NULL); + lv_img_set_src(img_value, ICON_NFC_EXPERIENCE_HEART_M); + lv_obj_set_click(img_value, false); + lv_obj_align(img_value, label_time_remaining, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); + ext->img_value = img_value; + + lv_obj_t * label_value = lv_label_create(img_value, NULL); + lv_obj_add_style(label_value, LV_LABEL_PART_MAIN, &lv_watch_font24); + char temp_value[16] = {0}; + lv_label_set_text(label_value, temp_value); + lv_obj_align(label_value, NULL, LV_ALIGN_CENTER, 0, -10); + ext->label_value = label_value; + lv_obj_set_hidden(img_value, true); lv_obj_t * img_info = lv_img_create(img, NULL); lv_img_set_src(img_info, ICON_NFC_EXPERIENCE_HEART_S); @@ -489,7 +541,7 @@ void mmi_k18_nfc_experience_create_event_cb(lv_obj_t * btn, lv_event_t e) } -#if 0 // __now_test__ +#ifdef __now_test__ char *project_name = (char *)lv_lang_get_text(WATCH_TEXT_ID_OUTDOOR_RUNNING); // "8DD16B65673A"; int temp_len = strlen(project_name); char *temp_ptr = lv_mem_alloc(temp_len + 1); @@ -503,9 +555,6 @@ void mmi_k18_nfc_experience_create_event_cb(lv_obj_t * btn, lv_event_t e) s_experience_data.name = temp_ptr; s_experience_data.total_duration = 60 * 3; s_experience_data.remain_duration = s_experience_data.total_duration; - s_experience_data.happiness_value = 76.89; // 168; - - s_happiness_total_value += 76.89; #endif @@ -641,18 +690,18 @@ void mmi_hengai_happinss_value_set(float value_happiness) return; } - unsigned int value1 = 0; - unsigned char value2 = 0, value3 = 0; - value1 = (unsigned int)(value_happiness); + uint8_t value1 = 0, value2 = 0, value3 = 0; + value1 = (uint8_t)(value_happiness); value2 = (uint8_t)((value_happiness - value1) * 10); value3 = (uint8_t)(((value_happiness - value1) * 10 - value2) * 10); K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: %d-%d-%d\n", __FUNCTION__, __LINE__, value1, value2, value3); s_happiness_total_value += value_happiness; -#if 0 s_experience_data.happiness_value = value_happiness; - + s_experience_data.total_happiness_value += s_experience_data.happiness_value; + +#if 0 nv_watch_health_info_t health_info = {0}; mmi_health_info_get(&health_info); health_info.happiness_value = value_happiness; @@ -660,6 +709,17 @@ void mmi_hengai_happinss_value_set(float value_happiness) #endif } +void mmi_hengai_blood_happinss_value_set(float value_happiness) +{ + uint8_t value1 = 0, value2 = 0, value3 = 0; + value1 = (uint8_t)(value_happiness); + value2 = (uint8_t)((value_happiness - value1) * 10); + value3 = (uint8_t)(((value_happiness - value1) * 10 - value2) * 10); + K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: %d-%d-%d\n", __FUNCTION__, __LINE__, value1, value2, value3); + + s_happiness_total_value += value_happiness; +} + float mmi_hengai_happiness_value_get(void) { return s_happiness_total_value; @@ -777,11 +837,11 @@ void mmi_happiness_raw_data_send(void) temp_len += sprintf(json_data + temp_len, "\"ppg_fs\":%d,", MMI_HENGAI_BP_RAW_DATA_SAMPLE_RATE); - temp_len += sprintf(json_data + temp_len, "\"measure_mode\":1,"); /* ²âÁ¿Ä£Ê½(0:±»¶¯²âÁ¿/1:Ö÷¶¯²âÁ¿/2:Á¬Ðø²âÁ¿/3:ÆäËû²âÁ¿) */ + temp_len += sprintf(json_data + temp_len, "\"measure_mode\":1,"); /* 测量模式(0:被动测量/1:主动测量/2:连续测量/3:其他测量) */ - temp_len += sprintf(json_data + temp_len, "\"measure_type\":7}"); /* ²âÁ¿ÀàÐÍ(2:ѪÑõÏà¹Ø²âÁ¿/6:ÇéÐ÷Ïà¹Ø²âÁ¿/7:ѪѹÏà - ¹Ø²âÁ¿/8:ѪÌÇÏà¹Ø²âÁ¿/9:HRVÏà¹Ø²âÁ¿/10:Ѫѹ±ê¶¨ - ²âÁ¿/11:ѪÌDZ궨²âÁ¿/) + temp_len += sprintf(json_data + temp_len, "\"measure_type\":7}"); /* 测量类型(2:血氧相关测量/6:情绪相关测量/7:血压相 + 关测量/8:血糖相关测量/9:HRV相关测量/10:血压标定 + 测量/11:血糖标定测量/) */ K18_NFC_LOG("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len); @@ -883,6 +943,13 @@ static void mmi_k18_nfc_experience_happiness_value_get(void) //send mmi_happiness_raw_data_send(); + +#ifdef __now_test__ + float happiness_value = 67.89 + (rand() % 10); + s_experience_data.happiness_value = happiness_value; + s_experience_data.total_happiness_value += happiness_value; + s_happiness_total_value += happiness_value; +#endif } void mmi_k18_nfc_experience_happiness_deinit(void) @@ -917,8 +984,8 @@ void mmi_k18_nfc_experience_happiness_init(void) /* -¿ªÊ¼ÌåÑé -{? ? "code":"31000" // ¸æËßÉ豸¿ªÊ¼ÌåÑé? ? "name":"Ãû³Æ", // ¸æËßÉ豸ÌåÑéµÄÏîÄ¿£¬UTF8? ? "duration":600 // ¸æËßÉ豸ÌåÑéµÄʱ³¤£¬µ¥Î» Ãë} +开始体验 +{? ? "code":"31000" // 告诉设备开始体验? ? "name":"名称", // 告诉设备体验的项目,UTF8? ? "duration":600 // 告诉设备体验的时长,单位 秒} */ int mmi_k18_nfc_experience_trigger(char * data_ptr, int data_len) { @@ -966,6 +1033,7 @@ int mmi_k18_nfc_experience_trigger(char * data_ptr, int data_len) s_experience_data.total_duration = cJSON_GetIntValue(cJSON_GetObjectItem(json_recv, "duration")); s_experience_data.remain_duration = s_experience_data.total_duration; s_experience_data.happiness_value = 0; + s_experience_data.total_happiness_value = 0; mmi_watch_wake_up(); mmi_ui_msg_action_k18_nfc_experience(); @@ -992,8 +1060,8 @@ EXIT_FUNC: } /* -½áÊøÌåÑé -{? ? "code":"32000" // ֪ͨԶ¶ËÊÖ±íÌåÑé½áÊø? ? "deviceID":"IMEI", // ÌåÑéµÄÊÖ±íÉ豸ID? ? "interrupt":0/1 // 0 ±íʾÕý³£ÌåÑé½áÊø£»1 ±íʾÓû§ÖÐ;ȡÏûÌåÑé} +结束体验 +{? ? "code":"32000" // 通知远端手表体验结束? ? "deviceID":"IMEI", // 体验的手表设备ID? ? "interrupt":0/1 // 0 表示正常体验结束;1 表示用户中途取消体验} */ static int mmi_k18_nfc_experience_stop(char is_interrupt) { diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.h b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.h index 66036b13..661f60e6 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/k18_nfc_experience_ui.h @@ -37,6 +37,9 @@ typedef struct lv_obj_t * img; lv_obj_t * label_time_remaining; lv_obj_t * cont_stop; + lv_obj_t * img_prompt; + lv_obj_t * img_value; + lv_obj_t * label_value; }lv_ntc_experience_ext_t; @@ -51,6 +54,8 @@ int mmi_k18_nfc_experience_trigger(char * data_ptr, int data_len); void mmi_hengai_happinss_value_set(float value_happiness); +void mmi_hengai_blood_happinss_value_set(float value_happiness); + float mmi_hengai_happiness_value_get(void); void mmi_hengai_happiness_value_clean(void); 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 ddcadf64..b1312e9e 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 @@ -1082,6 +1082,11 @@ static void mmi_health_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_type, uin bool mmi_health_measure_timed_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_type) { +#ifdef MMI_PROJECT_Z5_HA_K18_NFC + if(HAL_CHG_CONNECTED == Hal_Charger_Get_Status()) + return false; +#endif + if(false == mmi_health_measure_wear_state_get()) return false; @@ -1120,6 +1125,11 @@ bool mmi_health_measure_timed_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_ty void mmi_health_measure_app_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_type) { HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + +#ifdef MMI_PROJECT_Z5_HA_K18_NFC + if(HAL_CHG_CONNECTED == Hal_Charger_Get_Status()) + return ; +#endif if(false == mmi_health_measure_wear_state_get()) return; @@ -1158,6 +1168,11 @@ void mmi_health_measure_app_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_type void mmi_health_measure_ui_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_type) { +#ifdef MMI_PROJECT_Z5_HA_K18_NFC + if(HAL_CHG_CONNECTED == Hal_Charger_Get_Status()) + return ; +#endif + if(true == mmi_health_measure_state_is_back_measure()) { mmi_health_measure_interrupt(); diff --git a/2.sdk/sdk/gui/lv_watch/lv_watch.c b/2.sdk/sdk/gui/lv_watch/lv_watch.c index 9d757e7a..58d6bd62 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_watch.c +++ b/2.sdk/sdk/gui/lv_watch/lv_watch.c @@ -929,6 +929,9 @@ static void watch_normal_charging_status_change(VOID * para) #ifdef MMI_PROJECT_Z5_HA_K18_NFC mmi_hengai_happiness_value_clean(); asl_pedometer_steps_clear(); + + nv_watch_health_info_t health_info = {0}; + mmi_health_info_set(&health_info); #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 ecb33b56..6c615f60 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_watch_res.h +++ b/2.sdk/sdk/gui/lv_watch/lv_watch_res.h @@ -1101,10 +1101,11 @@ LV_IMG_DECLARE(img_poweron_logo); #ifdef MMI_PROJECT_Z5_HA_K18_NFC #define ICON_K18_NFC_EXPERIENCE_BG "R:/png/custom_function/ICON_K18_NFC_EXPERIENCE_BG.png" -#define ICON_NFC_EXPERIENCE_TITLE "R:/png/custom_function/ICON_NFC_EXPERIENCE_TITLE.png" +//#define ICON_NFC_EXPERIENCE_TITLE "R:/png/custom_function/ICON_NFC_EXPERIENCE_TITLE.png" #define ICON_NFC_EXPERIENCE_PROMPT "R:/png/custom_function/ICON_NFC_EXPERIENCE_PROMPT.png" #define ICON_NFC_EXPERIENCE_HEART_S "R:/png/custom_function/ICON_NFC_EXPERIENCE_HEART_S.png" #define ICON_NFC_EXPERIENCE_HEART_B "R:/png/custom_function/ICON_NFC_EXPERIENCE_HEART_B.png" +#define ICON_NFC_EXPERIENCE_HEART_M "R:/png/custom_function/ICON_NFC_EXPERIENCE_HEART_M.png" #endif