From: @CHENG <2393524978@qq.com> Date: Sat, 12 Oct 2024 10:06:00 +0000 (+0800) Subject: hengai k18 sleep lib && sleep menu ui && sleep time setting add default value &&... X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=b7f31dfd7096d57e5091f55a9639b4789b5f1ffb;p=mirrors%2FASR3603_Z5.git hengai k18 sleep lib && sleep menu ui && sleep time setting add default value && Lk command retry --- 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 e93c9501..b1cfe085 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 @@ -87,6 +87,13 @@ #define MMI_CUSTOMER_CHIP_TEMP_HIGH_THRESHOLD (70) #define MMI_CUSTOMER_CHIP_TEMP_LOW_THRESHOLD (60) +// sleep setting +#define MMI_CUSTOMER_SLEEP_SETTING_TIME_SWITCH (MMI_WATCH_SWITCH_ON) // 0-close; 1-open +#define MMI_CUSTOMER_SLEEP_SETTING_TIME_BHOUR (20) // 0-23 +#define MMI_CUSTOMER_SLEEP_SETTING_TIME_BMIN (0) // 0-59 +#define MMI_CUSTOMER_SLEEP_SETTING_TIME_EHOUR (9) // 0-23 +#define MMI_CUSTOMER_SLEEP_SETTING_TIME_EMIN (0) // 0-59 + #endif diff --git a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/primary_function/list/ICON_SLEEP.png b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/primary_function/list/ICON_SLEEP.png new file mode 100644 index 00000000..519359f8 Binary files /dev/null and b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/primary_function/list/ICON_SLEEP.png differ diff --git a/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/sleep/ICON_SLEEP_PROMPT.png b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/sleep/ICON_SLEEP_PROMPT.png new file mode 100644 index 00000000..178e5b40 Binary files /dev/null and b/2.sdk/project/Z5_HA_K18/gui/lv_watch/resource/png/sleep/ICON_SLEEP_PROMPT.png differ 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 b66aeadb..3da3f2fa 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 @@ -986,6 +986,15 @@ const void * lang_text_ch[] = { "继续对话", // WATCH_TEXT_ID_AIGC_CONTINUE, "设备温度过高\n请暂缓使用", // WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE, "Voice chat", // WATCH_TEXT_ID_VOICECHAT, + "请在APP上开启睡眠设置", // WATCH_TEXT_ID_SLEEP_SET_PROMPT, + "睡眠时段", // WATCH_TEXT_ID_SLEEP_PERIOD, + "入睡时间", // WATCH_TEXT_ID_FALL_ASLEEP_TIME, + "醒来时间", // WATCH_TEXT_ID_WAKE_UP_TIME, + "最新数据", // WATCH_TEXT_ID_LATEST_SLEEP_INFO, + "数据更新于", // WATCH_TEXT_ID_SLEEP_INFO_UPDATE_TIME, + "暂无数据", // WATCH_TEXT_ID_NO_DATA_NOW, + "更多详细信息请前往手机APP查看", // WATCH_TEXT_ID_DETAIL_INFO_IN_APP, + //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 bc4b99fd..3b7e0aca 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 @@ -987,6 +987,15 @@ const void * lang_text_en[] = { "Continue", // WATCH_TEXT_ID_AIGC_CONTINUE, "Temperature too high\nPlease suspended use", // WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE, "Voice chat", // WATCH_TEXT_ID_VOICECHAT, + "Please enable sleep settings in APP", // WATCH_TEXT_ID_SLEEP_SET_PROMPT, + "Sleep period", // WATCH_TEXT_ID_SLEEP_PERIOD, + "Sleep time", // WATCH_TEXT_ID_FALL_ASLEEP_TIME, + "Wake up time", // WATCH_TEXT_ID_WAKE_UP_TIME, + "Latest data", // WATCH_TEXT_ID_LATEST_SLEEP_INFO, + "Update on", // WATCH_TEXT_ID_SLEEP_INFO_UPDATE_TIME, + "No data", // WATCH_TEXT_ID_NO_DATA_NOW, + "For more details, please view in the APP", // WATCH_TEXT_ID_DETAIL_INFO_IN_APP, + //CHENG_MODIFY "Confirm a fall", "Confirm deletion", diff --git a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h index 283b1be7..6690772b 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h +++ b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h @@ -97,6 +97,9 @@ extern "C" { #ifdef __MMI_CUSTOM_HENGAI_TCMS__ #define NV_SECTION_UI_HENGAI_TCMS_SWITCH_LEN (sizeof(nv_watch_switch_t)) #endif +#ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__ +#define NV_SECTION_UI_HENGAI_SLEEP_DATA_LEN (sizeof(nv_watch_hengai_sleep_data_t)) +#endif #endif @@ -241,6 +244,9 @@ typedef lv_fs_dir_t ui_dir_t; #ifdef __MMI_CUSTOM_HENGAI_TCMS__ #define NV_SECTION_UI_HENGAI_TCMS_SWITCH_FILE "ui_hengai_tcms_switch.nv" #endif +#ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__ +#define NV_SECTION_UI_HENGAI_SLEEP_DATA_FILE "ui_hengai_sleep_data.nv" +#endif #endif diff --git a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c index d1fe3135..acd1447c 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c +++ b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c @@ -160,7 +160,11 @@ uint32_t UI_NV_Get_Section_Len(NV_UI_SECTION_ID SectionId) case NV_SECTION_UI_HENGAI_TCMS_SWITCH: return (NV_SECTION_LEN(NV_SECTION_UI_HENGAI_TCMS_SWITCH)); #endif - + #ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__ + case NV_SECTION_UI_HENGAI_SLEEP_DATA: + return (NV_SECTION_LEN(NV_SECTION_UI_HENGAI_SLEEP_DATA)); + #endif + #endif @@ -321,6 +325,10 @@ char * UI_NV_Get_Section_path(NV_UI_SECTION_ID SectionId) case NV_SECTION_UI_HENGAI_TCMS_SWITCH: return (NV_SECTION_FILE_PATH(NV_SECTION_UI_HENGAI_TCMS_SWITCH)); #endif + #ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__ + case NV_SECTION_UI_HENGAI_SLEEP_DATA: + return (NV_SECTION_FILE_PATH(NV_SECTION_UI_HENGAI_SLEEP_DATA)); + #endif #endif @@ -415,6 +423,9 @@ uint8_t UI_NV_Reset_Default(NV_UI_SECTION_ID SectionId) #ifdef __MMI_CUSTOM_HENGAI_HEALTH__ nv_watch_hengai_health_data_t * hengai_health; #endif +#ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__ + nv_watch_hengai_sleep_data_t * hengai_sleep_data; +#endif #endif @@ -630,6 +641,7 @@ uint8_t UI_NV_Reset_Default(NV_UI_SECTION_ID SectionId) case NV_SECTION_UI_SLEEP_TIME_DATA: sleep_time_data = lv_mem_alloc(SectionLen); memset(sleep_time_data, 0x0, SectionLen); + mmi_watch_sleep_time_nv_default(sleep_time_data); TempData = (char *)sleep_time_data; break; #endif @@ -758,6 +770,13 @@ uint8_t UI_NV_Reset_Default(NV_UI_SECTION_ID SectionId) TempData = (char *)mmi_switch_data; break; #endif + #ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__ + case NV_SECTION_UI_HENGAI_SLEEP_DATA: + hengai_sleep_data = lv_mem_alloc(SectionLen); + memset(hengai_sleep_data, 0x0, SectionLen); + TempData = (char *)hengai_sleep_data; + break; + #endif #endif diff --git a/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h b/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h index 195afb49..6e5884cf 100644 --- a/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h +++ b/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h @@ -481,6 +481,41 @@ typedef struct #endif +#ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__ +#define NV_MAX_SLEEP_STATE 50 + +typedef enum +{ + NV_LS_STATE = 11, // light sleep + NV_DS_STATE = 12, // deep sleep + NV_REM_STATE = 2, // rapid eye movement +} NV_SLEEP_STATE_E; + +typedef struct +{ + uint16_t year; + uint8_t month; + uint8_t day; + uint8_t hour; + uint8_t minute; +} nv_sleep_time_t; + +typedef struct +{ + uint32_t duration; // the duration of corresponding state + NV_SLEEP_STATE_E state; // state +} nv_sleep_detail_data_t; + +typedef struct +{ + uint32_t total_sleep_time; // minutes + nv_sleep_time_t begin_sleep_time; // sleep_time_t + nv_sleep_time_t end_sleep_time; + uint16_t state_count; // number of some sleep state + nv_sleep_detail_data_t data[NV_MAX_SLEEP_STATE]; +} __packed nv_watch_hengai_sleep_data_t; +#endif + #endif @@ -723,6 +758,9 @@ enum #ifdef __MMI_CUSTOM_HENGAI_TCMS__ NV_SECTION_UI_HENGAI_TCMS_SWITCH, // nv_watch_switch_t #endif +#ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__ + NV_SECTION_UI_HENGAI_SLEEP_DATA, // nv_watch_hengai_sleep_data_t +#endif #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 c86b23a7..e35b0cad 100644 --- a/2.sdk/sdk/gui/lv_watch/include/ui_textid.h +++ b/2.sdk/sdk/gui/lv_watch/include/ui_textid.h @@ -994,6 +994,15 @@ enum WATCH_TEXT_ID_AIGC_CONTINUE, /* "继续对话" "Continue" */ WATCH_TEXT_ID_CHIP_HIGH_TEMPERATURE, /* "设备温度过高\n请暂缓使用" "Temperature too high\nPlease suspended use" */ WATCH_TEXT_ID_VOICECHAT, /* "Voice chat" "Voice chat" */ + WATCH_TEXT_ID_SLEEP_SET_PROMPT, /* "请在APP上开启睡眠设置" "Please enable sleep settings in APP"*/ + WATCH_TEXT_ID_SLEEP_PERIOD, /* "睡眠时段" "Sleep period" */ + WATCH_TEXT_ID_FALL_ASLEEP_TIME, /* "入睡时间" "Sleep time" */ + WATCH_TEXT_ID_WAKE_UP_TIME, /* "醒来时间" "Wake up time" */ + WATCH_TEXT_ID_LATEST_SLEEP_INFO, /* "最新数据" "Latest data" */ + WATCH_TEXT_ID_SLEEP_INFO_UPDATE_TIME, /* "数据更新于" "Update on" */ + WATCH_TEXT_ID_NO_DATA_NOW, /* "暂无数据" "No data" */ + WATCH_TEXT_ID_DETAIL_INFO_IN_APP, /* "更多详细信息请前往手机APP查看" "For more details, please view in the APP" */ + //CHENG_MODIFY WATCH_TEXT_ID_FALLDWON, /*确认是否跌倒*/ WATCH_TEXT_ID_CONFIRM_DELETE, /*确认是否删除*/ 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 2e1dac0c..4de4ebfd 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 @@ -1199,9 +1199,6 @@ void mmi_hengai_tcp_health_lib_activation_check_action(void) { HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); UART_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - #ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__ - mmi_hengai_health_sleep_activation_check(); - #endif } } @@ -1332,6 +1329,10 @@ void mmi_hengai_tcp_algorithm_login_action(void) } uos_timer_stop(s_delay_timer_id); uos_timer_start(s_delay_timer_id, MS_TO_TICKS(1000*10), 0, mmi_hengai_tcp_algorithm_login_cb, NULL); + +#ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__ + mmi_hengai_health_sleep_activation_check(); +#endif } bool mmi_hengai_health_data_parse(unsigned char * next_buff, unsigned int next_buff_len) diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_http_protocol.h b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_http_protocol.h index 8aef31a3..36ecd445 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_http_protocol.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_http_protocol.h @@ -25,6 +25,11 @@ extern "C" { #define HENGAI_HEALTH_DEBUG_PRINTF(fmt, ...) #endif +#if 10 +#define UART_DEBUG_PRINTF(fmt, ...) cplog_printf(fmt, ##__VA_ARGS__) +#else +#define UART_DEBUG_PRINTF(fmt, ...) +#endif // #include "../../../../product/craneg_modem/cust/fit/inc/sdknet.h" @@ -65,7 +70,8 @@ typedef enum void mmi_hengai_tcp_bp_back_measure_raw_data_send(void); void mmi_hengai_tcp_bp_measure_raw_data_send(void); void mmi_hengai_tcp_bp_calibrate_raw_data_send(uint8_t calibrate_times, uint16_t bp_value_high, uint16_t bp_value_low); -void mmi_hengai_tcp_algorithm_interface_login_action(void); +//void mmi_hengai_tcp_algorithm_interface_login_action(void); +void mmi_hengai_tcp_algorithm_login_action(void); bool mmi_hengai_health_data_parse(unsigned char * next_buff, unsigned int next_buff_len); #else @@ -89,7 +95,7 @@ void mmi_hengai_health_data_nv_read(void); uint8_t mmi_hengai_health_lib_activated_flag_get(void); char * mmi_hengai_health_lib_req_code_get(void); - +char * mmi_hengai_health_lib_act_code_get(void); void mmi_hengai_health_lib_act_code_set(char * act_code); char * mmi_hengai_health_token_get(void); @@ -101,6 +107,10 @@ void mmi_hengai_bp_calibrated_flag_set(uint8_t flag); void mmi_hengai_bp_calibrated_time_get(hal_rtc_t * time_ptr); +#ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__ +void mmi_hengai_health_sleep_activated_flag_set(uint8_t flag); +uint8_t mmi_hengai_health_sleep_activated_flag_get(void); +#endif #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_sleep_k18.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_sleep_k18.c index 9415a5bd..5dbffe5a 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_sleep_k18.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_sleep_k18.c @@ -22,29 +22,22 @@ static void mmi_hengai_gsensor_data_get(uint32_t para); static bool mmi_hengai_sleep_data_send(void) { - PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - char * temp_buff = NULL; uint32_t buff_size = sizeof(sleep_data_t); char * temp_ptr = NULL; uint32_t temp_count = 0; uint8_t i = 0; - temp_buff = lv_mem_alloc(buff_size+ 32 + 1); + temp_buff = lv_mem_alloc(buff_size + 1); if(NULL == temp_buff) { printf("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__); return; } - _lv_memset_00(temp_buff, buff_size + 32 + 1); + _lv_memset_00(temp_buff, buff_size + 1); temp_count = 0; temp_ptr = temp_buff + temp_count; - - sprintf(temp_ptr, ",HENGAI_SLEEP_DATA,"); - temp_count = strlen(temp_ptr); - - temp_ptr += temp_count; sprintf(temp_ptr, "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", s_hengai_sdata.total_sleep_time, s_hengai_sdata.begin_sleep_time.year, @@ -70,8 +63,7 @@ static bool mmi_hengai_sleep_data_send(void) temp_count = strlen(temp_ptr); } - //mmi_protocol_fzd_action_hengai_sleep_data(temp_buff, strlen(temp_buff)); - mmi_protocol_fzd_action_tcp_http(temp_buff, strlen(temp_buff)); + mmi_protocol_fzd_action_hengai_sleep_data(temp_buff, strlen(temp_buff)); if(NULL != temp_buff) { @@ -99,6 +91,7 @@ static void mmi_hengai_sleep_data_get(void) if(1 == result) { mmi_hengai_sleep_data_send(); + mmi_hengai_sleep_data_set(&s_hengai_sdata); } _lv_memset_00(s_hengai_sleep_gsensor_data, sizeof(s_hengai_sleep_gsensor_data)); @@ -207,6 +200,393 @@ void mmi_hengai_health_sleep_lib_active(void) mmi_hengai_health_sleep_activated_flag_set(1); } } + + +#if 10 // ui +static uint8_t s_hengai_sleep_data_init = 0; +static nv_watch_hengai_sleep_data_t s_hengai_sleep_data = {0}; + +void mmi_hengai_sleep_data_nv_write(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_hengai_sleep_data_t); + + if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_HENGAI_SLEEP_DATA, 0, nv_data_length, (uint8_t *)&s_hengai_sleep_data)) + { + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__); + } +} + +void mmi_hengai_sleep_data_nv_read(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_hengai_sleep_data_t); + + if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_HENGAI_SLEEP_DATA, 0, nv_data_length, (uint8_t *)&s_hengai_sleep_data)) + { + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); + _lv_memset_00(&s_hengai_sleep_data, sizeof(nv_watch_hengai_sleep_data_t)); + } +} + +void mmi_hengai_sleep_data_set(nv_watch_hengai_sleep_data_t * data) +{ + if(NULL != data) + { + _lv_memcpy(&s_hengai_sleep_data, data, sizeof(nv_watch_hengai_sleep_data_t)); + mmi_hengai_sleep_data_nv_write(); + } +} + + +static const lv_point_t s_sleep_valid_pos[] = {{0, 0}, {0, 1}}; + +lv_obj_t * mmi_sleep_tileview_add_tile(lv_obj_t * tileview, uint16_t id) +{ + lv_tileview_ext_t * ext = lv_obj_get_ext_attr(tileview); + lv_obj_t * cont = lv_cont_create(tileview, NULL); + lv_obj_add_style(cont, LV_CONT_PART_MAIN, &lv_style_transp_tight); + lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES); + lv_obj_set_y(cont, LV_HOR_RES * ext->valid_pos[id].y); + lv_tileview_add_element(tileview, cont); + lv_obj_set_click(cont, false); + return cont; +} + +lv_obj_t * mmi_sleep_detail_create(lv_obj_t * tileview, uint16_t id) +{ + lv_obj_t * tab = mmi_sleep_tileview_add_tile(tileview, id); + LV_ASSERT_MEM(tab); + if(tab == NULL) + return NULL; + + lv_obj_t * cont = lv_cont_create(tab, NULL); + lv_obj_set_size(cont, lv_obj_get_width(tab), lv_obj_get_height(tab)); + lv_obj_align(cont, NULL, LV_ALIGN_CENTER, 0, 0); + lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); + lv_watch_obj_add_element(cont); + lv_tileview_add_element(tileview, cont); + + // sleep period + lv_obj_t * label_sleep_period = lv_label_create(cont, NULL); + lv_obj_add_style(label_sleep_period, LV_LABEL_PART_MAIN, &lv_watch_font40); + lv_label_set_text_id(label_sleep_period, WATCH_TEXT_ID_SLEEP_PERIOD); + lv_label_set_long_mode(label_sleep_period, LV_LABEL_LONG_SROLL); + lv_obj_set_width(label_sleep_period, LV_HOR_RES / 2); + lv_label_set_align(label_sleep_period, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_sleep_period, NULL, LV_ALIGN_IN_TOP_MID, 0, 40); + + char temp_buf[64 + 1] = {0}; + nv_watch_sleep_time_t sleep_setting_data = {0}; + mmi_watch_sleep_time_data_get(&sleep_setting_data); + snprintf(temp_buf, 64, "%02d:%02d-%02d:%02d", + sleep_setting_data.begin_hour, + sleep_setting_data.begin_min, + sleep_setting_data.end_hour, + sleep_setting_data.end_min); + + lv_obj_t * label_sleep_period_value = lv_label_create(cont, NULL); + lv_obj_add_style(label_sleep_period_value, LV_LABEL_PART_MAIN, &lv_watch_font40); + lv_label_set_text(label_sleep_period_value, temp_buf); + lv_label_set_long_mode(label_sleep_period_value, LV_LABEL_LONG_SROLL); + lv_obj_set_width(label_sleep_period_value, LV_HOR_RES / 2); + lv_label_set_align(label_sleep_period_value, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_sleep_period_value, label_sleep_period, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); + + // fall asleep time + lv_obj_t * label_fall_asleep = lv_label_create(cont, NULL); + lv_obj_add_style(label_fall_asleep, LV_LABEL_PART_MAIN, &lv_watch_font40); + lv_label_set_text_id(label_fall_asleep, WATCH_TEXT_ID_FALL_ASLEEP_TIME); + lv_label_set_long_mode(label_fall_asleep, LV_LABEL_LONG_SROLL); + lv_obj_set_width(label_fall_asleep, LV_HOR_RES / 2); + lv_label_set_align(label_fall_asleep, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_fall_asleep, NULL, LV_ALIGN_IN_LEFT_MID, 20, -10); + + if(0 == s_hengai_sleep_data.total_sleep_time + && 0 == s_hengai_sleep_data.begin_sleep_time.hour + && 0 == s_hengai_sleep_data.begin_sleep_time.minute + ) + { + snprintf(temp_buf, 64, "--"); + } + else + { + snprintf(temp_buf, 64, "%02d:%02d", + s_hengai_sleep_data.begin_sleep_time.hour, + s_hengai_sleep_data.begin_sleep_time.minute); + } + + lv_obj_t * label_fall_asleep_value = lv_label_create(cont, NULL); + lv_obj_add_style(label_fall_asleep_value, LV_LABEL_PART_MAIN, &lv_watch_font40); + lv_label_set_text(label_fall_asleep_value, temp_buf); + lv_label_set_long_mode(label_fall_asleep_value, LV_LABEL_LONG_SROLL); + lv_obj_set_width(label_fall_asleep_value, LV_HOR_RES / 2); + lv_label_set_align(label_fall_asleep_value, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_fall_asleep_value, label_fall_asleep, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); + + // wake up time + lv_obj_t * label_wake_up = lv_label_create(cont, NULL); + lv_obj_add_style(label_wake_up, LV_LABEL_PART_MAIN, &lv_watch_font40); + lv_label_set_text_id(label_wake_up, WATCH_TEXT_ID_WAKE_UP_TIME); + lv_label_set_long_mode(label_wake_up, LV_LABEL_LONG_SROLL); + lv_obj_set_width(label_wake_up, LV_HOR_RES / 2); + lv_label_set_align(label_wake_up, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_wake_up, NULL, LV_ALIGN_IN_RIGHT_MID, -20, -10); + + if(0 == s_hengai_sleep_data.total_sleep_time + && 0 == s_hengai_sleep_data.end_sleep_time.hour + && 0 == s_hengai_sleep_data.end_sleep_time.minute + ) + { + snprintf(temp_buf, 64, "--"); + } + else + { + snprintf(temp_buf, 64, "%02d:%02d", + s_hengai_sleep_data.end_sleep_time.hour, + s_hengai_sleep_data.end_sleep_time.minute); + } + + lv_obj_t * label_wake_up_value = lv_label_create(cont, NULL); + lv_obj_add_style(label_wake_up_value, LV_LABEL_PART_MAIN, &lv_watch_font40); + lv_label_set_text(label_wake_up_value, temp_buf); + lv_label_set_long_mode(label_wake_up_value, LV_LABEL_LONG_SROLL); + lv_obj_set_width(label_wake_up_value, LV_HOR_RES / 2); + lv_label_set_align(label_wake_up_value, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_wake_up_value, label_wake_up, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); + + // APP + lv_obj_t * label_app = lv_label_create(cont, NULL); + lv_obj_add_style(label_app, LV_LABEL_PART_MAIN, &lv_watch_font26_gray); + lv_label_set_text_id(label_app, WATCH_TEXT_ID_DETAIL_INFO_IN_APP); + lv_label_set_long_mode(label_app, LV_LABEL_LONG_BREAK); + lv_obj_set_width(label_app, LV_HOR_RES * 3 / 5); + lv_label_set_align(label_app, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_app, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -30); + + return tab; +} + +static lv_obj_t * mmi_sleep_info_create(lv_obj_t * tileview, uint16_t id) +{ + lv_obj_t * tab = mmi_sleep_tileview_add_tile(tileview, id); + LV_ASSERT_MEM(tab); + if(tab == NULL) + return NULL; + + lv_obj_t * cont = lv_cont_create(tab, NULL); + lv_obj_set_size(cont, lv_obj_get_width(tab), lv_obj_get_height(tab)); + lv_obj_align(cont, NULL, LV_ALIGN_CENTER, 0, 0); + lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); + lv_watch_obj_add_element(cont); + lv_tileview_add_element(tileview, cont); + + lv_obj_t * label_title = lv_label_create(cont, NULL); + lv_obj_add_style(label_title, LV_LABEL_PART_MAIN, &lv_watch_font40); + lv_label_set_text_id(label_title, WATCH_TEXT_ID_LATEST_SLEEP_INFO); + lv_label_set_long_mode(label_title, LV_LABEL_LONG_SROLL); + lv_obj_set_width(label_title, LV_HOR_RES / 2); + lv_label_set_align(label_title, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_title, NULL, LV_ALIGN_IN_TOP_MID, 0, 40); + + // img + lv_obj_t * img = lv_img_create(cont, NULL); + lv_img_set_src(img, ICON_SLEEP_PROMPT); + //lv_img_set_zoom(img,LV_IMG_ZOOM_NONE * lv_obj_get_width(tab) / 240); + lv_obj_add_style(img, LV_IMG_PART_MAIN, &lv_watch_image); + lv_obj_align(img, label_title, LV_ALIGN_OUT_BOTTOM_MID, 0, 40); + + // info + char temp_buf[128 + 1] = {0}; + if(0 == s_hengai_sleep_data.total_sleep_time) + { + snprintf(temp_buf, 128, "%s", lv_lang_get_text(WATCH_TEXT_ID_NO_DATA_NOW)); + } + else + { + snprintf(temp_buf, 128, "%02d%s %02d%s", + s_hengai_sleep_data.total_sleep_time / 60, + lv_lang_get_text(WATCH_TEXT_ID_ACT_HOUR), + s_hengai_sleep_data.total_sleep_time % 60, + lv_lang_get_text(WATCH_TEXT_ID_ACT_MIN)); + } + + lv_obj_t * label_info = lv_label_create(cont, NULL); + lv_obj_add_style(label_info, LV_LABEL_PART_MAIN, &lv_watch_font40); // &lv_watch_font60); + lv_label_set_text(label_info, temp_buf); + lv_label_set_long_mode(label_info, LV_LABEL_LONG_SROLL); + lv_obj_set_width(label_info, LV_HOR_RES * 2 / 3); + lv_label_set_align(label_info, LV_LABEL_ALIGN_CENTER); + //lv_obj_align(label_info, NULL, LV_ALIGN_CENTER, 0, -30); + lv_obj_align(label_info, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 50); + + // update time + if(0 != s_hengai_sleep_data.total_sleep_time + && 0 != s_hengai_sleep_data.end_sleep_time.hour + && 0 != s_hengai_sleep_data.end_sleep_time.minute + ) + { + 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_text_id(label_prompt, WATCH_TEXT_ID_SLEEP_INFO_UPDATE_TIME); + lv_label_set_long_mode(label_prompt, LV_LABEL_LONG_SROLL); + lv_obj_set_width(label_prompt, LV_HOR_RES / 2); + lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_prompt, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -70); + + snprintf(temp_buf, 128, "%04d.%02d.%02d %02d:%02d", + s_hengai_sleep_data.end_sleep_time.year, + s_hengai_sleep_data.end_sleep_time.month, + s_hengai_sleep_data.end_sleep_time.day, + s_hengai_sleep_data.end_sleep_time.hour, + s_hengai_sleep_data.end_sleep_time.minute); + + lv_obj_t * label_info = lv_label_create(cont, NULL); + lv_obj_add_style(label_info, LV_LABEL_PART_MAIN, &lv_watch_font26); + lv_label_set_text(label_info, temp_buf); + lv_label_set_long_mode(label_info, LV_LABEL_LONG_SROLL); + lv_obj_set_width(label_info, LV_HOR_RES * 2 / 3); + lv_label_set_align(label_info, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_info, label_prompt, LV_ALIGN_OUT_BOTTOM_MID, 0, 8); + } + + // + lv_obj_t * label_up = lv_label_create(cont, NULL); + lv_label_set_text(label_up, LV_SYMBOL_UP); + lv_obj_align(label_up, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -5); + + return tab; +} + +void mmi_sleep_display_create(lv_obj_t * obj) +{ + lv_obj_t * tileview = lv_tileview_create(obj, NULL); + //lv_sleep_drop_pull_obj_ext_t * ext_drop = lv_obj_allocate_ext_attr(tileview, sizeof(lv_sleep_drop_pull_obj_ext_t)); + //(void)ext_drop; + LV_ASSERT_MEM(tileview); + lv_tileview_set_valid_positions(tileview, s_sleep_valid_pos, sizeof(s_sleep_valid_pos) / sizeof(s_sleep_valid_pos[0])); + lv_tileview_set_edge_flash(tileview, true); + lv_tileview_set_anim_time(tileview, 60); + lv_page_set_scrollbar_mode(tileview, LV_SCROLLBAR_MODE_OFF); + lv_obj_add_style(tileview, LV_TILEVIEW_PART_EDGE_FLASH, &lv_watch_cont_opa1); + + lv_obj_t * tab; + tab = mmi_sleep_info_create(tileview, 0); + LV_ASSERT_MEM(tab); + if(tab == NULL) + return NULL; + + tab = mmi_sleep_detail_create(tileview, 1); + LV_ASSERT_MEM(tab); + if(tab == NULL) + return NULL; + + lv_tileview_set_tile_act(tileview, 0, 0, false); + lv_watch_obj_add_element(tileview); + lv_watch_obj_add_element(lv_page_get_scrl(tileview)); +} + +void mmi_sleep_no_setting_create(lv_obj_t * obj) +{ + lv_obj_t * cont = lv_cont_create(obj, NULL); + lv_obj_set_size(cont, lv_obj_get_width(obj), lv_obj_get_height(obj)); + lv_obj_align(cont, NULL, LV_ALIGN_CENTER, 0, 0); + lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); + lv_watch_obj_add_element(cont); + + lv_obj_t * label_prompt = lv_label_create(cont, NULL); +#ifdef USE_LV_WATCH_UI_466_466 + lv_obj_add_style(label_prompt, LV_LABEL_PART_MAIN, &lv_watch_font40); +#else + lv_obj_add_style(label_prompt, LV_LABEL_PART_MAIN, &lv_watch_font26_black); +#endif + lv_label_set_text_id(label_prompt, WATCH_TEXT_ID_SLEEP_SET_PROMPT); + lv_label_set_long_mode(label_prompt, LV_LABEL_LONG_BREAK); + lv_obj_set_width(label_prompt, LV_HOR_RES * 4 / 5); + lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER); + lv_obj_align(label_prompt, cont, LV_ALIGN_CENTER, 0, -10); + + //lv_obj_set_hidden(label_no, true); +} + +void mmi_sleep_prepare_destory(lv_obj_t * activity_obj) +{ + printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + lv_watch_png_cache_all_free(); + + //lv_hengai_sleep_ext_t * ext = wechat_actId_ext_get(ACT_ID_WECHAT_MAIN); + //if(NULL == ext) + return ; +} + +lv_obj_t * mmi_sleep_create(lv_obj_t * activity_obj) +{ + printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + if(activity_obj == NULL) + { + lv_watch_activity_ext_t activity_ext; + + _lv_memset_00(&activity_ext, sizeof(lv_watch_activity_ext_t)); + activity_ext.actId = ACT_ID_SLEEP; + activity_ext.create = (lv_watch_activity_create_f_t)mmi_sleep_create; + activity_ext.prepare_destory = mmi_sleep_prepare_destory; + activity_obj = lv_watch_creat_activity_obj(&activity_ext); + LV_ASSERT_MEM(activity_obj); + } + + lv_obj_t * obj = lv_watch_obj_create(activity_obj); + if(NULL == obj) + return NULL; + /*Allocate the tab type specific extended data*/ + //lv_hengai_sleep_ext_t * ext = lv_obj_allocate_ext_attr(obj, sizeof(lv_hengai_sleep_ext_t)); + //if(NULL == ext) + // return NULL; + + if(false == mmi_watch_sleep_switch_is_on()) + { + mmi_sleep_no_setting_create(obj); + } + else + { + mmi_sleep_display_create(obj); + } + + return obj; +} + +void mmi_sleep_create_event_cb(lv_obj_t * btn, lv_event_t e) +{ + if(LV_EVENT_CLICKED == e) + { + if(0 == s_hengai_sleep_data_init) + { + mmi_hengai_sleep_data_nv_read(); + s_hengai_sleep_data_init = 1; + } + + #if 0 // for debug + s_hengai_sleep_data.total_sleep_time = 631; + + s_hengai_sleep_data.begin_sleep_time.year = 2024, + s_hengai_sleep_data.begin_sleep_time.month = 10, + s_hengai_sleep_data.begin_sleep_time.day = 12, + s_hengai_sleep_data.begin_sleep_time.hour = 22, + s_hengai_sleep_data.begin_sleep_time.minute = 36; + + s_hengai_sleep_data.end_sleep_time.year = 2024, + s_hengai_sleep_data.end_sleep_time.month = 10, + s_hengai_sleep_data.end_sleep_time.day = 13, + s_hengai_sleep_data.end_sleep_time.hour = 8, + s_hengai_sleep_data.end_sleep_time.minute = 12; + #endif + + lv_watch_png_cache_all_free(); + lv_obj_t * obj = mmi_sleep_create(NULL); + LV_ASSERT_MEM(obj); + } +} +#endif + #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_sleep_k18.h b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_sleep_k18.h index 1d8d3fa3..f396619e 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_sleep_k18.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_sleep_k18.h @@ -25,6 +25,25 @@ void mmi_hengai_get_sleep_data_stop(void); void mmi_hengai_health_sleep_lib_active(void); +#if 1 +typedef struct +{ + lv_watch_obj_ext_t old_ext; + + lv_obj_t * cont_no_setting; + + //lv_obj_t * delete_label_prompt; + //lv_obj_t * delete_btn_cancel; + //lv_obj_t * delete_btn_ok; + //TIMER_ID delete_timer_id; + +}lv_hengai_sleep_ext_t; + + +void mmi_sleep_create_event_cb(lv_obj_t * btn, lv_event_t e); + +#endif + #endif #ifdef __cplusplus diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c index 1db16c0d..058357c6 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c @@ -164,6 +164,10 @@ static watch_app_info_t s_main_menu_list[] = #ifdef __MMI_HEALTH_MEASURE_TEMPERATURE_SUPPORT__ { ICON_TEMPERATURE_LIST, WATCH_TEXT_ID_TEMPERATURE, health_temperature_create_event_cb}, #endif +#ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__ + { ICON_SLEEP_LIST, WATCH_TEXT_ID_SLEEP, mmi_sleep_create_event_cb}, +#endif + #ifdef __MMI_WECHAT_SUPPORT__ { ICON_WECHAT_LIST, WATCH_TEXT_ID_WECHAT, wechat_create_event_cb }, #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 fe599f60..d70b729b 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_watch_res.h +++ b/2.sdk/sdk/gui/lv_watch/lv_watch_res.h @@ -286,6 +286,9 @@ LV_IMG_DECLARE(img_poweron_logo); #ifdef __MMI_CUSTOM_HENGAI_HEALTH__ #define ICON_BLOOD_PRESSURE_LIST "R:/png/primary_function/list/ICON_BLOOD_PRESSURE.png" #endif +#ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__ +#define ICON_SLEEP_LIST "R:/png/primary_function/list/ICON_SLEEP.png" +#endif #define ICON_WECHAT_LIST "R:/png/primary_function/list/icon_wechat.png" #if USE_LV_WATCH_CAMERA != 0 @@ -832,6 +835,9 @@ LV_IMG_DECLARE(img_poweron_logo); #if USE_LV_WATCH_SLEEP!= 0 #define ICON_SLEEP_IMAGE "R:/png/sleep/icon_sleep_image.png" #endif +#ifdef __MMI_CUSTOM_HENGAI_SLEEP_K18__ +#define ICON_SLEEP_PROMPT "R:/png/sleep/ICON_SLEEP_PROMPT.png" +#endif //activity #if USE_LV_WATCH_ACTIVITY!= 0 diff --git a/2.sdk/sdk/gui/lv_watch/mmi_default.h b/2.sdk/sdk/gui/lv_watch/mmi_default.h index c957d8f4..c430a802 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_default.h +++ b/2.sdk/sdk/gui/lv_watch/mmi_default.h @@ -425,6 +425,38 @@ extern "C" #endif +// sleep setting +#ifdef MMI_CUSTOMER_SLEEP_SETTING_TIME_SWITCH +#define MMI_SLEEP_SETTING_TIME_SWITCH_DEFAULT MMI_CUSTOMER_SLEEP_SETTING_TIME_SWITCH +#else +#define MMI_SLEEP_SETTING_TIME_SWITCH_DEFAULT (MMI_WATCH_SWITCH_OFF) // 0-close; 1-open +#endif + +#ifdef MMI_CUSTOMER_SLEEP_SETTING_TIME_BHOUR +#define MMI_SLEEP_SETTING_TIME_BHOUR_DEFAULT MMI_CUSTOMER_SLEEP_SETTING_TIME_BHOUR +#else +#define MMI_SLEEP_SETTING_TIME_BHOUR_DEFAULT (20) // 0-23 +#endif + +#ifdef MMI_CUSTOMER_SLEEP_SETTING_TIME_BMIN +#define MMI_SLEEP_SETTING_TIME_BMIN_DEFAULT MMI_CUSTOMER_SLEEP_SETTING_TIME_BMIN +#else +#define MMI_SLEEP_SETTING_TIME_BMIN_DEFAULT (0) // 0-59 +#endif + +#ifdef MMI_CUSTOMER_SLEEP_SETTING_TIME_EHOUR +#define MMI_SLEEP_SETTING_TIME_EHOUR_DEFAULT MMI_CUSTOMER_SLEEP_SETTING_TIME_EHOUR +#else +#define MMI_SLEEP_SETTING_TIME_EHOUR_DEFAULT (9) // 0-23 +#endif + +#ifdef MMI_CUSTOMER_SLEEP_SETTING_TIME_EMIN +#define MMI_SLEEP_SETTING_TIME_EMIN_DEFAULT MMI_CUSTOMER_SLEEP_SETTING_TIME_EMIN +#else +#define MMI_SLEEP_SETTING_TIME_EMIN_DEFAULT (0) // 0-59 +#endif + + #endif diff --git a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c index cb1dd30e..31170277 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c +++ b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c @@ -555,13 +555,46 @@ static bool mmi_protocol_fzd_send_with_data(MMI_PROTOCOL_FZD_ACTION_ENUM action, ///////////////////////// + +static void * s_login_timer_id = NULL; +static void mmi_protocol_fzd_login_check_stop(void) +{ + if(NULL != s_login_timer_id) + { + uos_timer_stop(s_login_timer_id); + uos_timer_delete(s_login_timer_id); + } +} + +static void mmi_protocol_fzd_login_check_cb(uint32_t para) +{ + send_task_msg_tcp_reconnect(NULL); +} + +static void mmi_protocol_fzd_login_check_start(void) +{ + if(NULL == s_login_timer_id) + { + uos_timer_create(&s_login_timer_id); + } + else + { + uos_timer_stop(s_login_timer_id); + } + uos_timer_start(s_login_timer_id, MS_TO_TICKS(1000 * 5), 0, mmi_protocol_fzd_login_check_cb, NULL); +} + bool mmi_protocol_fzd_action_LINK(void) { + mmi_protocol_fzd_login_check_start(); + return mmi_protocol_fzd_send_without_data(MMI_FZD_ACTION_LINK); } bool mmi_protocol_fzd_parse_LINK(unsigned char * next_buff, unsigned int next_buff_len) { + mmi_protocol_fzd_login_check_stop(); + #ifdef __MMI_CUSTOM_HENGAI_HEALTH__ #ifdef __MMI_CUSTOM_HENGAI_HEALTH_UPLOAD_USE_TCP__ //mmi_hengai_tcp_algorithm_interface_login_action(); @@ -3655,7 +3688,7 @@ bool mmi_protocol_fzd_action_hengai_activation_feedback(void) } #endif -#if defined(__MMI_CUSTOM_HENGAI_SLEEP__) // || defined(__MMI_CUSTOM_HENGAI_SLEEP_K18__) +#if defined(__MMI_CUSTOM_HENGAI_SLEEP__) || defined(__MMI_CUSTOM_HENGAI_SLEEP_K18__) bool mmi_protocol_fzd_action_hengai_sleep_data(char * file_buf, uint32_t file_size) { bool result = false; diff --git a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.h b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.h index ab8a29db..63b6e3a0 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.h +++ b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.h @@ -194,7 +194,7 @@ typedef enum MMI_FZD_ACTION_HENGAI_ACTIVATION, MMI_FZD_ACTION_HENGAI_ACTIVATION_FEEDBACK, #endif -#if defined(__MMI_CUSTOM_HENGAI_SLEEP__) // || defined(__MMI_CUSTOM_HENGAI_SLEEP_K18__) +#if defined(__MMI_CUSTOM_HENGAI_SLEEP__) || defined(__MMI_CUSTOM_HENGAI_SLEEP_K18__) MMI_FZD_ACTION_HENGAI_SLEEP_DATA, #if 0 MMI_FZD_ACTION_GSENSOR_DATA_UPLOAD, @@ -368,7 +368,7 @@ bool mmi_protocol_fzd_action_hengai_activation(char * req_code); bool mmi_protocol_fzd_parse_ACTION_HENGAI_ACTIVATION(unsigned char * next_buff, unsigned int next_buff_len); bool mmi_protocol_fzd_action_hengai_activation_feedback(void); #endif -#if defined(__MMI_CUSTOM_HENGAI_SLEEP__) // || defined(__MMI_CUSTOM_HENGAI_SLEEP_K18__) +#if defined(__MMI_CUSTOM_HENGAI_SLEEP__) || defined(__MMI_CUSTOM_HENGAI_SLEEP_K18__) bool mmi_protocol_fzd_action_hengai_sleep_data(char * file_buf, uint32_t file_size); #endif #ifdef __MMI_CUSTOM_HENGAI_TCMS__ diff --git a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd_content.c b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd_content.c index 1312f4f0..1fedb8f0 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd_content.c +++ b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd_content.c @@ -126,7 +126,7 @@ static unsigned char * mmi_protocol_fzd_action_string_get(MMI_PROTOCOL_FZD_ACTIO {MMI_FZD_ACTION_HENGAI_ACTIVATION, "HENGAI_ACTIVATION"}, {MMI_FZD_ACTION_HENGAI_ACTIVATION_FEEDBACK, "HENGAI_ACTIVATION_FEEDBACK"}, #endif - #if defined(__MMI_CUSTOM_HENGAI_SLEEP__) // || defined(__MMI_CUSTOM_HENGAI_SLEEP_K18__) + #if defined(__MMI_CUSTOM_HENGAI_SLEEP__) || defined(__MMI_CUSTOM_HENGAI_SLEEP_K18__) {MMI_FZD_ACTION_HENGAI_SLEEP_DATA, "HENGAI_SLEEP_DATA"}, #if 0 @@ -449,7 +449,7 @@ static bool mmi_protocol_fzd_content_parse(unsigned char * content_ptr, unsigned case MMI_FZD_ACTION_HENGAI_ACTIVATION_FEEDBACK: break; #endif - #if defined(__MMI_CUSTOM_HENGAI_SLEEP__) // || defined(__MMI_CUSTOM_HENGAI_SLEEP_K18__) + #if defined(__MMI_CUSTOM_HENGAI_SLEEP__) || defined(__MMI_CUSTOM_HENGAI_SLEEP_K18__) case MMI_FZD_ACTION_HENGAI_SLEEP_DATA: break; 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 04ec6500..3fcb74ee 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 @@ -1243,6 +1243,15 @@ void mmi_watch_do_not_disturb_task_clean(void) static nv_watch_sleep_time_t s_sleep_time_data = {0}; static uint8_t s_sleep_mission_in_progress = 0; +void mmi_watch_sleep_time_nv_default(nv_watch_sleep_time_t * sleep_time_data) +{ + sleep_time_data->on_off = MMI_SLEEP_SETTING_TIME_SWITCH_DEFAULT; + sleep_time_data->begin_hour = MMI_SLEEP_SETTING_TIME_BHOUR_DEFAULT; + sleep_time_data->begin_min = MMI_SLEEP_SETTING_TIME_BMIN_DEFAULT; + sleep_time_data->end_hour = MMI_SLEEP_SETTING_TIME_EHOUR_DEFAULT; + sleep_time_data->end_min = MMI_SLEEP_SETTING_TIME_EMIN_DEFAULT; +} + void mmi_watch_sleep_time_nv_write(void) { uint32_t nv_data_length = sizeof(nv_watch_sleep_time_t); @@ -1273,6 +1282,22 @@ void mmi_watch_sleep_time_data_set(nv_watch_sleep_time_t * data) } } +void mmi_watch_sleep_time_data_get(nv_watch_sleep_time_t * data) +{ + if(NULL != data) + { + _lv_memcpy(data, &s_sleep_time_data, sizeof(nv_watch_sleep_time_t)); + } +} + +bool mmi_watch_sleep_switch_is_on(void) +{ + if(1 == s_sleep_time_data.on_off) + return true; + + return false; +} + bool mmi_watch_time_is_in_sleep_time(void) { hal_rtc_t cur_time = {0}; 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 2d4841e3..39879de2 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 @@ -97,6 +97,7 @@ void mmi_watch_do_not_disturb_task_clean(void); #endif #ifdef __MMI_SLEEP_FUNCTION_SUPPORT__ +void mmi_watch_sleep_time_nv_default(nv_watch_sleep_time_t * sleep_time_data); void mmi_watch_sleep_time_nv_read(void); void mmi_watch_sleep_time_data_set(nv_watch_sleep_time_t * data); void mmi_watch_sleep_time_mission_check(void); diff --git a/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_manage.c b/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_manage.c index 2ee40437..fc71dca7 100644 --- a/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_manage.c +++ b/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_manage.c @@ -57,6 +57,7 @@ int get_rand_relink_time(void) void manage_socket_callback(int sfd, int event, unsigned int len) { printf("[@CHENG_DEBUG][%s][%d]: event=%d\n", __FUNCTION__, __LINE__, event); + cplog_printf("[@CHENG_DEBUG][%s][%d]: event=%d\n", __FUNCTION__, __LINE__, event); printf("%s, sfd = %d, event = 0x%x, data len = %d\n",__FUNCTION__, sfd, event, len); diff --git a/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_msg_handler_impl.c b/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_msg_handler_impl.c index f218057b..f91be3a6 100644 --- a/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_msg_handler_impl.c +++ b/2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_msg_handler_impl.c @@ -120,6 +120,7 @@ void send_tcp_cmdmsg_handler_impl(void *param) //printf("[@CHENG_DEBUG][%d]: str=%s\n", __LINE__, send_cmdmsg_buff + 96); //printf("[@CHENG_DEBUG][%d]: str=%s\n", __LINE__, send_cmdmsg_buff + 192); //printf("[@CHENG_DEBUG][%d]: str=%s\n", __LINE__, send_cmdmsg_buff + 288); + cplog_printf("[@CHENG_DEBUG][%d]: write_str=%s\n", __LINE__, send_cmdmsg_buff); if((NULL != send_cmdmsg_buff) && (0 < send_cmdmsg_size)) { @@ -202,6 +203,7 @@ void read_tcp_cmdmsg_handler_impl(void *msg) printf("[@CHENG_DEBUG][%s][%d]: ret=%d,len=%d,ptr=0x%x\n", __FUNCTION__, __LINE__, recv_ret, recv_len, recv_str); printf("[@CHENG_DEBUG][%d]: str=%s\n", __LINE__, recv_str); + cplog_printf("[@CHENG_DEBUG][%d]: read_str=%s\n", __LINE__, recv_str); if(0 <= recv_ret) {