From: @CHENG <2393524978@qq.com> Date: Mon, 15 Jul 2024 07:18:10 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=d854fa431d8f2c964d31b4641967f684b8d29e9e;p=mirrors%2FASR3603_Z5.git gengxin --- diff --git a/2.sdk/project/Z5_HA_K18/gui/lv_watch/mmi_default_CUSTOM.h b/2.sdk/project/Z5_HA_K18/gui/lv_watch/mmi_default_CUSTOM.h index 8ec6eef9..e93c9501 100644 --- a/2.sdk/project/Z5_HA_K18/gui/lv_watch/mmi_default_CUSTOM.h +++ b/2.sdk/project/Z5_HA_K18/gui/lv_watch/mmi_default_CUSTOM.h @@ -83,6 +83,9 @@ // sim unbind #define MMI_CUSTOMER_SIM_UNBIND_SWITCH (MMI_WATCH_SWITCH_ON) +// chip temperature +#define MMI_CUSTOMER_CHIP_TEMP_HIGH_THRESHOLD (70) +#define MMI_CUSTOMER_CHIP_TEMP_LOW_THRESHOLD (60) #endif diff --git a/2.sdk/project/Z5_HA_K18/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h b/2.sdk/project/Z5_HA_K18/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h index 880b6e47..2fe4dae9 100644 --- a/2.sdk/project/Z5_HA_K18/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h +++ b/2.sdk/project/Z5_HA_K18/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h @@ -213,6 +213,7 @@ #define __MMI_CUSTOM_HENGAI_TCMS__ +#define __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__ #endif diff --git a/2.sdk/project/Z5_WL_K7/gui/lv_watch/mmi_default_CUSTOM.h b/2.sdk/project/Z5_WL_K7/gui/lv_watch/mmi_default_CUSTOM.h index 54c44c14..fdaef58f 100644 --- a/2.sdk/project/Z5_WL_K7/gui/lv_watch/mmi_default_CUSTOM.h +++ b/2.sdk/project/Z5_WL_K7/gui/lv_watch/mmi_default_CUSTOM.h @@ -83,6 +83,9 @@ // sim unbind #define MMI_CUSTOMER_SIM_UNBIND_SWITCH (MMI_WATCH_SWITCH_ON) +// chip temperature +#define MMI_CUSTOMER_CHIP_TEMP_HIGH_THRESHOLD (70) +#define MMI_CUSTOMER_CHIP_TEMP_LOW_THRESHOLD (60) #endif diff --git a/2.sdk/project/Z5_WL_K7/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h b/2.sdk/project/Z5_WL_K7/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h index 162300bd..a41fb7c8 100644 --- a/2.sdk/project/Z5_WL_K7/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h +++ b/2.sdk/project/Z5_WL_K7/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h @@ -199,6 +199,11 @@ #define __MMI_SOS_NUMBER_NAME_SUPPORT__ +#define __MMI_CUSTOM_AIGC_SUPPORT__ + +#define __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__ + + #endif diff --git a/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.c b/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.c index 91f46abf..fa016c20 100644 --- a/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.c +++ b/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.c @@ -233,7 +233,9 @@ static void mmi_gui_timing_task_1_minute_mission(void * time_param) #endif // check chip temperature +#ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__ mmi_watch_chip_temperature_check(); +#endif // check tcms #ifdef __MMI_CUSTOM_HENGAI_TCMS__ diff --git a/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.c b/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.c index f969056e..d7870b7f 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.c +++ b/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.c @@ -214,20 +214,6 @@ void mmi_ui_msg_action_hengai_bp_measure_result(bool state, uint16_t bp_value_hi #endif -void mmi_ui_msg_action_chip_high_temperature(uint32_t flag) -{ - printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - mmi_watch_wake_up(); - - mmi_msg_flag_para_t * msg_info = (mmi_msg_flag_para_t *)Hal_Mem_Alloc(sizeof(mmi_msg_flag_para_t)); - - memset(msg_info, 0x0, sizeof(mmi_msg_flag_para_t)); - msg_info->header.MsgId = MMI_MSG_CHIP_HIGH_TEMP; - msg_info->flag = flag; - - Hal_Send_Message((TASK_ID)gui_task_id, (void *)msg_info); -} diff --git a/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.h b/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.h index 35a4b039..5d54659d 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.h +++ b/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.h @@ -88,7 +88,6 @@ void mmi_ui_msg_action_ai_talk_incoming(void); void mmi_ui_msg_action_hengai_bp_calibrate_result(bool state); void mmi_ui_msg_action_hengai_bp_measure_result(bool state, uint16_t bp_value_high, uint16_t bp_value_low); #endif -void mmi_ui_msg_action_chip_high_temperature(uint32_t flag); void mmi_ui_falldown(void); diff --git a/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.c b/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.c index 839fbd03..88e0d05d 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.c +++ b/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.c @@ -464,10 +464,6 @@ void watch_ui_message_handle(uint16_t msgid, void * msg) break; #endif - case MMI_MSG_CHIP_HIGH_TEMP: - flag = ((mmi_msg_flag_para_t *)msg)->flag; - mmi_ui_msg_update_chip_high_temperature(flag); - break; #endif diff --git a/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.h b/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.h index ecec9ba4..c7cc904f 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.h +++ b/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.h @@ -137,7 +137,6 @@ enum MMI_MSG_HENGAI_BP_CALIBRATE_RESULT, MMI_MSG_HENGAI_BP_MEASURE_RESULT, #endif - MMI_MSG_CHIP_HIGH_TEMP, #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 d286fded..bddec1e6 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 @@ -239,6 +239,9 @@ enum #endif #ifdef __MMI_USER_PROFILE_SUPPORT__ ACT_ID_USER_PROFILE, +#endif +#ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__ + ACT_ID_CHIP_TEMP_HIGH, #endif ACT_ID_WATCH_FALLDWON, diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone_api.c b/2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone_api.c index 5c2d1f7a..81c1d426 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone_api.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone_api.c @@ -306,15 +306,20 @@ void watch_modem_call_response_clip(int32_t index, MMI_Modem_Call_Response_Clip_ return; } -#ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ - if(true == mmi_watch_is_in_do_not_disturb_time()) + if(false + #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ + || (true == mmi_watch_is_in_do_not_disturb_time()) + #endif + #ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__ + || (true == mmi_is_ACT_ID_CHIP_TEMP_HIGH()) + #endif + ) { printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); Hal_Mem_Free(clip->number); Hal_Mem_Free(clip); return; } -#endif printf("%s: index=%d, number=%s, type=%d\n", __func__, index, clip->number, clip->type); diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/sms_msg/sms_msg.c b/2.sdk/sdk/gui/lv_watch/lv_apps/sms_msg/sms_msg.c index 44867dc2..86df89df 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/sms_msg/sms_msg.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/sms_msg/sms_msg.c @@ -388,6 +388,28 @@ void sms_msg_app_new_sms_info_ind(app_adp_new_sms_info_ind_t *sms_info) watch_wakeup_time_reset(); } + #ifdef __MMI_ZHSX_SUPPORT__ + uint8_t volume = 0; + + #ifdef __MMI_USER_PROFILE_SUPPORT__ + volume = mmi_user_profile_current_mode_new_sms_volume_get(); + #else + volume = query_current_volume(); + #endif + #ifdef __MMI_NEW_SMS_SILENT_SUPPORT__ + if(0 != mmi_new_sms_silent_swtich_get()) + volume = 0; + #endif + if(0 != volume) + { + Hal_NFFS_File_Play_Onetime(AUDIO_SETTING_AUDIO_MSG, volume, NULL, 0); + } + if(true == mmi_watch_vibrate_is_permitted()) + { + Hal_Vibrator_Play_Onetime(NULL, 800); + } + #endif + //notify ui app_adaptor_recv_sms_notsify_update_ui(); } @@ -1077,26 +1099,6 @@ void sms_msg_list_update(void) { printf("%s\n", __FUNCTION__); -#ifdef __MMI_ZHSX_SUPPORT__ - uint8_t volume = 0; - -#ifdef __MMI_USER_PROFILE_SUPPORT__ - volume = mmi_user_profile_current_mode_new_sms_volume_get(); -#else - volume = query_current_volume(); -#endif -#ifdef __MMI_NEW_SMS_SILENT_SUPPORT__ - if(0 != mmi_new_sms_silent_swtich_get()) - volume = 0; -#endif - Hal_NFFS_File_Play_Onetime(AUDIO_SETTING_AUDIO_MSG, volume, NULL, 0); - - if(true == mmi_watch_vibrate_is_permitted()) - { - Hal_Vibrator_Play_Onetime(NULL, 800); - } -#endif - if(is_sms_activity()) { lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_SMS_MSG); diff --git a/2.sdk/sdk/gui/lv_watch/lv_watch_common.c b/2.sdk/sdk/gui/lv_watch/lv_watch_common.c index 0ca7cbf6..83a8085a 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_watch_common.c +++ b/2.sdk/sdk/gui/lv_watch/lv_watch_common.c @@ -482,6 +482,12 @@ void lv_watch_go_home(void) return; } #endif +#ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__ + if(true == mmi_is_ACT_ID_CHIP_TEMP_HIGH()) + { + return; + } +#endif #endif #if USE_LV_WATCH_EXERCISE != 0 @@ -573,7 +579,6 @@ void lv_watch_go_back(void) { mmi_watch_search_screen_destroy(); } -#endif #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ if(true == mmi_watch_is_in_do_not_disturb_time()) @@ -581,6 +586,13 @@ void lv_watch_go_back(void) return; } #endif +#ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__ + if(true == mmi_is_ACT_ID_CHIP_TEMP_HIGH()) + { + return; + } +#endif +#endif #if USE_LV_WATCH_EXERCISE != 0 if(exercise_sport_back_key_handle()) { diff --git a/2.sdk/sdk/gui/lv_watch/mmi_default.h b/2.sdk/sdk/gui/lv_watch/mmi_default.h index fab979d7..c957d8f4 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_default.h +++ b/2.sdk/sdk/gui/lv_watch/mmi_default.h @@ -411,6 +411,20 @@ extern "C" #endif +// chip temperature +#ifdef MMI_CUSTOMER_CHIP_TEMP_HIGH_THRESHOLD +#define MMI_CHIP_TEMP_HIGH_THRESHOLD_DEFAULT MMI_CUSTOMER_CHIP_TEMP_HIGH_THRESHOLD +#else +#define MMI_CHIP_TEMP_HIGH_THRESHOLD_DEFAULT (70) +#endif + +#ifdef MMI_CUSTOMER_CHIP_TEMP_LOW_THRESHOLD +#define MMI_CHIP_TEMP_LOW_THRESHOLD_DEFAULT MMI_CUSTOMER_CHIP_TEMP_LOW_THRESHOLD +#else +#define MMI_CHIP_TEMP_LOW_THRESHOLD_DEFAULT (60) +#endif + + #endif diff --git a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c index 15846ceb..4a683cce 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c +++ b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c @@ -28,6 +28,13 @@ bool mmi_active_screen_is_prohibit_interrupted(void) return true; } #endif + +#ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__ + if(true == mmi_is_ACT_ID_CHIP_TEMP_HIGH()) + { + return true; + } +#endif if(true == mmi_is_ACT_ID_SHUTDOWN()) { @@ -1431,20 +1438,531 @@ void mmi_watch_sim_unbind_check(void) #endif -void mmi_ui_msg_update_chip_high_temperature(uint32_t flag) +#ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__ + +#ifdef __DEBUG_CHIP_TEMPERATURE_MONITOR_SUPPORT__ +static uint8_t s_CHIP_TEMP_HIGH_THRESHOLD = 50; +static uint8_t s_CHIP_TEMP_LOW_THRESHOLD = 45; +static lv_obj_t * s_high_label = NULL; +static lv_obj_t * s_low_label = NULL; + +static void __prepare_destory(lv_obj_t * activity_obj) +{ + lv_watch_png_cache_all_free(); +} + +static void __low_decrease_btn_action(lv_obj_t * btn, lv_event_t event) +{ + if(LV_EVENT_CLICKED!= event) + return; + + s_CHIP_TEMP_LOW_THRESHOLD--; + + char low_value[8] = {0}; + sprintf(low_value, "%d", s_CHIP_TEMP_LOW_THRESHOLD); + lv_label_set_text(s_low_label, low_value); +} + +static void __low_increase_btn_action(lv_obj_t * btn, lv_event_t event) +{ + if(LV_EVENT_CLICKED!= event) + return; + + if((s_CHIP_TEMP_HIGH_THRESHOLD - 1) > s_CHIP_TEMP_LOW_THRESHOLD) + s_CHIP_TEMP_LOW_THRESHOLD++; + + char low_value[8] = {0}; + sprintf(low_value, "%d", s_CHIP_TEMP_LOW_THRESHOLD); + lv_label_set_text(s_low_label, low_value); +} + +static void __high_decrease_btn_action(lv_obj_t * btn, lv_event_t event) +{ + if(LV_EVENT_CLICKED!= event) + return; + + if((s_CHIP_TEMP_LOW_THRESHOLD + 1) < s_CHIP_TEMP_HIGH_THRESHOLD) + s_CHIP_TEMP_HIGH_THRESHOLD--; + + char high_value[8] = {0}; + sprintf(high_value, "%d", s_CHIP_TEMP_HIGH_THRESHOLD); + lv_label_set_text(s_high_label, high_value); +} + +static void __high_increase_btn_action(lv_obj_t * btn, lv_event_t event) +{ + if(LV_EVENT_CLICKED!= event) + return; + + s_CHIP_TEMP_HIGH_THRESHOLD++; + + char high_value[8] = {0}; + sprintf(high_value, "%d", s_CHIP_TEMP_HIGH_THRESHOLD); + lv_label_set_text(s_high_label, high_value); +} + +static lv_obj_t * __create(lv_obj_t * activity_obj) { - if(0 == flag) // in call + if(NULL == activity_obj) { - mmi_call_chip_high_temperature_prompt(); + lv_watch_activity_ext_t activity_ext; + memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t)); + activity_ext.actId = ACT_ID_ANYOBJ; + activity_ext.create = __create; + activity_ext.prepare_destory = __prepare_destory; + activity_obj = lv_watch_creat_activity_obj(&activity_ext); + LV_ASSERT_MEM(activity_obj); + if(NULL == activity_obj) { + return NULL; + } + } + + lv_obj_t * obj = lv_watch_obj_create(activity_obj); + LV_ASSERT_MEM(obj); + if(NULL == obj) { + return NULL; + } + + lv_obj_t * content = lv_cont_create(obj, NULL); + lv_obj_set_size(content, lv_obj_get_width(obj), lv_obj_get_height(obj)); + lv_obj_add_style(content, LV_CONT_PART_MAIN, &lv_watch_style_transp); + lv_obj_align(content, NULL, LV_ALIGN_CENTER, 0, 0); + + // low + lv_obj_t * low_label = lv_label_create(content, NULL); + lv_obj_add_style(low_label, LV_LABEL_PART_MAIN, &lv_watch_font26_gray); + char low_value[8] = {0}; + sprintf(low_value, "%d", s_CHIP_TEMP_LOW_THRESHOLD); + lv_label_set_text(low_label, low_value); + lv_label_set_align(low_label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(low_label, NULL, LV_ALIGN_IN_TOP_MID, 0, 40); + s_low_label = low_label; + + lv_obj_t * low_btn_decrease = lv_imgbtn_create(content, NULL); + lv_imgbtn_set_src(low_btn_decrease, LV_BTN_STATE_RELEASED, ICON_DECREASE); + lv_imgbtn_set_src(low_btn_decrease, LV_BTN_STATE_PRESSED, ICON_DECREASE); + lv_obj_align(low_btn_decrease, NULL, LV_ALIGN_IN_TOP_LEFT, 20, 30); + lv_obj_set_event_cb(low_btn_decrease, __low_decrease_btn_action); + + lv_obj_t * low_btn_increase = lv_imgbtn_create(content, NULL); + lv_imgbtn_set_src(low_btn_increase, LV_BTN_STATE_RELEASED, ICON_INCREASE); + lv_imgbtn_set_src(low_btn_increase, LV_BTN_STATE_PRESSED, ICON_INCREASE); + lv_obj_align(low_btn_increase, NULL, LV_ALIGN_IN_TOP_RIGHT, -20, 30); + lv_obj_set_event_cb(low_btn_increase, __low_increase_btn_action); + + // high + lv_obj_t * high_label = lv_label_create(content, NULL); + lv_obj_add_style(high_label, LV_LABEL_PART_MAIN, &lv_watch_font26_gray); + char high_value[8] = {0}; + sprintf(high_value, "%d", s_CHIP_TEMP_HIGH_THRESHOLD); + lv_label_set_text(high_label, high_value); + lv_label_set_align(high_label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(high_label, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -40); + s_high_label = high_label; + + lv_obj_t * high_btn_decrease = lv_imgbtn_create(content, NULL); + lv_imgbtn_set_src(high_btn_decrease, LV_BTN_STATE_RELEASED, ICON_DECREASE); + lv_imgbtn_set_src(high_btn_decrease, LV_BTN_STATE_PRESSED, ICON_DECREASE); + lv_obj_align(high_btn_decrease, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 20, -30); + lv_obj_set_event_cb(high_btn_decrease, __high_decrease_btn_action); + + lv_obj_t * high_btn_increase = lv_imgbtn_create(content, NULL); + lv_imgbtn_set_src(high_btn_increase, LV_BTN_STATE_RELEASED, ICON_INCREASE); + lv_imgbtn_set_src(high_btn_increase, LV_BTN_STATE_PRESSED, ICON_INCREASE); + lv_obj_align(high_btn_increase, NULL, LV_ALIGN_IN_BOTTOM_RIGHT, -20, -30); + lv_obj_set_event_cb(high_btn_increase, __high_increase_btn_action); + + return obj; +} + +void __create_event_cb(lv_obj_t * btn, lv_event_t event) +{ + if(LV_EVENT_CLICKED == event) + { + lv_watch_png_cache_all_free(); + + lv_obj_t * obj = __create(NULL); + LV_ASSERT_MEM(obj); + if(obj == NULL) return; + } +} +#endif + +#if 0 +static lv_task_t * s_chip_high_temp_clean_task = NULL; +static bool s_is_ACT_ID_CHIP_TEMP_HIGH = false; + +bool mmi_is_ACT_ID_CHIP_TEMP_HIGH(void) +{ + return s_is_ACT_ID_CHIP_TEMP_HIGH; +} + +static void mmi_set_ACT_ID_CHIP_TEMP_HIGH(bool value) +{ + s_is_ACT_ID_CHIP_TEMP_HIGH = value; +} + +void mmi_chip_high_temp_btn_event_cb(lv_obj_t * obj, lv_event_t e) +{ + if(LV_EVENT_CLICKED != e) + return; + + mmi_watch_power_off(); +} + +static void mmi_chip_high_temp_screen_prepare_destory(lv_obj_t * activity_obj) +{ + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + lv_watch_png_cache_all_free(); + + mmi_set_ACT_ID_CHIP_TEMP_HIGH(false); +} + +static void mmi_chip_high_temp_task_clean(void) +{ + if(NULL != s_chip_high_temp_clean_task) + { + lv_task_del(s_chip_high_temp_clean_task); + s_chip_high_temp_clean_task = NULL; + } +} + +static void mmi_chip_high_temp_clean_task_cb(lv_task_t * task) +{ + lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_CHIP_TEMP_HIGH); + if(NULL == activity_obj) + { + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + mmi_chip_high_temp_task_clean(); + } + else + { + int chip_temp = asl_chip_temperature_get(); + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chip_temp=%d\n", __FUNCTION__, __LINE__, chip_temp); + + #ifdef __DEBUG_CHIP_TEMPERATURE_MONITOR_SUPPORT__ + char info_buf[64] = {0}; + sprintf(info_buf, "chip_temp=%d", chip_temp); + mmi_debug_info_write_to_file(info_buf); + #endif + + if(MMI_CHIP_TEMP_LOW_THRESHOLD >= chip_temp) + { + mmi_chip_high_temp_screen_prepare_destory(NULL); + lv_obj_del(activity_obj); + mmi_chip_high_temp_task_clean(); + } + } +} + +static void mmi_watch_chip_temperature_clean(void) +{ + mmi_chip_high_temp_task_clean(); + s_chip_high_temp_clean_task = lv_task_create(mmi_chip_high_temp_clean_task_cb, 1000 * 5, LV_TASK_PRIO_HIGH, NULL); +} + +static lv_obj_t * mmi_chip_high_temp_screen_create(lv_obj_t * activity_obj) +{ + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + if(NULL == activity_obj) + { + lv_watch_activity_ext_t activity_ext; + memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t)); + activity_ext.actId = ACT_ID_CHIP_TEMP_HIGH; + activity_ext.create = mmi_chip_high_temp_screen_create; + activity_ext.prepare_destory = mmi_chip_high_temp_screen_prepare_destory; + activity_obj = lv_watch_creat_activity_obj(&activity_ext); + LV_ASSERT_MEM(activity_obj); + if(activity_obj == NULL) + { + return(NULL); + } + } + + lv_obj_t * obj = lv_watch_obj_create(activity_obj); + LV_ASSERT_MEM(obj); + if(obj == NULL) + return NULL; + + mmi_set_ACT_ID_CHIP_TEMP_HIGH(true); + mmi_watch_chip_temperature_clean(); + + lv_watch_obj_set_anim_mode(obj, LV_WATCH_ANIM_NO); + + 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_radius(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 30); + lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED); + //lv_obj_set_style_local_radius(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 15); + lv_obj_align(cont, NULL, LV_ALIGN_CENTER, 0, 0); + lv_obj_set_click(cont, false); + + // image + lv_obj_t * img = lv_img_create(cont, NULL); + lv_img_set_src(img, ICON_WARNNING_PROMPT); +#ifdef USE_LV_WATCH_UI_CIRCLE + #ifdef USE_LV_WATCH_UI_240_240 + lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 15); + #else + lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 15); + #endif +#else + #if USE_LV_WATCH_UI_240_280 + lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 20); + #else + lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 20); + #endif +#endif + + // text + lv_obj_t * label_prompt = lv_label_create(cont, NULL); + lv_obj_add_style(label_prompt, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_text_id(label_prompt, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE); + lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_prompt, NULL, LV_ALIGN_CENTER, 0, 0); + + // button + 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); +#ifdef USE_LV_WATCH_UI_CIRCLE + #ifdef USE_LV_WATCH_UI_240_240 + lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -15); + #else + lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -15); + #endif +#else + #if USE_LV_WATCH_UI_240_280 + lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -20); + #else + lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -20); + #endif +#endif + lv_obj_set_event_cb(btn, mmi_chip_high_temp_btn_event_cb); + + lv_obj_t * label_btn = lv_label_create(btn, NULL); + lv_obj_add_style(label_btn, LV_LABEL_PART_MAIN, &lv_watch_font26); + lv_label_set_text_id(label_btn, WATCH_TEXT_ID_SHUTDOWN); + lv_label_set_align(label_btn, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_btn, NULL, LV_ALIGN_CENTER, 0, 0); + + return obj; +} + +static void mmi_chip_temp_high_task_cb(lv_task_t * task) +{ + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + if(MMI_MODEM_CALL_STATE_NULL != phone_get_call_state()) + { + ring_off_action(NULL, LV_EVENT_CLICKED); } #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ - else if(1 == flag) // in video call + else if(true == voip_connect_check_req()) + { + mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); + } +#endif + + lv_watch_go_home(); + Hal_Vibrator_Play_Onetime(NULL, 800); + + mmi_chip_high_temp_screen_create(NULL); +} + +void mmi_watch_chip_temperature_check(void) +{ + int chip_temp = asl_chip_temperature_get(); + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chip_temp=%d\n", __FUNCTION__, __LINE__, chip_temp); + +#ifdef __DEBUG_CHIP_TEMPERATURE_MONITOR_SUPPORT__ + char info_buf[64] = {0}; + sprintf(info_buf, "chip_temp=%d", chip_temp); + mmi_debug_info_write_to_file(info_buf); +#endif + + if(120 < chip_temp) + { + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chip temp unreasonable\n", __FUNCTION__, __LINE__); + } + else if(MMI_CHIP_TEMP_HIGH_THRESHOLD <= chip_temp) + { + if(false == mmi_is_ACT_ID_CHIP_TEMP_HIGH()) + { + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + mmi_watch_wake_up(); + lv_task_t * task_ptr = lv_task_create(mmi_chip_temp_high_task_cb, 50, LV_TASK_PRIO_HIGH, NULL); + lv_task_once(task_ptr); + } + } + else if(MMI_CHIP_TEMP_LOW_THRESHOLD >= chip_temp) + { + if(true == mmi_is_ACT_ID_CHIP_TEMP_HIGH()) + { + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + mmi_set_ACT_ID_CHIP_TEMP_HIGH(false); + } + } +} + +#else + +bool mmi_is_ACT_ID_CHIP_TEMP_HIGH(void) +{ + return false; +} + +static void mmi_chip_high_temp_screen_prepare_destory(lv_obj_t * activity_obj) +{ + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + lv_watch_png_cache_all_free(); +} + +void mmi_chip_high_temp_btn_event_cb(lv_obj_t * obj, lv_event_t e) +{ + if(LV_EVENT_CLICKED != e) + return; + + mmi_chip_high_temp_screen_prepare_destory(NULL); + lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_CHIP_TEMP_HIGH); + if(NULL != activity_obj) + { + lv_obj_del(activity_obj); + } +} + +static lv_obj_t * mmi_chip_high_temp_screen_create(lv_obj_t * activity_obj) +{ + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + if(NULL == activity_obj) { - mmi_vc_chip_high_temperature_prompt(); + lv_watch_activity_ext_t activity_ext; + memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t)); + activity_ext.actId = ACT_ID_CHIP_TEMP_HIGH; + activity_ext.create = mmi_chip_high_temp_screen_create; + activity_ext.prepare_destory = mmi_chip_high_temp_screen_prepare_destory; + activity_obj = lv_watch_creat_activity_obj(&activity_ext); + LV_ASSERT_MEM(activity_obj); + if(activity_obj == NULL) + { + return(NULL); + } } + + lv_obj_t * obj = lv_watch_obj_create(activity_obj); + LV_ASSERT_MEM(obj); + if(obj == NULL) + return NULL; + + //lv_watch_obj_set_anim_mode(obj, LV_WATCH_ANIM_NO); + + 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_radius(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 30); + lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED); + //lv_obj_set_style_local_radius(prompt_cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 15); + lv_obj_align(cont, NULL, LV_ALIGN_CENTER, 0, 0); + lv_obj_set_click(cont, false); + + // image + lv_obj_t * img = lv_img_create(cont, NULL); + lv_img_set_src(img, ICON_WARNNING_PROMPT); +#ifdef USE_LV_WATCH_UI_CIRCLE + #ifdef USE_LV_WATCH_UI_240_240 + lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 15); + #else + lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 15); + #endif +#else + #if USE_LV_WATCH_UI_240_280 + lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 20); + #else + lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 20); + #endif #endif + + // text + lv_obj_t * label_prompt = lv_label_create(cont, NULL); + lv_obj_add_style(label_prompt, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_text_id(label_prompt, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE); + lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_prompt, NULL, LV_ALIGN_CENTER, 0, 0); + + // button + 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); +#ifdef USE_LV_WATCH_UI_CIRCLE + #ifdef USE_LV_WATCH_UI_240_240 + lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -15); + #else + lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -15); + #endif +#else + #if USE_LV_WATCH_UI_240_280 + lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -20); + #else + lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -20); + #endif +#endif + lv_obj_set_event_cb(btn, mmi_chip_high_temp_btn_event_cb); + + lv_obj_t * label_btn = lv_label_create(btn, NULL); + lv_obj_add_style(label_btn, LV_LABEL_PART_MAIN, &lv_watch_font26); + lv_label_set_text_id(label_btn, WATCH_TEXT_ID_OK); + lv_label_set_align(label_btn, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_btn, NULL, LV_ALIGN_CENTER, 0, 0); + + return obj; +} + +static void mmi_call_chip_temp_high_task_cb(lv_task_t * task) +{ + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + if(MMI_MODEM_CALL_STATE_NULL != phone_get_call_state()) + { + ring_off_action(NULL, LV_EVENT_CLICKED); + } + + lv_watch_go_home(); + Hal_Vibrator_Play_Onetime(NULL, 800); + + mmi_chip_high_temp_screen_create(NULL); } +#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ +static void mmi_vc_chip_temp_high_task_cb(lv_task_t * task) +{ + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + if(true == voip_connect_check_req()) + { + mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); + } + + lv_watch_go_home(); + Hal_Vibrator_Play_Onetime(NULL, 800); + + mmi_chip_high_temp_screen_create(NULL); +} +#endif + void mmi_watch_chip_temperature_check(void) { if(MMI_MODEM_CALL_STATE_NULL != phone_get_call_state()) @@ -1452,9 +1970,11 @@ void mmi_watch_chip_temperature_check(void) int chip_temp = asl_chip_temperature_get(); SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chip_temp=%d\n", __FUNCTION__, __LINE__, chip_temp); - if(MMI_CHIP_TEMPERATURE_THRESHOLD <= chip_temp) + if(MMI_CHIP_TEMP_HIGH_THRESHOLD <= chip_temp) { - mmi_ui_msg_action_chip_high_temperature(0); + mmi_watch_wake_up(); + lv_task_t * task_ptr = lv_task_create(mmi_call_chip_temp_high_task_cb, 50, LV_TASK_PRIO_HIGH, NULL); + lv_task_once(task_ptr); } } #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ @@ -1463,13 +1983,19 @@ void mmi_watch_chip_temperature_check(void) int chip_temp = asl_chip_temperature_get(); SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chip_temp=%d\n", __FUNCTION__, __LINE__, chip_temp); - if(MMI_CHIP_TEMPERATURE_THRESHOLD <= chip_temp) + if(MMI_CHIP_TEMP_HIGH_THRESHOLD <= chip_temp) { - mmi_ui_msg_action_chip_high_temperature(1); + mmi_watch_wake_up(); + lv_task_t * task_ptr = lv_task_create(mmi_vc_chip_temp_high_task_cb, 50, LV_TASK_PRIO_HIGH, NULL); + lv_task_once(task_ptr); } } #endif } +#endif + +#endif + diff --git a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h index 271c06d7..2d4841e3 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h +++ b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h @@ -109,9 +109,22 @@ void mmi_watch_sim_unbind_switch_set(uint8_t value); void mmi_watch_sim_unbind_check(void); #endif -#define MMI_CHIP_TEMPERATURE_THRESHOLD (65) // (90) // (40) -void mmi_ui_msg_update_chip_high_temperature(uint32_t flag); +#ifdef __MMI_CHIP_TEMPERATURE_MONITOR_SUPPORT__ + +//#define __DEBUG_CHIP_TEMPERATURE_MONITOR_SUPPORT__ +#ifdef __DEBUG_CHIP_TEMPERATURE_MONITOR_SUPPORT__ +#define MMI_CHIP_TEMP_HIGH_THRESHOLD (s_CHIP_TEMP_HIGH_THRESHOLD) +#define MMI_CHIP_TEMP_LOW_THRESHOLD (s_CHIP_TEMP_LOW_THRESHOLD) + +void __create_event_cb(lv_obj_t * btn, lv_event_t event); +#else +#define MMI_CHIP_TEMP_HIGH_THRESHOLD (MMI_CHIP_TEMP_HIGH_THRESHOLD_DEFAULT) +#define MMI_CHIP_TEMP_LOW_THRESHOLD (MMI_CHIP_TEMP_LOW_THRESHOLD_DEFAULT) +#endif + +bool mmi_is_ACT_ID_CHIP_TEMP_HIGH(void); void mmi_watch_chip_temperature_check(void); +#endif