#CHENG_MODIFY
mmi_protocol/mmi_protocol_api.c
mmi_protocol/mmi_protocol_fzd.c
+ mmi_protocol/mmi_protocol_sms.c
mmi_location/mmi_location.c
mmi_sundry/mmi_sundry.c
+ mmi_sundry/mmi_common.c
#wechat
lv_apps/wechat/wechat_ui.c
#primary menu data
case NV_SECTION_UI_GPS_AIDPOS:
return(NV_SECTION_LEN(NV_SECTION_UI_GPS_AIDPOS));
- //#if __MMI_ZHSX_SUPPORT__
- //#if USE_LV_WATCH_WECHAT != 0
+ //#ifdef __MMI_ZHSX_SUPPORT__
case NV_SECTION_UI_WEHAT_MSG:
return(NV_SECTION_LEN(NV_SECTION_UI_WEHAT_MSG));
- //#endif
+
case NV_SECTION_UI_HEALTH_MEASURE:
return(NV_SECTION_LEN(NV_SECTION_UI_HEALTH_MEASURE));
case NV_SECTION_UI_PROTOCOL_DATA:
case NV_SECTION_UI_GPS_AIDPOS:
return(NV_SECTION_FILE_PATH(NV_SECTION_UI_GPS_AIDPOS));
- //#if __MMI_ZHSX_SUPPORT__
- //#if USE_LV_WATCH_WECHAT != 0
+ //#ifdef __MMI_ZHSX_SUPPORT__
case NV_SECTION_UI_WEHAT_MSG:
return(NV_SECTION_FILE_PATH(NV_SECTION_UI_WEHAT_MSG));
- //#endif
+
case NV_SECTION_UI_HEALTH_MEASURE:
return(NV_SECTION_FILE_PATH(NV_SECTION_UI_HEALTH_MEASURE));
case NV_SECTION_UI_PROTOCOL_DATA:
nv_watch_agnss_t * agnss;
nv_watch_sms_msg_t * smsmsg;
nv_watch_gps_aidpos_t * gps_aidpos;
-//#if __MMI_ZHSX_SUPPORT__
-//#if USE_LV_WATCH_WECHAT != 0
+//#ifdef __MMI_ZHSX_SUPPORT__
nv_watch_wechat_msg_info_t * wechat_msg;
-//#endif
nv_watch_health_measure_timed_t * health_measure;
nv_watch_protocol_data_t * protocol_data;
//#endif
memset(gps_aidpos, 0, SectionLen);
TempData = (char *)gps_aidpos;
break;
- //#if __MMI_ZHSX_SUPPORT__
- //#if USE_LV_WATCH_WECHAT != 0
+
+ //#ifdef __MMI_ZHSX_SUPPORT__
case NV_SECTION_UI_WEHAT_MSG:
wechat_msg = lv_mem_alloc(SectionLen);
memset(wechat_msg, 0, SectionLen);
TempData = (char *)wechat_msg;
break;
- //#endif
case NV_SECTION_UI_HEALTH_MEASURE:
health_measure = lv_mem_alloc(SectionLen);
memset(health_measure, 0, SectionLen);
+ mmi_health_measure_timed_info_nv_default(health_measure);
TempData = (char *)health_measure;
break;
case NV_SECTION_UI_PROTOCOL_DATA:
protocol_data = lv_mem_alloc(SectionLen);
memset(protocol_data, 0, SectionLen);
+ mmi_watch_protocol_data_nv_default(protocol_data);
TempData = (char *)protocol_data;
break;
//#endif
*default 0*/
} __packed nv_watch_voice_msg_t;
-//#if __MMI_ZHSX_SUPPORT__
-//#if USE_LV_WATCH_WECHAT != 0
+
+//#ifdef __MMI_ZHSX_SUPPORT__
#define NV_WATCH_WECHAT_NUM_MAX (20)
#define NV_WATCH_WECHAT_DATA_FILE_NAME_MAX (LV_FS_MAX_PATH_LENGTH / 2)
uint8_t msg_count;
nv_watch_wechat_msg_item_info_t msg_item[NV_WATCH_WECHAT_NUM_MAX];
} __packed nv_watch_wechat_msg_info_t;
-//#endif
typedef struct
{
uint8_t heart_timed_flag; // 0-close; 1-open
uint32_t heart_timed_interval; // unit-second
- uint8_t temperature_timed_flag;
- uint32_t temperature_timed_interval;
- uint8_t blood_timed_flag;
- uint32_t blood_timed_interval;
- uint8_t spo2_timed_flag;
- uint32_t spo2_timed_interval;
+ uint8_t temperature_timed_flag; // 0-close; 1-open
+ uint32_t temperature_timed_interval; // unit-second
+ uint8_t blood_timed_flag; // 0-close; 1-open
+ uint32_t blood_timed_interval; // unit-second
+ uint8_t spo2_timed_flag; // 0-close; 1-open
+ uint32_t spo2_timed_interval; // unit-second
} __packed nv_watch_health_measure_timed_t;
+#define NV_WATCH_HOST_NAME_LEN_MAX (128)
+
typedef struct
{
- uint32_t heartbeat_action_interval; // second
- uint32_t location_upload_interval; // second
- uint32_t weather_update_interval; // second
+ char watch_host_name[NV_WATCH_HOST_NAME_LEN_MAX];
+ int watch_host_port;
+ uint32_t heartbeat_action_interval; // unit-second
+ uint32_t location_upload_interval; // unit-second
+ uint32_t weather_update_interval; // unit-second
} __packed nv_watch_protocol_data_t;
#if USE_LV_WATCH_CALL_LOG != 0
+#ifdef __MMI_ZHSX_SUPPORT__
+
+const void * status[] = {
+ (void *)ICON_CALL_LOG_OUTGOING_CALL,
+ (void *)ICON_CALL_LOG_INCOMING_CALL,
+ (void *)ICON_CALL_LOG_MISSED_CALL,
+ (void *)ICON_CALL_LOG_INCOMING_CALL,
+};
+
+static nv_watch_call_log_t * call_log_read_nvm(void)
+{
+ uint32_t length = sizeof(nv_watch_call_log_t);
+ nv_watch_call_log_t * data = (nv_watch_call_log_t *)lv_mem_alloc(length);
+ memset(data, 0, length);
+ if(length != UI_NV_Read_Req(NV_SECTION_UI_CALL_LOG, 0, length, (uint8_t *)data)) {
+ printf("%s: Occur error when reading call log information from NVM\n", __FUNCTION__);
+ lv_mem_free(data);
+ return NULL;
+ }
+ return data;
+}
+
+static void call_log_write_nvm(nv_watch_call_log_t * data)
+{
+ if(NULL == data) return;
+
+ uint32_t length = sizeof(nv_watch_call_log_t);
+ if(length != UI_NV_Write_Req(NV_SECTION_UI_CALL_LOG, 0, length, (uint8_t *)data)) {
+ printf("%s: Occur error when writing call log information to NVM\n", __FUNCTION__);
+ return;
+ }
+ lv_mem_free(data);
+}
+
+static uint8_t call_log_get_log_num(nv_watch_call_log_t * data)
+{
+ uint8_t i = 0;
+ for(i = 0; i < NV_WATCH_MAX_CALL_LOG_NUM; i++) {
+ if('\0' == data->info[i].number[0]) {
+ break;
+ }
+ }
+ return i;
+}
+
+static lv_call_log_obj_ext_t * call_log_get_ext(void)
+{
+ lv_call_log_obj_ext_t * ext = NULL;
+ lv_obj_t * watch_obj = NULL;
+
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_CALL_LOG);
+ if(activity_obj) {
+ lv_watch_get_child_obj(activity_obj, lv_watch_obj_signal, &watch_obj);
+ }
+ if(watch_obj) {
+ ext = lv_obj_get_ext_attr(watch_obj);
+ }
+ return ext;
+}
+
+void call_log_update_call_log_info(call_status_t call_status, char * number, hal_rtc_t *time)
+{
+ // read from nvm first
+ nv_watch_call_log_t * nvm_call_log_list = call_log_read_nvm();
+ // move call log list
+ memmove(&nvm_call_log_list->info[1], &nvm_call_log_list->info[0], (NV_WATCH_MAX_CALL_LOG_NUM - 1) * sizeof(nv_watch_call_log_info_t));
+ // update call log info
+ memset(&nvm_call_log_list->info[0], 0, sizeof(nv_watch_call_log_info_t));
+ nvm_call_log_list->info[0].call_status = call_status;
+ nvm_call_log_list->info[0].month = time->tm_mon;
+ nvm_call_log_list->info[0].day = time->tm_mday;
+ nvm_call_log_list->info[0].hour = time->tm_hour;
+ nvm_call_log_list->info[0].min = time->tm_min;
+ memcpy(nvm_call_log_list->info[0].number, number, strlen(number));
+ // write to nvm after updating
+ call_log_write_nvm(nvm_call_log_list);
+}
+
+static void call_log_update_call_log_ll(uint8_t call_log_num, nv_watch_call_log_t * call_log_list)
+{
+ lv_call_log_obj_ext_t * ext = call_log_get_ext();
+ LV_ASSERT_MEM(ext);
+
+ uint8_t i = 0;
+ call_log_number_info_t * node = NULL;
+ nv_watch_call_log_info_t * info = NULL;
+
+ for(i = 0; i < call_log_num; i++) {
+ info = &call_log_list->info[i];
+ node = (call_log_number_info_t *)_lv_ll_ins_tail(ext->phone_number_list);
+ node->index = i;
+ node->phone_number = (char *)lv_mem_alloc(NV_CONTACTS_MAX_NUMBER_LEN);
+ memset(node->phone_number, 0, NV_CONTACTS_MAX_NUMBER_LEN);
+ memcpy(node->phone_number, info->number, NV_CONTACTS_MAX_NUMBER_LEN);
+ }
+}
+
+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_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);
+ lv_obj_align(label, obj, LV_ALIGN_CENTER, 0, 0);
+
+ return label;
+}
+
+static lv_obj_t * call_log_list_create(lv_obj_t * obj)
+{
+ lv_obj_t * title = lv_label_create(obj, NULL);
+ lv_obj_add_style(title, LV_LABEL_PART_MAIN, &lv_watch_font20_gray);
+ lv_label_set_align(title, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(title, false);
+ lv_label_set_text_id(title, WATCH_TEXT_ID_CALL_LOG);
+ lv_obj_align(title, obj, LV_ALIGN_IN_TOP_MID, 0, 10);
+
+ lv_obj_t * list = lv_list_create(obj, NULL);
+ lv_page_set_edge_flash(list, true);
+ lv_obj_add_style(list, LV_LIST_PART_EDGE_FLASH, &lv_watch_cont_opa1);
+ lv_obj_add_style(list, LV_LIST_PART_BG, &lv_watch_style_transp);
+ lv_obj_set_size(list, LV_HOR_RES, LV_VER_RES - lv_obj_get_height(title)); // - LV_VER_RES / 10);
+ lv_obj_align(list, title, LV_ALIGN_OUT_BOTTOM_MID, 0, 0);
+ lv_watch_obj_add_element(list);
+
+ return list;
+}
+
+static void call_log_log_btn_event_cb(lv_obj_t * btn, lv_event_t e)
+{
+ if(LV_EVENT_CLICKED != e)
+ return;
+
+ lv_call_log_obj_ext_t * ext = call_log_get_ext();
+ LV_ASSERT_MEM(ext);
+
+ uint8_t index = lv_obj_get_user_data(btn).user_num;
+
+ call_log_number_info_t * node = NULL;
+ node = _lv_ll_get_head(ext->phone_number_list);
+ while(node)
+ {
+ if(index == node->index) {
+ printf("%s: mo start\n", __FUNCTION__);
+ uint8_t length = strlen(node->phone_number);
+ char * number_mo = (char *)Hal_Mem_Alloc(length + 1);
+ memset(number_mo, 0, length + 1);
+ memcpy(number_mo, node->phone_number, length);
+ phone_voice_call_req(number_mo);
+ break;
+ } else {
+ node = _lv_ll_get_next(ext->phone_number_list, node);
+ }
+ }
+}
+
+static void call_log_content_create(lv_obj_t * list, uint8_t call_log_num, nv_watch_call_log_t * call_log_list)
+{
+ uint8_t i = 0;
+ char time_str[10];
+ phonebook_contact_t * contact_info = NULL;
+ char * tmp_num = NULL;
+ nv_watch_call_log_info_t * info = NULL;
+ lv_obj_t * btn[call_log_num];
+ lv_obj_t * label_number;
+ lv_obj_t * img_status;
+ lv_obj_t * label_time;
+ hal_rtc_t curr_time;
+ memset(&curr_time, 0, sizeof(hal_rtc_t));
+ Hal_Rtc_Gettime(&curr_time);
+
+ for(i = 0; i < call_log_num; i++)
+ {
+ btn[i] = lv_list_add_btn(list, NULL, NULL);
+ lv_btn_set_layout(btn[i], LV_LAYOUT_ROW_MID);
+ //lv_obj_set_event_cb(btn[i], call_log_log_btn_event_cb);
+ //lv_watch_set_free_num(btn[i], i);
+
+ info = &call_log_list->info[i];
+ tmp_num = (char *)lv_mem_alloc(NV_CONTACTS_MAX_NUMBER_LEN);
+ memset(tmp_num, 0, NV_CONTACTS_MAX_NUMBER_LEN);
+ memcpy(tmp_num, info->number, NV_CONTACTS_MAX_NUMBER_LEN);
+ contact_info = phonebook_get_contact_info(tmp_num);
+ tmp_num = NULL;
+
+ lv_obj_t * cont = lv_cont_create(btn[i], NULL);
+ lv_cont_set_layout(cont, LV_LAYOUT_OFF);
+ lv_obj_set_width(cont, lv_obj_get_width(btn[i]));
+ lv_obj_set_height(cont, 70); //lv_obj_get_height(btn[i]));
+ lv_obj_add_style(cont, LV_CONT_PART_MAIN, &lv_style_transp);
+ lv_page_glue_obj(cont, true);
+ lv_watch_obj_add_element(cont);
+ lv_obj_set_click(cont, true);
+ lv_obj_set_event_cb(cont, call_log_log_btn_event_cb);
+ lv_watch_set_free_num(cont, i);
+
+ label_number = lv_label_create(cont, NULL);
+ lv_obj_add_style(label_number, LV_OBJ_PART_MAIN, &lv_watch_font24);
+ lv_label_set_text(label_number, info->number);
+ lv_label_set_long_mode(label_number, LV_LABEL_LONG_DOT);
+ lv_obj_set_width(label_number, lv_obj_get_width(btn[i]) - 20);
+ if(contact_info)
+ {
+ if(contact_info->contact_name)
+ lv_label_set_text(label_number, contact_info->contact_name);
+ lv_mem_free(contact_info);
+ contact_info = NULL;
+ }
+
+ lv_obj_t * cont_status_time = lv_cont_create(cont, NULL);
+ lv_cont_set_layout(cont_status_time, LV_LAYOUT_ROW_MID);
+ lv_cont_set_fit2(cont_status_time, LV_FIT_TIGHT, LV_FIT_TIGHT);
+ lv_obj_add_style(cont_status_time, LV_CONT_PART_MAIN, &lv_style_transp);
+ lv_page_glue_obj(cont_status_time, true);
+ lv_watch_obj_add_element(cont_status_time);
+
+ if(LV_BIDI_DIR_RTL == lv_obj_get_base_dir(btn[i])) {
+ lv_obj_align(label_number, cont, LV_ALIGN_IN_TOP_RIGHT, -10, 5);
+ lv_obj_align(cont_status_time, cont, LV_ALIGN_IN_BOTTOM_RIGHT, -20, -5);
+ } else {
+ lv_obj_align(label_number, cont, LV_ALIGN_IN_TOP_LEFT, 10, 5);
+ lv_obj_align(cont_status_time, cont, LV_ALIGN_IN_BOTTOM_LEFT, 20, -5);
+ }
+
+ img_status = lv_img_create(cont_status_time, NULL);
+ lv_img_set_src(img_status, status[info->call_status]);
+
+ if((curr_time.tm_mon == info->month) && (curr_time.tm_mday == info->day)) {
+ snprintf(time_str, 10, "%02d:%02d", info->hour, info->min);
+ } else {
+ snprintf(time_str, 10, "%02d/%02d", info->month, info->day);
+ }
+ label_time = lv_label_create(cont_status_time, NULL);
+ lv_label_set_text(label_time, time_str);
+ lv_obj_set_base_dir(label_time, LV_BIDI_DIR_LTR);
+
+ lv_watch_obj_add_element(btn[i]);
+ }
+}
+
+static void call_log_ll_init(void)
+{
+ lv_call_log_obj_ext_t * ext = call_log_get_ext();
+ LV_ASSERT_MEM(ext);
+
+ if(NULL == ext->phone_number_list) {
+ ext->phone_number_list = (lv_ll_t *)lv_mem_alloc(sizeof(lv_ll_t));
+ memset(ext->phone_number_list, 0, sizeof(lv_ll_t));
+ _lv_ll_init(ext->phone_number_list, sizeof(call_log_number_info_t));
+ }
+}
+
+static void call_log_ll_destroy(void)
+{
+ lv_call_log_obj_ext_t * ext = call_log_get_ext();
+ LV_ASSERT_MEM(ext);
+ call_log_number_info_t * node = NULL;
+ call_log_number_info_t * next_node = NULL;
+
+ if(ext->phone_number_list) {
+ node = (call_log_number_info_t *)_lv_ll_get_head(ext->phone_number_list);
+ while(node) {
+ //next node
+ next_node = (call_log_number_info_t *)_lv_ll_get_next(ext->phone_number_list, node);
+ if(node->phone_number) {
+ lv_mem_free(node->phone_number);
+ node->phone_number = NULL;
+ }
+ _lv_ll_remove(ext->phone_number_list, node);
+ lv_mem_free(node);
+ node = next_node;
+ }
+ lv_mem_free(ext->phone_number_list);
+ ext->phone_number_list = NULL;
+ }
+}
+
+static void call_log_prepare_destory(lv_obj_t * activity_obj)
+{
+ lv_watch_png_cache_all_free();
+ call_log_ll_destroy();
+}
+
+void call_log_ui_update(void)
+{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_CALL_LOG);
+
+ if(activity_obj) {
+ lv_obj_t * obj = lv_obj_get_child_back(lv_obj_get_child_back(activity_obj, NULL), NULL);
+ nv_watch_call_log_t * nvm_call_log_list = call_log_read_nvm();
+ if(NULL == nvm_call_log_list)
+ return;
+
+ uint8_t call_log_num = call_log_get_log_num(nvm_call_log_list);
+ lv_call_log_obj_ext_t * ext = call_log_get_ext();
+ LV_ASSERT_MEM(ext);
+ call_log_ll_destroy();
+ call_log_ll_init();
+ call_log_update_call_log_ll(call_log_num, nvm_call_log_list);
+ if(ext->list)
+ {
+ lv_list_clean(ext->list);
+ }
+ else
+ {
+ if(ext->label_tip) {
+ lv_obj_del(ext->label_tip);
+ ext->label_tip = NULL;
+ }
+ ext->list = call_log_list_create(obj);
+ }
+ call_log_content_create(ext->list, call_log_num, nvm_call_log_list);
+ if(nvm_call_log_list) {
+ lv_mem_free(nvm_call_log_list);
+ nvm_call_log_list = NULL;
+ }
+ }
+}
+
+lv_obj_t * call_log_create(lv_obj_t * activity_obj)
+{
+ nv_watch_call_log_t * nvm_call_log_list = call_log_read_nvm();
+ if(NULL == nvm_call_log_list) return NULL;
+ uint8_t call_log_num = call_log_get_log_num(nvm_call_log_list);
+
+ if(NULL == activity_obj) {
+ lv_watch_activity_ext_t activity_ext;
+ memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t));
+ activity_ext.actId = ACT_ID_CALL_LOG;
+ activity_ext.create = call_log_create;
+ activity_ext.prepare_destory = call_log_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_call_log_obj_ext_t * ext = lv_obj_allocate_ext_attr(obj, sizeof(lv_call_log_obj_ext_t));
+ LV_ASSERT_MEM(ext);
+ if(NULL == ext)
+ return NULL;
+
+ ext->list = NULL;
+ ext->label_tip = NULL;
+ ext->phone_number_list = NULL;
+
+ if(0 == call_log_num)
+ {
+ ext->label_tip = call_log_no_log_info_create(obj);
+ }
+ else
+ {
+ ext->list = call_log_list_create(obj);
+ call_log_content_create(ext->list, call_log_num, nvm_call_log_list);
+ call_log_ll_init();
+ call_log_update_call_log_ll(call_log_num, nvm_call_log_list);
+ }
+
+ if(nvm_call_log_list)
+ {
+ lv_mem_free(nvm_call_log_list);
+ nvm_call_log_list = NULL;
+ }
+
+ return obj;
+}
+
+void call_log_create_event_cb(lv_obj_t * btn, lv_event_t e)
+{
+ (void)btn;
+ if(LV_EVENT_CLICKED == e)
+ {
+ lv_watch_png_cache_all_free();
+ lv_obj_t * obj = call_log_create(NULL);
+ LV_ASSERT_MEM(obj);
+ if(NULL == obj) return;
+ }
+}
+
+#else
+
/*********************
* DEFINES
*********************/
}
}
+#endif
#endif /*USE_LV_WATCH_CALL_LOG*/
-#include "lv_watch.h"
+#ifdef __MMI_ZHSX_SUPPORT__
-#include <stdio.h>
+//#include <stdio.h>
+#include "health_measure.h"
static nv_watch_health_measure_timed_t s_health_measure_timed_data = {0};
}
}
-void mmi_health_measure_timed_info_init(void)
+void mmi_health_measure_timed_info_nv_read(void)
{
uint32_t nv_data_length = sizeof(nv_watch_health_measure_timed_t);
_lv_ll_init(&s_health_measure_timed_ll, sizeof(MMI_HEALTH_MEASURE_TYPE_E));
}
+void mmi_health_measure_timed_info_nv_default(nv_watch_health_measure_timed_t * data)
+{
+ HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ data->heart_timed_flag = MMI_HEALTH_HEART_TIMED_FLAG;
+ data->heart_timed_interval = MMI_HEALTH_HEART_TIMED_INTERVAL;
+ data->temperature_timed_flag = MMI_HEALTH_TEMPERATURE_TIMED_FLAG;
+ data->temperature_timed_interval = MMI_HEALTH_TEMPERATURE_TIMED_INTERVAL;
+ data->blood_timed_flag = MMI_HEALTH_BLOOD_TIMED_FLAG;
+ data->blood_timed_interval = MMI_HEALTH_BLOOD_TIMED_INTERVAL;
+ data->spo2_timed_flag = MMI_HEALTH_SPO2_TIMED_FLAG;
+ data->spo2_timed_interval = MMI_HEALTH_SPO2_TIMED_INTERVAL;
+}
+
void mmi_health_measure_timed_list_node_remove(MMI_HEALTH_MEASURE_TYPE_E measure_type)
{
break;
}
- uos_timer_start(s_health_measure_process_timer_id, MMI_HEALTH_MEASURE_CYCLE_DURATION, 0, mmi_health_measure_process_timer_handle, NULL);
+ uos_timer_start(s_health_measure_process_timer_id, MS_TO_TICKS(MMI_HEALTH_MEASURE_CYCLE_DURATION), 0, mmi_health_measure_process_timer_handle, NULL);
}
}
s_measure_time_count = 0;
uos_timer_create(&s_health_measure_process_timer_id);
- uos_timer_start(s_health_measure_process_timer_id, MMI_HEALTH_MEASURE_CYCLE_DURATION, 0, mmi_health_measure_process_timer_handle, NULL);
+ uos_timer_start(s_health_measure_process_timer_id, MS_TO_TICKS(MMI_HEALTH_MEASURE_CYCLE_DURATION), 0, mmi_health_measure_process_timer_handle, NULL);
}
void mmi_health_measure_timed_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_type)
mmi_health_measure_start(measure_type, 0);
}
-
+#endif
+#ifdef __MMI_ZHSX_SUPPORT__
+
#ifndef __HEALTH_MEASURE_H__
#define __HEALTH_MEASURE_H__
//#define __HEALTH_MEASURE_FAKE_DATA__
-#define MMI_HEALTH_MEASURE_HEART_DURATION (44 * 1000) // ms
-#define MMI_HEALTH_MEASURE_TEMPERATURE_DURATION (24 * 1000) // ms
-#define MMI_HEALTH_MEASURE_BLOOD_DURATION (34 * 1000) // ms
-#define MMI_HEALTH_MEASURE_SPO2_DURATION (34 * 1000) // ms
-
#define MMI_HEALTH_MEASURE_CYCLE_DURATION (1 * 1000) // ms
void mmi_health_measure_app_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_type);
void mmi_health_measure_ui_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_type);
-void mmi_health_measure_timed_info_init(void);
+void mmi_health_measure_timed_info_nv_read(void);
+void mmi_health_measure_timed_info_nv_default(nv_watch_health_measure_timed_t * data);
bool mmi_health_measure_heart_timed_action(bool direct_trigger, uint32_t cur_time_stamp);
bool mmi_health_measure_temperature_timed_action(bool direct_trigger, uint32_t cur_time_stamp);
bool mmi_health_measure_blood_timed_action(bool direct_trigger, uint32_t cur_time_stamp);
#endif
+#endif
+
static void phone_connected(lv_obj_t * content);
static void phone_left_slide_callback(lv_obj_t * obj);
static void phone_right_slide_callback(lv_obj_t * obj);
+void ring_off_action(lv_obj_t * btn, lv_event_t e);
static void dialing_animation(lv_obj_t * par);
static void ring_animation(lv_obj_t * par);
static void connected_animation(lv_obj_t * obj);
/**********************
* GLOBAL FUNCTIONS
***********************/
+#ifdef __MMI_ZHSX_SUPPORT__
+static void phone_dialing(lv_obj_t * content)
+{
+ printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ lv_phone_obj_ext_t * ext = phone_get_ext();
+ LV_ASSERT_MEM(ext);
+ if(ext == NULL)
+ return;
+
+ lv_bidi_dir_t bidi_dir = lv_obj_get_base_dir(content);
+
+ //label dialing
+ lv_obj_t * label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_id(label, WATCH_TEXT_ID_DAILING);
+ lv_obj_set_click(label, false);
+ lv_obj_align(label, content, LV_ALIGN_IN_TOP_MID, 0, 0);
+ ext->phone_status_label = label;
+
+ //img
+ lv_obj_t * img = lv_img_create(content, NULL);
+ lv_img_set_src(img, ICON_CALL_OUTGOING);
+ lv_obj_align(img, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
+
+ //name or number
+ label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font24);
+ 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);
+ char txt[NV_CONTACTS_MAX_NAME_LEN] = {0};
+ if(LV_BIDI_DIR_RTL == bidi_dir)
+ lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
+
+ if(strlen(call_params.name) > 0)
+ strcpy(txt, call_params.name);
+ else
+ strcpy(txt, call_params.number);
+
+ lv_label_set_text(label, txt);
+ lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
+
+ //btn volume
+ lv_obj_t * btn;
+ btn = lv_imgbtn_create(content, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_VOLUME);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_VOLUME);
+ lv_obj_set_event_cb(btn, volume_btn_action);
+ lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_LEFT, 20, -50);
+
+ //btn ring off
+ btn = lv_imgbtn_create(content, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_OFF);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_OFF);
+ lv_obj_set_event_cb(btn, ring_off_action);
+ lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_RIGHT, -20, -50);
+}
+
+static void phone_ring(lv_obj_t * content)
+{
+ printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ lv_watch_indev_reset();
+
+ lv_phone_obj_ext_t * ext = phone_get_ext();
+ LV_ASSERT_MEM(ext);
+ if(ext == NULL) return;
+ lv_obj_t * label;
+
+ lv_bidi_dir_t bidi_dir = lv_obj_get_base_dir(content);
+
+ //label ringing
+ label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_id(label, WATCH_TEXT_ID_RINGING);
+ lv_obj_set_click(label, false);
+ lv_obj_align(label, content, LV_ALIGN_IN_TOP_MID, 0, 0);
+ ext->phone_status_label = label;
+
+ //img
+ lv_obj_t * img = lv_img_create(content, NULL);
+ lv_img_set_src(img, ICON_CALL_INCOMING);
+ lv_obj_align(img, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
+
+ //name or number
+ label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font24);
+ 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);
+ char txt[NV_CONTACTS_MAX_NAME_LEN] = {0};
+ if(LV_BIDI_DIR_RTL == bidi_dir)
+ lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
+
+ if(strlen(call_params.name) > 0)
+ strcpy(txt, call_params.name);
+ else
+ strcpy(txt, call_params.number);
+
+ lv_label_set_text(label, txt);
+ lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
+ ext->num_label = label;
+
+ //btn ring off
+ lv_obj_t * btn;
+ btn = lv_imgbtn_create(content, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_OFF);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_OFF);
+ lv_obj_set_event_cb(btn, ring_off_action);
+ lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_LEFT, 20, -50);
+
+ //btn ring hook
+ btn = lv_imgbtn_create(content, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_HOOK);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_HOOK);
+ lv_obj_set_event_cb(btn, ring_hook_action);
+ lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_RIGHT, -20, -50);
+}
+
+static void phone_connected(lv_obj_t * content)
+{
+ printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ lv_phone_obj_ext_t * ext = phone_get_ext();
+ LV_ASSERT_MEM(ext);
+ if(ext == NULL)
+ return;
+
+ lv_bidi_dir_t bidi_dir = lv_obj_get_base_dir(content);
+
+ //img
+ lv_obj_t * img = lv_img_create(content, NULL);
+ lv_img_set_src(img, ICON_CALL_CALLING);
+ lv_obj_align(img, content, LV_ALIGN_IN_TOP_MID, 0, 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_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);
+ char txt[NV_CONTACTS_MAX_NAME_LEN] = {0};
+ if(LV_BIDI_DIR_RTL == bidi_dir)
+ lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
+
+ if(strlen(call_params.name) > 0)
+ strcpy(txt, call_params.name);
+ else
+ strcpy(txt, call_params.number);
+
+ lv_label_set_text(label, txt);
+ lv_obj_align(label, img, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
+ ext->num_label = label;
+
+ //duration
+ label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text(label, "00:00");
+ lv_obj_set_click(label, false);
+ lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
+ lv_obj_align(label, ext->num_label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
+ ext->phone_status_label = label;
+
+ //btn volume
+ lv_obj_t * btn;
+ btn = lv_imgbtn_create(content, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_VOLUME);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_VOLUME);
+ lv_obj_set_event_cb(btn, volume_btn_action);
+ lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_LEFT, 20, -50);
+
+ //btn ring off
+ btn = lv_imgbtn_create(content, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_OFF);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_OFF);
+ lv_obj_set_event_cb(btn, ring_off_action);
+ lv_obj_align(btn, content, LV_ALIGN_IN_BOTTOM_RIGHT, -20, -50);
+
+ hal_rtc_t rtc_curr; // current rtc time
+ Hal_Rtc_Gettime(&rtc_curr);
+ ext->connect_start_time = time_to_seconds(&rtc_curr);
+ printf("%s: connect_start_time=%u, rtc_curr = %d/%d/%d, %d:%d:%d\n", __FUNCTION__,
+ ext->connect_start_time,
+ rtc_curr.tm_year,
+ rtc_curr.tm_mon,
+ rtc_curr.tm_mday,
+ rtc_curr.tm_hour,
+ rtc_curr.tm_min,
+ rtc_curr.tm_sec);
+}
+
+lv_obj_t * phone_create(lv_obj_t * activity_obj, phone_ui_t phone_ui_id)
+{
+ printf("[@CHENG_DEBUG][%s][%d]: phone_ui_id=%d\n", __FUNCTION__, __LINE__, phone_ui_id);
+
+ if(PHONE_UI_CONNECTED == phone_ui_id) {
+ /* set speaker volume to nv when leaving activiry's slider */
+ set_volume_when_slider_act();
+ }
+ /* cleanup phone first */
+ phone_cleanup();
+
+ if(NULL == activity_obj)
+ {
+ lv_watch_activity_ext_t activity_ext;
+ memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t));
+ activity_ext.actId = ACT_ID_PHONE;
+ activity_ext.create = NULL;
+ activity_ext.prepare_destory = phone_prepare_destory;
+ activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+ LV_ASSERT_MEM(activity_obj);
+ if(activity_obj == NULL)
+ return NULL;
+ }
+
+ lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+ LV_ASSERT_MEM(obj);
+ if(obj == NULL)
+ return NULL;
+
+ lv_watch_obj_set_anim_mode(obj, LV_WATCH_LEFT_OR_RIGHT_SLIDE_CALLBACK);
+ lv_watch_obj_set_left_slide_cb(obj, phone_left_slide_callback);
+ lv_watch_obj_set_right_slide_cb(obj, phone_right_slide_callback);
+
+ lv_phone_obj_ext_t * ext = lv_obj_allocate_ext_attr(obj, sizeof(lv_phone_obj_ext_t));
+ LV_ASSERT_MEM(ext);
+ if(ext == NULL)
+ return NULL;
+
+ ext->phone_status_label = NULL;
+ ext->phone_animation_obj = NULL;
+ ext->phone_ui_id = phone_ui_id;
+ ext->connect_start_time = 0;
+
+ /* content */
+ lv_obj_t * content = lv_cont_create(obj, NULL);
+ lv_obj_set_size(content, lv_obj_get_width(obj), lv_obj_get_height(obj) - 20);
+ //lv_cont_set_layout(content, LV_LAYOUT_COLUMN_MID);
+ LV_ASSERT_MEM(content);
+ if(content == NULL)
+ return NULL;
+ lv_obj_add_style(content, LV_OBJ_PART_MAIN, &lv_watch_style_transp);
+ /* must click false */
+ lv_obj_set_click(content, false);
+ lv_obj_align(content, obj, LV_ALIGN_CENTER, 0, 20);
+
+ if(ext->phone_ui_id == PHONE_UI_DIALING) {
+ phone_dialing(content);
+ dialing_animation(ext->phone_status_label);
+ } else if(ext->phone_ui_id == PHONE_UI_RING) {
+ phone_ring(content);
+ ring_animation(ext->phone_status_label);
+ } else if(ext->phone_ui_id == PHONE_UI_CONNECTED) {
+ phone_connected(content);
+ connected_animation(ext->phone_status_label);
+ }
+
+ return obj;
+}
+
+#else
+
+static void phone_dialing(lv_obj_t * content)
+{
+ printf("%s\n", __FUNCTION__);
+
+ lv_phone_obj_ext_t * ext = phone_get_ext();
+ LV_ASSERT_MEM(ext);
+ if(ext == NULL) return;
+
+ lv_bidi_dir_t bidi_dir = lv_obj_get_base_dir(content);
+
+ //label dialing
+ lv_obj_t * label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_id(label, WATCH_TEXT_ID_DAILING);
+ lv_obj_set_click(label, false);
+ ext->phone_status_label = label;
+
+ //img small
+ lv_obj_t * img = lv_img_create(content, NULL);
+ if(call_params.img_src_small) {
+ lv_img_set_src(img, call_params.img_src_small);
+ }
+
+ //name and number
+ label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
+ 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);
+ char txt[NV_CONTACTS_MAX_NAME_LEN + NV_CONTACTS_MAX_NUMBER_LEN] = {};
+ if(LV_BIDI_DIR_RTL == bidi_dir) {
+ lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
+ strcat(txt, call_params.number);
+ if(strlen(call_params.name) > 0) {
+ strcat(txt, " ");
+ strcat(txt, call_params.name);
+ }
+ } else {
+ if(strlen(call_params.name) > 0) {
+ strcat(txt, call_params.name);
+ strcat(txt, " ");
+ }
+ strcat(txt, call_params.number);
+ }
+ lv_label_set_text(label, txt);
+
+ lv_obj_t * cont = phone_cont_create(content, LV_LAYOUT_OFF, &lv_watch_style_transp, lv_obj_get_width(content) - 40);
+
+ //btn volume
+ lv_obj_t * btn;
+ btn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_VOLUME);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_VOLUME);
+ lv_obj_set_event_cb(btn, volume_btn_action);
+ if(LV_BIDI_DIR_RTL == bidi_dir) {
+ lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
+ } else {
+ lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
+ }
+
+ //btn ring off
+ btn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_OFF);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_OFF);
+ lv_obj_set_event_cb(btn, ring_off_action);
+ if(LV_BIDI_DIR_RTL == bidi_dir) {
+ lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
+ } else {
+ lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
+ }
+}
+
+static void phone_ring(lv_obj_t * content)
+{
+ printf("%s\n", __FUNCTION__);
+
+ lv_watch_indev_reset();
+
+ lv_phone_obj_ext_t * ext = phone_get_ext();
+ LV_ASSERT_MEM(ext);
+ if(ext == NULL) return;
+ lv_obj_t * label;
+
+ lv_bidi_dir_t bidi_dir = lv_obj_get_base_dir(content);
+
+ //label ringing
+ label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text_id(label, WATCH_TEXT_ID_RINGING);
+ lv_obj_set_click(label, false);
+ ext->phone_status_label = label;
+
+ //img small
+ lv_obj_t * img = lv_img_create(content, NULL);
+ if(call_params.img_src_small) {
+ lv_img_set_src(img, call_params.img_src_small);
+ }
+
+ //name and number
+ label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
+ 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);
+ char txt[NV_CONTACTS_MAX_NAME_LEN + NV_CONTACTS_MAX_NUMBER_LEN] = {};
+ if(LV_BIDI_DIR_RTL == bidi_dir) {
+ lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
+ strcat(txt, call_params.number);
+ if(strlen(call_params.name) > 0) {
+ strcat(txt, " ");
+ strcat(txt, call_params.name);
+ }
+ } else {
+ if(strlen(call_params.name) > 0) {
+ strcat(txt, call_params.name);
+ strcat(txt, " ");
+ }
+ strcat(txt, call_params.number);
+ }
+ lv_label_set_text(label, txt);
+ ext->num_label = label;
+
+ lv_obj_t * cont = phone_cont_create(content, LV_LAYOUT_OFF, &lv_watch_style_transp, lv_obj_get_width(content) - 40);
+ ext->btn_cont = cont;
+
+ //btn ring off
+ lv_obj_t * btn;
+ btn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_OFF);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_OFF);
+ lv_obj_set_event_cb(btn, ring_off_action);
+ if(LV_BIDI_DIR_RTL == bidi_dir) {
+ lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
+ } else {
+ lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
+ }
+
+ //btn ring hook
+ btn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_HOOK);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_HOOK);
+ lv_obj_set_event_cb(btn, ring_hook_action);
+ if(LV_BIDI_DIR_RTL == bidi_dir) {
+ lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
+ } else {
+ lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
+ }
+}
+
+static void phone_connected(lv_obj_t * content)
+{
+ lv_phone_obj_ext_t * ext = phone_get_ext();
+ LV_ASSERT_MEM(ext);
+ if(ext == NULL) return;
+
+ lv_bidi_dir_t bidi_dir = lv_obj_get_base_dir(content);
+
+ //img small
+ lv_obj_t * img = lv_img_create(content, NULL);
+ if(call_params.img_src_small) {
+ lv_img_set_src(img, call_params.img_src_small);
+ }
+
+ //name and number
+ lv_obj_t * label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
+ 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);
+ char txt[NV_CONTACTS_MAX_NAME_LEN + NV_CONTACTS_MAX_NUMBER_LEN] = {};
+ if(LV_BIDI_DIR_RTL == bidi_dir) {
+ lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
+ strcat(txt, call_params.number);
+ if(strlen(call_params.name) > 0) {
+ strcat(txt, " ");
+ strcat(txt, call_params.name);
+ }
+ } else {
+ if(strlen(call_params.name) > 0) {
+ strcat(txt, call_params.name);
+ strcat(txt, " ");
+ }
+ strcat(txt, call_params.number);
+ }
+ lv_label_set_text(label, txt);
+
+ //duration
+ label = lv_label_create(content, NULL);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
+ lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
+ lv_label_set_text(label, "0:0");
+ lv_obj_set_click(label, false);
+ lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
+ ext->phone_status_label = label;
+
+ lv_obj_t * cont = phone_cont_create(content, LV_LAYOUT_OFF, &lv_watch_style_transp, lv_obj_get_width(content) - 40);
+
+ //btn volume
+ lv_obj_t * btn;
+ btn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_VOLUME);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_VOLUME);
+ lv_obj_set_event_cb(btn, volume_btn_action);
+ if(LV_BIDI_DIR_RTL == bidi_dir) {
+ lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
+ } else {
+ lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
+ }
+
+ //btn ring off
+ btn = lv_imgbtn_create(cont, NULL);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_OFF);
+ lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_OFF);
+ lv_obj_set_event_cb(btn, ring_off_action);
+ if(LV_BIDI_DIR_RTL == bidi_dir) {
+ lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
+ } else {
+ lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
+ }
+
+ hal_rtc_t rtc_curr; // current rtc time
+ Hal_Rtc_Gettime(&rtc_curr);
+ ext->connect_start_time = time_to_seconds(&rtc_curr);
+ printf("%s: connect_start_time=%u, rtc_curr = %d/%d/%d, %d:%d:%d\n", __FUNCTION__,
+ ext->connect_start_time,
+ rtc_curr.tm_year,
+ rtc_curr.tm_mon,
+ rtc_curr.tm_mday,
+ rtc_curr.tm_hour,
+ rtc_curr.tm_min,
+ rtc_curr.tm_sec);
+}
+
lv_obj_t * phone_create(lv_obj_t * activity_obj, phone_ui_t phone_ui_id)
{
printf("%s: phone_ui_id=%d\n", __FUNCTION__, phone_ui_id);
return obj;
}
+#endif
lv_res_t phone_ring_off_create()
{
watch_modem_call_response_no_carrier(call_params.index, 0);
}
+#ifdef __MMI_ZHSX_SUPPORT__
+void ring_hook_action(lv_obj_t * btn, lv_event_t e)
+{
+ (void)btn;
+
+ if(LV_EVENT_CLICKED != e)
+ return;
+
+ lv_phone_obj_ext_t * ext = phone_get_ext();
+ if(ext->num_label)
+ {
+ lv_label_set_text_id(ext->num_label, WATCH_TEXT_ID_CONNECTING);
+ }
+
+ printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ Hal_Tone_Play_End();
+
+ //set voice call status
+ Hal_Set_Voice_Call_Status(VOICE_CALL_START);
+
+ watch_modem_call_request_answer();
+}
+#else
void ring_hook_action(lv_obj_t * btn, lv_event_t e)
{
(void)btn;
Hal_Timer_Start(60, phone_connected_cb, NULL, 0);
#endif
}
+#endif
static void phone_cleanup(void)
{
char str[20] = "";
get_time_elaps(ext->connect_start_time, str, 20);
- if(anim->var) lv_label_set_text(anim->var, str);
-}
-
-static void phone_dialing(lv_obj_t * content)
-{
- printf("%s\n", __FUNCTION__);
-
- lv_phone_obj_ext_t * ext = phone_get_ext();
- LV_ASSERT_MEM(ext);
- if(ext == NULL) return;
-
- lv_bidi_dir_t bidi_dir = lv_obj_get_base_dir(content);
-
- //label dialing
- lv_obj_t * label = lv_label_create(content, NULL);
- lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
- lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
- lv_label_set_text_id(label, WATCH_TEXT_ID_DAILING);
- lv_obj_set_click(label, false);
- ext->phone_status_label = label;
-
- //img small
- lv_obj_t * img = lv_img_create(content, NULL);
- if(call_params.img_src_small) {
- lv_img_set_src(img, call_params.img_src_small);
- }
-
- //name and number
- label = lv_label_create(content, NULL);
- lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
- 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);
- char txt[NV_CONTACTS_MAX_NAME_LEN + NV_CONTACTS_MAX_NUMBER_LEN] = {};
-#if 1
- if(LV_BIDI_DIR_RTL == bidi_dir)
- lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
-
- if(strlen(call_params.name) > 0)
- strcpy(txt, call_params.name);
- else
- strcpy(txt, call_params.number);
-
+#ifdef __MMI_ZHSX_SUPPORT__
+ if(anim->var)
+ {
+ lv_label_set_text(anim->var, str);
+ lv_obj_align(anim->var, ext->num_label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
+ }
#else
- if(LV_BIDI_DIR_RTL == bidi_dir) {
- lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
- strcat(txt, call_params.number);
- if(strlen(call_params.name) > 0) {
- strcat(txt, " ");
- strcat(txt, call_params.name);
- }
- } else {
- if(strlen(call_params.name) > 0) {
- strcat(txt, call_params.name);
- strcat(txt, " ");
- }
- strcat(txt, call_params.number);
- }
+ if(anim->var) lv_label_set_text(anim->var, str);
#endif
- lv_label_set_text(label, txt);
-
- lv_obj_t * cont = phone_cont_create(content, LV_LAYOUT_OFF, &lv_watch_style_transp, lv_obj_get_width(content) - 40);
-
- //btn volume
- lv_obj_t * btn;
- btn = lv_imgbtn_create(cont, NULL);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_VOLUME);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_VOLUME);
- lv_obj_set_event_cb(btn, volume_btn_action);
- if(LV_BIDI_DIR_RTL == bidi_dir) {
- lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
- } else {
- lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
- }
-
- //btn ring off
- btn = lv_imgbtn_create(cont, NULL);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_OFF);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_OFF);
- lv_obj_set_event_cb(btn, ring_off_action);
- if(LV_BIDI_DIR_RTL == bidi_dir) {
- lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
- } else {
- lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
- }
-}
-
-static void phone_ring(lv_obj_t * content)
-{
- printf("%s\n", __FUNCTION__);
-
- lv_watch_indev_reset();
-
- lv_phone_obj_ext_t * ext = phone_get_ext();
- LV_ASSERT_MEM(ext);
- if(ext == NULL) return;
- lv_obj_t * label;
-
- lv_bidi_dir_t bidi_dir = lv_obj_get_base_dir(content);
-
- //label ringing
- label = lv_label_create(content, NULL);
- lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
- lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
- lv_label_set_text_id(label, WATCH_TEXT_ID_RINGING);
- lv_obj_set_click(label, false);
- ext->phone_status_label = label;
-
- //img small
- lv_obj_t * img = lv_img_create(content, NULL);
- if(call_params.img_src_small) {
- lv_img_set_src(img, call_params.img_src_small);
- }
-
- //name and number
- label = lv_label_create(content, NULL);
- lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
- 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);
- char txt[NV_CONTACTS_MAX_NAME_LEN + NV_CONTACTS_MAX_NUMBER_LEN] = {};
- if(LV_BIDI_DIR_RTL == bidi_dir) {
- lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
- strcat(txt, call_params.number);
- if(strlen(call_params.name) > 0) {
- strcat(txt, " ");
- strcat(txt, call_params.name);
- }
- } else {
- if(strlen(call_params.name) > 0) {
- strcat(txt, call_params.name);
- strcat(txt, " ");
- }
- strcat(txt, call_params.number);
- }
- lv_label_set_text(label, txt);
- ext->num_label = label;
-
- lv_obj_t * cont = phone_cont_create(content, LV_LAYOUT_OFF, &lv_watch_style_transp, lv_obj_get_width(content) - 40);
- ext->btn_cont = cont;
-
- //btn ring off
- lv_obj_t * btn;
- btn = lv_imgbtn_create(cont, NULL);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_OFF);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_OFF);
- lv_obj_set_event_cb(btn, ring_off_action);
- if(LV_BIDI_DIR_RTL == bidi_dir) {
- lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
- } else {
- lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
- }
-
- //btn ring hook
- btn = lv_imgbtn_create(cont, NULL);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_HOOK);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_HOOK);
- lv_obj_set_event_cb(btn, ring_hook_action);
- if(LV_BIDI_DIR_RTL == bidi_dir) {
- lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
- } else {
- lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
- }
-}
-
-static void phone_connected(lv_obj_t * content)
-{
- lv_phone_obj_ext_t * ext = phone_get_ext();
- LV_ASSERT_MEM(ext);
- if(ext == NULL) return;
-
- lv_bidi_dir_t bidi_dir = lv_obj_get_base_dir(content);
-
- //img small
- lv_obj_t * img = lv_img_create(content, NULL);
- if(call_params.img_src_small) {
- lv_img_set_src(img, call_params.img_src_small);
- }
-
- //name and number
- lv_obj_t * label = lv_label_create(content, NULL);
- lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
- 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);
- char txt[NV_CONTACTS_MAX_NAME_LEN + NV_CONTACTS_MAX_NUMBER_LEN] = {};
- if(LV_BIDI_DIR_RTL == bidi_dir) {
- lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
- strcat(txt, call_params.number);
- if(strlen(call_params.name) > 0) {
- strcat(txt, " ");
- strcat(txt, call_params.name);
- }
- } else {
- if(strlen(call_params.name) > 0) {
- strcat(txt, call_params.name);
- strcat(txt, " ");
- }
- strcat(txt, call_params.number);
- }
- lv_label_set_text(label, txt);
-
- //duration
- label = lv_label_create(content, NULL);
- lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font20);
- lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
- lv_label_set_text(label, "0:0");
- lv_obj_set_click(label, false);
- lv_obj_set_base_dir(label, LV_BIDI_DIR_LTR);
- ext->phone_status_label = label;
-
- lv_obj_t * cont = phone_cont_create(content, LV_LAYOUT_OFF, &lv_watch_style_transp, lv_obj_get_width(content) - 40);
-
- //btn volume
- lv_obj_t * btn;
- btn = lv_imgbtn_create(cont, NULL);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_VOLUME);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_VOLUME);
- lv_obj_set_event_cb(btn, volume_btn_action);
- if(LV_BIDI_DIR_RTL == bidi_dir) {
- lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
- } else {
- lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
- }
-
- //btn ring off
- btn = lv_imgbtn_create(cont, NULL);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, ICON_PHONE_RING_OFF);
- lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, ICON_PHONE_RING_OFF);
- lv_obj_set_event_cb(btn, ring_off_action);
- if(LV_BIDI_DIR_RTL == bidi_dir) {
- lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
- } else {
- lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
- }
-
- hal_rtc_t rtc_curr; // current rtc time
- Hal_Rtc_Gettime(&rtc_curr);
- ext->connect_start_time = time_to_seconds(&rtc_curr);
- printf("%s: connect_start_time=%u, rtc_curr = %d/%d/%d, %d:%d:%d\n", __FUNCTION__,
- ext->connect_start_time,
- rtc_curr.tm_year,
- rtc_curr.tm_mon,
- rtc_curr.tm_mday,
- rtc_curr.tm_hour,
- rtc_curr.tm_min,
- rtc_curr.tm_sec);
}
static void phone_prepare_destory(lv_obj_t * activity_obj)
uint32_t hours = minutes / 60;
minutes = minutes % 60;
+#ifdef __MMI_ZHSX_SUPPORT__
+ if(hours == 0)
+ snprintf(str, size, "%02d:%02d", minutes, seconds);
+ else
+ snprintf(str, size, "%02d:%02d:%02d", hours, minutes, seconds);
+
+#else
+
if(hours == 0) {
if(lv_lang_act() == LANG_CH) {
snprintf(str, size, "%d%s:%d%s", minutes, (char *)lv_lang_get_text(WATCH_TEXT_ID_MINUTES), seconds, (char *)lv_lang_get_text(WATCH_TEXT_ID_SECONDS));
snprintf(str, size, "%.2d:%.2d:%.2d", hours, minutes, seconds);
}
}
+#endif
}
static void call_prompt_prepare_destory(lv_obj_t * activity_obj)
/*********************
* DEFINES
*********************/
+#ifdef __MMI_ZHSX_SUPPORT__
+#define QRCODE_BG_WIDTH (190)
+#define QRCODE_WIDTH (188)
+#else
#define QRCODE_BG_WIDTH 136
#define QRCODE_WIDTH 126 /*21*n*/
+#endif
/**********************
* TYPEDEFS
lv_obj_align(content, par, LV_ALIGN_CENTER, 0, -20);
#ifdef __MMI_ZHSX_SUPPORT__
-
char imei[16] = {0};
app_adp_get_imei_req(imei);
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_font20);
+ lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font24);
lv_label_set_text(label, imei);
lv_obj_set_click(label, false);
lv_obj_align(label, content, LV_ALIGN_OUT_BOTTOM_MID, 0, 6);
{ ICON_SETTING_BRIGHTNESS, WATCH_TEXT_ID_BRIGHTNESS_ADJUST, setting_brightness_create_btn_action },
{ ICON_SETTING_DATETIME, WATCH_TEXT_ID_DATE_AND_TIME, setting_date_time_create_btn_action},
//{ ICON_SETTING_LANGUAGE, WATCH_TEXT_ID_LANGUAGE_SWITCH, language_create_btn_action },
+#if USE_LV_WATCH_QRCODE != 0
+ //{ ICON_SETTING_QRCODE, WATCH_TEXT_ID_CREATE_QRCODE, qrcode_create_event_cb },
+ { ICON_SETTING_QRCODE, WATCH_TEXT_ID_DEVICE_QRCODE, qrcode_create_event_cb },
+#endif
#if USE_LV_WATCH_VOLTE_SWTICH != 0
{ ICON_SETTING_VOLTE, WATCH_TEXT_ID_VOLTE, volte_switch_create_btn_action },
#endif
{ ICON_SETTING_UPGRADE, WATCH_TEXT_ID_SYSTEM_UPGRADE, btn_event_cb },
#endif
{ ICON_SETTING_ABOUT, WATCH_TEXT_ID_ABOUT_WATCH, setting_about_create_btn_action },
-#if USE_LV_WATCH_QRCODE != 0
- //{ ICON_SETTING_QRCODE, WATCH_TEXT_ID_CREATE_QRCODE, qrcode_create_event_cb },
- { ICON_SETTING_QRCODE, WATCH_TEXT_ID_DEVICE_QRCODE, qrcode_create_event_cb },
-#endif
//{ &icon_setting_time_zone, WATCH_TEXT_ID_TIME_ZONE, btn_action },
//{ &icon_setting_add_friends, WATCH_TEXT_ID_ADD_FRIEND_ADJUST, btn_action },
//{ &icon_setting_ring_music, WATCH_TEXT_ID_RINGTONE_SWITCH, btn_action },
#ifdef __MMI_ZHSX_SUPPORT__
+#include "mmi_customer_default.h"
+#include "mmi_sundry/mmi_common.h"
#include "mmi_location/mmi_location.h"
#include "mmi_protocol/mmi_protocol_api.h"
#include "mmi_protocol/mmi_protocol_fzd.h"
+#include "mmi_protocol/mmi_protocol_sms.h"
#include "mmi_sundry/mmi_sundry.h"
#ifdef __MMI_WECHAT_SUPPORT__
#include "lv_apps/wechat/wechat.h"
#define ICON_COMMON_BG_WHITE "R:/png/common/ICON_COMMON_BG_WHITE.png"
#define ICON_COMMON_SUCCESS "R:/png/common/ICON_COMMON_SUCCESS.png"
-
// wechat
#ifdef __MMI_WECHAT_SUPPORT__
#define ICON_WECHAT_NO_NETWORK "R:/png/wechat/ICON_WECHAT_NO_NETWORK.png"
#define AUDIO_WATCH_SEARCH "R:/audio/audio_watch_search.mp3"
-//#define ICON_CALL_OUTGOING "R:/png/call/icon_heart_rate_measure_done.png"
-//#define ICON_CALL_INCOMING "R:/png/call/icon_heart_rate_measure_fail.png"
-//#define ICON_CALL_CONNECTING "R:/png/call/icon_heart_rate_measure_fail.png"
+#define ICON_CALL_OUTGOING "R:/png/call/ICON_CALL_OUTGOING.png"
+#define ICON_CALL_INCOMING "R:/png/call/ICON_CALL_INCOMING.png"
+#define ICON_CALL_CALLING "R:/png/call/ICON_CALL_CALLING.png"
#endif
+
//font
#ifdef USE_FONT_TTF
/* YH2312F.ttf include 60 special symbols from FontAwesome5-Solid+Brands+Regular_simple.ttf, see lv_symbol_def.h */
}
}
+void mmi_watch_location_gps_data_get(void)
+{
+ double gpsLon = 0, gpsLat = 0;
+ gpsNmeaDataT gpsNmeaData = {0};
+
+ LOCATION_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ ReadNmeaData(&gpsNmeaData);
+ if('A' == gpsNmeaData.NmeaRmcData.Status)
+ {
+ LOCATION_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ hal_gps_aidpos_save(gpsNmeaData.NmeaRmcData.Latitude, gpsNmeaData.NmeaRmcData.NSIndicator,
+ gpsNmeaData.NmeaRmcData.Longitude, gpsNmeaData.NmeaRmcData.WEIndicator,
+ gpsNmeaData.NmeaGgaData.Altitude);
+
+ gps2wgs84(gpsNmeaData.NmeaRmcData.Latitude, gpsNmeaData.NmeaRmcData.Longitude, &gpsLat, &gpsLon);
+
+ s_watch_location_data.gps_data.state = 'A';
+ s_watch_location_data.gps_data.latitude = gpsLat;
+ s_watch_location_data.gps_data.ns = gpsNmeaData.NmeaRmcData.NSIndicator;
+ s_watch_location_data.gps_data.longitude = gpsLon;
+ s_watch_location_data.gps_data.ew = gpsNmeaData.NmeaRmcData.WEIndicator;
+ s_watch_location_data.gps_data.speed = gpsNmeaData.NmeaRmcData.SpeedOverGround;
+ s_watch_location_data.gps_data.degree = gpsNmeaData.NmeaRmcData.CourseOverGround;
+ s_watch_location_data.gps_data.altitude = gpsNmeaData.NmeaGgaData.Altitude;
+ s_watch_location_data.gps_data.satellite_num = gpsNmeaData.NmeaGgaData.SatellitesUsed;
+
+ s_watch_location_gps_state = MMI_WATCH_LOCATION_STATE_SUCCESS;
+ }
+ /*
+ else if(pBuf.NmeaGgaData.status == 1)
+ {
+ hal_gps_aidpos_save(pBuf.NmeaGgaData.latitude, pBuf.NmeaGgaData.NSIndicator,
+ pBuf.NmeaGgaData.longitude, pBuf.NmeaGgaData.WEIndicator,
+ pBuf.NmeaGgaData.Altitude);
+ gps2wgs84(pBuf.NmeaGgaData.latitude, pBuf.NmeaGgaData.longitude, &gpsLat, &gpsLon);
+ }
+ */
+}
void mmi_watch_location_gps_finsh_cb(void *param)
{
wifi_scan_destroy();
}
-static uint8_t HexStr2Int(char *str_hex, uint8_t str_hex_len)
-{
- uint8_t int_value = 0;
- uint8_t i = 0, t_value = 0;
- char t_char = 0;
-
- if(NULL == str_hex || 0 == str_hex_len)
- return 0;
-
- for(i = 0; i < str_hex_len; i++)
- {
- t_char = str_hex[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;
-}
-
void mmi_watch_location_wifi_scan_cb(WIFI_SCAN_ID_DEF msgid, WifiInfoT *wifi_info)
{
//if(WIFI_SCAN_MSG_COMPLETE == msgid)
uint8_t j = 0;
for(j = 0; j < APP_ADP_WIFI_MAC_LEN; j++)
{
- s_watch_location_data.wifi_data.item[i].mac[j] = HexStr2Int(wifi_info->WifiHotspot[i].MacAddr[j * 2], 2);
+ s_watch_location_data.wifi_data.item[i].mac[j] = mmi_hex_string_to_number(wifi_info->WifiHotspot[i].MacAddr[j * 2], 2);
}
}
}
static void mmi_watch_location_mission_timer_cb(uint32_t para)
{
LOCATION_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: total=%d,count=%d\n", __FUNCTION__, __LINE__, MMI_WATCH_LOCATION_CHECK_TIMES_COUNT_MAX, s_watch_location_times_check_count);
+
+ //mmi_watch_location_gps_data_get();
s_watch_location_times_check_count++;
if(MMI_WATCH_LOCATION_CHECK_TIMES_COUNT_MAX <= s_watch_location_times_check_count)
{
LOCATION_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- uos_timer_start(s_watch_location_timer_id, MMI_WATCH_LOCATION_PROCESS_DURATION, 0, mmi_watch_location_mission_timer_cb, NULL);
+ uos_timer_start(s_watch_location_timer_id, MS_TO_TICKS(MMI_WATCH_LOCATION_PROCESS_DURATION), 0, mmi_watch_location_mission_timer_cb, NULL);
}
}
}
s_watch_location_times_check_count = 0;
uos_timer_create(&s_watch_location_timer_id);
- uos_timer_start(s_watch_location_timer_id, MMI_WATCH_LOCATION_PROCESS_DURATION, 0, mmi_watch_location_mission_timer_cb, NULL);
+ uos_timer_start(s_watch_location_timer_id, MS_TO_TICKS(MMI_WATCH_LOCATION_PROCESS_DURATION), 0, mmi_watch_location_mission_timer_cb, NULL);
mmi_watch_location_gps_start();
mmi_watch_location_cell_start();
{
PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: nv default\n", __FUNCTION__, __LINE__);
+ 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;
data->weather_update_interval = MMI_PROTOCOL_WEATHER_UPDATE_INTERVAL;
}
+char * mmi_watch_host_name_get(void)
+{
+ return (s_watch_protocol_data.watch_host_name);
+}
+
+void mmi_watch_host_name_set(char * ip_address)
+{
+ if(NULL == ip_address)
+ return;
+ if(NV_WATCH_HOST_NAME_LEN_MAX <= strlen(ip_address))
+ return;
+
+ _lv_memset_00(s_watch_protocol_data.watch_host_name, NV_WATCH_HOST_NAME_LEN_MAX);
+ strcpy(s_watch_protocol_data.watch_host_name, ip_address);
+ mmi_watch_protocol_data_nv_write();
+}
+
+int mmi_watch_host_port_get(void)
+{
+ return (s_watch_protocol_data.watch_host_port);
+}
+
+void mmi_watch_host_port_set(int ip_port)
+{
+ if(0 <= ip_port)
+ return;
+
+ s_watch_protocol_data.watch_host_port = ip_port;
+ mmi_watch_protocol_data_nv_write();
+}
+
uint32_t mmi_protocol_watch_heartbeat_action_interval_get(void)
{
return (s_watch_protocol_data.heartbeat_action_interval);
mmi_health_measure_blood_timed_action(false, cur_time_stamp);
mmi_health_measure_spo2_timed_action(false, cur_time_stamp);
- uos_timer_start(s_watch_timed_mission_timer_id, 1000 * 20, 0, mmi_protocol_watch_timed_mission_timer_cb, NULL);
+ uos_timer_start(s_watch_timed_mission_timer_id, MS_TO_TICKS(1000 * 20), 0, mmi_protocol_watch_timed_mission_timer_cb, NULL);
}
void mmi_protocol_watch_timed_mission_action(void)
mmi_protocol_action_get_weather();
s_watch_timed_weather_time_stamp = cur_time_stamp;
- mmi_health_measure_timed_info_init();
+ mmi_health_measure_timed_info_nv_read();
mmi_health_measure_heart_timed_action(true, cur_time_stamp);
mmi_health_measure_temperature_timed_action(true, cur_time_stamp);
mmi_health_measure_blood_timed_action(true, cur_time_stamp);
mmi_health_measure_spo2_timed_action(true, cur_time_stamp);
uos_timer_create(&s_watch_timed_mission_timer_id);
- uos_timer_start(s_watch_timed_mission_timer_id, 1000 * 20, 0, mmi_protocol_watch_timed_mission_timer_cb, NULL);
+ uos_timer_start(s_watch_timed_mission_timer_id, MS_TO_TICKS(1000 * 20), 0, mmi_protocol_watch_timed_mission_timer_cb, NULL);
}
}
s_watch_heartbeat_action_time_stamp = cur_time_stamp;
}
- uos_timer_start(s_watch_heartbeat_action_timer_id, 1000 * 20, 0, mmi_protocol_watch_heartbeat_timer_cb, NULL);
+ uos_timer_start(s_watch_heartbeat_action_timer_id, MS_TO_TICKS(1000 * 20), 0, mmi_protocol_watch_heartbeat_timer_cb, NULL);
}
void mmi_protocol_watch_heartbeat_action(void)
{
PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- mmi_watch_protocol_data_nv_read();
-
mmi_protocol_action_link();
Hal_Rtc_Gettime_Count(&s_watch_heartbeat_action_time_stamp);
uos_timer_create(&s_watch_heartbeat_action_timer_id);
- uos_timer_start(s_watch_heartbeat_action_timer_id, 1000 * 20, 0, mmi_protocol_watch_heartbeat_timer_cb, NULL);
+ uos_timer_start(s_watch_heartbeat_action_timer_id, MS_TO_TICKS(1000 * 20), 0, mmi_protocol_watch_heartbeat_timer_cb, NULL);
}
}
#endif //__cplusplus
-//#define __MMI_PROTOCOL_DEBUG__
+#define __MMI_PROTOCOL_DEBUG__
#ifdef __MMI_PROTOCOL_DEBUG__
#define PROTOCOL_DEBUG_PRINTF(fmt, ...) printf("[PROTOCOL]"fmt, ##__VA_ARGS__)
#else
#endif
-//Server address and port
-//#define HOST_NAME "api.xcloudtech.com"
-//#define HOST_PORT (9000)
-
-
-#define MMI_PROTOCOL_HEARTBEAT_ACTION_INTERVAL (60 * 5) // s
-
-#define MMI_PROTOCOL_LOCATION_UPLOAD_INTERVAL (60 * 20) // s
-
-#define MMI_PROTOCOL_WEATHER_UPDATE_INTERVAL (60 * 60 * 6) // s
-
-
bool mmi_watch_tcp_connect_state_get(void);
bool mmi_protocol_send_cmd_check(int cmd);
+void mmi_watch_protocol_data_nv_read(void);
+
void mmi_watch_protocol_data_nv_default(nv_watch_protocol_data_t * data);
+char * mmi_watch_host_name_get(void);
+
+void mmi_watch_host_name_set(char * ip_address);
+
+int mmi_watch_host_port_get(void);
+
+void mmi_watch_host_port_set(int ip_port);
+
void mmi_protocol_watch_timed_mission_action(void);
void mmi_protocol_watch_heartbeat_stop(void);
static bool mmi_protocol_fzd_content_parse(unsigned char * content_ptr, unsigned int content_length);
-static signed char mmi_char_to_upper(signed char c)
-{
- if ( c >= 'a' && c <= 'z' )
- {
- c = c - 'a' + 'A';
- }
-
- return c;
-}
-
-static 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);
-}
-
-void km_str_toupper(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 km_str_hex_string_to_number(signed char* hex_str, unsigned char hex_str_len)
-{
- unsigned char i = 0, temp_num = 0;
- signed char upper = 0;
- signed int number = 0;
-
- if(hex_str == NULL || hex_str_len == 0)
- {
- return 0;
- }
-
- for(i=0;i<hex_str_len;i++)
- {
- upper = mmi_char_to_upper(hex_str[i]);
- temp_num = (upper >= 'A')?upper - 'A' + 10:upper - '0';
- number = number*16 + temp_num;
- }
-
- return number;
-}
-
char *km_strtok_r(char *s, const char *delim, char **last)
{
/*----------------------------------------------------------------*/
}
//length
- content_len = km_str_hex_string_to_number(content_len_ptr, MMI_PROTOCOL_FZD_CONTENT_LEN_LEN);
+ content_len = mmi_hex_string_to_number(content_len_ptr, MMI_PROTOCOL_FZD_CONTENT_LEN_LEN);
PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: content_len=%d, recv_len=%d\n", __FUNCTION__, __LINE__, content_len, recv_len);
if(MMI_PROTOCOL_FZD_RECEIVE_FIXED_CONTENT_LEN + content_len > recv_len)
{
static unsigned char * mmi_protocol_fzd_action_string_get(MMI_PROTOCOL_FZD_ACTION_ENUM action)
{
- unsigned char* action_string[MMI_FZD_ACTION_MAX] =
- {
- "NONE", //MMI_FZD_ACTION_NONE
-
- "KA", //MMI_FZD_ACTION_LINK
- "PING", //MMI_FZD_ACTION_BIND
- "LGZONE", //MMI_FZD_ACTION_GET_TIME
- "UD", //MMI_FZD_ACTION_SEND_LOCATION
- "CRUD", //MMI_FZD_ACTION_SEND_CUR_LOCATION
- "CR", //MMI_FZD_SERVER_GET_CUR_LOCATION
- "UPLOAD", //MMI_FZD_SERVER_SET_UD_INTERVAL
- "AL", //MMI_FZD_ACTION_ALERT
- "FACTORY", //MMI_FZD_SERVER_SET_FACTORY
- "POWEROFF", //MMI_FZD_SERVER_SET_POWEROFF
-
- "FIND", //MMI_FZD_SERVER_FIND_WATCH
- "VERNO", //MMI_FZD_SERVER_GET_VERSION
- "PHL", //MMI_FZD_SERVER_SET_PHONEBOOK
- "CALL", //MMI_FZD_SERVER_SET_CALL
- "REMIND", //MMI_FZD_SERVER_SET_REMIND
-
- "hrtstart", //MMI_FZD_SERVER_SET_HEART_INTERVAL
- "heart", //MMI_FZD_ACTION_SEND_HEART
- "wdstart", //MMI_FZD_SERVER_SET_TEMPERATURE_INTERVAL
- "temp", //MMI_FZD_ACTION_SEND_TEMPERATURE
- "bldstart", //MMI_FZD_SERVER_SET_BLOOD_INTERVAL
- "blood", //MMI_FZD_ACTION_SEND_BLOOD
- "oxstart", //MMI_FZD_SERVER_SET_SPO2_INTERVAL
- "oxygen", //MMI_FZD_ACTION_SEND_SPO2
-
- #ifdef __MMI_WECHAT_SUPPORT__
- "TK", //MMI_FZD_ACTION_TALK
- #endif
+ struct
+ {
+ MMI_PROTOCOL_FZD_ACTION_ENUM action;
+ unsigned char* action_string;
+ }action_struct[MMI_FZD_ACTION_MAX] =
+ {
+ {MMI_FZD_ACTION_NONE, "NONE"}, //MMI_FZD_ACTION_NONE
+
+ {MMI_FZD_ACTION_LINK, "KA"}, //MMI_FZD_ACTION_LINK
+ {MMI_FZD_ACTION_BIND, "PING"}, //
+ {MMI_FZD_ACTION_GET_TIME, "LGZONE"}, //
+ {MMI_FZD_ACTION_SEND_LOCATION, "UD"}, //
+ {MMI_FZD_ACTION_SEND_CUR_LOCATION, "CRUD"}, //
+ {MMI_FZD_SERVER_GET_CUR_LOCATION, "CR"}, //
+ {MMI_FZD_SERVER_SET_UD_INTERVAL, "UPLOAD"}, //
+ {MMI_FZD_ACTION_ALERT, "AL"}, //
+ {MMI_FZD_SERVER_SET_FACTORY, "FACTORY"}, //
+ {MMI_FZD_SERVER_SET_POWEROFF, "POWEROFF"}, //
+
+ {MMI_FZD_SERVER_FIND_WATCH, "FIND"}, //
+ {MMI_FZD_SERVER_GET_VERSION, "VERNO"}, //
+ {MMI_FZD_SERVER_SET_PHONEBOOK, "PHL"}, //
+ {MMI_FZD_SERVER_SET_CALL, "CALL"}, //
+ {MMI_FZD_SERVER_SET_REMIND, "REMIND"}, //
+
+ {MMI_FZD_SERVER_SET_HEART_INTERVAL, "hrtstart"}, //
+ {MMI_FZD_ACTION_SEND_HEART, "heart"}, //
+ {MMI_FZD_SERVER_SET_TEMPERATURE_INTERVAL, "wdstart"}, //
+ {MMI_FZD_ACTION_SEND_TEMPERATURE, "temp"}, //
+ {MMI_FZD_SERVER_SET_BLOOD_INTERVAL, "bldstart"}, //
+ {MMI_FZD_ACTION_SEND_BLOOD, "blood"}, //
+ {MMI_FZD_SERVER_SET_SPO2_INTERVAL, "oxstart"}, //
+ {MMI_FZD_ACTION_SEND_SPO2, "oxygen"}, //
+
+ #ifdef __MMI_WECHAT_SUPPORT__
+ {MMI_FZD_ACTION_TALK, "TK"}, //
+ #endif
- "WT", //MMI_FZD_ACTION_GET_WEATHER
- "SOS", //MMI_FZD_SERVER_SET_SOS_NUMBER
- "CENTER", //MMI_FZD_SERVER_SET_CENTER_NUMBER
+ {MMI_FZD_ACTION_GET_WEATHER, "WT"}, //
+ {MMI_FZD_SERVER_SET_SOS_NUMBER, "SOS"}, //
+ {MMI_FZD_SERVER_SET_CENTER_NUMBER, "CENTER"}, //
-
- /*******add before this line*******/
- "", // MMI_FZD_ACTION_MAX
- };
+
+ /*******add before this line*******/
+ {MMI_FZD_ACTION_MAX, ""}, // MMI_FZD_ACTION_MAX
+ };
- return action_string[action];
+ return action_struct[action].action_string;
}
static bool mmi_protocol_fzd_content_parse(unsigned char * content_ptr, unsigned int content_length)
if(0 == value)
{
mmi_protocol_watch_bind_state_set(false);
- uos_sleep(50);
+ uos_sleep(10);
mmi_watch_reset();
}
}
result = true;
mmi_protocol_fzd_respond_without_data(action);
- uos_sleep(30);
+ uos_sleep(10);
mmi_watch_reset();
return result;
result = true;
mmi_protocol_fzd_respond_without_data(action);
- uos_sleep(30);
+ uos_sleep(10);
app_adaptor_wake_up_short_time();
mmi_watch_power_off();
for(j = 0; j*4 < strlen(temp_ptr); j++)
{
- server_set_contact[i].contact_name[j] = km_str_hex_string_to_number(temp_ptr + j*4, 4);
+ server_set_contact[i].contact_name[j] = mmi_hex_string_to_number(temp_ptr + j*4, 4);
}
}
else
result = true;
mmi_protocol_fzd_respond_without_data(action);
- uos_sleep(30);
+ uos_sleep(10);
char * number = (char *)lv_mem_alloc(next_buff_len + 1);
if(NULL == number)
mmi_protocol_fzd_respond_without_data(action);
app_adaptor_alarm_t server_set_alarm[NV_ALARM_MAX_ALARM_NUM] = {0};
- char * temp_ptr1 = NULL, temp_ptr2 = NULL;
+ char * group_str = NULL;
+ char * group_last = NULL;
+ char * temp_ptr = NULL;
+ char * last = NULL;
uint8_t i = 0;
- temp_ptr1 = km_strtok_r(NULL, ",", &next_buff);
- while(NULL != temp_ptr1)
+ //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: next_buff=%s\n", __FUNCTION__, __LINE__, next_buff);
+ group_str = km_strtok_r(next_buff, ",", &group_last);
+ //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: temp_ptr1=%s,next_buff=%s\n", __FUNCTION__, __LINE__, group_str, next_buff);
+ while(NULL != group_str)
{
server_set_alarm[i].valid = 1;
- temp_ptr2 = km_strtok_r(NULL, ":", &temp_ptr1);
- server_set_alarm[i].hour = atoi(temp_ptr2);
+ temp_ptr = km_strtok_r(group_str, ":", &last);
+ server_set_alarm[i].hour = atoi(temp_ptr);
+ //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: temp_ptr=%s,temp_ptr1=%s\n", __FUNCTION__, __LINE__, temp_ptr, last);
- temp_ptr2 = km_strtok_r(NULL, "-", &temp_ptr1);
- server_set_alarm[i].min = atoi(temp_ptr2);
+ temp_ptr = km_strtok_r(NULL, "-", &last);
+ server_set_alarm[i].min = atoi(temp_ptr);
+ //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: temp_ptr=%s,temp_ptr1=%s\n", __FUNCTION__, __LINE__, temp_ptr, last);
- temp_ptr2 = km_strtok_r(NULL, "-", &temp_ptr1);
- server_set_alarm[i].on_off = atoi(temp_ptr2);
+ temp_ptr = km_strtok_r(NULL, "-", &last);
+ server_set_alarm[i].on_off = atoi(temp_ptr);
+ //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: temp_ptr=%s,temp_ptr1=%s\n", __FUNCTION__, __LINE__, temp_ptr, last);
- temp_ptr2 = km_strtok_r(NULL, "-", &temp_ptr1);
- if(1 == atoi(temp_ptr2))
+ temp_ptr = km_strtok_r(NULL, "-", &last);
+ //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: temp_ptr=%s,temp_ptr1=%s\n", __FUNCTION__, __LINE__, temp_ptr, last);
+ if(1 == atoi(temp_ptr))
{
server_set_alarm[i].repeat_bitmap = 0;
}
else
{
server_set_alarm[i].repeat_bitmap = 0xff;
- if(NULL != temp_ptr1)
+ if(NULL != last)
{
uint8_t j = 0;
for(j = 0; j < 7; j++)
{
- server_set_alarm[i].repeat_bitmap &= ((('0' == *(temp_ptr1 + j)) ? 0 : 1) << j);
+ server_set_alarm[i].repeat_bitmap &= ((('0' == *(last + j)) ? 0 : 1) << j);
}
}
}
break;
}
- temp_ptr1 = km_strtok_r(NULL, ",", &next_buff);
+ group_str = km_strtok_r(NULL, ",", &group_last);
}
alarm_set_alarm_by_ui(&server_set_alarm, i);
//city
for(i = 0; i*4 < strlen(next_buff); i++)
{
- city_name[i] = km_str_hex_string_to_number(next_buff + i*4, 4);
+ city_name[i] = mmi_hex_string_to_number(next_buff + i*4, 4);
}
weather_info.city = city_name;
//strtok
char *km_strtok_r(char *s, const char *delim, char **last);
-//convert hex string to number
-signed int km_str_hex_string_to_number(signed char* hex_str, unsigned char hex_str_len);
-
void mmi_protocol_fzd_receive_data_process(char * recv_str, int recv_len);
void * mmi_protocol_fzd_send_space_ptr_get(MMI_PROTOCOL_FZD_ACTION_ENUM action);
--- /dev/null
+
+
+
+#ifdef __MMI_ZHSX_SUPPORT__
+
+#ifndef __MMI_COMMON_H__
+#define __MMI_COMMON_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif //__cplusplus
+
+
+//#include "lv_watch.h"
+
+
+void mmi_float_to_str(double float_num, uint8_t int_num, char * data_str);
+
+signed char mmi_char_to_upper(signed char c);
+
+void mmi_str_to_upper(signed char *str, signed int len);
+
+signed int mmi_hex_string_to_number(signed char* hex_str, unsigned char hex_str_len);
+
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif //__cplusplus
+
+#endif
+
+#endif
+
+
-#include "lv_watch.h"
-
#ifdef __MMI_ZHSX_SUPPORT__
+#include "mmi_sundry.h"
+
+
static TIMER_ID s_watch_search_timer_id = NULL;
tcp_manage_instance.connecting_flag = true;
}
+#ifdef __MMI_ZHSX_SUPPORT__
+ 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
printf("socket init connect res = %d\n",res);
go_reconnect :
if(res < 0)
printf("fun = %s, line = %d\n",__FUNCTION__,__LINE__);
#ifdef __MMI_ZHSX_SUPPORT__
+ printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__);
+
mmi_protocol_watch_heartbeat_action();
#else
printf("fun = %s, line = %d\n",__FUNCTION__,__LINE__);
#ifdef __MMI_ZHSX_SUPPORT__
+ printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__);
+
mmi_protocol_watch_bind_state_set(false);
mmi_protocol_watch_heartbeat_stop();
#ifdef __MMI_ZHSX_SUPPORT__
- send_cmdmsg_t *cmdmsg = (send_cmdmsg_t *)param;
- if(NULL == cmdmsg->cmd_param || 0 == cmdmsg->cmd_type)
+ int cmd_type = ((send_cmdmsg_t * )param)->cmd_type;
+
+ if(false == mmi_protocol_send_cmd_check(cmd_type))
{
- printf("fun = %s, line = %d\n",__FUNCTION__,__LINE__);
+ printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__);
+ mmi_protocol_send_space_free(cmd_type);
return;
}
if(!watch_modem_sim_present_check_req())
{
- printf("fun = %s, line = %d\n",__FUNCTION__,__LINE__);
+ printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__);
+ mmi_protocol_send_space_free(cmd_type);
return;
}
- char *send_cmdmsg_buff = Hal_Mem_Alloc(SEND_BUFF_MAX_LEN);
- if(NULL != send_cmdmsg_buff)
- {
- memset(send_cmdmsg_buff, 0x00, SEND_BUFF_MAX_LEN);
- memcpy(send_cmdmsg_buff, cmdmsg->cmd_param, cmdmsg->cmd_type);
- mmi_modem_tcp_send(send_cmdmsg_buff, strlen(send_cmdmsg_buff));
- Hal_Mem_Free(send_cmdmsg_buff);
- }
+ unsigned char * send_cmdmsg_buff = (unsigned char *)mmi_protocol_send_space_ptr_get(cmd_type);
+ int send_cmdmsg_size = mmi_protocol_send_space_size_get(cmd_type);
+
+ printf("[@CHENG_DEBUG][%s][%d]: action=%d,len=%d\n", __FUNCTION__, __LINE__, cmd_type, send_cmdmsg_size);
+ printf("[@CHENG_DEBUG][%d]: str=%s\n", __LINE__, send_cmdmsg_buff);
+ printf("[@CHENG_DEBUG][%d]: str=%s\n", __LINE__, send_cmdmsg_buff + 33);
+ printf("[@CHENG_DEBUG][%d]: str=%s\n", __LINE__, send_cmdmsg_buff + 59);
+
+ mmi_modem_tcp_send(send_cmdmsg_buff, send_cmdmsg_size);
+
+ mmi_protocol_send_space_free(cmd_type);
#else
char *recv_str = (char *)Hal_Mem_Alloc(PKG_LEN);
if(NULL == recv_str)
{
- printf("fun = %s, line = %d\n",__FUNCTION__,__LINE__);
+ 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);
- printf("[@CHENG_DEBUG][%s][%d]: ret=%d,len=%d,ptr=0x%x,str=%s\n", __FUNCTION__, __LINE__, recv_ret, recv_len, recv_str, recv_str);
+ 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);
if(0 <= recv_ret)
{
*/
void mmi_modem_tcp_task_init(void)
{
- mmi_modem_tcp_task_interface_init();
-
#ifdef __MMI_ZHSX_SUPPORT__
+ 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
+
+ mmi_modem_tcp_task_interface_init();
launcher_tcp_connect(tcp_connect_cb);
//while(1)
// {
#define __MMI_ZHSX_SUPPORT_FZD__
+#define __MMI_ZHSX_SUPPORT_SMS__
+
#if 1 //def MMI_WECHAT_SUPPORT
#define __MMI_WECHAT_SUPPORT__