"浅睡", // WATCH_TEXT_ID_LIGHT_SLEEP,
"快速眼动", // WATCH_TEXT_ID_REM_SLEEP,
"幸福值", // WATCH_TEXT_ID_HAPPINESS_VALUE,
+ "幸福值开始测试", // WATCH_TEXT_ID_HAPPINESS_START,
+ "幸福值结束测试", // WATCH_TEXT_ID_HAPPINESS_STOP,
"体验时间", // WATCH_TEXT_ID_EXPERIENCE_TIME,
"终止", // WATCH_TEXT_ID_EXPERIENCE_STOP,
"确定终止体验?", // WATCH_TEXT_ID_EXPERIENCE_STOP_Q,
"Light sleep", // WATCH_TEXT_ID_LIGHT_SLEEP,
"REM", // WATCH_TEXT_ID_REM_SLEEP,
"Happiness", // WATCH_TEXT_ID_HAPPINESS_VALUE,
+ "Happiness start", // WATCH_TEXT_ID_HAPPINESS_START,
+ "Happiness stop", // WATCH_TEXT_ID_HAPPINESS_STOP,
"Time", // WATCH_TEXT_ID_EXPERIENCE_TIME,
"Stop", // WATCH_TEXT_ID_EXPERIENCE_STOP,
"Stop the experience?", // WATCH_TEXT_ID_EXPERIENCE_STOP_Q,
|| (true == mmi_is_ACT_ID_WATCH_SEARCHING())
)
return;
+
+#ifdef MMI_PROJECT_Z5_HA_K18_NFC
+ if(true == mmi_k18_nfc_experience_screen_active())
+ {
+ return;
+ }
+#endif
mmi_msg_charging_prompt_t * msg_info = (mmi_msg_charging_prompt_t *)Hal_Mem_Alloc(sizeof(mmi_msg_charging_prompt_t));
WATCH_TEXT_ID_LIGHT_SLEEP, /* "浅睡" "Light sleep" */
WATCH_TEXT_ID_REM_SLEEP, /* "快速眼动" "REM" */
WATCH_TEXT_ID_HAPPINESS_VALUE, /* "幸福值" "Happiness" */
+ WATCH_TEXT_ID_HAPPINESS_START, /* "幸福值开始测试" "Happiness start" */
+ WATCH_TEXT_ID_HAPPINESS_STOP, /* "幸福值结束测试" "Happiness stop" */
WATCH_TEXT_ID_EXPERIENCE_TIME, /* "体验时间" "Time" */
WATCH_TEXT_ID_EXPERIENCE_STOP, /* "终止" "Stop" */
WATCH_TEXT_ID_EXPERIENCE_STOP_Q, /* "确定终止体验?" "Stop the experience?" */
ELEMENT_TYPE_BLOOD_OXYGEN, //14
ELEMENT_TYPE_USER, //15
ELEMENT_TYPE_SIGNAL, //16
+ ELEMENT_TYPE_TEMPERATURE, //17
ELEMENT_TYPE_BG_SWITCH, //15 /*except when updating all elements, always at the last*/
ELEMENT_TYPE_MAX
IMG_TYPE_SIGNAL = ELEMENT_TYPE_SIGNAL *10,
+ IMG_TYPE_TEMPERATURE = ELEMENT_TYPE_TEMPERATURE * 10, //170
+
IMG_TYPE_BG = ELEMENT_TYPE_BG_SWITCH * 10, //150
};
typedef uint8_t watch_img_type_t;
LABEL_TYPE_BLOOD_OXYGEN, //26
LABEL_TYPE_SIGNAL, //27
LABEL_TYPE_SIGNAL_REGISTER_STATE, // 28
+ LABEL_TYPE_TEMPERATURE, // 29
+ LABEL_TYPE_USER_CUSTOM, // 30
};
type == IMG_TYPE_BLOOD_OXYGEN
|| IMG_TYPE_USER_PNG == type
|| IMG_TYPE_HEART_RATE_IMAGE == type
+ || IMG_TYPE_TEMPERATURE == type
)
return true;
else
type == LABEL_TYPE_CALORIE_KCAL ||
type == LABEL_TYPE_STEP_STEPS ||
type == LABEL_TYPE_DISTANCE_KM ||
- type == LABEL_TYPE_HEART_RATE_BPM)
+ type == LABEL_TYPE_HEART_RATE_BPM
+ || LABEL_TYPE_USER_CUSTOM == type
+ )
return true;
else
return false;
app_adaptor_get_pedometer_info_req(&record);
}
if(ELEMENT_TYPE_HEART_RATE == base->element_type || ELEMENT_TYPE_SLEEP_QUALITY == base->element_type || ELEMENT_TYPE_BLOOD_OXYGEN == base->element_type
- || ELEMENT_TYPE_PRESSURE == base->element_type) {
+ || ELEMENT_TYPE_PRESSURE == base->element_type || ELEMENT_TYPE_TEMPERATURE == base->element_type) {
//app_adaptor_get_health_info_req(&health);
mmi_health_info_get(&health_info);
}
else
sprintf(infotxt, "--");
dial_create_canvas_text(infotxt, label_dsc->label_font, label_dsc->text_color, pos.x + label_dsc->text_pos.x, pos.y + label_dsc->text_pos.y);
+ break;
+ case LABEL_TYPE_TEMPERATURE:
+ if(health_info.body_value)
+ {
+ uint8_t value1 = 0, value2 = 0;
+
+ value1 = (uint8_t)health_info.body_value;
+ value2 = (uint8_t)((health_info.body_value - value1) * 10);
+
+ char * uincode_str = "2103"; // \u2103
+ char utf8_str[8] = {0};
+ uint8_t output_len = 0;
+
+ mmi_unicode_hex_str_to_utf8_str(uincode_str, strlen(uincode_str), utf8_str, &output_len);
+ sprintf(infotxt, "%d.%d %s", value1, value2, utf8_str);
+ }
+ else
+ sprintf(infotxt, "--");
+ dial_create_canvas_text(infotxt, label_dsc->label_font, label_dsc->text_color, pos.x + label_dsc->text_pos.x, pos.y + label_dsc->text_pos.y);
break;
case LABEL_TYPE_SLEEP_QUALITY:
//snprintf(infotxt, len, "%d", health.sleep);
app_adaptor_get_pedometer_info_req(&record);
}
if(ELEMENT_TYPE_HEART_RATE == base->element_type || ELEMENT_TYPE_SLEEP_QUALITY == base->element_type || ELEMENT_TYPE_BLOOD_OXYGEN == base->element_type
- || ELEMENT_TYPE_PRESSURE == base->element_type) {
+ || ELEMENT_TYPE_PRESSURE == base->element_type || ELEMENT_TYPE_TEMPERATURE == base->element_type) {
//app_adaptor_get_health_info_req(&health);
//mmi_health_info_get(&health_info);
}
#endif
#ifdef __MMI_MAIN_MENU_ONE_PAGE_STYLE__
+#ifdef MMI_PROJECT_Z5_HA_K18_NFC
+static lv_obj_t * mmi_main_menu_style_one_page_display(lv_obj_t * tab, void * btn_src, watchLangTxtId_t txtId, lv_event_cb_t event_cb)
+{
+ lv_obj_t * cont = lv_obj_get_child(tab, NULL);
+ LV_ASSERT_MEM(cont);
+ if(cont == NULL)
+ return NULL;
+
+ lv_obj_t * img_bg = lv_img_create(cont, NULL);
+ lv_img_set_src(img_bg, ICON_K18_NFC_EXPERIENCE_BG);
+ lv_obj_align(img_bg, NULL, LV_ALIGN_CENTER, 0, 0);
+ //lv_tileview_add_element(lv_obj_get_parent(tab), btn);
+
+ lv_obj_t * btn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, btn_src);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, btn_src);
+ lv_btn_set_checkable(btn, false);
+ lv_obj_set_event_cb(btn, event_cb);
+ lv_tileview_add_element(lv_obj_get_parent(tab), btn);
+ lv_obj_align(btn, cont, LV_ALIGN_CENTER, 0, -20);
+
+ lv_obj_t * label = lv_label_create(cont, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font40);
+ lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL_CIRC);
+ lv_obj_set_size(label, LV_HOR_RES / 2, 60);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_id(label, txtId);
+ lv_obj_set_click(label, false);
+ lv_obj_align(label, cont, LV_ALIGN_IN_BOTTOM_MID, 0, -70);
+
+ return btn;
+}
+#else
static lv_obj_t * mmi_main_menu_style_one_page_display(lv_obj_t * tab, void * btn_src, watchLangTxtId_t txtId, lv_event_cb_t event_cb)
{
lv_obj_t * cont = lv_obj_get_child(tab, NULL);
return btn;
}
#endif
+#endif
#ifdef __MMI_MAIN_MENU_LIST_STYLE__
static lv_obj_t * mmi_main_menu_style_list_display(lv_obj_t * tab)
#ifdef __MMI_HEALTH_MEASURE_TEMPERATURE_SUPPORT__
{{ ICON_TEMPERATURE_ONE_PAGE, WATCH_TEXT_ID_TEMPERATURE, health_temperature_create_event_cb}, NULL},
#endif
- {{ ICON_SETTING_ONE_PAGE, WATCH_TEXT_ID_SETTINGS, setting_create_event_cb}, NULL},
+
+ //{{ ICON_SETTING_ONE_PAGE, WATCH_TEXT_ID_SETTINGS, mmi_k18_nfc_experience_create_event_cb}, NULL},
};
#else
lv_style_t lv_watch_font60_black;
#endif
+#ifdef MMI_FONT60_RED_SUPPORT
+lv_style_t lv_watch_font60_red;
+#endif
+
#ifdef USE_FONT_TTF
lv_font_t lv_font_ttf_20;
lv_font_t lv_font_ttf_30;
lv_style_set_text_font(&lv_watch_font60_black, LV_STATE_DEFAULT, &lv_font_ttf_60);
#endif
+#ifdef MMI_FONT60_RED_SUPPORT
+ style_init_reset(&lv_watch_font60_red);
+ lv_style_set_text_color(&lv_watch_font60_red, LV_STATE_DEFAULT, LV_COLOR_RED);
+ lv_style_set_text_font(&lv_watch_font60_red, LV_STATE_DEFAULT, &lv_font_ttf_60);
+#endif
+
/*lv_watch_style_transp*/
style_init_reset(&lv_watch_style_transp);
lv_style_copy(&lv_watch_style_transp, &lv_style_transp);
extern lv_style_t lv_watch_font60_black;
#endif
+#ifdef MMI_FONT60_RED_SUPPORT
+extern lv_style_t lv_watch_font60_red;
+#endif
+
+
extern lv_style_t lv_watch_image;
extern lv_style_t lv_watch_image_opa1;
extern lv_style_t lv_watch_black_tight;
mmi_hengai_health_data_parse(next_buff, strlen(next_buff));
#else
- #ifdef MMI_PROJECT_Z5_HA_K18_NFC
- mmi_k18_nfc_experience_cmd_trigger(next_buff, strlen(next_buff));
#endif
+ }
+
+ return result;
+}
- #endif
+bool mmi_protocol_fzd_parse_SERVER_COMMON_MSG_DOWN(unsigned char * next_buff, unsigned int next_buff_len)
+{
+ bool result = false;
+ MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_SERVER_COMMON_MSG_DOWN;
+
+ if(NULL == next_buff || 0 == next_buff_len)
+ {
+ PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return false;
+ }
+
+ result = true;
+ mmi_protocol_fzd_send_without_data(action);
+
+ int decode_len = next_buff_len;
+ char * decode_str = NULL;
+ uint32_t output_len = 0;
+
+ decode_str = lv_mem_alloc(decode_len);
+ if(NULL == decode_str)
+ {
+ PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__);
+ return false;
+ }
+ _lv_memset_00(decode_str, decode_len);
+
+ int ret_value = mbedtls_base64_decode(decode_str, decode_len, &output_len, next_buff, next_buff_len);
+ if(0 != ret_value)
+ {
+ PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: base64 decode failed\n", __FUNCTION__, __LINE__);
+ lv_mem_free(decode_str);
+ return false;
+ }
+ PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+#ifdef MMI_PROJECT_Z5_HA_K18_NFC
+ mmi_k18_nfc_experience_trigger(decode_str, output_len);
+#endif
+
+ lv_mem_free(decode_str);
+
+ return result;
+}
+
+bool mmi_protocol_fzd_action_common_msg_up(char * data_ptr, uint32_t data_len)
+{
+ bool result = false;
+ MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_ACTION_COMMON_MSG_UP;
+ unsigned char * content_buff = NULL;
+ unsigned int content_lenth = 0;
+ int encode_len = 0;
+ char * encode_str = NULL;
+ int output_len = 0;
+
+ // base64 encode
+ encode_len = data_len * 3 / 2;
+ encode_str = lv_mem_alloc(encode_len);
+ if(NULL == encode_str)
+ {
+ PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ return false;
}
+ _lv_memset_00(encode_str, encode_len);
+ if(0 != mbedtls_base64_encode(encode_str, encode_len, &output_len, data_ptr, data_len))
+ {
+ PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: base64 encode failed\n", __FUNCTION__, __LINE__);
+ lv_mem_free(encode_str);
+ return false;
+ }
+
+ content_buff = (unsigned char *)lv_mem_alloc(output_len + 2);
+ if(NULL == content_buff)
+ {
+ PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ lv_mem_free(encode_str);
+ return false;
+ }
+ _lv_memset_00(content_buff, output_len + 2);
+ sprintf(content_buff, ",");
+ _lv_memcpy(content_buff + 1, encode_str, output_len);
+ lv_mem_free(encode_str);
+ content_lenth = strlen(content_buff);
+
+ result = mmi_protocol_fzd_send_with_data(action, content_buff, content_lenth);
+ lv_mem_free(content_buff);
return result;
}
MMI_FZD_ACTION_HENGAI_TCMS_DATA,
#endif
MMI_FZD_ACTION_TCP_HTTP,
+ MMI_FZD_SERVER_COMMON_MSG_DOWN,
+ MMI_FZD_ACTION_COMMON_MSG_UP,
MMI_FZD_ACTION_SEND_ICCID,
MMI_FZD_ACTION_SLEEP_DATA,
MMI_FZD_SERVER_PPG_TEST,
bool mmi_protocol_fzd_action_tcp_http(char * data_ptr, uint32_t data_len);
bool mmi_protocol_fzd_parse_ACTION_TCP_HTTP(unsigned char * next_buff, unsigned int next_buff_len);
+bool mmi_protocol_fzd_parse_SERVER_COMMON_MSG_DOWN(unsigned char * next_buff, unsigned int next_buff_len);
+bool mmi_protocol_fzd_action_common_msg_up(char * data_ptr, uint32_t data_len);
+
bool mmi_protocol_fzd_action_send_iccid(void);
bool mmi_protocol_fzd_action_sleep_data(char * data_ptr, uint32_t data_len);
bool mmi_protocol_fzd_parse_SERVER_PPG_TEST(unsigned char * next_buff, unsigned int next_buff_len);
{MMI_FZD_ACTION_HENGAI_TCMS_DATA, "CNDOCD"},
#endif
{MMI_FZD_ACTION_TCP_HTTP, "TCP_HTTP"},
+ {MMI_FZD_SERVER_COMMON_MSG_DOWN, "GEN_MSG_DOWN"},
+ {MMI_FZD_ACTION_COMMON_MSG_UP, "GEN_MSG_UP"},
{MMI_FZD_ACTION_SEND_ICCID, "ICCID"},
{MMI_FZD_ACTION_SLEEP_DATA, "SLEEP_DATA"},
{MMI_FZD_SERVER_PPG_TEST, "PPG"},
mmi_protocol_fzd_parse_ACTION_TCP_HTTP(next_buff, next_buff_len);
break;
+ case MMI_FZD_SERVER_COMMON_MSG_DOWN:
+ mmi_protocol_fzd_parse_SERVER_COMMON_MSG_DOWN(next_buff, next_buff_len);
+ break;
+ case MMI_FZD_ACTION_COMMON_MSG_UP:
+ break;
+
case MMI_FZD_ACTION_SEND_ICCID:
case MMI_FZD_ACTION_SLEEP_DATA:
case MMI_FZD_ACTION_PPG_DATA: