1,
#if DRV_PROJECT_Z5_K6 || DRV_PROJECT_Z5_Z11_2 || DRV_PROJECT_C55_DS_D11G_DT_HZCH || DRV_PROJECT_Z5_DS_Z11XG_DTM_FZD
1,//1通道
-#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_HA_K7 || DRV_PROJECT_Z5_DS_Z12_COMMON
- 2,//2通道
#else
2,//2通道
#endif
{
uint32_t roll_num = 0;
-#ifdef MMI_PROJECT_Z5_DS_Z12_COMMON || MMI_PROJECT_Z5_DS_Z11_COMMON
+#if defined(MMI_PROJECT_Z5_DS_Z12_COMMON) || defined(MMI_PROJECT_Z5_DS_Z11_COMMON)
srand(Hal_Timer_Get_Counter());
roll_num = 1 + rand() % 25;
#endif
static void * s_timing_control_timer = NULL;
static int8_t s_timing_control_last_min = -1;
+static uint32_t s_timing_control_timer_counter = 0;
-#define TIMING_FIRST_TIMER_INTERVAL (3 * 1000) // ms
-#define TIMING_TIMER_INTERVAL (20 * 1000) // ms
+static TASK_HANDLE * s_gui_timing_task_id = NULL;
-static void timing_timer_callback(uint32_t param)
+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_6_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);
+
+
+void mmi_gui_timing_task_msg_send(MMI_GUI_TIMING_MSG_ID_E msg_id, void * msg_param)
+{
+ if(NULL == s_gui_timing_task_id)
+ {
+ TIMING_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: task not exist\n", __FUNCTION__, __LINE__);
+ if(NULL != msg_param)
+ Hal_Mem_Free(msg_param);
+
+ return;
+ }
+
+ if((MMI_GUI_TIMING_MSG_QUEUE_SIZE - 1) < Hal_Get_Message_Count(s_gui_timing_task_id))
+ {
+ TIMING_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: msg queue full\n", __FUNCTION__, __LINE__);
+ if(NULL != msg_param)
+ Hal_Mem_Free(msg_param);
+
+ return;
+ }
+
+ TIMING_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n", __FUNCTION__, __LINE__, msg_id);
+ mmi_gui_timing_task_msg_t * msg = Hal_Mem_Alloc(sizeof(mmi_gui_timing_task_msg_t));
+ if(NULL == msg)
+ {
+ TIMING_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__);
+ if(NULL != msg_param)
+ Hal_Mem_Free(msg_param);
+
+ return;
+ }
+ msg->msg_id = msg_id;
+ msg->msg_param = msg_param;
+
+ Hal_Send_Message((TASK_ID)s_gui_timing_task_id, (void *)msg);
+}
+
+static void mmi_gui_timing_task_handle(void * param)
+{
+ mmi_gui_timing_task_msg_t * msg = (mmi_gui_timing_task_msg_t *)param;
+ MMI_GUI_TIMING_MSG_ID_E msg_id = msg->msg_id;
+ void * msg_param = msg->msg_param;
+
+ TIMING_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n", __FUNCTION__, __LINE__, msg_id);
+ switch(msg_id)
+ {
+ case MMI_GUI_TIMING_MSG_3_SECOND:
+ mmi_gui_timing_task_3_second_mission(msg_param);
+ break;
+
+ case MMI_GUI_TIMING_MSG_6_SECOND:
+ mmi_gui_timing_task_6_second_mission(msg_param);
+ break;
+
+ case MMI_GUI_TIMING_MSG_15_SECOND:
+ mmi_gui_timing_task_15_second_mission(msg_param);
+ break;
+
+ case MMI_GUI_TIMING_MSG_1_MINUTE:
+ mmi_gui_timing_task_1_minute_mission(msg_param);
+ break;
+
+ default:
+ break;
+ }
+}
+
+static void mmi_gui_timing_task_entry(void * para)
+{
+ while(NULL == s_gui_timing_task_id)
+ {
+ uos_sleep(10);
+ }
+
+ while(1)
+ {
+ mmi_gui_timing_task_msg_t * msg = (mmi_gui_timing_task_msg_t *)Hal_Receive_Message((TASK_ID)s_gui_timing_task_id, TRUE);
+
+ mmi_gui_timing_task_handle(msg);
+
+ Hal_Mem_Free(msg->msg_param);
+ Hal_Mem_Free(msg);
+ }
+}
+
+void mmi_gui_timing_task_create(void)
+{
+ s_gui_timing_task_id = uos_create_task(mmi_gui_timing_task_entry,
+ NULL,
+ MMI_GUI_TIMING_MSG_QUEUE_SIZE,
+ MMI_GUI_TIMING_TASK_STACK_SIZE,
+ MMI_GUI_TIMING_TASK_PRIORITY,
+ "mmi_gui_timing_task");
+
+ TIMING_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: task_id=0x%x\n", __FUNCTION__, __LINE__, s_gui_timing_task_id);
+}
+
+static void mmi_gui_timing_task_3_second_mission(void * time_param)
{
hal_rtc_t cur_time = {0};
- Hal_Rtc_Gettime(&cur_time);
- printf("[@CHENG_DEBUG][%s][%d]: %d,%d,%d\n", __FUNCTION__, __LINE__, cur_time.tm_hour, cur_time.tm_min, cur_time.tm_sec);
+
+ if(NULL != time_param)
+ {
+ Hal_Mem_Copy(&cur_time, time_param, sizeof(hal_rtc_t));
+ }
+ else
+ {
+ Hal_Rtc_Gettime(&cur_time);
+ }
- uos_timer_stop(s_timing_control_timer);
- uos_timer_start(s_timing_control_timer, MS_TO_TICKS(TIMING_TIMER_INTERVAL), 0, timing_timer_callback, NULL);
+ TIMING_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ // wear
+ static bool s_init_wear_flag = true;
+ bool t_wear_flag = true;
+
+#ifdef __MMI_ZHSX_SUPPORT_HEALTH_SENSOR__
+ t_wear_flag = mmi_health_measure_wear_state_get();
+#endif
+ TIMING_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: wear_state=%d,now_state=%d\n", __FUNCTION__, __LINE__, s_init_wear_flag, t_wear_flag);
+ if(s_init_wear_flag != t_wear_flag)
+ {
+ s_init_wear_flag = t_wear_flag;
+ if(false == s_init_wear_flag)
+ {
+ mmi_protocol_action_take_off();
+ }
+ else
+ {
+ mmi_protocol_action_take_on();
+ }
+ }
+
+
+
+}
+
+static void mmi_gui_timing_task_6_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)
+{
+ 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__);
+
// pedometer
mmi_pedometer_steps_mission(cur_time);
- // every minuter check mission
- if(cur_time.tm_min != s_timing_control_last_min)
+ // no sim check
+#ifdef __MMI_ZHSX_SUPPORT_NO_SIM_POWER_OFF__
+ mmi_watch_no_sim_power_off_check_mission();
+#endif
+
+
+
+}
+
+static void mmi_gui_timing_task_1_minute_mission(void * time_param)
+{
+ hal_rtc_t cur_time = {0};
+
+ if(NULL != time_param)
{
- printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
-
- s_timing_control_last_min = cur_time.tm_min;
-
- // check remind
- mmi_remind_mission_check(cur_time);
+ Hal_Mem_Copy(&cur_time, time_param, sizeof(hal_rtc_t));
+ }
+ else
+ {
+ Hal_Rtc_Gettime(&cur_time);
+ }
- // check sleep time
- #ifdef __MMI_SLEEP_FUNCTION_SUPPORT__
- mmi_watch_sleep_time_mission_check();
- #endif
+ TIMING_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ // check remind
+ mmi_remind_mission_check(cur_time);
+ // check sleep time
+#ifdef __MMI_SLEEP_FUNCTION_SUPPORT__
+ mmi_watch_sleep_time_mission_check();
+#endif
+
+
+}
+
+static void mmi_gui_timing_timer_callback(uint32_t param)
+{
+ hal_rtc_t cur_time = {0};
+ Hal_Rtc_Gettime(&cur_time);
+ TIMING_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %02d:%02d:%02d\n", __FUNCTION__, __LINE__, cur_time.tm_hour, cur_time.tm_min, cur_time.tm_sec);
+
+ 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++;
+
+ mmi_gui_timing_task_msg_send(MMI_GUI_TIMING_MSG_3_SECOND, NULL); // 3 seconds
+
+ if(0 == s_timing_control_timer_counter % 2) // 6 seconds
+ {
+ hal_rtc_t * p_cur_time_6 = Hal_Mem_Alloc(sizeof(hal_rtc_t));
+ Hal_Mem_Copy(p_cur_time_6, &cur_time, sizeof(hal_rtc_t));
+ mmi_gui_timing_task_msg_send(MMI_GUI_TIMING_MSG_6_SECOND, p_cur_time_6);
+ }
+
+ if(0 == s_timing_control_timer_counter % 5) // 15 seconds
+ {
+ hal_rtc_t * p_cur_time_15 = Hal_Mem_Alloc(sizeof(hal_rtc_t));
+ Hal_Mem_Copy(p_cur_time_15, &cur_time, sizeof(hal_rtc_t));
+ mmi_gui_timing_task_msg_send(MMI_GUI_TIMING_MSG_15_SECOND, p_cur_time_15);
+ }
+
+ if(cur_time.tm_min != s_timing_control_last_min) // minute changed
+ {
+ TIMING_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, s_timing_control_last_min);
+ s_timing_control_last_min = cur_time.tm_min;
+ hal_rtc_t * p_cur_time_60 = Hal_Mem_Alloc(sizeof(hal_rtc_t));
+ Hal_Mem_Copy(p_cur_time_60, &cur_time, sizeof(hal_rtc_t));
+ mmi_gui_timing_task_msg_send(MMI_GUI_TIMING_MSG_1_MINUTE, p_cur_time_60);
}
}
void app_adaptor_timing_control_init(void)
{
+ mmi_gui_timing_task_create();
+
uos_timer_create(&s_timing_control_timer);
- uos_timer_start(s_timing_control_timer, MS_TO_TICKS(TIMING_FIRST_TIMER_INTERVAL), 0, timing_timer_callback, NULL);
+ uos_timer_start(s_timing_control_timer, MS_TO_TICKS(MMI_GUI_TIMING_TIMER_INTERVAL), 0, mmi_gui_timing_timer_callback, NULL);
}
#else
/**********************
* GLOBAL PROTOTYPES
***********************/
+
+#if 1 // def __MMI_ZHSX_SUPPORT__
+
+
+#define __MMI_TIMING_DEBUG__
+#ifdef __MMI_TIMING_DEBUG__
+#define TIMING_DEBUG_PRINTF(fmt, ...) printf("[TIMING]"fmt, ##__VA_ARGS__)
+#else
+#define TIMING_DEBUG_PRINTF(fmt, ...)
+#endif
+
+
+#define MMI_GUI_TIMING_TIMER_INTERVAL (3 * 1000) // ms
+
+#define MMI_GUI_TIMING_TASK_PRIORITY 219
+#define MMI_GUI_TIMING_TASK_STACK_SIZE (1 * 1024)
+#define MMI_GUI_TIMING_MSG_QUEUE_SIZE (16)
+
+
+typedef enum
+{
+ MMI_GUI_TIMING_MSG_ID_START,
+
+ MMI_GUI_TIMING_MSG_3_SECOND,
+ MMI_GUI_TIMING_MSG_6_SECOND,
+ MMI_GUI_TIMING_MSG_15_SECOND,
+ MMI_GUI_TIMING_MSG_1_MINUTE,
+ MMI_GUI_TIMING_MSG_2_MINUTE,
+
+ MMI_GUI_TIMING_MSG_ID_END
+}MMI_GUI_TIMING_MSG_ID_E;
+
+typedef struct
+{
+ uint16_t msg_id;
+ void * msg_param;
+}mmi_gui_timing_task_msg_t;
+
+#else
void timing_upload_set_flag(void);
+#endif
+
void app_adaptor_timing_control_init(void);
"校准结果已上传,当前血压异常。建议吃降压药2小时后重新校准", // WATCH_TEXT_ID_BLOOD_PRESSURE_HIGH_PROMPT,
"校准结果已上传,当前血压异常。建议休息后重新校准", // WATCH_TEXT_ID_BLOOD_PRESSURE_LOW_PROMPT,
"校准失败,请重新校准", // WATCH_TEXT_ID_BLOOD_PRESSURE_FAILED_PROMPT,
+ "今日步数", // WATCH_TEXT_ID_TODAY_STEP,
+ "目标步数", // WATCH_TEXT_ID_GOAL_STEP,
+ "我需要你的帮助!", // WATCH_TEXT_ID_SOS_SMS_HELP_CONTENT,
+ "确保设备联网\n点击获取APP二维码", // WATCH_TEXT_ID_APP_QRCODE_REFRESH,
//CHENG_MODIFY
"确认是否跌倒?", // WATCH_TEXT_ID_falldown,
"确认是否删除",
"十六","十七","十八","十九","二十",
"廿一","廿二","廿三","廿四","廿五",
"廿六","廿七","廿八","廿九","三十",
- //CHENG_MODIFY
};
/**
"Blood pressure high prompt", // WATCH_TEXT_ID_BLOOD_PRESSURE_HIGH_PROMPT,
"Blood pressure low prompt", // WATCH_TEXT_ID_BLOOD_PRESSURE_LOW_PROMPT,
"Blood pressure failed prompt", // WATCH_TEXT_ID_BLOOD_PRESSURE_FAILED_PROMPT,
+ "Today steps", // WATCH_TEXT_ID_TODAY_STEP,
+ "Goal steps", // WATCH_TEXT_ID_GOAL_STEP,
+ "I NEED YOUR HELP!", // WATCH_TEXT_ID_SOS_SMS_HELP_CONTENT,
+ "Click to get qrcode", // WATCH_TEXT_ID_APP_QRCODE_REFRESH,
//CHENG_MODIFY
"Confirm a fall",
"Confirm deletion",
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)
{
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
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
MMI_MSG_HENGAI_BP_CALIBRATE_RESULT,
MMI_MSG_HENGAI_BP_MEASURE_RESULT,
#endif
+ MMI_MSG_LOW_BATTERY_SCREEN,
#endif
WATCH_TEXT_ID_BLOOD_PRESSURE_HIGH_PROMPT, /* "校准结果已上传,当前血压异常。建议吃降压药2小时后重新校准" "Blood pressure high prompt" */
WATCH_TEXT_ID_BLOOD_PRESSURE_LOW_PROMPT, /* "校准结果已上传,当前血压异常。建议休息后重新校准" "Blood pressure low prompt" */
WATCH_TEXT_ID_BLOOD_PRESSURE_FAILED_PROMPT, /* "校准失败,请重新校准" "Blood pressure failed prompt" */
+ WATCH_TEXT_ID_TODAY_STEP, /* "今日步数" "Today steps" */
+ WATCH_TEXT_ID_GOAL_STEP, /* "目标步数" "Goal steps" */
+ WATCH_TEXT_ID_SOS_SMS_HELP_CONTENT, /* "我需要你的帮助!" "I NEED YOUR HELP!" */
+ WATCH_TEXT_ID_APP_QRCODE_REFRESH, /* "确保设备联网\n点击获取APP二维码" "Click to get qrcode" */
//CHENG_MODIFY
WATCH_TEXT_ID_FALLDWON, /*确认是否跌倒*/
WATCH_TEXT_ID_CONFIRM_DELETE, /*确认是否删除*/
WATCH_TEXT_ID_LUNAR_d_29,
WATCH_TEXT_ID_LUNAR_d_30,
- //CHENG_MODIFY
WATCH_TEXT_ID_MAX
lv_obj_align(ext->label_value, ext->cont, LV_ALIGN_IN_TOP_MID, 0, HEART_LABEL_VALUE_Y-10);
lv_obj_set_hidden(ext->label_value, FALSE);
- uint16_t blood_high_value = 0;
- uint16_t blood_low_value= 0;
+ uint16_t blood_high_value = 0, blood_low_value = 0;
mmi_hsensor_blood_value_get(&blood_high_value,&blood_low_value);
- sprintf(ext->blood_low_high, "%d / %d mmhg", blood_low_value,blood_high_value);
+ //HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d/%d\n", __FUNCTION__, __LINE__, blood_low_value, blood_low_value);
+
+ sprintf(ext->blood_low_high, "%d / %d mmHg", blood_high_value, blood_low_value);
- mmi_protocol_action_send_blood(blood_high_value,blood_low_value);
+ mmi_protocol_action_send_blood(blood_high_value, blood_low_value);
lv_label_set_text(ext->label_value_blood, ext->blood_low_high);
+ #ifdef USE_LV_WATCH_UI_240_280
+ lv_obj_align(ext->label_value_blood, ext->cont, LV_ALIGN_IN_TOP_MID, 0, HEART_LABEL_VALUE_Y + 30);
+ #else
lv_obj_align(ext->label_value_blood, ext->cont, LV_ALIGN_IN_TOP_MID, 0, HEART_LABEL_VALUE_Y+10);
+ #endif
lv_obj_set_hidden(ext->label_value_blood, FALSE);
break;
#ifdef __MMI_BP_CALIBRATE_SUPPORT__
uint16_t bp_calibrate_high_value = 0, bp_calibrate_low_value = 0;
- uint16_t t_value0 = 0, t_value1 = 0;
+ uint16_t t_mid_high_value = 0, t_mid_low_value = 0;
mmi_bp_calibrate_value_get(&bp_calibrate_high_value, &bp_calibrate_low_value);
- t_value0 = bp_calibrate_high_value + (7 - (t_high_value % 15));
- t_value1 = bp_calibrate_high_value + (7 - (t_low_value % 15));
- t_high_value = t_value0;
- t_low_value = t_value1;
+ t_mid_high_value = bp_calibrate_high_value + (7 - (t_high_value % 15));
+ t_mid_low_value = bp_calibrate_low_value + (7 - (t_low_value % 15));
+ t_high_value = t_mid_high_value;
+ t_low_value = t_mid_low_value;
#endif
if(DEFAULT_BP_HIGH_VALUE_MAX < t_high_value)
* blood_high_value = t_high_value;
* blood_low_value = t_low_value;
+
+ HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d/%d\n", __FUNCTION__, __LINE__, t_high_value, t_low_value);
return true;
#endif
lowbattery_destory();
}
} else {
- if(Hal_Battery_Get_Status() < ENTER_LOWBATTERY_MODE_LEVEL)//)
+ if(Hal_Battery_Get_Status() < ENTER_LOWBATTERY_MODE_LEVEL)
{
if((NULL == lv_watch_get_activity_obj(ACT_ID_LOWBATTERY))
&& (NULL == lv_watch_get_activity_obj(ACT_ID_PHONE))
}
if(Hal_Battery_Get_Status() == AUTO_POWER_OFF_LEVEL) {
printf("power off in low battery mode\n");
-
shutdown_confirm_btn_action(NULL, LV_EVENT_CLICKED);
}
}
{ MMI_REMIND_TYPE_MAX, 0, NULL, NULL},
};
-#ifdef __MMI_REMIND_take_off_SUPPORT__
-
-static void * take_off_remind_timer = NULL;
-static bool take_on_or_off;
-
-
-void mmi_take_off_remind_timer_stop(void)
-{
- if(NULL != take_off_remind_timer)
- {
- uos_timer_stop(take_off_remind_timer);
- take_off_remind_timer=NULL;
-
- }
-}
-
-static void mmi_take_off_remind_trigger(uint32_t para)
-{
-
- if(true != mmi_health_measure_wear_state_get() && take_on_or_off==true)
- {
- watch_wakeup_lcd(true);
- mmi_protocol_action_take_off();
- printf("test_take_off %d or %d \n",mmi_health_measure_wear_state_get(),take_on_or_off);
- take_on_or_off=false;
- }
- else if(true == mmi_health_measure_wear_state_get() && take_on_or_off!=true)
- {
- watch_wakeup_lcd(true);
- //mmi_protocol_action_take_on();
- //printf("test_take_off %d or %d \n",mmi_health_measure_wear_state_get(),take_on_or_off);
- take_on_or_off=true;
- }
-
- printf("[@DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- mmi_take_off_remind_timer_start();
-}
-
-
-
-void mmi_take_off_remind_timer_start(void)
-{
- //take_on_or_off=mmi_health_measure_wear_state_get();
- if(NULL != take_off_remind_timer)
- uos_timer_stop(take_off_remind_timer);
- else
- uos_timer_create(&take_off_remind_timer);
- uos_timer_start(take_off_remind_timer, MS_TO_TICKS(1 * 60 * 1000), 0, mmi_take_off_remind_trigger, NULL);
-}
-
-void mmi_take_off_remind_init(void)
-{
- printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__);
- if(mmi_take_off_switch_get())
- {
- take_on_or_off=mmi_health_measure_wear_state_get();
- mmi_take_off_remind_timer_start();
-
- }
-
-}
-
-
-
-#endif
-
-
#ifdef __MMI_REMIND_WAKE_UP_SUPPORT__
static nv_watch_remind_item_t s_remind_wake_up_data = {0};
void mmi_remind_mission_check(hal_rtc_t cur_time);
void mmi_remind_data_init(void);
-#ifdef __MMI_REMIND_take_off_SUPPORT__
-
-void mmi_take_off_remind_timer_stop(void);
-
-
-static void mmi_take_off_remind_trigger(uint32_t para);
-
-
-void mmi_take_off_remind_timer_start(void);
-
-
-void mmi_take_off_remind_init(void);
-
-
-#endif
-
-
-
#endif
#ifndef __MMI_PHONEBOOK_CALLLOG_IN_ONE_MENU__
{ ICON_CALLLOG, WATCH_TEXT_ID_CALL_LOG, call_log_create_event_cb },
#endif
+ { ICON_SOS, WATCH_TEXT_ID_SOS, sos_create_event_cb},
#ifdef __MMI_HEALTH_MEASURE_HEART_SUPPORT__
{ ICON_HEART_RATE, WATCH_TEXT_ID_HEART_RATE, health_heart_rate_create_event_cb},
#ifndef __MMI_PHONEBOOK_CALLLOG_IN_ONE_MENU__
{{ ICON_CALLLOG_ONE_PAGE, WATCH_TEXT_ID_CALL_LOG, call_log_create_event_cb}, AUDIO_MAIN_MENU_CALL_LOG},
#endif
- //����sos_create_event_cb
-
{{ ICON_SOS_ONE_PAGE, WATCH_TEXT_ID_SOS, sos_create_event_cb}, AUDIO_MAIN_MENU_SOS},
#ifdef __MMI_HEALTH_MEASURE_HEART_SUPPORT__
#ifndef __MMI_PHONEBOOK_CALLLOG_IN_ONE_MENU__
{ ICON_CALLLOG_LIST, WATCH_TEXT_ID_CALL_LOG, call_log_create_event_cb },
#endif
- //����sos_create_event_cb
{ ICON_SOS_LIST, WATCH_TEXT_ID_SOS, sos_create_event_cb},
-
#ifdef __MMI_HEALTH_MEASURE_HEART_SUPPORT__
{ ICON_HEART_RATE_LIST, WATCH_TEXT_ID_HEART_RATE, health_heart_rate_create_event_cb},
#endif
lv_obj_set_width(info_label, LV_HOR_RES - 20);
lv_label_set_align(info_label, LV_LABEL_ALIGN_CENTER);
-#ifdef MMI_PROJECT_Z5_DS_Z12_COMMON || MMI_PROJECT_Z5_DS_Z11_COMMON
+#if defined(MMI_PROJECT_Z5_DS_Z12_COMMON) || defined(MMI_PROJECT_Z5_DS_Z11_COMMON)
// snprintf(info_str, 96, "%s:Z5_Z12\n%s:%s_V1.0_Release_%s",
// (char *)lv_lang_get_text(WATCH_TEXT_ID_MODE),
// (char *)lv_lang_get_text(WATCH_TEXT_ID_VERSION_NUM),
* high_value = t_high_value;
* low_value = t_low_value;
+
+ //HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d/%d\n", __FUNCTION__, __LINE__, t_high_value, t_low_value);
}
void mmi_bp_calibrate_value_set(uint16_t high_value, uint16_t low_value)
health_info.bp_calibrate_high_value = high_value;
health_info.bp_calibrate_low_value = low_value;
mmi_health_info_set(&health_info);
+
+ //HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d/%d\n", __FUNCTION__, __LINE__, high_value, low_value);
}
void * mmi_Blood_pressure_ext_get(void)
lv_obj_t * img_0 = lv_img_create(obj, NULL);
lv_img_set_src(img_0, BlOOD_PRESSURE_strip_PNG);
+#ifdef USE_LV_WATCH_UI_240_280
+ lv_obj_align(img_0, label_0, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
+#else
lv_obj_align(img_0, label_0, LV_ALIGN_OUT_BOTTOM_MID, 0, 5);
-
-
+#endif
lv_obj_t * btn_left_0 = lv_imgbtn_create(img_0, NULL);
lv_imgbtn_set_src(btn_left_0, LV_BTN_STATE_RELEASED, BlOOD_PRESSURE_strip_PNG_1);
lv_obj_align(low_blood, NULL, LV_ALIGN_CENTER, 0, 0);
ext->label_low_blood = low_blood;
- // time
-
lv_obj_t * img_1 = lv_img_create(obj, NULL);
lv_img_set_src(img_1, BlOOD_PRESSURE_strip_PNG);
+#ifdef USE_LV_WATCH_UI_240_280
+ lv_obj_align(img_1, img_0, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
+#else
lv_obj_align(img_1, img_0, LV_ALIGN_OUT_BOTTOM_MID, 0, 12);
-
+#endif
lv_obj_t * btn_left_1 = lv_imgbtn_create(img_1, NULL);
lv_imgbtn_set_src(btn_left_1, LV_BTN_STATE_RELEASED, BlOOD_PRESSURE_strip_PNG_1);
lv_obj_align(hight_blood, NULL, LV_ALIGN_CENTER, 0, 0);
ext->label_high_blood = hight_blood;
+
+ //
+ lv_obj_t * label_1 = lv_label_create(obj, NULL);
+ lv_obj_add_style(label_1, LV_LABEL_PART_MAIN, &lv_watch_font10);
+ lv_label_set_align(label_1, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(label_1, false);
+ lv_label_set_text_id(label_1, WATCH_TEXT_ID_CALIBRATE_PROMPT_3);
+ lv_obj_align(label_1, img_1, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
+
+
//
lv_obj_t * btn_save = lv_imgbtn_create(obj, NULL);
lv_obj_set_event_cb(btn_save, setting_Blood_pressure_btn_event_cb);
- lv_obj_align(btn_save, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 63, -18);
lv_imgbtn_set_src(btn_save, LV_BTN_STATE_RELEASED, BlOOD_PRESSURE_COFIREM_PNG_1);
lv_imgbtn_set_src(btn_save, LV_BTN_STATE_CHECKED_DISABLED, BlOOD_PRESSURE_COFIREM_PNG_2);
+#ifdef USE_LV_WATCH_UI_240_280
+ lv_obj_align(btn_save, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -30);
+#else
+ lv_obj_align(btn_save, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 63, -18);
+#endif
//lv_watch_obj_add_element(btn_save);
lv_watch_set_free_num(btn_save, 4);
lv_obj_add_style(label_save, LV_LABEL_PART_MAIN, &lv_watch_font26);
lv_label_set_text_id(label_save, WATCH_TEXT_ID_START_CALIBRATE);
- lv_obj_t * label_1 = lv_label_create(obj, NULL);
- lv_obj_add_style(label_1, LV_LABEL_PART_MAIN, &lv_watch_font10);
- lv_label_set_align(label_1, LV_LABEL_ALIGN_CENTER);
- lv_obj_set_click(label_1, false);
- lv_label_set_text_id(label_1, WATCH_TEXT_ID_CALIBRATE_PROMPT_3);
- lv_obj_align(label_1, img_1, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
-
-
- //lv_label_set_long_mode(label_cancel, LV_LABEL_LONG_BREAK);
- //lv_obj_set_width(label_cancel, LV_HOR_RES * 2 / 3);
-
return obj;
}
lv_obj_t * label = lv_label_create(status_ext->network_status_cont, NULL);
lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font20);
if(MMI_MODEM_PLMN_RAT_LTE == rat) {
- #ifdef MMI_PROJECT_Z5_DS_Z12_COMMON || MMI_PROJECT_Z5_DS_Z11_COMMON
+ #if defined(MMI_PROJECT_Z5_DS_Z12_COMMON) || defined(MMI_PROJECT_Z5_DS_Z11_COMMON)
lv_label_set_text(label, "5G");
#else
lv_label_set_text(label, "4G");
#ifdef __MMI_ZHSX_SUPPORT_ALIPAY__
mmi_watch_alipay_info_init();
#endif
-#ifdef __MMI_ZHSX_SUPPORT_NO_SIM_POWER_OFF__
- mmi_watch_no_sim_power_off_check_mission();
-#endif
#ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
mmi_watch_do_not_disturb_mission_check();
#endif
#define ICON_WECHAT "R:/png/primary_function/icon_wechat.png"
#define ICON_CALLLOG "R:/png/primary_function/ICON_CALLLOG.png"
#define ICON_CAMERA "R:/png/primary_function/icon_camera.png"
-//#define ICON_MAKEFRIENDS "R:/png/primary_function/icon_makefriends.png"
#define ICON_DIALPAD "R:/png/primary_function/icon_dialpad.png"
//#define ICON_PRIMARY_QRCODES "R:/png/primary_function/icon_primary_qrcodes.png"
#define ICON_STOPWATCH "R:/png/primary_function/icon_stopwatch.png"
#define ICON_CALCULATOR "R:/png/primary_function/icon_calculator.png"
-//#if USE_LV_WATCH_EXERCISE != 0
-//#define ICON_SPORT "R:/png/primary_function/icon_sport.png"
-//#endif
+
#define ICON_HEART_RATE "R:/png/primary_function/icon_heart_rate.png"
#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
#define ICON_VIDEOCALL "R:/png/primary_function/icon_videocall.png"
#endif
-//#define ICON_AIKNOWLEDGE "R:/png/primary_function/icon_aiknowledge.png"
#define ICON_CALENDAR "R:/png/primary_function/icon_calendar.png"
-//#define ICON_CLEAR_RAM "R:/png/primary_function/icon_clear_ram.png"
-//#if USE_LV_WATCH_SPEECH_RECOG != 0
-//#define ICON_ANSWEREDQUE "R:/png/primary_function/icon_answeredquestions.png"
-//#endif
#define ICON_ALBUM "R:/png/primary_function/icon_album.png"
-//#define ICON_BLOODPRESSURE "R:/png/primary_function/icon_blood_pressure.png"
-//#define ICON_PRIMARY_BARCODES "R:/png/primary_function/icon_primary_barcodes.png"
-//#if USE_LV_WATCH_AUDIO_PLAYER != 0
-//#define ICON_MUSIC "R:/png/primary_function/icon_music.png"
-//#endif
#define ICON_IMGVIEWER "R:/png/primary_function/icon_imgviewer.png"
#define ICON_ALARM "R:/png/primary_function/icon_alarm.png"
-//#if USE_LV_WATCH_COMPASS != 0
-//#define ICON_COMPASS "R:/png/primary_function/icon_compass.png"
-//#endif
+
#define ICON_MESSAGE "R:/png/primary_function/icon_message.png"
#define ICON_TIMER "R:/png/primary_function/icon_timer.png"
#if USE_LV_WATCH_WEATHER != 0
#define ICON_ALIPAY "R:/png/primary_function/icon_alipay.png"
#define ICON_SMS_MSG "R:/png/primary_function/icon_sms.png"
#define ICON_PHONEBOOK "R:/png/primary_function/ICON_PHONEBOOK.png"
+#define ICON_SOS "R:/png/primary_function/ICON_SOS.png"
#endif
#define ICON_TOOL_ONE_PAGE "R:/png/primary_function/one_page/ICON_TOOL.png"
#endif
#define ICON_SETTING_ONE_PAGE "R:/png/primary_function/one_page/icon_settings.png"
-#define ICON_SOS_ONE_PAGE "R:/png/primary_function/one_page/IMAGE_ONE_PAGE_PHONE_INFO.png"
+#define ICON_SOS_ONE_PAGE "R:/png/primary_function/one_page/ICON_SOS.png"
#endif
uint32_t value = atoi(next_buff);
mmi_take_off_switch_set(value);
- #ifdef __MMI_REMIND_take_off_SUPPORT__
- if(value)
- {
- mmi_take_off_remind_init();
- }
- else
- {
- mmi_take_off_remind_timer_stop();
- }
- #endif
-
-
return result;
}
case MMI_FZD_SERVER_SET_FALL_DOWN_SWITCH:
mmi_protocol_fzd_parse_SERVER_SET_FALL_DOWN_SWITCH(next_buff, next_buff_len);
break;
- #ifdef __MMI_REMIND_take_off_SUPPORT__
+
case MMI_FZD_SERVER_SET_TAKE_OFF_SWITCH:
mmi_protocol_fzd_parse_SERVER_SET_TAKE_OFF_SWITCH(next_buff, next_buff_len);
break;
- #endif
#ifdef __MMI_REMIND_WAKE_UP_SUPPORT__
case MMI_FZD_SERVER_SET_REMIND_WAKE_UP:
void mmi_watch_no_sim_power_off_check_mission(void)
{
- if((false == watch_modem_sim_present_check_req())
- && (NULL == lv_watch_get_activity_obj(ACT_ID_FACTORY_MODE_MAIN))
+
+ if(NULL != s_no_sim_power_off_timer) // is exist ?
+ return;
+
+ if(true == watch_modem_sim_present_check_req())
+ return;
+
+ if((NULL != lv_watch_get_activity_obj(ACT_ID_FACTORY_MODE_MAIN))
+ || (NULL != phone_get_activity_obj())
)
- {
- SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return;
- mmi_watch_no_sim_power_off_check_action();
- }
+ SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ mmi_watch_no_sim_power_off_check_action();
}
#endif
#define NO_SIM_POWER_OFF_INTERVAL (15 * 60 * 1000) // ms
#define NO_SIM_POWER_OFF_PROMPT_INTERVAL (15) // s
+#define NO_SIM_POWER_OFF_TASK_CHECK (5 * 1000) // ms
+
+
void mmi_ui_msg_update_no_sim_power_off(void);
void mmi_watch_no_sim_power_off_check_action(void);
void mmi_watch_no_sim_power_off_check_mission(void);
#ifdef __MMI_ZHSX_SUPPORT_AUTHENTICATE__
#define MMI_AUTHENTICATE_CONNECT_TIME_INTERVAL (1000 * 5) // ms
-#define MMI_AUTHENTICATE_CONNECT_TIMEOUT (1000 * 60) // ms
+#define MMI_AUTHENTICATE_CONNECT_TIMEOUT (1000 * 60 * 3) // ms
static void * s_authenticate_connect_timer_id = NULL;
static uint32_t s_authenticate_connect_time = 0;