From: @CHENG <2393524978@qq.com> Date: Sat, 6 Jul 2024 09:32:40 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=ab404d0c47f3797e5214810084ac533b2b89f45c;p=mirrors%2FASR3603_Z5_DS.git gengxin --- 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 e986ed3d..f29011ce 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 @@ -234,6 +234,9 @@ static void mmi_gui_timing_task_1_minute_mission(void * time_param) mmi_watch_sleep_time_mission_check(); #endif + // check chip temperature + mmi_watch_chip_temperature_check(); + } @@ -247,7 +250,7 @@ static void mmi_gui_timing_timer_callback(uint32_t param) uos_timer_stop(s_timing_control_timer); uos_timer_start(s_timing_control_timer, MS_TO_TICKS(MMI_GUI_TIMING_TIMER_INTERVAL), 0, mmi_gui_timing_timer_callback, NULL); - s_timing_control_timer_counter++; + s_timing_control_timer_counter++; // 3s per time mmi_gui_timing_task_msg_send(MMI_GUI_TIMING_MSG_3_SECOND, NULL); // 3 seconds diff --git a/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.h b/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.h index bd38ea09..4bfe551f 100644 --- a/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.h +++ b/2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.h @@ -38,6 +38,7 @@ typedef enum MMI_GUI_TIMING_MSG_3_SECOND, MMI_GUI_TIMING_MSG_6_SECOND, MMI_GUI_TIMING_MSG_15_SECOND, + MMI_GUI_TIMING_MSG_30_SECOND, MMI_GUI_TIMING_MSG_1_MINUTE, MMI_GUI_TIMING_MSG_2_MINUTE, diff --git a/2.sdk/sdk/gui/lv_watch/framework/language/lang_ch.c b/2.sdk/sdk/gui/lv_watch/framework/language/lang_ch.c index 510940f9..fb5d12fd 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/language/lang_ch.c +++ b/2.sdk/sdk/gui/lv_watch/framework/language/lang_ch.c @@ -973,6 +973,7 @@ const void * lang_text_ch[] = { "有房颤风险", // WATCH_TEXT_ID_ATRIAL_FIBRILLATION_RISK, "无房颤风险", // WATCH_TEXT_ID_ATRIAL_FIBRILLATION_NO_RISK, "请重新测量", // WATCH_TEXT_ID_IN_MEASURE_AGAIN, + "设备温度过高\n请暂缓使用", // WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE, //CHENG_MODIFY "确认是否跌倒?", // WATCH_TEXT_ID_falldown, "确认是否删除", diff --git a/2.sdk/sdk/gui/lv_watch/framework/language/lang_en.c b/2.sdk/sdk/gui/lv_watch/framework/language/lang_en.c index 44352503..242d6b9b 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/language/lang_en.c +++ b/2.sdk/sdk/gui/lv_watch/framework/language/lang_en.c @@ -974,6 +974,7 @@ const void * lang_text_en[] = { "With risk", // WATCH_TEXT_ID_ATRIAL_FIBRILLATION_RISK, "No risk", // WATCH_TEXT_ID_ATRIAL_FIBRILLATION_NO_RISK, "Please try again", // WATCH_TEXT_ID_IN_MEASURE_AGAIN, + "Temperature too high\nPlease suspended use", // WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE, //CHENG_MODIFY "Confirm a fall", "Confirm deletion", 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 a5c4d33a..e5b0a825 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 @@ -239,6 +239,23 @@ 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); +} + + + #if 0 #define MODEM_ADP_TASK_PRIORITY 199 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 f93370fb..9c8f9a3a 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 @@ -92,122 +92,11 @@ 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_falldown(void); - - -#if 0 - -#define MODEM_ADP_TASK_PRIORITY 199 -MODEM_VIDEO_CALL_REG_STAT g_ModemVcRegStat = MODEM_VIDEO_CALL_REG_FAIL; +void mmi_ui_msg_action_chip_high_temperature(uint32_t flag); +void mmi_ui_falldown(void); -VOID MMI_ModemAdp_Video_Call_Init_Req(VOID) -{ - uos_create_task(MMI_ModemAdp_Video_Call_Main, NULL, 64, 4 * 1000, MODEM_ADP_TASK_PRIORITY, "modem_adpator_video_call"); -} -static VOID MMI_ModemAdp_Video_Call_Main(VOID * para) -{ - (void)para; - voipmsg_t voipmsg; - - while(gui_task_id == NULL) { - printf("gui_task_id is NULL"); - uos_sleep(10); - } - - // get msg - while(1) { - // receive message - if(voipMsgQueReceive(&voipmsg)) { - printf("voip Q is not ready, sleep for 500ms\n"); - uos_sleep(100); - continue; - } - - switch(voipmsg.msgid) { - case VOIP_UA_EVENT_CALL_INCOMING: - printf("%s voipmsg id is VOIP_UA_EVENT_CALL_INCOMING\n", __FUNCTION__); - if((voipmsg.callname_present) && (voipmsg.uri_present)) { - MMI_Modem_Video_Call_Response_Incoming_t * Response; - - Response = (MMI_Modem_Video_Call_Response_Incoming_t *)Hal_Mem_Alloc( - sizeof(MMI_Modem_Video_Call_Response_Incoming_t)); - - strcpy(Response->callname, voipmsg.callname); - strcpy(Response->uri, voipmsg.uri); - - if(VOIP_VOICE_CALL == voipmsg.calltype) { - Response->calltype = MODEM_VIDEO_CALL_TYPE_VOICE; - } else { - Response->calltype = MODEM_VIDEO_CALL_TYPE_VIDEO; - } - - MMI_Modem_Video_Call_Response_Incoming(Response); - } else { - printf("%s, invalid MT params", __FUNCTION__); - bsapi_call_action(BARESIPAPI_REJ, BARESIPVIDMODE_INV); - } - break; - case VOIP_UA_EVENT_CALL_RINGING: - printf("%s voipmsg id is VOIP_UA_EVENT_CALL_RINGING\n", __FUNCTION__); - //play tone - MMI_Modem_Video_Call_Common_Response(MMI_MODEM_VIDEO_CALL_RESPONSE_RING); - break; - case VOIP_UA_EVENT_CALL_ESTABLISHED: - printf("%s voipmsg id is VOIP_UA_EVENT_CALL_ESTABLISHED\n", __FUNCTION__); - MMI_Modem_Video_Call_Common_Response(MMI_MODEM_VIDEO_CALL_RESPONSE_CONNECT); - break; - case VOIP_UA_EVENT_CALL_CLOSED: - printf("%s voipmsg id is VOIP_UA_EVENT_CALL_CLOSED\n", __FUNCTION__); - if(0 == Hal_Pm_Get_State()) { - Hal_Pm_WakeUp(); - } - - MMI_Modem_Video_Call_Common_Response(MMI_MODEM_VIDEO_CALL_RESPONSE_DISCONNECT); - break; - case VOIP_UA_EVENT_CALL_TRANSFER: - printf("%s voipmsg id is VOIP_UA_EVENT_CALL_TRANSFER\n", __FUNCTION__); - break; - case VOIP_UA_EVENT_REGISTER_OK: - printf("%s voipmsg id is VOIP_UA_EVENT_REGISTER_OK\n", __FUNCTION__); - g_ModemVcRegStat = MODEM_VIDEO_CALL_REG_OK; - break; - case VOIP_UA_EVENT_UNREGISTERING: - printf("%s voipmsg id is VOIP_UA_EVENT_UNREGISTERING\n", __FUNCTION__); - g_ModemVcRegStat = MODEM_VIDEO_CALL_REG_UNREGISTERING; - break; - case VOIP_UA_EVENT_REGISTER_FAIL: - printf("%s voipmsg id is VOIP_UA_EVENT_REGISTER_FAIL\n", __FUNCTION__); - g_ModemVcRegStat = MODEM_VIDEO_CALL_REG_FAIL; - break; - case VOIP_UA_EVENT_MWI_NOTIFY: - printf("%s voipmsg id is VOIP_UA_EVENT_MWI_NOTIFY\n", __FUNCTION__); - break; - case VOIP_UA_EVENT_AUDIO_ERROR: - printf("%s voipmsg id is VOIP_UA_EVENT_AUDIO_ERROR\n", __FUNCTION__); - break; - case VOIP_UA_EVENT_CALL_TERMINATE_BY_BOTTOM_LAYER: - printf("%s voipmsg id is VOIP_UA_EVENT_CALL_TERMINATE_BY_BOTTOM_LAYER\n", __FUNCTION__); - MMI_Modem_Video_Call_Common_Response(MMI_MODEM_VIDEO_CALL_RESPONSE_BOTTOM_ERR); - break; - case VOIP_UA_EVENT_CALL_NEED_REDIAL: - printf("%s voipmsg id is VOIP_UA_EVENT_CALL_NEED_REDIAL\n", __FUNCTION__); - MMI_Modem_Video_Call_Common_Response(MMI_MODEM_VIDEO_CALL_RESPONSE_NEED_REDIAL); - break; - case VOIP_UA_EVENT_AUTOTEST_START: - printf("%s voipmsg id is VOIP_UA_EVENT_AUTOTEST_START \n", __FUNCTION__); - if(0 == Hal_Pm_Get_State()) - Hal_Pm_WakeUp(); - MMI_Modem_Video_Call_Common_Response(MMI_MODEM_VIDEO_CALL_RESPONSE_AUTO_TEST); - break; - default: - printf("%s voipmsg id is %d\n", __FUNCTION__, voipmsg.msgid); - break; - } - } -} -#endif #endif 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 1625e83f..581cfeaa 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 @@ -47,6 +47,8 @@ void UI_Send_Inter_Msg(UI_SUB_MODULE_ID Dest, UI_INTER_MSG_ID MsgId, UI_Inter_Ms void watch_ui_message_handle(uint16_t msgid, void * msg) { + uint32_t flag = 0; + switch(msgid) { case MMI_MODEM_POWER_UP_CNF: watch_modem_power_up_cnf(); @@ -476,10 +478,14 @@ void watch_ui_message_handle(uint16_t msgid, void * msg) #endif case MMI_MSG_LOW_BATTERY_SCREEN: - uint32_t flag = ((mmi_msg_flag_para_t *)msg)->flag; + flag = ((mmi_msg_flag_para_t *)msg)->flag; mmi_ui_msg_update_low_battery_screen(flag); break; + 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 369b33b9..0ce59674 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 @@ -143,6 +143,7 @@ enum MMI_MSG_HENGAI_BP_MEASURE_RESULT, #endif MMI_MSG_LOW_BATTERY_SCREEN, + MMI_MSG_CHIP_HIGH_TEMP, #endif diff --git a/2.sdk/sdk/gui/lv_watch/include/ui_textid.h b/2.sdk/sdk/gui/lv_watch/include/ui_textid.h index 9d69c095..78d9ed7b 100644 --- a/2.sdk/sdk/gui/lv_watch/include/ui_textid.h +++ b/2.sdk/sdk/gui/lv_watch/include/ui_textid.h @@ -981,6 +981,7 @@ enum WATCH_TEXT_ID_ATRIAL_FIBRILLATION_RISK, /* "有房颤风险" "With risk" */ WATCH_TEXT_ID_ATRIAL_FIBRILLATION_NO_RISK, /* "无房颤风险" "No risk" */ WATCH_TEXT_ID_IN_MEASURE_AGAIN, /* "请重新测量" "Please try again" */ + WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE, /* "设备温度过高\n请暂缓使用" "Temperature too high\nPlease suspended use" */ //CHENG_MODIFY WATCH_TEXT_ID_FALLDWON, /*确认是否跌倒*/ WATCH_TEXT_ID_CONFIRM_DELETE, /*确认是否删除*/ diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.h b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.h index 7f1e744f..9f103f2a 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call.h @@ -199,6 +199,7 @@ typedef struct { enum enum_canvas_button_hidden_flag canvas_button_hidden_flag; lv_obj_t * signal_weak_label; lv_obj_t * canvas; + lv_obj_t * prompt_cont; #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_HZCH__ lv_obj_t * img_referral; lv_obj_t * btn_referral; @@ -227,6 +228,9 @@ bool mmi_vc_watch_suspend_check(void); void mmi_vc_activity_destroy_req(void); uint8_t mmi_vc_get_call_volume(void); +void mmi_vc_chip_high_temperature_prompt(void); + + #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__ #include "mmi_video_call_fzd.h" diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_fzd.c b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_fzd.c index c2384256..92e6a15d 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_fzd.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_fzd.c @@ -894,6 +894,39 @@ void mmi_vc_call_action_call_stop(void) mmi_ui_msg_action_vc_call_stop(); } +static void mmi_vc_chip_high_temp_task_cb(lv_task_t * task) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + Hal_Vibrator_Play_End(); + + lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); + if(NULL != ext) + lv_obj_set_hidden(ext->prompt_cont, true); + + mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); +} + +void mmi_vc_chip_high_temperature_prompt(void) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); + if(ext == NULL) + { + return; + } + + if(MMI_VC_UI_CONNECTED == s_vc_call_ui) + { + Hal_Vibrator_Play_Onetime(NULL, 800); + + lv_obj_set_hidden(ext->prompt_cont, false); + lv_task_t * task_ptr = lv_task_create(mmi_vc_chip_high_temp_task_cb, 1000 * 3, LV_TASK_PRIO_HIGH, NULL); + lv_task_once(task_ptr); + } +} + static void mmi_vc_ui_dialing(lv_obj_t * content) { VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); @@ -1157,6 +1190,24 @@ static void mmi_vc_ui_connected(lv_obj_t * content) lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_RIGHT, MMI_VC_CALLING_RING_OFF_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); //-20, -50); //watch_set_suspend_enable(false, ACT_ID_VOIPPHONE, 0); + + // chip high temperature + lv_obj_t * prompt_cont = lv_cont_create(content, NULL); + lv_coord_t t_width = lv_obj_get_width(content) * 5 / 6; + lv_obj_set_size(prompt_cont, t_width, t_width / 2); + lv_obj_set_style_local_bg_color(prompt_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(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20); + lv_obj_set_click(prompt_cont, false); + + lv_obj_t * label = lv_label_create(prompt_cont, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10); + + lv_obj_set_hidden(prompt_cont, true); + ext->prompt_cont = prompt_cont; } else { @@ -1292,6 +1343,24 @@ static void mmi_vc_ui_connected(lv_obj_t * content) lv_obj_set_hidden(ext->ring_off_button, ext->canvas_button_hidden_flag); } + // chip high temperature + lv_obj_t * prompt_cont = lv_cont_create(canvas, NULL); + lv_coord_t t_width = lv_obj_get_width(canvas) * 5 / 6; + lv_obj_set_size(prompt_cont, t_width, t_width / 2); + lv_obj_set_style_local_bg_color(prompt_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(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20); + lv_obj_set_click(prompt_cont, false); + + lv_obj_t * label = lv_label_create(prompt_cont, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10); + + lv_obj_set_hidden(prompt_cont, true); + ext->prompt_cont = prompt_cont; + if(mmi_vc_call_get_obj()) { lv_watch_obj_set_down_slide_cb(mmi_vc_call_get_obj(), voip_phone_down_slide_callback); } diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_hzch.c b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_hzch.c index ba46721e..7938f000 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_hzch.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_hzch.c @@ -897,6 +897,39 @@ void mmi_vc_call_action_call_illegal(void) mmi_ui_msg_action_vc_call_illegal(); } +static void mmi_vc_chip_high_temp_task_cb(lv_task_t * task) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + Hal_Vibrator_Play_End(); + + lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); + if(NULL != ext) + lv_obj_set_hidden(ext->prompt_cont, true); + + mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); +} + +void mmi_vc_chip_high_temperature_prompt(void) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); + if(ext == NULL) + { + return; + } + + if(MMI_VC_UI_CONNECTED == s_vc_call_ui) + { + Hal_Vibrator_Play_Onetime(NULL, 800); + + lv_obj_set_hidden(ext->prompt_cont, false); + lv_task_t * task_ptr = lv_task_create(mmi_vc_chip_high_temp_task_cb, 1000 * 3, LV_TASK_PRIO_HIGH, NULL); + lv_task_once(task_ptr); + } +} + static void mmi_vc_ui_dialing(lv_obj_t * content) { VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); @@ -1106,6 +1139,24 @@ static void mmi_vc_ui_connected(lv_obj_t * content) lv_obj_set_hidden(ext->ring_off_button, ext->canvas_button_hidden_flag); } + // chip high temperature + lv_obj_t * prompt_cont = lv_cont_create(canvas, NULL); + lv_coord_t t_width = lv_obj_get_width(canvas) * 5 / 6; + lv_obj_set_size(prompt_cont, t_width, t_width / 2); + lv_obj_set_style_local_bg_color(prompt_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(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20); + lv_obj_set_click(prompt_cont, false); + + lv_obj_t * label = lv_label_create(prompt_cont, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10); + + lv_obj_set_hidden(prompt_cont, true); + ext->prompt_cont = prompt_cont; + if(mmi_vc_call_get_obj()) { lv_watch_obj_set_down_slide_cb(mmi_vc_call_get_obj(), voip_phone_down_slide_callback); } diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_tongxin.c b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_tongxin.c index 4a3d94d9..f965468b 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_tongxin.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_tongxin.c @@ -898,6 +898,39 @@ void mmi_vc_call_action_call_stop(void) mmi_ui_msg_action_vc_call_stop(); } +static void mmi_vc_chip_high_temp_task_cb(lv_task_t * task) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + Hal_Vibrator_Play_End(); + + lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); + if(NULL != ext) + lv_obj_set_hidden(ext->prompt_cont, true); + + mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); +} + +void mmi_vc_chip_high_temperature_prompt(void) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); + if(ext == NULL) + { + return; + } + + if(MMI_VC_UI_CONNECTED == s_vc_call_ui) + { + Hal_Vibrator_Play_Onetime(NULL, 800); + + lv_obj_set_hidden(ext->prompt_cont, false); + lv_task_t * task_ptr = lv_task_create(mmi_vc_chip_high_temp_task_cb, 1000 * 3, LV_TASK_PRIO_HIGH, NULL); + lv_task_once(task_ptr); + } +} + static void mmi_vc_ui_dialing(lv_obj_t * content) { VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); @@ -1159,6 +1192,24 @@ static void mmi_vc_ui_connected(lv_obj_t * content) lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN); lv_obj_set_event_cb(btn, mmi_vc_ring_off_action); lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_RIGHT, MMI_VC_CALLING_RING_OFF_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); //-20, -50); + + // chip high temperature + lv_obj_t * prompt_cont = lv_cont_create(content, NULL); + lv_coord_t t_width = lv_obj_get_width(content) * 5 / 6; + lv_obj_set_size(prompt_cont, t_width, t_width / 2); + lv_obj_set_style_local_bg_color(prompt_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(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20); + lv_obj_set_click(prompt_cont, false); + + lv_obj_t * label = lv_label_create(prompt_cont, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10); + + lv_obj_set_hidden(prompt_cont, true); + ext->prompt_cont = prompt_cont; } else { @@ -1294,6 +1345,24 @@ static void mmi_vc_ui_connected(lv_obj_t * content) lv_obj_set_hidden(ext->ring_off_button, ext->canvas_button_hidden_flag); } + // chip high temperature + lv_obj_t * prompt_cont = lv_cont_create(canvas, NULL); + lv_coord_t t_width = lv_obj_get_width(canvas) * 5 / 6; + lv_obj_set_size(prompt_cont, t_width, t_width / 2); + lv_obj_set_style_local_bg_color(prompt_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(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20); + lv_obj_set_click(prompt_cont, false); + + lv_obj_t * label = lv_label_create(prompt_cont, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10); + + lv_obj_set_hidden(prompt_cont, true); + ext->prompt_cont = prompt_cont; + if(mmi_vc_call_get_obj()) { lv_watch_obj_set_down_slide_cb(mmi_vc_call_get_obj(), voip_phone_down_slide_callback); } diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_wulian.c b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_wulian.c index 3eb8e29e..ba6a324a 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_wulian.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/mmi_video_call/mmi_video_call_wulian.c @@ -893,6 +893,39 @@ void mmi_vc_call_action_call_stop(void) mmi_ui_msg_action_vc_call_stop(); } +static void mmi_vc_chip_high_temp_task_cb(lv_task_t * task) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + Hal_Vibrator_Play_End(); + + lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); + if(NULL != ext) + lv_obj_set_hidden(ext->prompt_cont, true); + + mmi_vc_ring_off_action(NULL, LV_EVENT_CLICKED); +} + +void mmi_vc_chip_high_temperature_prompt(void) +{ + VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + lv_vc_call_obj_ext_t * ext = mmi_vc_call_get_ext(); + if(ext == NULL) + { + return; + } + + if(MMI_VC_UI_CONNECTED == s_vc_call_ui) + { + Hal_Vibrator_Play_Onetime(NULL, 800); + + lv_obj_set_hidden(ext->prompt_cont, false); + lv_task_t * task_ptr = lv_task_create(mmi_vc_chip_high_temp_task_cb, 1000 * 3, LV_TASK_PRIO_HIGH, NULL); + lv_task_once(task_ptr); + } +} + static void mmi_vc_ui_dialing(lv_obj_t * content) { VIDEO_CALL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); @@ -1154,6 +1187,24 @@ static void mmi_vc_ui_connected(lv_obj_t * content) lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_VIDEO_CALL_HANGUP_BTN); lv_obj_set_event_cb(btn, mmi_vc_ring_off_action); lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_RIGHT, MMI_VC_CALLING_RING_OFF_BTN_X_OFFSET, MMI_VC_RING_OFF_BTN_Y_OFFSET); //-20, -50); + + // chip high temperature + lv_obj_t * prompt_cont = lv_cont_create(content, NULL); + lv_coord_t t_width = lv_obj_get_width(content) * 5 / 6; + lv_obj_set_size(prompt_cont, t_width, t_width / 2); + lv_obj_set_style_local_bg_color(prompt_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(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20); + lv_obj_set_click(prompt_cont, false); + + lv_obj_t * label = lv_label_create(prompt_cont, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10); + + lv_obj_set_hidden(prompt_cont, true); + ext->prompt_cont = prompt_cont; } else { @@ -1289,6 +1340,24 @@ static void mmi_vc_ui_connected(lv_obj_t * content) lv_obj_set_hidden(ext->ring_off_button, ext->canvas_button_hidden_flag); } + // chip high temperature + lv_obj_t * prompt_cont = lv_cont_create(canvas, NULL); + lv_coord_t t_width = lv_obj_get_width(canvas) * 5 / 6; + lv_obj_set_size(prompt_cont, t_width, t_width / 2); + lv_obj_set_style_local_bg_color(prompt_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(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20); + lv_obj_set_click(prompt_cont, false); + + lv_obj_t * label = lv_label_create(prompt_cont, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10); + + lv_obj_set_hidden(prompt_cont, true); + ext->prompt_cont = prompt_cont; + if(mmi_vc_call_get_obj()) { lv_watch_obj_set_down_slide_cb(mmi_vc_call_get_obj(), voip_phone_down_slide_callback); } diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone.c b/2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone.c index ad216580..38acc4c6 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone.c @@ -99,6 +99,38 @@ void mmi_incoming_call_auto_answer_action(void) } } +static void mmi_call_high_temp_task_cb(lv_task_t * task) +{ + printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + Hal_Vibrator_Play_End(); + + lv_phone_obj_ext_t * ext = phone_get_ext(); + if(NULL != ext) + lv_obj_set_hidden(ext->prompt_cont, true); + + ring_off_action(NULL, LV_EVENT_CLICKED); +} + +void mmi_call_chip_high_temperature_prompt(void) +{ + printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + lv_phone_obj_ext_t * ext = phone_get_ext(); + if(ext == NULL) + return; + + if(PHONE_UI_CONNECTED == ext->phone_ui_id) + { + Hal_Vibrator_Play_Onetime(NULL, 800); + + lv_obj_set_hidden(ext->prompt_cont, false); + lv_task_t * task_ptr = lv_task_create(mmi_call_high_temp_task_cb, 1000 * 3, LV_TASK_PRIO_HIGH, NULL); + lv_task_once(task_ptr); + } +} + + #ifdef USE_LV_WATCH_UI_CIRCLE #ifdef USE_LV_WATCH_UI_240_240 @@ -381,6 +413,24 @@ lv_obj_t * phone_create(lv_obj_t * activity_obj, phone_ui_t phone_ui_id) connected_animation(ext->phone_status_label); } + // chip high temperature + lv_obj_t * prompt_cont = lv_cont_create(content, NULL); + lv_coord_t t_width = lv_obj_get_width(content) * 5 / 6; + lv_obj_set_size(prompt_cont, t_width, t_width / 2); + lv_obj_set_style_local_bg_color(prompt_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(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20); + lv_obj_set_click(prompt_cont, false); + + lv_obj_t * label = lv_label_create(prompt_cont, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10); + + lv_obj_set_hidden(prompt_cont, true); + ext->prompt_cont = prompt_cont; + return obj; } @@ -665,6 +715,24 @@ lv_obj_t * phone_create(lv_obj_t * activity_obj, phone_ui_t phone_ui_id) connected_animation(ext->phone_status_label); } + // chip high temperature + lv_obj_t * prompt_cont = lv_cont_create(content, NULL); + lv_coord_t t_width = lv_obj_get_width(content) * 5 / 6; + lv_obj_set_size(prompt_cont, t_width, t_width / 2); + lv_obj_set_style_local_bg_color(prompt_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(prompt_cont, NULL, LV_ALIGN_CENTER, 0, -20); + lv_obj_set_click(prompt_cont, false); + + lv_obj_t * label = lv_label_create(prompt_cont, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); + lv_label_set_text_id(label, WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -10); + + lv_obj_set_hidden(prompt_cont, true); + ext->prompt_cont = prompt_cont; + return obj; } #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone.h b/2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone.h index 596be120..62e37621 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/phone/phone.h @@ -72,6 +72,9 @@ typedef struct { phone_ui_t phone_ui_id; lv_obj_t * num_label; lv_obj_t * btn_cont; +#ifdef __MMI_ZHSX_SUPPORT__ + lv_obj_t * prompt_cont; +#endif } lv_phone_obj_ext_t; /********************** @@ -91,6 +94,11 @@ void ring_hook_action(lv_obj_t * btn, lv_event_t e); lv_obj_t * phone_get_activity_obj(void); void phone_audio_ctrl_callback(AUDIO_CTRL_PRIORITY priority); +#ifdef __MMI_ZHSX_SUPPORT__ +void mmi_call_chip_high_temperature_prompt(void); +#endif + + /********************** * MACROS **********************/ 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 a4458f7c..6e18806c 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 @@ -1478,6 +1478,47 @@ void mmi_watch_sim_unbind_check(void) #endif +void mmi_ui_msg_update_chip_high_temperature(uint32_t flag) +{ + if(0 == flag) // in call + { + mmi_call_chip_high_temperature_prompt(); + } +#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ + else if(1 == flag) // in video call + { + mmi_vc_chip_high_temperature_prompt(); + } +#endif +} + +void mmi_watch_chip_temperature_check(void) +{ + if(MMI_MODEM_CALL_STATE_NULL != phone_get_call_state()) + { + 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) + { + mmi_ui_msg_action_chip_high_temperature(0); + } + } +#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ + else if(true == voip_connect_check_req()) + { + 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) + { + mmi_ui_msg_action_chip_high_temperature(1); + } + } +#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 ca4d1af1..271c06d7 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,6 +109,9 @@ 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); +void mmi_watch_chip_temperature_check(void);