From: @CHENG <2393524978@qq.com> Date: Fri, 19 Apr 2024 08:36:02 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=83ea1d664d0f8f3db53a8b00d29819b763b24c1d;p=mirrors%2FASR3603_Z5.git gengxin --- diff --git a/2.sdk/project/Z5_LT_K7/gui/lv_watch/mmi_default_CUSTOM.h b/2.sdk/project/Z5_LT_K7/gui/lv_watch/mmi_default_CUSTOM.h index 4bbdc441..63b8508a 100644 --- a/2.sdk/project/Z5_LT_K7/gui/lv_watch/mmi_default_CUSTOM.h +++ b/2.sdk/project/Z5_LT_K7/gui/lv_watch/mmi_default_CUSTOM.h @@ -88,6 +88,9 @@ // sim unbind #define MMI_CUSTOMER_SIM_UNBIND_SWITCH (MMI_WATCH_SWITCH_ON) +// low battery switch +#define MMI_CUSTOMER_LOW_BATTERY_SWITCH (MMI_WATCH_SWITCH_ON) + #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 fa967702..ff14a809 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 @@ -21,6 +21,7 @@ TASK_HANDLE * s_gui_timing_task_id = NULL; static void mmi_gui_timing_timer_callback(uint32_t param); static void mmi_gui_timing_task_3_second_mission(void * time_param); +static void mmi_gui_timing_task_9_second_mission(void * time_param); static void mmi_gui_timing_task_15_second_mission(void * time_param); static void mmi_gui_timing_task_1_minute_mission(void * time_param); @@ -73,6 +74,10 @@ static void mmi_gui_timing_task_handle(void * param) case MMI_GUI_TIMING_MSG_3_SECOND: mmi_gui_timing_task_3_second_mission(msg_param); break; + + case MMI_GUI_TIMING_MSG_9_SECOND: + mmi_gui_timing_task_9_second_mission(msg_param); + break; case MMI_GUI_TIMING_MSG_15_SECOND: mmi_gui_timing_task_15_second_mission(msg_param); @@ -154,6 +159,27 @@ static void mmi_gui_timing_task_3_second_mission(void * time_param) } +} + +static void mmi_gui_timing_task_9_second_mission(void * time_param) +{ + hal_rtc_t cur_time = {0}; + + if(NULL != time_param) + { + Hal_Mem_Copy(&cur_time, time_param, sizeof(hal_rtc_t)); + } + else + { + Hal_Rtc_Gettime(&cur_time); + } + + TIMING_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + // low battery + mmi_low_battery_check_mission(); + + } static void mmi_gui_timing_task_15_second_mission(void * time_param) @@ -225,6 +251,13 @@ static void mmi_gui_timing_timer_callback(uint32_t param) mmi_gui_timing_task_msg_send(MMI_GUI_TIMING_MSG_3_SECOND, NULL); // 3 seconds + if(0 == s_timing_control_timer_counter % 3) // 9 seconds + { + hal_rtc_t * p_cur_time_9 = Hal_Mem_Alloc(sizeof(hal_rtc_t)); + Hal_Mem_Copy(p_cur_time_9, &cur_time, sizeof(hal_rtc_t)); + mmi_gui_timing_task_msg_send(MMI_GUI_TIMING_MSG_9_SECOND, p_cur_time_9); + } + if(0 == s_timing_control_timer_counter % 5) // 15 seconds { hal_rtc_t * p_cur_time_15 = Hal_Mem_Alloc(sizeof(hal_rtc_t)); 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 541e712a..e1fc01a0 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 @@ -36,6 +36,7 @@ typedef enum MMI_GUI_TIMING_MSG_ID_START, MMI_GUI_TIMING_MSG_3_SECOND, + MMI_GUI_TIMING_MSG_9_SECOND, MMI_GUI_TIMING_MSG_15_SECOND, MMI_GUI_TIMING_MSG_1_MINUTE, MMI_GUI_TIMING_MSG_2_MINUTE, 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 ed3c0028..6b1a6926 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 @@ -133,6 +133,22 @@ void mmi_ui_msg_action_charging_prompt(uint32_t chg_status) Hal_Send_Message((TASK_ID)gui_task_id, (void *)msg_info); } +void mmi_ui_msg_action_low_battery(uint32_t flag) +{ + printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + if(0 == Hal_Pm_Get_State()) + return; + + 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_LOW_BATTERY_SCREEN; + msg_info->flag = flag; + + Hal_Send_Message((TASK_ID)gui_task_id, (void *)msg_info); +} + #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ void mmi_ui_msg_action_do_not_disturb(uint8_t flag) { 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 f53cac6d..72155a90 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 @@ -70,6 +70,7 @@ void mmi_ui_msg_action_center_number_dialing(void); void mmi_ui_msg_action_no_sim_power_off(void); #endif void mmi_ui_msg_action_charging_prompt(uint32_t chg_status); +void mmi_ui_msg_action_low_battery(uint32_t flag); #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__ void mmi_ui_msg_action_do_not_disturb(uint8_t flag); #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 94fb44a9..85904026 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 @@ -461,7 +461,13 @@ void watch_ui_message_handle(uint16_t msgid, void * msg) mmi_ui_msg_update_hengai_bp_measure_result(state, bp_value_high, bp_value_low); break; #endif - + + case MMI_MSG_LOW_BATTERY_SCREEN: + uint32_t flag = ((mmi_msg_flag_para_t *)msg)->flag; + mmi_ui_msg_update_low_battery_screen(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 61b3e3dc..e40df3ec 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,6 +137,7 @@ enum MMI_MSG_HENGAI_BP_CALIBRATE_RESULT, MMI_MSG_HENGAI_BP_MEASURE_RESULT, #endif + MMI_MSG_LOW_BATTERY_SCREEN, #endif @@ -554,6 +555,12 @@ typedef struct UI_Inter_Msg_Header_t header; } mmi_msg_no_para_t; +typedef struct +{ + UI_Inter_Msg_Header_t header; + uint32_t flag; +} mmi_msg_flag_para_t; + #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ typedef struct { diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/lowbattery/lowbattery.c b/2.sdk/sdk/gui/lv_watch/lv_apps/lowbattery/lowbattery.c index c8dc97b8..b9a4537f 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/lowbattery/lowbattery.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/lowbattery/lowbattery.c @@ -52,6 +52,102 @@ lv_res_t lowbattery_create_btn_action(lv_obj_t * btn) return LV_RES_OK; } +#ifdef __MMI_ZHSX_SUPPORT__ + +#define MMI_LOW_BATTERY_SCREEN_DESTROY (0) +#define MMI_LOW_BATTERY_SCREEN_CREATE (1) +#define MMI_LOW_BATTERY_SCREEN_UPDATE (2) +#define MMI_LOW_BATTERY_POWER_OFF (3) + +static bool s_low_battery_upload_flag = true; + +void mmi_ui_msg_update_low_battery_screen(uint32_t flag) +{ + if(MMI_LOW_BATTERY_SCREEN_CREATE == flag) // create + { + lowbattery_create_btn_action(NULL); + #if USE_LV_WATCH_AUDIO_PLAYER != 0 + audio_player_lowbattery_process(); + #endif + voip_activity_destroy_req(); + } + else if(MMI_LOW_BATTERY_SCREEN_UPDATE == flag) // update time + { + lv_lowbattery_ext_t * ext = lv_obj_get_ext_attr(lv_watch_get_activity_obj(ACT_ID_LOWBATTERY)); + hal_rtc_t tm; + Hal_Rtc_Gettime(&tm);// get time + char * rtctime = lv_mem_alloc(6); + memset(rtctime, 0, 6); + snprintf(rtctime, 6, "%02d:%02d", tm.tm_hour, tm.tm_min); + lv_label_set_text(ext->timelabel, rtctime); //refresh the label + lv_mem_free(rtctime); + } + else if(MMI_LOW_BATTERY_POWER_OFF == flag) // power off + { + shutdown_confirm_btn_action(NULL, LV_EVENT_CLICKED); + } + else // destroy + { + lowbattery_destory(); + } +} + +void mmi_low_battery_check_mission(void) +{ + if(HAL_CHG_CONNECTED == Hal_Charger_Get_Status()) + { + s_low_battery_upload_flag = true; + + if(NULL != lv_watch_get_activity_obj(ACT_ID_LOWBATTERY)) + { + printf("[@CHENG_DEBUG]: power charging start and exit low battery mode\n"); + mmi_ui_msg_action_low_battery(MMI_LOW_BATTERY_SCREEN_DESTROY); + } + } + else + { + if(Hal_Battery_Get_Status() < ENTER_LOWBATTERY_MODE_LEVEL) + { + if(true == s_low_battery_upload_flag) + { + mmi_protocol_action_low_battery(); + s_low_battery_upload_flag = false; + } + + if((NULL == lv_watch_get_activity_obj(ACT_ID_LOWBATTERY)) + && (NULL == lv_watch_get_activity_obj(ACT_ID_PHONE)) + ) + { + printf("enter low battery mode\n"); + mmi_ui_msg_action_low_battery(MMI_LOW_BATTERY_SCREEN_CREATE); + } + else + { + // update time + if(NULL == lv_watch_get_activity_obj(ACT_ID_PHONE)) + { + mmi_ui_msg_action_low_battery(MMI_LOW_BATTERY_SCREEN_UPDATE); + } + if(Hal_Battery_Get_Status() == AUTO_POWER_OFF_LEVEL) + { + printf("power off in low battery mode\n"); + mmi_ui_msg_action_low_battery(MMI_LOW_BATTERY_POWER_OFF); + } + } + } + else + { + s_low_battery_upload_flag = true; + + if(NULL != lv_watch_get_activity_obj(ACT_ID_LOWBATTERY)) + { + printf("[@CHENG_DEBUG][%s][%d]: exit low battery mode\n", __FUNCTION__, __LINE__); + mmi_ui_msg_action_low_battery(MMI_LOW_BATTERY_SCREEN_DESTROY); + } + } + } +} +#else void lowbattery_task(lv_task_t * task) { if(HAL_CHG_CONNECTED == Hal_Charger_Get_Status()) { @@ -107,6 +203,7 @@ void lowbattery_task(lv_task_t * task) } } } +#endif /********************** * STATIC FUNCTIONS diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/lowbattery/lowbattery.h b/2.sdk/sdk/gui/lv_watch/lv_apps/lowbattery/lowbattery.h index 47c290e0..6ac4a601 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/lowbattery/lowbattery.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/lowbattery/lowbattery.h @@ -42,7 +42,12 @@ typedef struct * GLOBAL PROTOTYPES **********************/ lv_res_t lowbattery_create_btn_action(lv_obj_t * btn); +#ifdef __MMI_ZHSX_SUPPORT__ +void mmi_ui_msg_update_low_battery_screen(uint32_t flag); +void mmi_low_battery_check_mission(void); +#else void lowbattery_task(lv_task_t * task); +#endif /********************** * MACROS diff --git a/2.sdk/sdk/gui/lv_watch/lv_watch.c b/2.sdk/sdk/gui/lv_watch/lv_watch.c index ff665b67..2a590366 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_watch.c +++ b/2.sdk/sdk/gui/lv_watch/lv_watch.c @@ -541,7 +541,9 @@ static lv_obj_t * watch_create(bool silentReset) } #endif +#ifndef __MMI_ZHSX_SUPPORT__ lowbattery_task_p = lv_task_create(lowbattery_task, 5000, LV_TASK_PRIO_MID, NULL); +#endif #if USE_LV_WATCH_SIMCHECK checksim_task_p = lv_task_create(simcheck_task, WATCH_CHECK_SIM_STATUS_PERIOD, LV_TASK_PRIO_MID, NULL);