#endif
+static bool mmi_hengai_bp_measure_check_algorithm(void)
+{
+ if(0 == mmi_hengai_health_lib_activated_flag_get())
+ {
+ mmi_hengai_tcp_algorithm_login_msg_send();
+ return false;
+ }
+
+ return true;
+}
+
bool mmi_hengai_bp_measuring_flag_get(void)
{
return (s_hengai_bp_measuring);
s_hengai_bp_measure_count++;
+#ifdef USE_HEART_RATE_MEASURE_TO_CHECK_WEAR_STATUS
+ if(MMI_HR_MEASURE_CHECK_COUNT > s_hengai_bp_measure_count)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ if(false == mmi_health_measure_wear_state_get())
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ mmi_hsensor_close();
+ mmi_hengai_bp_measuring_flag_set(false);
+
+ lv_heng_ai_bp_measure_ext_t * watch_ext = (lv_heng_ai_bp_measure_ext_t *)mmi_heng_ai_bp_measure_screen_ext_get();
+ if(NULL == watch_ext)
+ return;
+
+ if(NULL != watch_ext->measure_timer_id)
+ {
+ Hal_Timer_Stop(watch_ext->measure_timer_id);
+ watch_ext->measure_timer_id = NULL;
+ }
+
+ lv_obj_clean(watch_ext->cont);
+
+ lv_obj_t * img = lv_img_create(watch_ext->cont, NULL);
+ lv_img_set_src(img, ICON_HENGAI_BP_ALERT);
+ lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 90);
+
+ lv_obj_t * label = lv_label_create(watch_ext->cont, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font36);
+ lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NOT_WEAR);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 278);
+ lv_obj_set_click(label, false);
+ }
+
+ return ;
+ }
+ else if(MMI_HR_MEASURE_CHECK_COUNT == s_hengai_bp_measure_count)
+ {
+ mmi_hsensor_close();
+
+ lv_heng_ai_bp_measure_ext_t * watch_ext = (lv_heng_ai_bp_measure_ext_t *)mmi_heng_ai_bp_measure_screen_ext_get();
+ if(NULL == watch_ext)
+ return;
+
+ if(false == mmi_health_measure_wear_state_get())
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ mmi_hengai_bp_measuring_flag_set(false);
+
+ if(NULL != watch_ext->measure_timer_id)
+ {
+ Hal_Timer_Stop(watch_ext->measure_timer_id);
+ watch_ext->measure_timer_id = NULL;
+ }
+
+ lv_obj_clean(watch_ext->cont);
+
+ lv_obj_t * img = lv_img_create(watch_ext->cont, NULL);
+ lv_img_set_src(img, ICON_HENGAI_BP_ALERT);
+ lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 90);
+
+ lv_obj_t * label = lv_label_create(watch_ext->cont, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font36);
+ lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NOT_WEAR);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 278);
+ lv_obj_set_click(label, false);
+ }
+ else
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ mmi_hsensor_blood_open();
+ mmi_hengai_bp_measure_action_time_string_set(1);
+ }
+
+ return;
+ }
+#endif
+
+
if(MMI_BP_MEASURE_TOTAL_COUNT < s_hengai_bp_measure_count) // stop action
{
mmi_hengai_bp_measure_finish_screen();
lv_obj_align(label_1, NULL, LV_ALIGN_IN_TOP_MID, 0, 278);
lv_obj_set_click(label_1, false);
}
+ else if(false == mmi_hengai_bp_measure_check_algorithm())
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ lv_obj_t * img = lv_img_create(cont, NULL);
+ lv_img_set_src(img, ICON_HENGAI_BP_ALERT);
+ lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 90);
+
+ lv_obj_t * label_1 = lv_label_create(cont, NULL);
+ lv_obj_add_style(label_1, LV_LABEL_PART_MAIN, &lv_watch_font36);
+ lv_label_set_text_id(label_1, WATCH_TEXT_ID_BLOOD_PRESSURE_INIT);
+ lv_label_set_align(label_1, LV_LABEL_ALIGN_CENTER);
+ lv_obj_align(label_1, NULL, LV_ALIGN_IN_TOP_MID, 0, 278);
+ lv_obj_set_click(label_1, false);
+ }
else
{
HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ #ifdef USE_HEART_RATE_MEASURE_TO_CHECK_WEAR_STATUS
+ mmi_health_measure_factory_mode_clean();
+ mmi_hsensor_heart_open();
+ mmi_hengai_bp_measuring_flag_set(true);
+ s_hengai_bp_measure_count = 0;
+
+ #ifdef __BP_MEASURING_REAL_TIME_UI__
+ mmi_hengai_bp_measure_ui_data_init();
+
+ lv_obj_t * line = mmi_hengai_bp_measure_line_create(cont);
+ watch_ext->line = line;
+
+ lv_obj_t * label_prompt = lv_label_create(cont, NULL);
+ lv_obj_add_style(label_prompt, LV_LABEL_PART_MAIN, &lv_watch_font36);
+ lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_id(label_prompt, WATCH_TEXT_ID_IN_MEASURE_PROMPT);
+ lv_obj_align(label_prompt, NULL, LV_ALIGN_CENTER, 0, -10);
+ lv_obj_set_click(label_prompt, false);
+ watch_ext->label_prompt = label_prompt;
+ #endif
+
+ #else
+
mmi_health_measure_factory_mode_clean();
mmi_hsensor_blood_open();
mmi_hengai_bp_measure_action_time_string_set(1);
lv_label_set_text_id(label, WATCH_TEXT_ID_IN_MEASURE_PROMPT);
lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 324 + 30);
lv_obj_set_click(label, false);
+ #endif
#endif
/* start timer (1 min) */
#endif
s_hengai_bp_measure_count++;
+
+#ifdef USE_HEART_RATE_MEASURE_TO_CHECK_WEAR_STATUS
+ if(MMI_HR_MEASURE_CHECK_COUNT > s_hengai_bp_measure_count)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ if(false == mmi_health_measure_wear_state_get())
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ mmi_hsensor_close();
+ mmi_hengai_bp_measuring_flag_set(false);
+
+ lv_heng_ai_bp_calibrate_ext_t * watch_ext = (lv_heng_ai_bp_calibrate_ext_t *)mmi_heng_ai_bp_calibrate_screen_ext_get();
+ if(NULL == watch_ext)
+ return;
+
+ if(NULL != watch_ext->measure_timer_id)
+ {
+ Hal_Timer_Stop(watch_ext->measure_timer_id);
+ watch_ext->measure_timer_id = NULL;
+ }
+
+ lv_obj_clean(watch_ext->cont);
+
+ lv_obj_t * img = lv_img_create(watch_ext->cont, NULL);
+ lv_img_set_src(img, ICON_HENGAI_BP_ALERT);
+ lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 90);
+
+ lv_obj_t * label = lv_label_create(watch_ext->cont, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font36);
+ lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NOT_WEAR);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 278);
+ lv_obj_set_click(label, false);
+ }
+
+ return ;
+ }
+ else if(MMI_HR_MEASURE_CHECK_COUNT == s_hengai_bp_measure_count)
+ {
+ mmi_hsensor_close();
+
+ lv_heng_ai_bp_calibrate_ext_t * watch_ext = (lv_heng_ai_bp_calibrate_ext_t *)mmi_heng_ai_bp_calibrate_screen_ext_get();
+ if(NULL == watch_ext)
+ return;
+
+ if(false == mmi_health_measure_wear_state_get())
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ mmi_hengai_bp_measuring_flag_set(false);
+
+ if(NULL != watch_ext->measure_timer_id)
+ {
+ Hal_Timer_Stop(watch_ext->measure_timer_id);
+ watch_ext->measure_timer_id = NULL;
+ }
+
+ lv_obj_clean(watch_ext->cont);
+
+ lv_obj_t * img = lv_img_create(watch_ext->cont, NULL);
+ lv_img_set_src(img, ICON_HENGAI_BP_ALERT);
+ lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 90);
+
+ lv_obj_t * label = lv_label_create(watch_ext->cont, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font36);
+ lv_label_set_text_id(label, WATCH_TEXT_ID_DEVICE_NOT_WEAR);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 278);
+ lv_obj_set_click(label, false);
+ }
+ else
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ mmi_hsensor_blood_open();
+ mmi_hengai_bp_measure_action_time_string_set(1);
+ }
+
+ return;
+ }
+#endif
+
if(MMI_BP_MEASURE_TOTAL_COUNT < s_hengai_bp_measure_count) // stop action
{
lv_obj_align(label_1, NULL, LV_ALIGN_IN_TOP_MID, 0, 278);
lv_obj_set_click(label_1, false);
}
+ else if(false == mmi_hengai_bp_measure_check_algorithm())
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ lv_obj_t * img = lv_img_create(watch_ext->cont, NULL);
+ lv_img_set_src(img, ICON_HENGAI_BP_ALERT);
+ lv_obj_align(img, NULL, LV_ALIGN_IN_TOP_MID, 0, 90);
+
+ lv_obj_t * label_1 = lv_label_create(watch_ext->cont, NULL);
+ lv_obj_add_style(label_1, LV_LABEL_PART_MAIN, &lv_watch_font36);
+ lv_label_set_text_id(label_1, WATCH_TEXT_ID_BLOOD_PRESSURE_INIT);
+ lv_label_set_align(label_1, LV_LABEL_ALIGN_CENTER);
+ lv_obj_align(label_1, NULL, LV_ALIGN_IN_TOP_MID, 0, 278);
+ lv_obj_set_click(label_1, false);
+ }
else
{
HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ #ifdef USE_HEART_RATE_MEASURE_TO_CHECK_WEAR_STATUS
+ mmi_health_measure_factory_mode_clean();
+ mmi_hsensor_heart_open();
+ mmi_hengai_bp_measuring_flag_set(true);
+ s_hengai_bp_measure_count = 0;
+
+ #ifdef __BP_MEASURING_REAL_TIME_UI__
+ mmi_hengai_bp_measure_ui_data_init();
+
+ lv_obj_t * line = mmi_hengai_bp_measure_line_create(watch_ext->cont);
+ watch_ext->line = line;
+
+ lv_obj_t * label_prompt = lv_label_create(watch_ext->cont, NULL);
+ lv_obj_add_style(label_prompt, LV_LABEL_PART_MAIN, &lv_watch_font36);
+ lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_id(label_prompt, (label_prompt, (0 == s_hengai_bp_calibrate_times) ? WATCH_TEXT_ID_IN_CALIBRATE_PROMPT_FIRST : WATCH_TEXT_ID_IN_CALIBRATE_PROMPT_SECOND));
+ lv_obj_align(label_prompt, NULL, LV_ALIGN_CENTER, 0, -10);
+ lv_obj_set_click(label_prompt, false);
+ watch_ext->label_prompt = label_prompt;
+ #endif
+
+ #else
+
mmi_health_measure_factory_mode_clean();
mmi_hsensor_blood_open();
mmi_hengai_bp_measure_action_time_string_set(1);
#ifdef __BP_MEASURING_REAL_TIME_UI__
mmi_hengai_bp_measure_ui_data_init();
-
- mmi_hengai_bp_measure_ui_data_init();
lv_obj_t * line = mmi_hengai_bp_measure_line_create(watch_ext->cont);
watch_ext->line = line;
lv_label_set_text_id(label, WATCH_TEXT_ID_NEED_ONE_MINUTE);
lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 348);
lv_obj_set_click(label, false);
+ #endif
#endif
/* start timer (1 min) */
//lv_obj_add_protect(cont, LV_PROTECT_PRESS_LOST);
lv_obj_t * label = lv_label_create(cont, NULL);
- lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font20);
lv_label_set_text_id(label, WATCH_TEXT_ID_FALLDWON); //lv_lang_get_text(WATCH_TEXT_ID_SERVER_SEARCH_PROMPT)
+#ifdef USE_LV_WATCH_UI_466_466
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font40);
+ lv_obj_align(label, cont, LV_ALIGN_CENTER, 0, -30);
+#else
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font20);
lv_obj_align(label, cont, LV_ALIGN_CENTER, 0, 0);
+#endif
lv_obj_t * btn_cancel = lv_btn_create(cont, NULL);
+#ifdef USE_LV_WATCH_UI_466_466
+ lv_obj_set_size(btn_cancel, 140, 70);
+#else
lv_obj_set_size(btn_cancel, 100, 56);
+#endif
lv_obj_set_style_local_bg_color(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x47, 0xA6, 0xFF));
lv_obj_set_style_local_radius(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 30);
lv_obj_set_style_local_bg_color(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_PRESSED, LV_COLOR_MAKE(0x47, 0xA6, 0xFF));
lv_obj_set_style_local_radius(btn_cancel, LV_BTN_PART_MAIN, LV_STATE_PRESSED, 30);
+#ifdef USE_LV_WATCH_UI_466_466
+ lv_obj_align(btn_cancel, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 70, -60);
+#else
lv_obj_align(btn_cancel, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 10, -20);
+#endif
lv_obj_set_event_cb(btn_cancel, mmi_falldwon_event_cb);
lv_obj_t * label_cancel = lv_label_create(btn_cancel, NULL);
lv_label_set_text_id(label_cancel, WATCH_TEXT_ID_CANCEL);
+#ifdef USE_LV_WATCH_UI_466_466
+ lv_obj_add_style(label_cancel, LV_LABEL_PART_MAIN, &lv_watch_font40_black);
+#else
lv_obj_add_style(label_cancel, LV_LABEL_PART_MAIN, &lv_watch_font26_black);
+#endif
lv_obj_t * btn_ok = lv_btn_create(cont, btn_cancel);
lv_obj_set_style_local_bg_color(btn_ok, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xFF, 0x6F, 0x91));
lv_obj_set_style_local_radius(btn_ok, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 30);
lv_obj_set_style_local_bg_color(btn_ok, LV_BTN_PART_MAIN, LV_STATE_PRESSED, LV_COLOR_MAKE(0xFF, 0x6F, 0x91));
lv_obj_set_style_local_radius(btn_ok, LV_BTN_PART_MAIN, LV_STATE_PRESSED, 30);
+#ifdef USE_LV_WATCH_UI_466_466
+ lv_obj_align(btn_ok, NULL, LV_ALIGN_IN_BOTTOM_RIGHT, -70, -60);
+#else
lv_obj_align(btn_ok, NULL, LV_ALIGN_IN_BOTTOM_RIGHT, -10, -20);
+#endif
lv_obj_set_event_cb(btn_ok, mmi_falldwon_OK_event_cb);
lv_obj_t * label_ok = lv_label_create(btn_ok, label_cancel);
lv_label_set_text_id(label_ok, WATCH_TEXT_ID_OK);
{
if(lv_watch_get_activity_obj(ACT_ID_WATCH_FALLDWON)==NULL)
{
+ lv_watch_go_home();
mmi_watch_falldwon_create(NULL);
}
}
// charging
+#define MMI_CHARGING_LEVEL_1 (25)
+#define MMI_CHARGING_LEVEL_2 (50)
+#define MMI_CHARGING_LEVEL_3 (75)
+#define MMI_CHARGING_LEVEL_4 (100)
+
static void * s_watch_charge_prompt_timer = NULL;
static void mmi_watch_charging_prompt_timer_stop(void)
lv_obj_set_click(cont, false);
//lv_watch_obj_add_element(cont);
+#if 0
lv_obj_t * img = lv_img_create(cont, NULL);
lv_img_set_src(img, ((HAL_CHG_CONNECTED == (HAL_CHG_STATUS)chg_status) ? ICON_CHARGE_CONNECTED : ICON_CHARGE_REMOVED));
lv_obj_align(img, NULL, LV_ALIGN_CENTER, 0, -LV_VER_RES/10);
lv_obj_set_click(img, false);
+#else
+ uint8_t bat = Hal_Battery_Get_Status();
+ //power_off_charging_check_full(&bat);
+
+ // image 0
+ lv_obj_t * img = lv_img_create(cont, NULL);
+ lv_img_set_src(img, ICON_POWER_OFF_CHARGING_0);
+ lv_obj_align(img, NULL, LV_ALIGN_CENTER, 0, -LV_VER_RES/10);
+ lv_obj_set_click(img, false);
+ // image 1
+ if(MMI_CHARGING_LEVEL_1 < bat)
+ {
+ lv_obj_t * img_battery_1 = lv_img_create(cont, NULL);
+ lv_img_set_src(img_battery_1, ICON_POWER_OFF_CHARGING_1);
+ lv_obj_align(img_battery_1, NULL, LV_ALIGN_CENTER, 0, -LV_VER_RES/10);
+ lv_obj_set_click(img_battery_1, false);
+ }
+ // image 2
+ if(MMI_CHARGING_LEVEL_2 < bat)
+ {
+ lv_obj_t * img_battery_2 = lv_img_create(cont, NULL);
+ lv_img_set_src(img_battery_2, ICON_POWER_OFF_CHARGING_2);
+ lv_obj_align(img_battery_2, NULL, LV_ALIGN_CENTER, 0, -LV_VER_RES/10);
+ lv_obj_set_click(img_battery_2, false);
+ }
+ // image 3
+ if(MMI_CHARGING_LEVEL_3 < bat)
+ {
+ lv_obj_t * img_battery_3 = lv_img_create(cont, NULL);
+ lv_img_set_src(img_battery_3, ICON_POWER_OFF_CHARGING_3);
+ lv_obj_align(img_battery_3, NULL, LV_ALIGN_CENTER, 0, -LV_VER_RES/10);
+ lv_obj_set_click(img_battery_3, false);
+ }
+ // image 4
+ if(MMI_CHARGING_LEVEL_4 <= bat)
+ {
+ lv_obj_t * img_battery_4 = lv_img_create(cont, NULL);
+ lv_img_set_src(img_battery_4, ICON_POWER_OFF_CHARGING_4);
+ lv_obj_align(img_battery_4, NULL, LV_ALIGN_CENTER, 0, -LV_VER_RES/10);
+ lv_obj_set_click(img_battery_4, false);
+ }
+ // power image
+ if(HAL_CHG_CONNECTED == (HAL_CHG_STATUS)chg_status)
+ {
+ lv_obj_t * img_power = lv_img_create(cont, NULL);
+ lv_img_set_src(img_power, ICON_POWER_OFF_CHARGING_POWER);
+ lv_obj_align(img_power, NULL, LV_ALIGN_CENTER, 0, -LV_VER_RES/10);
+ lv_obj_set_click(img_power, false);
+ }
+#endif
lv_obj_t * label = lv_label_create(cont, NULL);
lv_label_set_text_id(label, ((HAL_CHG_CONNECTED == (HAL_CHG_STATUS)chg_status) ? WATCH_TEXT_ID_CHARGE_CONNECTED : WATCH_TEXT_ID_CHARGE_REMOVED));