lv_objx/lv_watch_slider/lv_watch_slider.c
lv_objx/lv_watch_list/lv_watch_list.c
lv_objx/lv_watch_obj/lv_watch_obj.c
- lv_theme_watch_night.c
+ #lv_theme_watch_night.c
lv_watch_common.c
lv_watch.c
lv_apps/language/language.c
}
-static mmi_health_info_t s_health_info = {0};
-void mmi_health_info_get(mmi_health_info_t * health_info)
+static uint8_t s_health_info_init = 0;
+static nv_watch_health_info_t s_health_info = {0};
+void mmi_health_info_get(nv_watch_health_info_t * health_info)
{
+ if(0 == s_health_info_init)
+ {
+ uint32_t nv_data_length = sizeof(nv_watch_health_info_t);
+
+ if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_HEALTH_INFO, 0, nv_data_length, (uint8_t *)&s_health_info))
+ {
+ printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__);
+ }
+ s_health_info_init = 1;
+ }
+
health_info->heart_value = s_health_info.heart_value;
health_info->blood_high_value = s_health_info.blood_high_value;
health_info->blood_low_value = s_health_info.blood_low_value;
health_info->body_value = s_health_info.body_value;
}
-void mmi_health_info_set(mmi_health_info_t * health_info)
+void mmi_health_info_set(nv_watch_health_info_t * health_info)
{
s_health_info.heart_value = health_info->heart_value;
s_health_info.blood_high_value = health_info->blood_high_value;
s_health_info.blood_low_value = health_info->blood_low_value;
s_health_info.spo2_value = health_info->spo2_value;
s_health_info.body_value = health_info->body_value;
+
+ uint32_t nv_data_length = sizeof(nv_watch_health_info_t);
+
+ if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_HEALTH_INFO, 0, nv_data_length, (uint8_t *)&s_health_info))
+ {
+ printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__);
+ }
}
#endif
#define NV_SECTION_UI_SMSMSG_LEN (sizeof(nv_watch_sms_msg_t))
#define NV_SECTION_UI_GPS_AIDPOS_LEN (sizeof(nv_watch_gps_aidpos_t))
//#if __MMI_ZHSX_SUPPORT__
-//#if USE_LV_WATCH_WECHAT != 0
#define NV_SECTION_UI_WEHAT_MSG_LEN (sizeof(nv_watch_wechat_msg_info_t))
-//#endif
#define NV_SECTION_UI_HEALTH_MEASURE_LEN (sizeof(nv_watch_health_measure_timed_t))
#define NV_SECTION_UI_PROTOCOL_DATA_LEN (sizeof(nv_watch_protocol_data_t))
+#define NV_SECTION_UI_HEALTH_INFO_LEN (sizeof(nv_watch_health_info_t))
//#endif
#define NV_SECTION_LEN(sectionid) (sectionid ## _LEN)
#define NV_SECTION_UI_SMSMSG_FILE "ui_smsmsg.nv"
#define NV_SECTION_UI_GPS_AIDPOS_FILE "ui_gps_aidpos.nv"
//#if __MMI_ZHSX_SUPPORT__
-//#if USE_LV_WATCH_WECHAT != 0
#define NV_SECTION_UI_WEHAT_MSG_FILE "ui_wechat_msg.nv"
-//#endif
#define NV_SECTION_UI_HEALTH_MEASURE_FILE "ui_health_measure.nv"
#define NV_SECTION_UI_PROTOCOL_DATA_FILE "ui_protocol_data.nv"
-
+#define NV_SECTION_UI_HEALTH_INFO_FILE "ui_health_info.nv"
//#endif
#define NV_SECTION_FILE_PATH(sectionid) (sectionid ## _FILE)
//#ifdef __MMI_ZHSX_SUPPORT__
case NV_SECTION_UI_WEHAT_MSG:
- return(NV_SECTION_LEN(NV_SECTION_UI_WEHAT_MSG));
+ return (NV_SECTION_LEN(NV_SECTION_UI_WEHAT_MSG));
case NV_SECTION_UI_HEALTH_MEASURE:
- return(NV_SECTION_LEN(NV_SECTION_UI_HEALTH_MEASURE));
+ return (NV_SECTION_LEN(NV_SECTION_UI_HEALTH_MEASURE));
case NV_SECTION_UI_PROTOCOL_DATA:
- return(NV_SECTION_LEN(NV_SECTION_UI_PROTOCOL_DATA));
+ return (NV_SECTION_LEN(NV_SECTION_UI_PROTOCOL_DATA));
+ case NV_SECTION_UI_HEALTH_INFO:
+ return (NV_SECTION_LEN(NV_SECTION_UI_HEALTH_INFO));
//#endif
default:
//#ifdef __MMI_ZHSX_SUPPORT__
case NV_SECTION_UI_WEHAT_MSG:
- return(NV_SECTION_FILE_PATH(NV_SECTION_UI_WEHAT_MSG));
+ return (NV_SECTION_FILE_PATH(NV_SECTION_UI_WEHAT_MSG));
case NV_SECTION_UI_HEALTH_MEASURE:
- return(NV_SECTION_FILE_PATH(NV_SECTION_UI_HEALTH_MEASURE));
+ return (NV_SECTION_FILE_PATH(NV_SECTION_UI_HEALTH_MEASURE));
case NV_SECTION_UI_PROTOCOL_DATA:
- return(NV_SECTION_FILE_PATH(NV_SECTION_UI_PROTOCOL_DATA));
+ return (NV_SECTION_FILE_PATH(NV_SECTION_UI_PROTOCOL_DATA));
+ case NV_SECTION_UI_HEALTH_INFO:
+ return (NV_SECTION_FILE_PATH(NV_SECTION_UI_HEALTH_INFO));
//#endif
default:
nv_watch_wechat_msg_info_t * wechat_msg;
nv_watch_health_measure_timed_t * health_measure;
nv_watch_protocol_data_t * protocol_data;
+ nv_watch_health_info_t * health_info;
//#endif
switch(SectionId) {
mmi_watch_protocol_data_nv_default(protocol_data);
TempData = (char *)protocol_data;
break;
+
+ case NV_SECTION_UI_HEALTH_INFO:
+ health_info = lv_mem_alloc(SectionLen);
+ memset(health_info, 0, SectionLen);
+ TempData = (char *)health_info;
+ break;
//#endif
default:
TempData = NULL;
#ifdef __MMI_ZHSX_SUPPORT__
+#include "ui_nvm_interface.h"
+
#define MMI_WEATHER_CITY_NAME_LEN_MAX (64)
void mmi_weather_info_set(app_adaptor_weather_t * weather);
-typedef struct
-{
- uint16_t heart_value;
- uint16_t blood_high_value;
- uint16_t blood_low_value;
- uint16_t spo2_value;
- //float wrist_value;
- float body_value;
-}mmi_health_info_t;
-
-void mmi_health_info_get(mmi_health_info_t * health_info);
-void mmi_health_info_set(mmi_health_info_t * health_info);
+void mmi_health_info_get(nv_watch_health_info_t * health_info);
+void mmi_health_info_set(nv_watch_health_info_t * health_info);
#endif
/**
ACT_ID_SETTING_UPAY_MENU, /*246: alipay menu*/
#endif
+ ACT_ID_WATCH_COMMON,
#ifdef __MMI_WECHAT_SUPPORT__
ACT_ID_WECHAT_MAIN,
ACT_ID_WECHAT_RECORDING,
uint32_t weather_update_interval; // unit-second
} __packed nv_watch_protocol_data_t;
+typedef struct
+{
+ uint16_t heart_value;
+ uint16_t blood_high_value;
+ uint16_t blood_low_value;
+ uint16_t spo2_value;
+ //float wrist_value;
+ float body_value;
+} __packed nv_watch_health_info_t;
+
//#endif
NV_SECTION_UI_SMSMSG, // nv_watch_sms_msg_t
NV_SECTION_UI_GPS_AIDPOS, // nv_watch_gps_aidpos_t
//#if __MMI_ZHSX_SUPPORT__
-//#if USE_LV_WATCH_WECHAT != 0
NV_SECTION_UI_WEHAT_MSG, // nv_watch_wechat_msg_info_t
-//#endif
NV_SECTION_UI_HEALTH_MEASURE, // nv_watch_health_measure_timed_t
NV_SECTION_UI_PROTOCOL_DATA, // nv_watch_protocol_data_t
+ NV_SECTION_UI_HEALTH_INFO, // nv_watch_health_info_t
//#endif
NV_SECTION_UI_MAX_NUM
static lv_obj_t * call_log_no_log_info_create(lv_obj_t * obj)
{
lv_obj_t * label = lv_label_create(obj, NULL);
- lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font30); //&lv_watch_font20);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26); //&lv_watch_font20);
lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
lv_obj_set_click(label, false);
lv_label_set_text_id(label, WATCH_TEXT_ID_NO_CALL_LOG_INFO);
app_adaptor_weather_t weather;
app_adaptor_pedometer_record_t record;
//app_adaptor_health_info_t health;
- mmi_health_info_t health_info = {0};
+ nv_watch_health_info_t health_info = {0};
lv_point_t pos;
if(ELEMENT_TYPE_WEEK == base->element_type || ELEMENT_TYPE_DATE == base->element_type
#ifdef __MMI_ZHSX_SUPPORT__
-void mmi_watch_reset(void);
+void mmi_watch_reset(lv_obj_t * activity_obj);
#endif
/**********************
#ifdef __MMI_ZHSX_SUPPORT__
-void mmi_watch_reset(void)
+void mmi_watch_reset_prepare_destory(lv_obj_t * activity_obj)
{
- //lv_watch_go_home();
- lv_obj_t * par = lv_scr_act();
+
+}
+
+void mmi_watch_reset(lv_obj_t * activity_obj)
+{
+ printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- lv_obj_clean(par);
- lv_obj_t * label = lv_label_create(par, NULL);
- lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font20);
- lv_label_set_text_id(label, WATCH_TEXT_ID_FACTORY_RESETING);
- lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK);
- lv_obj_set_width(label, LV_HOR_RES * 2 / 3);
- lv_obj_align(label, par, LV_ALIGN_CENTER, 0, 0);
+ app_adaptor_wake_up_short_time();
+
+ if(NULL == activity_obj)
+ {
+ lv_watch_activity_ext_t activity_ext = {0};
+
+ activity_ext.actId = ACT_ID_WATCH_COMMON;
+ activity_ext.create = mmi_watch_reset;
+ activity_ext.prepare_destory = mmi_watch_reset_prepare_destory;
+
+ activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+ if(NULL == activity_obj)
+ return ;
+ }
+
+ lv_obj_t * watch_obj = lv_watch_obj_create(activity_obj);
+ if(NULL == watch_obj)
+ return ;
+
+ lv_obj_t * cont = lv_cont_create(watch_obj, NULL);
+ lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES);
+ lv_obj_align(cont, watch_obj, LV_ALIGN_IN_BOTTOM_MID, 0, 0);
+ lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+ lv_obj_set_style_local_bg_opa(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP);
+ lv_obj_set_style_local_pad_left(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 0);
+ lv_obj_set_style_local_pad_right(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 0);
+ lv_obj_set_click(cont, false);
+ lv_watch_obj_add_element(cont);
+
+ lv_obj_t * label_info = lv_label_create(cont, NULL);
+ //lv_obj_set_size(label_info, LV_HOR_RES, 30);
+ //lv_obj_set_width(label_info, LV_HOR_RES * 2 / 3);
+ lv_obj_add_style(label_info, LV_LABEL_PART_MAIN, &lv_watch_font26);
+ lv_label_set_text_id(label_info, WATCH_TEXT_ID_FACTORY_RESETING);
+ //lv_label_set_long_mode(label_info, LV_LABEL_LONG_BREAK);
+ //lv_label_set_align(label_info, LV_LABEL_ALIGN_CENTER);
+ lv_obj_align(label_info, cont, LV_ALIGN_CENTER, 0, 0);
+ lv_obj_set_click(label_info, false);
// delay reset for 50ms to ensure text displaying
lv_task_t *task_p = lv_task_create(factory_reset_handle, 50, LV_TASK_PRIO_HIGHEST, NULL);
lv_task_once(task_p);
+
+
+
+// //lv_watch_go_home();
+// //lv_obj_t * par = lv_scr_act();
+// lv_obj_t * act_obj = lv_watch_get_top_activity_obj(); //lv_watch_get_bg_activity_obj(); //lv_watch_get_top_activity_obj();
+// factoryreset_yes_btn_event_cb(act_obj, LV_EVENT_CLICKED);
}
#endif
-/*********************
- * INCLUDES
- *********************/
#include "lv_watch.h"
#ifdef __MMI_HEALTH_MEASURE_HEART_SUPPORT__
-#include <stdio.h>
-
-
lv_heart_rate_obj_ext_t * heart_rate_get_ext(void)
{
lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_HEALTH_MEASURE_HEART);
}
}
-
#endif
+
extern "C" {
#endif
-/*********************
- * INCLUDES
- *********************/
-
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
-#ifdef __MMI_ZHSX_SUPPORT__
+#include "lv_watch.h"
-//#include <stdio.h>
-#include "health_measure.h"
+#ifdef __MMI_ZHSX_SUPPORT__
static nv_watch_health_measure_timed_t s_health_measure_timed_data = {0};
mmi_protocol_action_send_heart(heart_value);
- mmi_health_info_t health_info = {0};
+ nv_watch_health_info_t health_info = {0};
mmi_health_info_get(&health_info);
health_info.heart_value = heart_value;
mmi_health_info_set(&health_info);
mmi_protocol_action_send_temperature(body_value);
- mmi_health_info_t health_info = {0};
+ nv_watch_health_info_t health_info = {0};
mmi_health_info_get(&health_info);
health_info.body_value = body_value;
mmi_health_info_set(&health_info);
mmi_protocol_action_send_blood(blood_high_value, blood_low_value);
- mmi_health_info_t health_info = {0};
+ nv_watch_health_info_t health_info = {0};
mmi_health_info_get(&health_info);
health_info.blood_high_value = blood_high_value;
health_info.blood_low_value = blood_low_value;
mmi_protocol_action_send_spo2(spo2_value);
- mmi_health_info_t health_info = {0};
+ nv_watch_health_info_t health_info = {0};
mmi_health_info_get(&health_info);
health_info.spo2_value = spo2_value;
mmi_health_info_set(&health_info);
-#ifdef __MMI_ZHSX_SUPPORT__
-
#ifndef __HEALTH_MEASURE_H__
#define __HEALTH_MEASURE_H__
extern "C" {
#endif
-/*********************
- * INCLUDES
- *********************/
-
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#include "../../../lv_ex_conf.h"
#endif
+#ifdef __MMI_ZHSX_SUPPORT__
#define __HEALTH_MEASURE_DEBUG__
#ifdef __HEALTH_MEASURE_DEBUG__
#define HEALTH_MEASURE_DEBUG_PRINTF(fmt, ...)
#endif
+
//#define __HEALTH_MEASURE_FAKE_DATA__
bool mmi_health_measure_spo2_timed_action(bool direct_trigger, uint32_t cur_time_stamp);
-#ifdef __cplusplus
-} /* extern "C" */
#endif
+#ifdef __cplusplus
+} /* extern "C" */
#endif
#endif
-/*********************
- * INCLUDES
- *********************/
#include "lv_watch.h"
#ifdef __MMI_HEALTH_MEASURE_SPO2_SUPPORT__
-#include <stdio.h>
-
-
lv_spo2_obj_ext_t * health_spo2_get_ext(void)
{
lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_HEALTH_MEASURE_SPO2);
extern "C" {
#endif
-/*********************
- * INCLUDES
- *********************/
-
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
-/*********************
- * INCLUDES
- *********************/
#include "lv_watch.h"
#ifdef __MMI_HEALTH_MEASURE_TEMPERATURE_SUPPORT__
-#include <stdio.h>
-
#if 1
lv_temperature_obj_ext_t * health_temperature_get_ext(void)
extern "C" {
#endif
-/*********************
- * INCLUDES
- *********************/
-
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
//name or number
label = lv_label_create(content, NULL);
- lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font24);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL);
lv_obj_set_width(label, lv_obj_get_width(content) - 10);
//name or number
label = lv_label_create(content, NULL);
- lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font24);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL);
lv_obj_set_width(label, lv_obj_get_width(content) - 10);
//name or number
lv_obj_t * label = lv_label_create(content, NULL);
- lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font24);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL);
lv_obj_set_width(label, lv_obj_get_width(content) - 10);
#if USE_LV_WATCH_PRIMARY_MENU != 0
-#include <stdio.h>
-
#ifdef __MMI_ZHSX_SUPPORT__
lv_obj_align(qrcode, content, LV_ALIGN_CENTER, 0, 0);
lv_obj_t * label = lv_label_create(par, NULL);
- lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font24);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
lv_label_set_text(label, imei);
lv_obj_set_click(label, false);
lv_obj_align(label, content, LV_ALIGN_OUT_BOTTOM_MID, 0, 6);
//label = lv_label_create(obj, NULL);
//lv_obj_set_width(label, lv_obj_get_width(obj) - 40);
- lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font30);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font26);
lv_label_set_text_id(label, WATCH_TEXT_ID_CONFIRM_SHUTDOWN);
lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, -40);
#ifdef __MMI_ZHSX_SUPPORT__
void mmi_watch_power_off(void)
{
+ printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ app_adaptor_wake_up_short_time();
shutdown_confirm_btn_action(NULL, LV_EVENT_CLICKED);
}
#endif
return;\r
}\r
}\r
-\r
-\r
}\r
\r
static void sms_msg_list_create(lv_obj_t * obj, lv_ll_t * sms_list)\r
lv_obj_t * srcl_cont = lv_page_get_scrl(list);\r
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(srcl_cont);\r
lv_obj_set_signal_cb(srcl_cont, lv_list_scrollable_signal);\r
+#ifdef __MMI_ZHSX_SUPPORT__\r
+ lv_obj_set_style_local_pad_inner(srcl_cont, LV_LIST_PART_BG, LV_STATE_DEFAULT, 5); //100);\r
+ lv_obj_set_style_local_pad_top(srcl_cont, LV_LIST_PART_BG, LV_STATE_DEFAULT, 5); //70);\r
+ lv_obj_set_style_local_pad_bottom(srcl_cont, LV_LIST_PART_BG, LV_STATE_DEFAULT, 5); //70);\r
+#else\r
lv_obj_set_style_local_pad_inner(srcl_cont, LV_LIST_PART_BG, LV_STATE_DEFAULT, 100);\r
lv_obj_set_style_local_pad_top(srcl_cont, LV_LIST_PART_BG, LV_STATE_DEFAULT, 70);\r
lv_obj_set_style_local_pad_bottom(srcl_cont, LV_LIST_PART_BG, LV_STATE_DEFAULT, 70);\r
+#endif\r
lv_watch_obj_add_element(srcl_cont);\r
\r
sms_msg_t * smsmsg = _lv_ll_get_head(sms_list);\r
printf("yzmin --> %s, time = %s\n", __FUNCTION__,sms_info->time);\r
printf("yzmin ----> data_len = %d, data = %s\n",sms_info->data_len,sms_info->data);\r
\r
+#ifdef __MMI_ZHSX_SUPPORT_SMS__\r
+ if(true == mmi_protocol_sms_content_parse(sms_info->data, sms_info->number))\r
+ {\r
+ printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);\r
+ return;\r
+ }\r
+#endif\r
+\r
Hal_NFFS_File_Play_Onetime(AUDIO_SETTING_AUDIO_MSG, query_current_volume(), NULL, 0);\r
Hal_Vibrator_Play_Onetime(NULL, 1000);\r
if(0 == Hal_Pm_Get_State())\r
return;\r
}\r
\r
+#ifdef __MMI_ZHSX_SUPPORT__\r
+static void mbox_sms_label(lv_sms_item_ext_t * ext)\r
+{\r
+ if(ext == NULL)\r
+ return;\r
+ \r
+ lv_sms_msg_ext_t * msg_ext = sms_msg_get_ext();\r
+ LV_ASSERT_MEM(msg_ext);\r
+ if(msg_ext->content != NULL)\r
+ {\r
+ lv_obj_t *mbox_count = lv_cont_create(msg_ext->content, NULL);\r
+ lv_obj_set_size(mbox_count, LV_HOR_RES, LV_VER_RES);\r
+ lv_cont_set_fit(mbox_count, LV_FIT_NONE);\r
+ lv_obj_set_click(mbox_count, true);\r
+ lv_obj_add_style(mbox_count, LV_CONT_PART_MAIN,&lv_watch_cont_opa2);\r
+ lv_obj_set_style_local_bg_opa(mbox_count, LV_CONT_PART_MAIN,LV_STATE_DEFAULT, LV_OPA_100);\r
+ lv_obj_set_style_local_radius(mbox_count, LV_CONT_PART_MAIN,LV_STATE_DEFAULT, 0);\r
+ lv_obj_align(mbox_count, NULL, LV_ALIGN_CENTER, 0, 0);\r
+\r
+ lv_obj_t * msg_ta = lv_textarea_create(mbox_count, NULL);\r
+ LV_ASSERT_MEM(msg_ta);\r
+ lv_obj_set_size(msg_ta, LV_HOR_RES - 15 * 2, LV_VER_RES - 20 - 15 * 2 - 40);\r
+ lv_obj_add_style(msg_ta, LV_TEXTAREA_PART_BG,&lv_watch_font26);\r
+ lv_obj_set_style_local_bg_opa(msg_ta, LV_TEXTAREA_PART_BG,LV_STATE_DEFAULT, LV_OPA_0);\r
+ lv_textarea_set_text(msg_ta,ext->smsmsg.data);\r
+ lv_textarea_set_cursor_pos(msg_ta, 0);\r
+ lv_textarea_set_cursor_hidden(msg_ta,true);\r
+ lv_textarea_set_scrollbar_mode(msg_ta,LV_SCROLLBAR_MODE_OFF);\r
+ lv_textarea_set_edge_flash(msg_ta, true);\r
+ lv_obj_align(msg_ta, mbox_count, LV_ALIGN_IN_TOP_MID, 0, 20);\r
+ lv_obj_set_click(msg_ta, false);\r
+ \r
+ lv_obj_t * close_btn = lv_btn_create(mbox_count, NULL);\r
+ lv_watch_set_free_ptr(close_btn, ext);\r
+ lv_obj_set_size(close_btn, 100, 40);\r
+ lv_obj_set_style_local_bg_color(close_btn, LV_OBJ_PART_MAIN,LV_STATE_DEFAULT,LV_COLOR_MAKE(0x55, 0x55, 0x55));\r
+ lv_obj_set_style_local_bg_opa(close_btn, LV_OBJ_PART_MAIN,LV_STATE_DEFAULT, LV_OPA_100);\r
+ lv_obj_set_style_local_radius(close_btn, LV_OBJ_PART_MAIN,LV_STATE_DEFAULT, 100);\r
+ \r
+ lv_obj_t * label = lv_label_create(close_btn, NULL);\r
+ lv_label_set_text_id(label, WATCH_TEXT_ID_BACK);\r
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN,&lv_watch_font26);\r
+ lv_obj_add_protect(close_btn, LV_PROTECT_PRESS_LOST);\r
+ lv_obj_set_event_cb(close_btn, sms_cancel_vbtn_cb);\r
+ lv_obj_align(close_btn, mbox_count, LV_ALIGN_IN_BOTTOM_MID, 0, -15);\r
+ }\r
+}\r
+#else\r
static void mbox_sms_label(lv_sms_item_ext_t * ext)\r
{\r
if(ext == NULL)\r
lv_obj_align(close_btn, mbox_count, LV_ALIGN_IN_BOTTOM_MID, 0, -12);\r
\r
}\r
-\r
}\r
+#endif\r
\r
static void sms_cancel_vbtn_cb(lv_obj_t * btn,lv_event_t e)\r
{\r
static void sms_no_msg_create(lv_obj_t * obj)\r
{\r
lv_obj_t * label = lv_label_create(obj, NULL);\r
+#ifdef __MMI_ZHSX_SUPPORT__\r
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN,&lv_watch_font26);\r
+#else\r
if(1 == lv_lang_act()) {\r
lv_obj_add_style(label, LV_LABEL_PART_MAIN,&lv_watch_font20);\r
} else {\r
lv_obj_add_style(label, LV_LABEL_PART_MAIN,&lv_watch_font14);\r
}\r
+#endif\r
lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);\r
lv_obj_set_click(label, false);\r
lv_label_set_text_id(label, WATCH_TEXT_ID_NO_VOICE_MSG);\r
#include <stdio.h>
+#ifdef __MMI_ZHSX_SUPPORT__
+
+const watch_weather_list weather_list[] = {
+ { ICON_SUNNY, WATCH_TEXT_ID_SUNNY }, /* WATCH_WEATHER_ID_SUNNY = 0, */
+ { ICON_CLOUDY, WATCH_TEXT_ID_CLOUDY }, /* WATCH_WEATHER_ID_CLOUDY, */
+ { ICON_LIGHT_RAIN, WATCH_TEXT_ID_LIGHT_RAIN }, /* WATCH_WEATHER_ID_LIGHT_RAIN, */
+ { ICON_HEAVY_RAIN, WATCH_TEXT_ID_HEAVY_RAIN }, /* WATCH_WEATHER_ID_HEAVY_RAIN, */
+ { ICON_LIGHT_SNOW, WATCH_TEXT_ID_LIGHT_SNOW }, /* WATCH_WEATHER_ID_LITTLE_SNOW, */
+ { ICON_HEAVY_SNOW, WATCH_TEXT_ID_HEAVY_SNOW }, /* WATCH_WEATHER_ID_HEAVY_SNOW, */
+ { ICON_FOG, WATCH_TEXT_ID_FOG }, /* WATCH_WEATHER_ID_FOG, */
+ { ICON_HAZE, WATCH_TEXT_ID_HAZE }, /* WATCH_WEATHER_ID_HAZE, */
+ { ICON_WEATHER_OTHERS, WATCH_TEXT_ID_OTHER_WEATHER }, /* WATCH_WEATHER_ID_OTHERS = 99, */
+ { ICON_NO_NETWORK, WATCH_TEXT_ID_NO_NETWORK }, /* WATCH_WEATHER_ID_NO_INFO = 255*/
+};
+
+static lv_obj_t * weather_content_no_info_create(lv_obj_t * par)
+{
+ lv_obj_t * content = lv_watch_cont_create(par, LV_LAYOUT_COLUMN_MID, &lv_style_transp_fit, lv_obj_get_width(par));
+
+ lv_obj_t * img = lv_img_create(content, NULL);
+ if(img == NULL)
+ return NULL;
+
+ lv_img_set_src(img, weather_list[9].img_src);
+
+ lv_obj_t * label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font30);
+ lv_label_set_text_id(label, weather_list[9].txtId);
+ lv_obj_set_click(label, false);
+
+ return(content);
+}
+
+static lv_obj_t * weather_content_create(lv_obj_t * par, app_adaptor_weather_t * weather)
+{
+ lv_obj_t * content = lv_watch_cont_create(par, LV_LAYOUT_COLUMN_MID, &lv_style_transp_fit, lv_obj_get_width(par));
+ lv_obj_t * img = lv_img_create(content, NULL);
+ int8_t index;
+
+ if(weather->weather_id >= sizeof(weather_list) / sizeof(weather_list[0]) - 1) {
+ index = 8;
+ } else {
+ index = weather->weather_id;
+ }
+
+ if(img == NULL)
+ return NULL;
+
+ lv_img_set_src(img, weather_list[index].img_src);
+
+ lv_obj_t * label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font20);
+
+ lv_label_set_text_id(label, weather_list[index].txtId);
+
+ lv_obj_set_click(label, false);
+
+ return(content);
+}
+
+static lv_obj_t * temperature_content_create(lv_obj_t * par, app_adaptor_weather_t * weather)
+{
+ char str[10] = "";
+
+ lv_obj_t * content = lv_watch_cont_create(par, LV_LAYOUT_COLUMN_LEFT, &lv_watch_style_transp, lv_obj_get_width(par) / 2);
+ lv_obj_set_base_dir(content, LV_BIDI_DIR_LTR);
+
+ lv_obj_t * label = lv_label_create(content, NULL);
+ lv_obj_set_style_local_pad_inner(content, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 0);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font40_yellow);
+ snprintf(str, 10, "%d", weather->current_temperature);
+ lv_label_set_text(label, str);
+ lv_obj_set_click(label, false);
+
+ label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font10);
+ lv_label_set_text(label, "o");
+ lv_obj_set_click(label, false);
+ lv_obj_set_style_local_pad_top(label, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, -2);
+
+ label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font40_yellow);
+ lv_label_set_text(label, "C");
+ lv_obj_set_click(label, false);
+
+
+ lv_obj_t * content1 = lv_watch_cont_create(content, LV_LAYOUT_ROW_TOP, &lv_watch_style_transp, lv_obj_get_width(par) / 2);
+ lv_obj_align(content1, label, LV_ALIGN_OUT_RIGHT_MID, 0, 0);
+ lv_obj_set_style_local_pad_inner(content1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 0);
+ label = lv_label_create(content1, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font20);
+ snprintf(str, 10, "%d-%d", weather->lowest_temperature, weather->highest_temperature);
+ lv_label_set_text(label, str);
+ lv_obj_set_click(label, false);
+
+ label = lv_label_create(content1, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font10);
+ lv_obj_set_style_local_pad_top(label, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, -2);
+ lv_label_set_text(label, "o");
+ lv_obj_set_click(label, false);
+
+ label = lv_label_create(content1, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font20);
+ lv_label_set_text(label, "C");
+ lv_obj_set_click(label, false);
+
+ return(content);
+}
+
+static lv_obj_t * detail_content_create(lv_obj_t * par, app_adaptor_weather_t * weather)
+{
+ lv_obj_t * content = lv_watch_cont_create(par, LV_LAYOUT_COLUMN_MID, &lv_watch_style_transp, lv_obj_get_width(par));
+ lv_obj_set_base_dir(content, LV_BIDI_DIR_LTR);
+ lv_cont_set_layout(content, LV_LAYOUT_OFF);
+
+ lv_obj_t * label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font30);
+ if(0 != strlen(weather->city))
+ lv_label_set_text(label, weather->city);
+ else
+ lv_label_set_text(label, "");
+
+ lv_obj_set_click(label, false);
+
+ return(content);
+}
+
+void weather_update(lv_obj_t * cont)
+{
+ app_adaptor_weather_t weather_info = {};
+ app_adaptor_get_weather_req(&weather_info);
+
+ lv_watch_png_cache_all_free();
+
+ lv_weather_ext_t * weather_ext = (lv_weather_ext_t *)lv_obj_get_ext_attr(cont);
+ if(weather_ext->content1 != NULL) {
+ lv_obj_del(weather_ext->content1);
+ weather_ext->content1 = NULL;
+ }
+
+ if(weather_ext->content2 != NULL) {
+ lv_obj_del(weather_ext->content2);
+ weather_ext->content2 = NULL;
+ }
+
+ if(weather_ext->content3 != NULL) {
+ lv_obj_del(weather_ext->content3);
+ weather_ext->content3 = NULL;
+ }
+
+ if(0 == strlen(weather_info.city))
+ {
+ weather_ext->content1 = weather_content_no_info_create(cont);
+ lv_obj_align(weather_ext->content1, cont, LV_ALIGN_IN_TOP_MID, 0, 20);
+ }
+ else
+ {
+ weather_ext->content1 = weather_content_create(cont, &weather_info);
+ lv_obj_align(weather_ext->content1, cont, LV_ALIGN_IN_TOP_MID, 0, 20);
+
+ weather_ext->content2 = temperature_content_create(cont, &weather_info);
+ lv_obj_align(weather_ext->content2, weather_ext->content1, LV_ALIGN_OUT_BOTTOM_LEFT, 20, 10);
+
+ weather_ext->content3 = detail_content_create(cont, &weather_info);
+ lv_obj_align(weather_ext->content3, weather_ext->content2, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
+ }
+}
+
+lv_obj_t * weather_create(lv_obj_t * tileview, uint16_t id)
+{
+ lv_obj_t * tab;
+ if(id == 0xFF) {
+ tab = tileview;
+ } else {
+ tab = launcher_tileview_add_tile(tileview, id);
+
+ LV_ASSERT_MEM(tab);
+ if(tab == NULL) {
+ return(NULL);
+ }
+ }
+
+ // containt for weather
+ lv_obj_t * weather_cont = lv_cont_create(tab, NULL);
+ lv_weather_ext_t * weather_ext = lv_obj_allocate_ext_attr(weather_cont, sizeof(lv_weather_ext_t));
+ lv_obj_set_click(weather_cont, false);
+ lv_obj_set_size(weather_cont, lv_obj_get_width(tab), lv_obj_get_height(tab));
+ lv_obj_add_style(weather_cont, LV_CONT_PART_MAIN, &lv_watch_style_transp);
+ weather_ext->content1 = NULL;
+ weather_ext->content2 = NULL;
+ weather_ext->content3 = NULL;
+
+ weather_update(weather_cont);
+
+ return(tab);
+}
+
+#else
+
/*********************
* DEFINES
*********************/
return(content);
} /* detail_content_create */
+#endif
#endif /*USE_LV_WATCH_WEATHER*/
extern "C" {
#endif
-
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_watch_conf.h"
{
uint32_t msg_item_info_size = sizeof(nv_watch_wechat_msg_item_info_t);
+ WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
if(NV_WATCH_WECHAT_NUM_MAX <= s_wechat_msg_info->msg_count)
{
lv_fs_remove(s_wechat_msg_info->msg_item[0].msg_data_full_file_name);
}
else
{
+ WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: errno=%d,file_size=%d\n", __FUNCTION__, __LINE__, res, file_size);
+
if(true == mmi_protocol_action_send_talk(file_buf, file_size))
{
wechat_msg_info_new_item_add(&s_wechat_msg_item_info);
{
lv_wechat_msg_sending_ext_t * sending_ext = (lv_wechat_msg_sending_ext_t *)para;
+ WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
if(NULL != sending_ext->result_timer_id)
{
Hal_Timer_Stop(sending_ext->result_timer_id);
{
lv_wechat_msg_sending_ext_t * sending_ext = (lv_wechat_msg_sending_ext_t *)para;
+ WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
if(NULL != sending_ext->sending_timer_id)
{
Hal_Timer_Stop(sending_ext->sending_timer_id);
activity_ext.create = (lv_watch_activity_create_f_t)wechat_msg_sending_screen_create;
activity_ext.prepare_destory = wechat_msg_sending_screen_prepare_destory;
activity_obj = lv_watch_creat_activity_obj(&activity_ext);
- LV_ASSERT_MEM(activity_obj);
+ if(NULL == activity_obj)
+ return NULL;
}
lv_obj_t * obj = lv_watch_obj_create(activity_obj);
- LV_ASSERT_MEM(obj);
-
+ if(NULL == obj)
+ return NULL;
lv_wechat_msg_sending_ext_t * sending_ext = (lv_wechat_msg_sending_ext_t *)lv_obj_allocate_ext_attr(obj, sizeof(lv_wechat_msg_sending_ext_t));
- LV_ASSERT_MEM(sending_ext);
+ if(NULL == sending_ext)
+ return NULL;
sending_ext->send_result = wechat_msg_send_to_server();
sending_ext->sending_timer_id = Hal_Timer_Start(1000 * 3, wechat_msg_sending_screen_timeout, sending_ext, FALSE);
WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
return;
}
- WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- //wechat_msg_same_priority_task_end();
}
else if(AUDIO_CTRL_PRIORITY_5 > priority)
{
s_wechat_play_anim_count = 0;
lv_obj_t * label_warning = lv_label_create(cont, NULL);
- lv_obj_set_style_local_text_font(label_warning, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_THEME_WATCH_NIGHT_FONT_SMALL);
- lv_obj_set_style_local_text_color(label_warning, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED);
+ //lv_obj_set_style_local_text_font(label_warning, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_THEME_WATCH_NIGHT_FONT_SMALL);
+ //lv_obj_set_style_local_text_color(label_warning, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED);
+ lv_obj_add_style(label_warning, LV_LABEL_PART_MAIN, &lv_watch_font26_black);
//lv_label_set_long_mode(label_warning, LV_LABEL_LONG_BREAK);
//lv_obj_set_width(label_warning, lv_obj_get_width(obj) * 2 / 3);
lv_label_set_text_id(label_warning, WATCH_TEXT_ID_SLIDE_UP_WARNING);
{
lv_coord_t point_y = indev->proc.types.pointer.last_point.y;
lv_coord_t img_record_top = obj->coords.y1;
- if(point_y < (img_record_top - 20))
+ if(30 < img_record_top - point_y) // (point_y < (img_record_top - 20))
{
/*last point is above img, consider as sliding up and cancel recording*/
WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: indev_y=%d, img_y=%d\n", __FUNCTION__, __LINE__, point_y, img_record_top);
WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
return;
}
-
- WECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- //wechat_msg_same_priority_task_end();
}
else if(AUDIO_CTRL_PRIORITY_5 > priority)
{
//create no msg label
ext->label_no_msg = lv_label_create(cont, NULL);
- lv_obj_add_style(ext->label_no_msg, LV_LABEL_PART_MAIN, &lv_watch_font30_black);
+ lv_obj_add_style(ext->label_no_msg, LV_LABEL_PART_MAIN, &lv_watch_font26_black);
lv_label_set_text_id(ext->label_no_msg, WATCH_TEXT_ID_NO_VOICE_MSG);
//lv_label_set_align(ext->label_no_msg, LV_LABEL_ALIGN_CENTER);
lv_obj_align(ext->label_no_msg, cont, LV_ALIGN_CENTER, 0, -10);
lv_obj_set_width(list, lv_obj_get_width(content));
lv_coord_t height = lv_obj_get_height(content)
- lv_obj_get_height(label_cont)
- - pad_ver * 2;
+ ; //- pad_ver * 2;
lv_obj_set_height(list, height);
return obj;
lv_label_set_long_mode(label, LV_LABEL_LONG_EXPAND);
//set text id of btn label, it will update language when language changed
lv_label_set_text_id(label, txtId);
+#ifdef __MMI_ZHSX_SUPPORT__
+ //lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font26);
+#endif
return btn;
}
LV_FONT_DECLARE(lv_font_ttf_24)
LV_FONT_DECLARE(lv_font_ttf_26)
LV_FONT_DECLARE(lv_font_ttf_28)
+#define LV_THEME_WATCH_NIGHT_FONT_22 &lv_font_ttf_22
+#define LV_THEME_WATCH_NIGHT_FONT_24 &lv_font_ttf_24
+#define LV_THEME_WATCH_NIGHT_FONT_26 &lv_font_ttf_26
+#define LV_THEME_WATCH_NIGHT_FONT_28 &lv_font_ttf_28
#endif
#define LV_THEME_WATCH_NIGHT_FONT_20 &lv_font_ttf_20
#define LV_THEME_WATCH_NIGHT_FONT_30 &lv_font_ttf_30
#define LV_THEME_WATCH_NIGHT_COLOR_SECONDARY LV_COLOR_GRAY
#define LV_THEME_WATCH_NIGHT_FLAG 0
+#if 0 //def __MMI_ZHSX_SUPPORT__
+#define LV_THEME_WATCH_NIGHT_FONT_SMALL LV_THEME_WATCH_NIGHT_FONT_30
+#define LV_THEME_WATCH_NIGHT_FONT_NORMAL LV_THEME_WATCH_NIGHT_FONT_30
+#define LV_THEME_WATCH_NIGHT_FONT_SUBTITLE LV_THEME_WATCH_NIGHT_FONT_30
+#define LV_THEME_WATCH_NIGHT_FONT_TITLE LV_THEME_WATCH_NIGHT_FONT_30
+#define LV_THEME_WATCH_NIGHT_FONT_BIG LV_THEME_WATCH_NIGHT_FONT_30
+#else
#define LV_THEME_WATCH_NIGHT_FONT_SMALL LV_THEME_WATCH_NIGHT_FONT_20
#define LV_THEME_WATCH_NIGHT_FONT_NORMAL LV_THEME_WATCH_NIGHT_FONT_20
#define LV_THEME_WATCH_NIGHT_FONT_SUBTITLE LV_THEME_WATCH_NIGHT_FONT_20
#define LV_THEME_WATCH_NIGHT_FONT_TITLE LV_THEME_WATCH_NIGHT_FONT_20
#define LV_THEME_WATCH_NIGHT_FONT_BIG LV_THEME_WATCH_NIGHT_FONT_30
+#endif
extern lv_style_t lv_style_pretty;
extern lv_style_t lv_style_transp;
--- /dev/null
+
+
+
+#ifndef __MMI_CUSTOMER_DEFAULT_H__
+#define __MMI_CUSTOMER_DEFAULT_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif //__cplusplus
+
+#ifdef LV_CONF_INCLUDE_SIMPLE
+#include "lvgl.h"
+#include "lv_watch_conf.h"
+#else
+#include "../../../lvgl/lvgl.h"
+#include "../../../lv_watch_conf.h"
+#endif
+
+#ifdef __MMI_ZHSX_SUPPORT__
+
+//server ip
+#ifdef MMI_CUSTOMER_IP_ADDRESS
+#define MMI_PROTOCOL_IP_ADDRESS_DEFAULT MMI_CUSTOMER_IP_ADDRESS
+#else
+#define MMI_PROTOCOL_IP_ADDRESS_DEFAULT "api.xcloudtech.com"
+#endif
+
+#ifdef MMI_CUSTOMER_IP_PORT
+#define MMI_PROTOCOL_IP_PORT_DEFAULT MMI_CUSTOMER_IP_PORT
+#else
+#define MMI_PROTOCOL_IP_PORT_DEFAULT (9000)
+#endif
+
+
+#ifdef MMI_CUSTOMER_HEARTBEAT_ACTION_INTERVAL
+#define MMI_PROTOCOL_HEARTBEAT_ACTION_INTERVAL MMI_CUSTOMER_HEARTBEAT_ACTION_INTERVAL
+#else
+#define MMI_PROTOCOL_HEARTBEAT_ACTION_INTERVAL (60 * 5) // unit:s
+#endif
+
+#ifdef MMI_CUSTOMER_LOCATION_UPLOAD_INTERVAL
+#define MMI_PROTOCOL_LOCATION_UPLOAD_INTERVAL MMI_CUSTOMER_LOCATION_UPLOAD_INTERVAL
+#else
+#define MMI_PROTOCOL_LOCATION_UPLOAD_INTERVAL (60 * 20) // unit:s
+#endif
+
+#ifdef MMI_CUSTOMER_WEATHER_UPDATE_INTERVAL
+#define MMI_PROTOCOL_WEATHER_UPDATE_INTERVAL MMI_CUSTOMER_WEATHER_UPDATE_INTERVAL
+#else
+#define MMI_PROTOCOL_WEATHER_UPDATE_INTERVAL (60 * 60 * 6) // unit:s
+#endif
+
+
+//health measure process
+#ifdef MMI_CUSTOMER_MEASURE_HEART_DURATION
+#define MMI_HEALTH_MEASURE_HEART_DURATION MMI_CUSTOMER_MEASURE_HEART_DURATION
+#else
+#define MMI_HEALTH_MEASURE_HEART_DURATION (44 * 1000) // unit:ms
+#endif
+
+#ifdef MMI_CUSTOMER_MEASURE_TEMPERATURE_DURATION
+#define MMI_HEALTH_MEASURE_TEMPERATURE_DURATION MMI_CUSTOMER_MEASURE_TEMPERATURE_DURATION
+#else
+#define MMI_HEALTH_MEASURE_TEMPERATURE_DURATION (24 * 1000) // unit:ms
+#endif
+
+#ifdef MMI_CUSTOMER_MEASURE_BLOOD_DURATION
+#define MMI_HEALTH_MEASURE_BLOOD_DURATION MMI_CUSTOMER_MEASURE_BLOOD_DURATION
+#else
+#define MMI_HEALTH_MEASURE_BLOOD_DURATION (34 * 1000) // unit:ms
+#endif
+
+#ifdef MMI_CUSTOMER_MEASURE_SPO2_DURATION
+#define MMI_HEALTH_MEASURE_SPO2_DURATION MMI_CUSTOMER_MEASURE_SPO2_DURATION
+#else
+#define MMI_HEALTH_MEASURE_SPO2_DURATION (34 * 1000) // unit:ms
+#endif
+
+
+//health measure timed
+#ifdef MMI_CUSTOMER_HEART_TIMED_FLAG
+#define MMI_HEALTH_HEART_TIMED_FLAG MMI_CUSTOMER_HEART_TIMED_FLAG
+#else
+#define MMI_HEALTH_HEART_TIMED_FLAG false
+#endif
+
+#ifdef MMI_CUSTOMER_HEART_TIMED_INTERVAL
+#define MMI_HEALTH_HEART_TIMED_INTERVAL MMI_CUSTOMER_HEART_TIMED_INTERVAL
+#else
+#define MMI_HEALTH_HEART_TIMED_INTERVAL (10 * 60) // unit:s
+#endif
+
+#ifdef MMI_CUSTOMER_TEMPERATURE_TIMED_FLAG
+#define MMI_HEALTH_TEMPERATURE_TIMED_FLAG MMI_CUSTOMER_TEMPERATURE_TIMED_FLAG
+#else
+#define MMI_HEALTH_TEMPERATURE_TIMED_FLAG false
+#endif
+
+#ifdef MMI_CUSTOMER_TEMPERATURE_TIMED_INTERVAL
+#define MMI_HEALTH_TEMPERATURE_TIMED_INTERVAL MMI_CUSTOMER_TEMPERATURE_TIMED_INTERVAL
+#else
+#define MMI_HEALTH_TEMPERATURE_TIMED_INTERVAL (10 * 60) // unit:s
+#endif
+
+#ifdef MMI_CUSTOMER_BLOOD_TIMED_FLAG
+#define MMI_HEALTH_BLOOD_TIMED_FLAG MMI_CUSTOMER_BLOOD_TIMED_FLAG
+#else
+#define MMI_HEALTH_BLOOD_TIMED_FLAG false
+#endif
+
+#ifdef MMI_CUSTOMER_BLOOD_TIMED_INTERVAL
+#define MMI_HEALTH_BLOOD_TIMED_INTERVAL MMI_CUSTOMER_BLOOD_TIMED_INTERVAL
+#else
+#define MMI_HEALTH_BLOOD_TIMED_INTERVAL (10 * 60) // unit:s
+#endif
+
+#ifdef MMI_CUSTOMER_SPO2_TIMED_FLAG
+#define MMI_HEALTH_SPO2_TIMED_FLAG MMI_CUSTOMER_SPO2_TIMED_FLAG
+#else
+#define MMI_HEALTH_SPO2_TIMED_FLAG false
+#endif
+
+#ifdef MMI_CUSTOMER_SPO2_TIMED_INTERVAL
+#define MMI_HEALTH_SPO2_TIMED_INTERVAL MMI_CUSTOMER_SPO2_TIMED_INTERVAL
+#else
+#define MMI_HEALTH_SPO2_TIMED_INTERVAL (10 * 60) // unit:s
+#endif
+
+
+
+
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif //__cplusplus
+
+#endif
+
+
-#ifdef __MMI_ZHSX_SUPPORT__
-
#ifndef __MMI_LOCATION_H__
#define __MMI_LOCATION_H__
{
#endif //__cplusplus
+#ifdef LV_CONF_INCLUDE_SIMPLE
+#include "lvgl.h"
+#include "lv_watch_conf.h"
+#else
+#include "../../../lvgl/lvgl.h"
+#include "../../../lv_watch_conf.h"
+#endif
-#include "lv_watch.h"
-
+#ifdef __MMI_ZHSX_SUPPORT__
typedef void (*FUNC_CB)(int);
typedef struct
{
- //gps
MMI_WATCH_GPS_DATA_T gps_data;
-
- //cell
MMI_WATCH_CELL_DATA_T cell_data;
-
- //wifi
app_adp_wifi_ap_list wifi_data;
} MMI_WATCH_LOCATION_DATA_T;
+#endif
+
#ifdef __cplusplus
} /* extern "C" */
#endif //__cplusplus
#endif
-#endif
-
#ifdef __MMI_ZHSX_SUPPORT__
-#include "../modem/mmi_modem_tcp/mmi_modem_tcp_net.h"
-
-
static nv_watch_protocol_data_t s_watch_protocol_data = {0};
static bool s_watch_bind_state = false;
static void mmi_protocol_watch_timed_mission_timer_cb(uint32_t para);
static void mmi_protocol_watch_heartbeat_timer_cb(uint32_t para);
+bool mmi_protocol_action_location(void);
bool mmi_watch_tcp_connect_state_get(void)
{
PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: nv default\n", __FUNCTION__, __LINE__);
- data->watch_host_name = MMI_PROTOCOL_IP_ADDRESS_DEFAULT;
+ strcpy(data->watch_host_name, MMI_PROTOCOL_IP_ADDRESS_DEFAULT);
data->watch_host_port = MMI_PROTOCOL_IP_PORT_DEFAULT;
data->heartbeat_action_interval = MMI_PROTOCOL_HEARTBEAT_ACTION_INTERVAL;
data->location_upload_interval = MMI_PROTOCOL_LOCATION_UPLOAD_INTERVAL;
-#ifdef __MMI_ZHSX_SUPPORT__
-
#ifndef __MMI_PROTOCOL_API_H__
#define __MMI_PROTOCOL_API_H__
{
#endif //__cplusplus
+#ifdef LV_CONF_INCLUDE_SIMPLE
+#include "lvgl.h"
+#include "lv_watch_conf.h"
+#else
+#include "../../../lvgl/lvgl.h"
+#include "../../../lv_watch_conf.h"
+#endif
+
+#ifdef __MMI_ZHSX_SUPPORT__
+
#define __MMI_PROTOCOL_DEBUG__
#ifdef __MMI_PROTOCOL_DEBUG__
+#endif
+
#ifdef __cplusplus
} /* extern "C" */
#endif //__cplusplus
#endif
-#endif
-
{
mmi_protocol_watch_bind_state_set(false);
uos_sleep(10);
- mmi_watch_reset();
+ mmi_watch_reset(NULL);
}
}
else
result = true;
mmi_protocol_fzd_respond_without_data(action);
uos_sleep(10);
- mmi_watch_reset();
+ mmi_watch_reset(NULL);
return result;
}
result = true;
mmi_protocol_fzd_respond_without_data(action);
uos_sleep(10);
- app_adaptor_wake_up_short_time();
mmi_watch_power_off();
return result;
return false;
}
- memory_size= FZD_MAX(data_buff_len * ENCRYPT_EXT_COEF/100, FZD_MIN(ENCRYPT_EXT_MIN, data_buff_len));
+ memory_size = data_buff_len;
+ memory_size += FZD_MAX(data_buff_len * ENCRYPT_EXT_COEF/100, FZD_MIN(ENCRYPT_EXT_MIN, data_buff_len));
content_buff = (unsigned char *)lv_mem_alloc(memory_size);
if(NULL == content_buff)
{
}
_lv_memset_00(content_buff, memory_size);
+ PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory_size=%d\n", __FUNCTION__, __LINE__, memory_size);
+
content_lenth = mmi_protocol_fzd_voice_data_encrypt(data_buff, data_buff_len, content_buff);
+
+ PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: content_lenth=%d\n", __FUNCTION__, __LINE__, content_lenth);
result = mmi_protocol_fzd_send_content_construct(action, content_buff, content_lenth);
lv_mem_free(content_buff);
-#ifdef __MMI_ZHSX_SUPPORT_FZD__
-
#ifndef __MMI_PROTOCOL_FZD_H__
#define __MMI_PROTOCOL_FZD_H__
{
#endif //__cplusplus
+#ifdef LV_CONF_INCLUDE_SIMPLE
+#include "lvgl.h"
+#include "lv_watch_conf.h"
+#else
+#include "../../../lvgl/lvgl.h"
+#include "../../../lv_watch_conf.h"
+#endif
-#include "lv_watch.h"
-
-
-
-//Server address and port
-//#define HOST_NAME "api.xcloudtech.com"
-//#define HOST_PORT (9000)
+#ifdef __MMI_ZHSX_SUPPORT_FZD__
/****************************************
-Êý¾Ý¸ñʽ : [MD5_DATA³§ÉÌ*É豸ID*ÄÚÈݳ¤¶È*ÄÚÈݱêʶ,ÄÚÈÝÊý¾Ý]
+FORMAT: [MD5_DATADEVICE_NAME*DEVICE_ID*CONTENT_LENGTH*CONTENT_KEY,CONTENT_VALUE]
****************************************/
#define MMI_PROTOCOL_FZD_DEVICE_ID_LEN (15)
#define MMI_PROTOCOL_FZD_CONTENT_LEN_LEN (4)
-// total:[MD5_DATADEVICE_NAME*DEVICE_ID*CONTENT_LEN*ACTION_STRING,ACTION_CONTENT]
-// send fixed:[MD5_DATADEVICE_NAME*DEVICE_ID*CONTENT_LEN*]
+// send fixed:[MD5_DATADEVICE_NAME*DEVICE_ID*CONTENT_LENGTH*]
#define MMI_PROTOCOL_FZD_SEND_FIXED_CONTENT_LEN (MMI_PROTOCOL_FZD_BRACKET_LEN * 2 + MMI_PROTOCOL_FZD_MD5_DATA_LEN + MMI_PROTOCOL_FZD_DEVICE_NAME_LEN \
+ MMI_PROTOCOL_FZD_SEPARATOR_LEN * 3 + MMI_PROTOCOL_FZD_DEVICE_ID_LEN + MMI_PROTOCOL_FZD_CONTENT_LEN_LEN)
-// receive fixed:[DEVICE_NAME*DEVICE_ID*CONTENT_LEN*]
+// receive fixed:[DEVICE_NAME*DEVICE_ID*CONTENT_LENGTH*]
#define MMI_PROTOCOL_FZD_RECEIVE_FIXED_CONTENT_LEN (MMI_PROTOCOL_FZD_BRACKET_LEN * 2 + MMI_PROTOCOL_FZD_DEVICE_NAME_LEN \
+ MMI_PROTOCOL_FZD_SEPARATOR_LEN * 3 + MMI_PROTOCOL_FZD_DEVICE_ID_LEN + MMI_PROTOCOL_FZD_CONTENT_LEN_LEN)
+#endif
+
#ifdef __cplusplus
} /* extern "C" */
#endif //__cplusplus
#endif
-#endif
-
--- /dev/null
+
+
+
+#include "lv_watch.h"
+
+#ifdef __MMI_ZHSX_SUPPORT_SMS__
+
+
+static MMI_PROTOCOL_SMS_PARSE_STRUCT s_sms_parse_info[] =
+{
+ {"SETIP:", 6, mmi_protocol_sms_parse_set_ip},
+ //{"setip:", 6, mmi_protocol_sms_parse_set_ip},
+ {"POWEROFF", 8, mmi_protocol_sms_parse_power_off},
+ {"SETFACTORY", 10, mmi_protocol_sms_parse_set_factory},
+
+
+ /*******add before this line*******/
+ {"", 0, NULL}
+};
+
+
+//SETIP:api.xcloudtech.com:9000
+bool mmi_protocol_sms_parse_set_ip(char * data, char * number)
+{
+ SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: num=%s\n", __FUNCTION__, __LINE__, number);
+ SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, data);
+
+ if(0 == strlen(data))
+ {
+ SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return false;
+ }
+
+ char ip_address[NV_WATCH_HOST_NAME_LEN_MAX] = {0};
+ int ip_port = 0;
+ uint8_t i = 0;
+
+ while(':' != data[i])
+ {
+ ip_address[i] = data[i];
+ i++;
+ }
+ i++;
+ ip_port = atoi(data + i);
+
+ //
+ //reply sms
+ //
+
+ mmi_watch_host_name_set(ip_address);
+ mmi_watch_host_port_set(ip_port);
+
+ send_task_msg_tcp_reconnect(NULL);
+
+ return true;
+}
+
+//POWEROFF
+bool mmi_protocol_sms_parse_power_off(char * data, char * number)
+{
+ SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: num=%s\n", __FUNCTION__, __LINE__, number);
+ SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, data);
+
+ if(0 != strlen(data))
+ {
+ SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return false;
+ }
+
+ //
+ //reply sms
+ //
+
+ uos_sleep(10);
+ mmi_watch_power_off();
+
+ return true;
+}
+
+//SETFACTORY
+bool mmi_protocol_sms_parse_set_factory(char * data, char * number)
+{
+ SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: num=%s\n", __FUNCTION__, __LINE__, number);
+ SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, data);
+
+ if(0 != strlen(data))
+ {
+ SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return false;
+ }
+
+ //
+ //reply sms
+ //
+
+ uos_sleep(10);
+ mmi_watch_reset(NULL);
+
+ return true;
+}
+
+
+
+
+bool mmi_protocol_sms_content_parse(char * sms_content, char * sms_send_number)
+{
+ bool result = false;
+
+ SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: num=%s\n", __FUNCTION__, __LINE__, sms_send_number);
+ SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, sms_content);
+
+ if(NULL != sms_content)
+ {
+ int content_len = 0, num_len = 0;
+ char data[NV_SMS_MAX_DATA_LEN] = {0};
+ char number[NV_CONTACTS_MAX_NUMBER_LEN] = {0};
+ uint8_t i = 0;
+
+ content_len = strlen(sms_content);
+ if(NV_SMS_MAX_DATA_LEN <= content_len)
+ content_len = NV_SMS_MAX_DATA_LEN - 1;
+ _lv_memcpy(data, sms_content, content_len);
+
+ num_len = strlen(sms_send_number);
+ if(NV_CONTACTS_MAX_NUMBER_LEN <= content_len)
+ num_len = NV_CONTACTS_MAX_NUMBER_LEN - 1;
+ _lv_memcpy(number, sms_send_number, num_len);
+
+ while(0 != s_sms_parse_info[i].str_len)
+ {
+ if(content_len < s_sms_parse_info[i].str_len)
+ {
+ SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ }
+ else if(0 == strncmp(s_sms_parse_info[i].fixed_str, data, s_sms_parse_info[i].str_len))
+ {
+ SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ if(NULL != s_sms_parse_info[i].parse_cb)
+ {
+ result = s_sms_parse_info[i].parse_cb(data + s_sms_parse_info[i].str_len, number);
+ SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: result=%d\n", __FUNCTION__, __LINE__, result);
+ break;
+ }
+ }
+ i++;
+ }
+ }
+
+ return result;
+}
+
+#endif
+
+
--- /dev/null
+
+
+
+#ifndef __MMI_PROTOCOL_SMS_H__
+#define __MMI_PROTOCOL_SMS_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif //__cplusplus
+
+#ifdef LV_CONF_INCLUDE_SIMPLE
+#include "lvgl.h"
+#include "lv_watch_conf.h"
+#else
+#include "../../../lvgl/lvgl.h"
+#include "../../../lv_watch_conf.h"
+#endif
+
+#ifdef __MMI_ZHSX_SUPPORT_SMS__
+
+#define __MMI_PROTOCOL_SMS_DEBUG__
+#ifdef __MMI_PROTOCOL_SMS_DEBUG__
+#define SMS_DEBUG_PRINTF(fmt, ...) printf("[SMS]"fmt, ##__VA_ARGS__)
+#else
+#define SMS_DEBUG_PRINTF(fmt, ...)
+#endif
+
+
+typedef bool (* SMS_PARSE_CB)(char *, char *);
+
+typedef struct
+{
+ const char * fixed_str;
+ int str_len;
+ SMS_PARSE_CB parse_cb;
+} MMI_PROTOCOL_SMS_PARSE_STRUCT;
+
+
+bool mmi_protocol_sms_content_parse(char * sms_content, char * sms_send_number);
+bool mmi_protocol_sms_parse_set_ip(char * data, char * number);
+bool mmi_protocol_sms_parse_power_off(char * data, char * number);
+bool mmi_protocol_sms_parse_set_factory(char * data, char * number);
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif //__cplusplus
+
+#endif
+
+#endif
+
+
--- /dev/null
+
+
+
+#include "lv_watch.h"
+
+#ifdef __MMI_ZHSX_SUPPORT__
+
+void mmi_float_to_str(double float_num, uint8_t int_num, char * data_str)
+{
+ uint8_t i = 0;
+ uint32_t high_part = 0;
+ double low_part = 0.0;
+ char high_part_str[16] = {0}, low_part_str[16] = {0};
+
+ high_part = (int)float_num;
+ sprintf(high_part_str, "%d", high_part);
+
+ low_part = float_num - high_part;
+ for(i = 0; i < int_num; i++)
+ {
+ uint32_t temp_high = 0;
+
+ low_part = low_part * 10;
+ temp_high = (int)low_part;
+ low_part -= temp_high;
+ low_part_str[i] = '0' + temp_high;
+ }
+ low_part_str[i] = '\0';
+
+ sprintf(data_str, "%s.%s", high_part_str, low_part_str);
+}
+
+signed char mmi_char_to_upper(signed char c)
+{
+ if ( c >= 'a' && c <= 'z' )
+ {
+ c = c - 'a' + 'A';
+ }
+
+ return c;
+}
+
+void mmi_str_to_upper(signed char *str, signed int len)
+{
+ signed int i = 0;
+
+ for(i = 0; i < len; i++)
+ {
+ str[i] = mmi_char_to_upper(str[i]);
+ }
+}
+
+signed int mmi_hex_string_to_number(signed char* hex_str, unsigned char hex_str_len)
+{
+ int int_value = 0;
+ uint8_t i = 0, t_value = 0;
+ char t_char = 0;
+
+ if(NULL == hex_str || 0 == hex_str_len)
+ return 0;
+
+ for(i = 0; i < hex_str_len; i++)
+ {
+ t_char = hex_str[i];
+ if('a' <= t_char && 'z' >= t_char)
+ t_char = t_char - 'a' + 'A';
+
+ t_value = ('A' <= t_char) ? (t_char - 'A' + 10) : (t_char - '0');
+ int_value = int_value * 16 + t_value;
+ }
+
+ return int_value;
+}
+
+
+
+
+
+
+
+
+#endif
+
+
-#ifdef __MMI_ZHSX_SUPPORT__
-
#ifndef __MMI_COMMON_H__
#define __MMI_COMMON_H__
{
#endif //__cplusplus
+#ifdef LV_CONF_INCLUDE_SIMPLE
+#include "lvgl.h"
+#include "lv_watch_conf.h"
+#else
+#include "../../../lvgl/lvgl.h"
+#include "../../../lv_watch_conf.h"
+#endif
-//#include "lv_watch.h"
-
+#ifdef __MMI_ZHSX_SUPPORT__
void mmi_float_to_str(double float_num, uint8_t int_num, char * data_str);
+#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
-#endif
-
-#ifdef __MMI_ZHSX_SUPPORT__
+#include "lv_watch.h"
-#include "mmi_sundry.h"
+#ifdef __MMI_ZHSX_SUPPORT__
static TIMER_ID s_watch_search_timer_id = NULL;
-#ifdef __MMI_ZHSX_SUPPORT__
-
#ifndef __MMI_SUNDRY_H__
#define __MMI_SUNDRY_H__
{
#endif //__cplusplus
+#ifdef LV_CONF_INCLUDE_SIMPLE
+#include "lvgl.h"
+#include "lv_watch_conf.h"
+#else
+#include "../../../lvgl/lvgl.h"
+#include "../../../lv_watch_conf.h"
+#endif
-#include "lv_watch.h"
-
+#ifdef __MMI_ZHSX_SUPPORT__
#define __MMI_SUNDRY_DEBUG__
#ifdef __MMI_SUNDRY_DEBUG__
}
#ifdef __MMI_ZHSX_SUPPORT__
- res = ValNetworkSocketInit_with_callback(NULL, mmi_watch_host_name_get, mmi_watch_host_port_get, (socket_callback)manage_socket_callback);
+ res = ValNetworkSocketInit_with_callback(NULL, mmi_watch_host_name_get(), mmi_watch_host_port_get(), (socket_callback)manage_socket_callback);
#else
res = ValNetworkSocketInit_with_callback(NULL, HOST_NAME, HOST_PORT, (socket_callback)manage_socket_callback);
#endif
signed long recv_ret;
int recv_len = 0;
//char *recv_str = (char *)malloc(PKG_LEN);
- char *recv_str = (char *)Hal_Mem_Alloc(PKG_LEN);
+ char *recv_str = (char *)Hal_Mem_Alloc(LARGE_PKG_LEN);
if(NULL == recv_str)
{
printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__);
return;
}
- memset(recv_str , 0x00, PKG_LEN);
- recv_ret = mmi_modem_tcp_read(recv_str, PKG_LEN, &recv_len);
+ Hal_Mem_Set(recv_str , 0x00, LARGE_PKG_LEN);
+ recv_ret = mmi_modem_tcp_read(recv_str, LARGE_PKG_LEN, &recv_len);
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);
void mmi_modem_tcp_task_init(void)
{
#ifdef __MMI_ZHSX_SUPPORT__
+ printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__);
mmi_watch_protocol_data_nv_read();
mmi_modem_tcp_task_interface_init();
- printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__);
launcher_tcp_connect(NULL);
#else