gengxin
authorCCC <2393524978@qq.com>
Sat, 5 Aug 2023 09:00:03 +0000 (17:00 +0800)
committerCCC <2393524978@qq.com>
Sat, 5 Aug 2023 09:00:03 +0000 (17:00 +0800)
2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h
2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_api.c
2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_api.h
2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c
2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.h
2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_sms.c
2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_sms.h
2.sdk/sdk/gui/lv_watch/modem/mmi_modem_tcp/mmi_modem_tcp_manage.c

index 3f53364..49f74f6 100644 (file)
@@ -187,11 +187,15 @@ typedef struct
 } __packed nv_watch_health_measure_timed_t;
 
 #define NV_WATCH_HOST_NAME_LEN_MAX             (128 - 32)
+#define NV_PROTOCOL_MD5_KEY_LEN_MAX            (64)
+#define NV_PROTOCOL_DEVICE_NAME_LEN_MAX                (32)
 
 typedef struct
 {
        char watch_host_name[NV_WATCH_HOST_NAME_LEN_MAX];
        int watch_host_port;
+       char protocol_md5_key[NV_PROTOCOL_MD5_KEY_LEN_MAX];
+       char protocol_device_name[NV_PROTOCOL_DEVICE_NAME_LEN_MAX];
        uint32_t heartbeat_action_interval; // unit-second
        uint32_t location_upload_interval; // unit-second
        uint32_t weather_update_interval; // unit-second
index bb52a31..09227e0 100644 (file)
@@ -83,8 +83,10 @@ void mmi_watch_protocol_data_nv_default(nv_watch_protocol_data_t * data)
 {
        PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: nv default\n", __FUNCTION__, __LINE__);
        
-       strcpy(data->watch_host_name, MMI_PROTOCOL_IP_ADDRESS_DEFAULT);
+       strncpy(data->watch_host_name, MMI_PROTOCOL_IP_ADDRESS_DEFAULT, NV_WATCH_HOST_NAME_LEN_MAX - 1);
        data->watch_host_port = MMI_PROTOCOL_IP_PORT_DEFAULT;
+       strncpy(data->protocol_md5_key, MMI_PROTOCOL_MD5_KEY_DEFAULT, NV_PROTOCOL_MD5_KEY_LEN_MAX - 1);
+       strncpy(data->protocol_device_name, MMI_PROTOCOL_DEVICE_NAME_DEFAULT, NV_PROTOCOL_DEVICE_NAME_LEN_MAX - 1);
        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;
@@ -114,13 +116,57 @@ int mmi_watch_host_port_get(void)
 
 void mmi_watch_host_port_set(int ip_port)
 {
-       if(0 <= ip_port)
+       if(0 >= ip_port)
                return;
        
        s_watch_protocol_data.watch_host_port = ip_port;
        mmi_watch_protocol_data_nv_write();
 }
 
+uint8_t mmi_protocol_md5_key_str_len_get(void)
+{
+       return (strlen(s_watch_protocol_data.protocol_md5_key));
+}
+
+char * mmi_protocol_md5_key_str_get(void)
+{
+       return (s_watch_protocol_data.protocol_md5_key);
+}
+
+void mmi_protocol_md5_key_str_set(char * md5_key)
+{
+       if(NULL == md5_key)
+               return;
+       if(NV_PROTOCOL_MD5_KEY_LEN_MAX <= strlen(md5_key))
+               return;
+       
+       _lv_memset_00(s_watch_protocol_data.protocol_md5_key, NV_PROTOCOL_MD5_KEY_LEN_MAX);
+       strcpy(s_watch_protocol_data.protocol_md5_key, md5_key);
+       mmi_watch_protocol_data_nv_write();
+}
+
+uint8_t mmi_protocol_device_name_len_get(void)
+{
+       return (strlen(s_watch_protocol_data.protocol_device_name));
+}
+
+char * mmi_protocol_device_name_get(void)
+{
+       return (s_watch_protocol_data.protocol_device_name);
+}
+
+void mmi_protocol_device_name_set(char * device_name)
+{
+       if(NULL == device_name)
+               return;
+       if(NV_PROTOCOL_DEVICE_NAME_LEN_MAX <= strlen(device_name))
+               return;
+       
+       _lv_memset_00(s_watch_protocol_data.protocol_device_name, NV_PROTOCOL_DEVICE_NAME_LEN_MAX);
+       strcpy(s_watch_protocol_data.protocol_device_name, device_name);
+       mmi_watch_protocol_data_nv_write();
+}
+
 uint32_t mmi_protocol_watch_heartbeat_action_interval_get(void)
 {
        return (s_watch_protocol_data.heartbeat_action_interval);
index c88c72b..c6e17ae 100644 (file)
@@ -46,16 +46,18 @@ void mmi_protocol_send_space_free(int cmd);
 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);
+uint8_t mmi_protocol_md5_key_str_len_get(void);
+char * mmi_protocol_md5_key_str_get(void);
+void mmi_protocol_md5_key_str_set(char * md5_str);
+uint8_t mmi_protocol_device_name_len_get(void);
+char * mmi_protocol_device_name_get(void);
+void mmi_protocol_device_name_set(char * device_name);
 
 void mmi_protocol_watch_timed_mission_action(void);
 
index f3e2e4c..d7bfa16 100644 (file)
@@ -42,7 +42,7 @@ int mmi_protocol_fzd_convert_md5_data_get(MMI_PROTOCOL_FZD_ACTION_ENUM action, i
        action_str_len = strlen(action_str);
 
        //device name
-       sprintf(convert_md5_str, "%s", MMI_PROTOCOL_FZD_DEVICE_NAME);
+       sprintf(convert_md5_str, "%s", mmi_protocol_device_name_get());
 
        //separator
        strncat(convert_md5_str, MMI_PROTOCOL_FZD_SEPARATOR, MMI_PROTOCOL_FZD_SEPARATOR_LEN);
@@ -83,7 +83,7 @@ bool mmi_protocol_fzd_send_content_md5_data_get(unsigned char * input_buff, int
 {
        bool result = false;
        unsigned char output[16] = {0};
-       int temp_len = MMI_PROTOCOL_FZD_MD5_KEY_LEN + input_len + 1;
+       int temp_len = mmi_protocol_md5_key_str_len_get() + input_len + 1;
        unsigned char * temp_buff = lv_mem_alloc(temp_len);
 
        if(NULL == temp_buff)
@@ -96,7 +96,7 @@ bool mmi_protocol_fzd_send_content_md5_data_get(unsigned char * input_buff, int
        {
                _lv_memset_00(temp_buff, temp_len);
                _lv_memcpy(temp_buff, input_buff, input_len);
-               _lv_memcpy(temp_buff + input_len, MMI_PROTOCOL_FZD_MD5_KEY_STR, MMI_PROTOCOL_FZD_MD5_KEY_LEN);
+               _lv_memcpy(temp_buff + input_len, mmi_protocol_md5_key_str_get(), mmi_protocol_md5_key_str_len_get());
                mbedtls_md5_ret(temp_buff, temp_len - 1, output);
                for(int i = 0; i < 16; i++)
                {
@@ -240,6 +240,20 @@ static bool mmi_protocol_fzd_send_content_construct(MMI_PROTOCOL_FZD_ACTION_ENUM
        return true;
 }
 
+static uint32_t mmi_protocol_fzd_receive_data_fixed_len_get(void)
+{
+       uint32_t t_len = 0;
+       
+       // receive fixed:[DEVICE_NAME*DEVICE_ID*CONTENT_LENGTH*]
+       t_len = (MMI_PROTOCOL_FZD_BRACKET_LEN * 2 + mmi_protocol_device_name_len_get()
+                               + MMI_PROTOCOL_FZD_SEPARATOR_LEN * 3 + MMI_PROTOCOL_FZD_DEVICE_ID_LEN
+                               + MMI_PROTOCOL_FZD_CONTENT_LEN_LEN);
+
+       PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, t_len);
+
+       return t_len;
+}
+
 void mmi_protocol_fzd_receive_buff_free(void)
 {
        s_receive_space_struct.receive_len = 0;
@@ -340,6 +354,7 @@ bool mmi_protocol_fzd_receive_data_parse(void)
        bool result = false;
        unsigned char* recv_buffer = s_receive_space_struct.receive_ptr;
        int recv_len = s_receive_space_struct.receive_len;
+       uint32_t recv_fixed_len = mmi_protocol_fzd_receive_data_fixed_len_get();
     char imei[16] = {0};
        uint8_t i = 0;
        unsigned char * content_ptr = NULL;
@@ -360,7 +375,7 @@ bool mmi_protocol_fzd_receive_data_parse(void)
        }
 
        //length
-       if(MMI_PROTOCOL_FZD_RECEIVE_FIXED_CONTENT_LEN > recv_len)
+       if(recv_fixed_len > recv_len)
        {
                PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: data length error\n", __FUNCTION__, __LINE__);
                mmi_protocol_fzd_incomplete_buff_store(recv_buffer, recv_len);
@@ -371,7 +386,7 @@ bool mmi_protocol_fzd_receive_data_parse(void)
        // [DEVICE_NAME*DEVICE_ID*CONTENT_LEN*ACTION_STRING,ACTION_CONTENT]
        offset_head_bracket = 0;
        offset_device_name = offset_head_bracket + MMI_PROTOCOL_FZD_BRACKET_LEN;
-       offset_first_sep = offset_device_name + MMI_PROTOCOL_FZD_DEVICE_NAME_LEN;
+       offset_first_sep = offset_device_name + mmi_protocol_device_name_len_get();
        offset_device_id = offset_first_sep + MMI_PROTOCOL_FZD_SEPARATOR_LEN;
        offset_second_sep = offset_device_id + MMI_PROTOCOL_FZD_DEVICE_ID_LEN;
        offset_content_len = offset_second_sep + MMI_PROTOCOL_FZD_SEPARATOR_LEN;
@@ -380,10 +395,10 @@ bool mmi_protocol_fzd_receive_data_parse(void)
        app_adp_get_imei_req(imei);
 
        //head
-       for(i = 0; (NULL != (recv_buffer + i)) && (i < recv_len - MMI_PROTOCOL_FZD_RECEIVE_FIXED_CONTENT_LEN); i++)
+       for(i = 0; (NULL != (recv_buffer + i)) && (i < recv_len - recv_fixed_len); i++)
        {
                if(0 == strncmp(recv_buffer + i + offset_head_bracket, MMI_PROTOCOL_FZD_HEAD_BRACKET, MMI_PROTOCOL_FZD_BRACKET_LEN) // [
-                       && (0 == strncmp(recv_buffer + i + offset_device_name, MMI_PROTOCOL_FZD_DEVICE_NAME, MMI_PROTOCOL_FZD_DEVICE_NAME_LEN)) // NAME
+                       && (0 == strncmp(recv_buffer + i + offset_device_name, mmi_protocol_device_name_get(), mmi_protocol_device_name_len_get())) // NAME
                        && (0 == strncmp(recv_buffer + i + offset_first_sep, MMI_PROTOCOL_FZD_SEPARATOR, MMI_PROTOCOL_FZD_SEPARATOR_LEN)) // *
                        && (0 == strncmp(recv_buffer + i + offset_device_id, imei, MMI_PROTOCOL_FZD_DEVICE_ID_LEN)) // ID
                        && (0 == strncmp(recv_buffer + i + offset_second_sep, MMI_PROTOCOL_FZD_SEPARATOR, MMI_PROTOCOL_FZD_SEPARATOR_LEN)) // *
@@ -407,7 +422,7 @@ bool mmi_protocol_fzd_receive_data_parse(void)
        //length
        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)
+       if(recv_fixed_len + content_len > recv_len)
        {
                PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: data length error\n", __FUNCTION__, __LINE__);
                mmi_protocol_fzd_incomplete_buff_store(recv_buffer, recv_len);
@@ -1081,6 +1096,7 @@ bool mmi_protocol_fzd_parse_SERVER_SET_CALL(unsigned char * next_buff, unsigned
 }
 
 //[XX*YYYY*0018*REMIND,08:10-1-1,08:10-1-2, 08:10-1-3-0111110]
+//[SZKW*860132060004801*0034*REMIND,10:00-1-1,10:02-1-3-0111000,10:03-1-3-0111111]
 bool mmi_protocol_fzd_parse_SERVER_SET_REMIND(unsigned char * next_buff, unsigned int next_buff_len)
 {
        bool result = false;
@@ -1111,31 +1127,34 @@ bool mmi_protocol_fzd_parse_SERVER_SET_REMIND(unsigned char * next_buff, unsigne
                
                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_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_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_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);
+               //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: temp_ptr=%s,last=%s\n", __FUNCTION__, __LINE__, temp_ptr, last);
                if(1 == atoi(temp_ptr))
                {
                        server_set_alarm[i].repeat_bitmap = 0;
                }
-               else
+               else if(2 == atoi(temp_ptr))
                {
                        server_set_alarm[i].repeat_bitmap = 0xff;
+               }
+               else
+               {
+                       //server_set_alarm[i].repeat_bitmap = 0xff;
+                       server_set_alarm[i].repeat_bitmap = 0x80;
                        if(NULL != last)
                        {
                                uint8_t j = 0;
                                for(j = 0; j < 7; j++)
                                {
-                                       server_set_alarm[i].repeat_bitmap &= ((('0' == *(last + j)) ? 0 : 1) << j);
+                                       //server_set_alarm[i].repeat_bitmap &= ((('0' == *(last + j)) ? 0 : 1) << j);
+                                       server_set_alarm[i].repeat_bitmap |= ((('0' == *(last + j)) ? 0 : 1) << j);
                                }
                        }
                }
@@ -1151,6 +1170,12 @@ bool mmi_protocol_fzd_parse_SERVER_SET_REMIND(unsigned char * next_buff, unsigne
 
        alarm_set_alarm_by_ui(&server_set_alarm, i);
 
+       //uint8_t x = 0;
+       //for(x = 0; x < i; x++)
+       //{
+       //      PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %d,%d\n", __LINE__, server_set_alarm[x].on_off, server_set_alarm[x].repeat_bitmap);
+       //}
+
        return result;
 }
 
@@ -2346,11 +2371,11 @@ bool mmi_protocol_fzd_parse_WATCH_GET_VC_CONTACT(unsigned char * next_buff, unsi
                else
                {
                        t_offset += 4;
-                       PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, t_offset);
+                       //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, t_offset);
                }
 
                i += 4;
-               PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, i);
+               //PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, i);
        }
 
        t_next++;
@@ -2405,7 +2430,7 @@ bool mmi_protocol_fzd_parse_WATCH_VC_CALL_REQUEST(unsigned char * next_buff, uns
        t_ticket = next_buff;
 
        
-       PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: t_value=%d\n", __FUNCTION__, __LINE__, t_value);
+       PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: t_value=%s\n", __FUNCTION__, __LINE__, t_value);
        PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: t_tokens,%d,%s\n", __LINE__, strlen(t_tokens), t_tokens+0);
        PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, t_tokens+31);
        PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, t_tokens+63);
index a18c226..2c497e2 100644 (file)
@@ -26,23 +26,23 @@ FORMAT: [MD5_DATADEVICE_NAME*DEVICE_ID*CONTENT_LENGTH*CONTENT_KEY,CONTENT_VALUE]
 
 ****************************************/
 
-#ifdef __MMI_ZHSX_SUPPORT_WULIAN_SERVER__
-#define MMI_PROTOCOL_FZD_MD5_KEY_STR   "3JyCjsw4ryXKzjzudayY"
-#else
-#define MMI_PROTOCOL_FZD_MD5_KEY_STR   "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP" // "FDF9532BB5914C0F9D0999CAF99DEBB9" // "XMQcHi0lGIdru6xzW7lygBwBT8N0c09P"
-#endif
-#define MMI_PROTOCOL_FZD_MD5_KEY_LEN   (strlen(MMI_PROTOCOL_FZD_MD5_KEY_STR)) // (32)
+//#ifdef __MMI_ZHSX_SUPPORT_WULIAN_SERVER__
+//#define MMI_PROTOCOL_FZD_MD5_KEY_STR         "3JyCjsw4ryXKzjzudayY"
+//#else
+//#define MMI_PROTOCOL_FZD_MD5_KEY_STR         "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP" // "FDF9532BB5914C0F9D0999CAF99DEBB9" // "XMQcHi0lGIdru6xzW7lygBwBT8N0c09P"
+//#endif
+//#define MMI_PROTOCOL_FZD_MD5_KEY_LEN         (strlen(MMI_PROTOCOL_FZD_MD5_KEY_STR)) // (32)
 #define MMI_PROTOCOL_FZD_MD5_DATA_LEN  (32)
 
 
 #define MMI_PROTOCOL_FZD_HEAD_BRACKET          "["
 #define MMI_PROTOCOL_FZD_BRACKET_LEN           (strlen(MMI_PROTOCOL_FZD_HEAD_BRACKET))
-#ifdef __MMI_ZHSX_SUPPORT_WULIAN_SERVER__
-#define MMI_PROTOCOL_FZD_DEVICE_NAME           "qAELPTKmFanR4RHe"
-#else
-#define MMI_PROTOCOL_FZD_DEVICE_NAME           "SZKW" // "ZHSX"
-#endif
-#define MMI_PROTOCOL_FZD_DEVICE_NAME_LEN       (strlen(MMI_PROTOCOL_FZD_DEVICE_NAME))
+//#ifdef __MMI_ZHSX_SUPPORT_WULIAN_SERVER__
+//#define MMI_PROTOCOL_FZD_DEVICE_NAME         "qAELPTKmFanR4RHe"
+//#else
+//#define MMI_PROTOCOL_FZD_DEVICE_NAME         "SZKW" // "ZHSX"
+//#endif
+//#define MMI_PROTOCOL_FZD_DEVICE_NAME_LEN     (strlen(MMI_PROTOCOL_FZD_DEVICE_NAME))
 #define MMI_PROTOCOL_FZD_SEPARATOR                     "*"
 #define MMI_PROTOCOL_FZD_SEPARATOR_LEN         (strlen(MMI_PROTOCOL_FZD_SEPARATOR))
 #define MMI_PROTOCOL_FZD_TAIL_BRACKET          "]"
@@ -50,11 +50,11 @@ FORMAT: [MD5_DATADEVICE_NAME*DEVICE_ID*CONTENT_LENGTH*CONTENT_KEY,CONTENT_VALUE]
 #define MMI_PROTOCOL_FZD_CONTENT_LEN_LEN       (4)
 
 // 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)
+//#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_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)
+//#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)
 
 
 #define MMI_PROTOCOL_FZD_ACTION_STR_LEN_MAX            (31) // "LK"
index 44d5c55..f325634 100644 (file)
@@ -9,6 +9,8 @@
 static MMI_PROTOCOL_SMS_PARSE_STRUCT s_sms_parse_info[] = 
 {
        {"SETIP:", 6, mmi_protocol_sms_parse_set_ip},
+       {"SETMD5KEY:", 10, mmi_protocol_sms_parse_set_md5_key},
+       {"SETDEVICENAME:", 14, mmi_protocol_sms_parse_set_device_name},
        {"SETUPLOAD:", 10, mmi_protocol_sms_parse_set_upload},
        {"POWEROFF", 8, mmi_protocol_sms_parse_power_off},
        {"SETFACTORY", 10, mmi_protocol_sms_parse_set_factory},
@@ -145,6 +147,80 @@ bool mmi_protocol_sms_parse_set_ip(char * fixed_str, char * data, char * number)
        return true;
 }
 
+// SETMD5KEY:xyz890
+static char s_md5_key[NV_PROTOCOL_MD5_KEY_LEN_MAX] = {0};
+static void mmi_protocol_sms_set_md5_key_cb(watch_app_adp_sms_send_result_type_t result)
+{
+       SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, result);
+       
+       if(APP_SMS_SEND_SUCCESS == result)
+       {
+               mmi_protocol_md5_key_str_set(s_md5_key);
+       }
+       else if(APP_SMS_SEND_FAIL == result)
+       {
+               //
+       }
+}
+
+bool mmi_protocol_sms_parse_set_md5_key(char * fixed_str, 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);
+       
+       uint16_t t_data_len = strlen(data);
+       if(0 == t_data_len || NV_PROTOCOL_MD5_KEY_LEN_MAX <= t_data_len)
+       {
+               SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+               return false;
+       }
+
+       _lv_memset_00(s_md5_key, sizeof(s_md5_key));
+       _lv_memcpy(s_md5_key, data, t_data_len);
+
+       mmi_protocol_sms_parse_sms_reply(NULL, fixed_str, number, mmi_protocol_sms_set_md5_key_cb);
+
+       return true;
+}
+
+
+// SETDEVICENAME:abc123
+static char s_device_name[NV_PROTOCOL_DEVICE_NAME_LEN_MAX] = {0};
+static void mmi_protocol_sms_set_device_name_cb(watch_app_adp_sms_send_result_type_t result)
+{
+       SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, result);
+       
+       if(APP_SMS_SEND_SUCCESS == result)
+       {
+               mmi_protocol_device_name_set(s_device_name);
+       }
+       else if(APP_SMS_SEND_FAIL == result)
+       {
+               //
+       }
+}
+
+bool mmi_protocol_sms_parse_set_device_name(char * fixed_str, 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);
+       
+       uint16_t t_data_len = strlen(data);
+       if(0 == t_data_len || NV_PROTOCOL_DEVICE_NAME_LEN_MAX <= t_data_len)
+       {
+               SMS_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+               return false;
+       }
+
+       _lv_memset_00(s_device_name, sizeof(s_device_name));
+       _lv_memcpy(s_device_name, data, t_data_len);
+
+       mmi_protocol_sms_parse_sms_reply(NULL, fixed_str, number, mmi_protocol_sms_set_device_name_cb);
+
+       return true;
+}
+
+
 //SETUPLOAD:300
 static uint32_t upload_interval = 0;
 static void mmi_protocol_sms_set_upload_cb(watch_app_adp_sms_send_result_type_t result)
index 7da4a17..b5a60ba 100644 (file)
@@ -41,6 +41,8 @@ typedef struct
 
 bool mmi_protocol_sms_content_parse(char * sms_content, char * sms_send_number);
 bool mmi_protocol_sms_parse_set_ip(char * fixed_str, char * data, char * number);
+bool mmi_protocol_sms_parse_set_md5_key(char * fixed_str, char * data, char * number);
+bool mmi_protocol_sms_parse_set_device_name(char * fixed_str, char * data, char * number);
 bool mmi_protocol_sms_parse_set_upload(char * fixed_str, char * data, char * number);
 bool mmi_protocol_sms_parse_power_off(char * fixed_str, char * data, char * number);
 bool mmi_protocol_sms_parse_set_factory(char * fixed_str, char * data, char * number);
index 2560381..dc74ad0 100644 (file)
@@ -156,7 +156,12 @@ void mmi_modem_tcp_connect(void *param)
        }
 
 #ifdef __MMI_ZHSX_SUPPORT__
-       res = ValNetworkSocketInit_with_callback(NULL, mmi_watch_host_name_get(), mmi_watch_host_port_get(), (socket_callback)manage_socket_callback);
+       char * t_host_name = mmi_watch_host_name_get();
+       int t_host_port = mmi_watch_host_port_get();
+
+       printf("[@CHENG_DEBUG][%s][%d]: %s,%d\n", __FUNCTION__, __LINE__, t_host_name, t_host_port);
+       
+       res = ValNetworkSocketInit_with_callback(NULL, t_host_name, t_host_port, (socket_callback)manage_socket_callback);
 #else
        res = ValNetworkSocketInit_with_callback(NULL, HOST_NAME, HOST_PORT, (socket_callback)manage_socket_callback);
 #endif