gengxin
authorCCC <2393524978@qq.com>
Mon, 6 Nov 2023 09:21:13 +0000 (17:21 +0800)
committerCCC <2393524978@qq.com>
Mon, 6 Nov 2023 09:21:13 +0000 (17:21 +0800)
2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.c
2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.h
2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.c
2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.h
2.sdk/sdk/gui/lv_watch/include/ui_activity_id.h
2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai.c
2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai.h
2.sdk/sdk/gui/lv_watch/lv_watch_res.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_fzd_content.c [new file with mode: 0644]

index 555ba66..f773d07 100644 (file)
@@ -130,6 +130,11 @@ void mmi_ui_msg_action_heng_ai_wake_now(void)
 {
        mmi_ui_msg_action_no_para_msg(MMI_MSG_HENG_AI_WAKE_NOW);
 }
+
+void mmi_ui_msg_action_heng_ai_warning(void)
+{
+       mmi_ui_msg_action_no_para_msg(MMI_MSG_HENG_AI_WARNING);
+}
 #endif
 #ifdef __MMI_CUSTOM_BEI_KE_RUI_SHENG__
 void mmi_ui_msg_action_ai_talk_incoming(void)
index 0313384..3e4f9aa 100644 (file)
@@ -78,6 +78,10 @@ void mmi_ui_msg_action_pedometer_update(void);
 void mmi_ui_msg_action_remind(void);
 #ifdef __MMI_CUSTOM_HENG_AI__
 void mmi_ui_msg_action_heng_ai_wake_now(void);
+void mmi_ui_msg_action_heng_ai_warning(void);
+#endif
+#ifdef __MMI_CUSTOM_BEI_KE_RUI_SHENG__
+void mmi_ui_msg_action_ai_talk_incoming(void);
 #endif
 
 
index f407dee..eb796bd 100644 (file)
@@ -434,6 +434,9 @@ void watch_ui_message_handle(uint16_t msgid, void * msg)
                case MMI_MSG_HENG_AI_WAKE_NOW:
                        mmi_ui_msg_update_heng_ai_wake_now();
                        break;
+               case MMI_MSG_HENG_AI_WARNING:
+                       mmi_ui_msg_update_heng_ai_warning();
+                       break;
        #endif
        #ifdef __MMI_CUSTOM_BEI_KE_RUI_SHENG__
                case MMI_MSG_AI_TALK_INCOMING:
index 3225479..973d496 100644 (file)
@@ -124,6 +124,7 @@ enum
        MMI_MSG_REMIND,
 #ifdef __MMI_CUSTOM_HENG_AI__
        MMI_MSG_HENG_AI_WAKE_NOW,
+       MMI_MSG_HENG_AI_WARNING,
 #endif
 #ifdef __MMI_CUSTOM_BEI_KE_RUI_SHENG__
        MMI_MSG_AI_TALK_INCOMING,
index 456d351..fa9c443 100644 (file)
@@ -208,6 +208,9 @@ enum
        ACT_ID_WEATHER_MENU,
 #endif
        ACT_ID_REMIND,
+#ifdef __MMI_CUSTOM_HENG_AI__
+       ACT_ID_HENG_AI_WARNING,
+#endif
 #ifdef __MMI_CUSTOM_BEI_KE_RUI_SHENG__
        ACT_ID_AI_TALK,
        ACT_ID_AI_TALK_RECORDING,
index 18cdd1c..e687fb6 100644 (file)
@@ -453,13 +453,12 @@ void mmi_heng_ai_wake_now_aciton(void)
        {
                return ;
        }
-       if(true == wechat_msg_voice_is_recording()
-               || true == wechat_msg_item_is_sending()
-               || true == wechat_msg_voice_is_playing()
-               )
+#ifdef __MMI_WECHAT_SUPPORT__
+       if(true == wechat_screen_is_prohibit_interrupted())
        {
                return;
        }
+#endif
 
        if(true == mmi_remind_screen_is_active())
        {
@@ -498,4 +497,236 @@ uint8_t mmi_heng_ai_wake_ring_type_get(void)
        return (ring_type_data.switch_flag);
 }
 
+
+static mmi_heng_ai_warning_info_s s_heng_ai_warning_info = {0};
+
+bool mmi_heng_ai_warning_screen_is_active(void)
+{
+       lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_HENG_AI_WARNING);
+       if(NULL != activity_obj) 
+               return true;
+
+       return false;
+}
+
+static lv_remind_obj_ext_t * mmi_heng_ai_warning_screen_ext_get(void)
+{
+       lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_HENG_AI_WARNING);
+       if(NULL == activity_obj) 
+               return NULL;
+       
+       lv_obj_t * watch_obj = NULL;
+       lv_watch_get_child_obj(activity_obj, lv_watch_obj_signal, &watch_obj);
+       if(NULL != watch_obj) 
+       {
+               void * ext = lv_obj_get_ext_attr(watch_obj);
+               return ext;
+       }
+
+       return NULL;
+}
+
+static void mmi_heng_ai_warning_screen_prepare_destory(lv_obj_t * activity_obj)
+{
+    lv_watch_png_cache_all_free();
+
+       Hal_Vibrator_Play_End();
+
+    Hal_Tone_Play_End();
+    Hal_Audio_Manage_End_Ind(AUDIO_CTRL_PRIORITY_REMIND);
+
+       printf("[@CHENG_DEBUG][%s][%d]: 0x%x\n", __FUNCTION__, __LINE__, s_heng_ai_warning_info.prompt_str);
+       if(NULL != s_heng_ai_warning_info.prompt_str)
+       {
+               lv_mem_free(s_heng_ai_warning_info.prompt_str);
+               s_heng_ai_warning_info.prompt_str = NULL;
+       }
+
+       lv_heng_ai_warning_obj_ext_t * ext = mmi_heng_ai_warning_screen_ext_get();
+    if(ext)
+       {
+        if(NULL != ext->timer_id)
+               {
+            Hal_Timer_Stop(ext->timer_id);
+                       ext->timer_id = NULL;
+        }
+    }
+
+    watch_set_suspend_enable(true, ACT_ID_HENG_AI_WARNING, 0);
+}
+
+void mmi_heng_ai_warning_screen_clean(void)
+{
+       mmi_heng_ai_warning_screen_prepare_destory(NULL);
+       
+    lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_HENG_AI_WARNING);
+    if(NULL != activity_obj)
+       {
+               printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+        lv_obj_del(activity_obj);
+    }
+}
+
+void mmi_heng_ai_warning_btn_event_cb(lv_obj_t * obj, lv_event_t e)
+{
+       if(LV_EVENT_CLICKED == e)
+       {
+               mmi_heng_ai_warning_screen_clean();
+       }
+}
+
+static void mmi_heng_ai_warning_screen_timeout(void * para)
+{
+       mmi_heng_ai_warning_screen_clean();
+}
+
+static lv_obj_t * mmi_heng_ai_warning_screen_create(lv_obj_t * activity_obj)
+{
+       printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       if(NULL == activity_obj)
+       {
+               lv_watch_activity_ext_t activity_ext = {0};
+
+               activity_ext.actId = ACT_ID_HENG_AI_WARNING;
+               activity_ext.create = mmi_heng_ai_warning_screen_create;
+               activity_ext.prepare_destory = mmi_heng_ai_warning_screen_prepare_destory;
+               activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+               if(NULL == activity_obj)
+                       return NULL;
+       }
+
+       /* watch obj */
+       lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+       lv_watch_obj_set_anim_mode(obj, LV_WATCH_ANIM_HOR_RIGHT_HIDE);
+       lv_heng_ai_warning_obj_ext_t * ext = (lv_heng_ai_warning_obj_ext_t *)lv_obj_allocate_ext_attr(obj, sizeof(lv_heng_ai_warning_obj_ext_t));
+
+       lv_obj_t * cont = lv_cont_create(obj, NULL);
+       lv_obj_set_size(cont, LV_HOR_RES, LV_VER_RES);
+       lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+       //lv_obj_set_style_local_bg_color(cont, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+       lv_obj_set_click(cont, false);
+
+       hal_rtc_t cur_time;
+       char time_str[8] = {0};
+       
+       Hal_Rtc_Gettime(&cur_time);
+       sprintf(time_str, "%02d:%02d", cur_time.tm_hour, cur_time.tm_min);
+       
+       lv_obj_t * label_time = lv_label_create(cont, NULL);
+       lv_obj_add_style(label_time, LV_LABEL_PART_MAIN, &lv_watch_font26);
+       lv_label_set_text(label_time, time_str);
+       lv_label_set_align(label_time, LV_LABEL_ALIGN_CENTER);
+       lv_obj_align(label_time, NULL, LV_ALIGN_IN_TOP_MID, 0, 50);
+
+       lv_obj_t * label_prompt = lv_label_create(cont, NULL);
+       lv_obj_add_style(label_prompt, LV_LABEL_PART_MAIN, &lv_watch_font26);
+       lv_label_set_align(label_prompt, LV_LABEL_ALIGN_CENTER);
+       lv_label_set_long_mode(label_prompt, LV_LABEL_LONG_BREAK);
+       lv_obj_set_width(label_prompt, lv_obj_get_width(obj) - 20);
+       lv_label_set_text(label_prompt, s_heng_ai_warning_info.prompt_str);
+       lv_obj_align(label_prompt, label_time, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
+       
+
+       lv_obj_t * btn = lv_btn_create(cont, NULL);
+       lv_obj_set_size(btn, 100, 56);
+       lv_obj_set_style_local_bg_color(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, lv_color_make(0x47, 0xA6, 0xFF));
+       lv_obj_set_style_local_radius(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 30);
+       lv_obj_set_style_local_bg_color(btn, LV_BTN_PART_MAIN, LV_STATE_PRESSED, lv_color_make(0x47, 0xA6, 0xFF));
+       lv_obj_set_style_local_radius(btn, LV_BTN_PART_MAIN, LV_STATE_PRESSED, 30);
+       lv_obj_align(btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -20);
+       lv_obj_set_event_cb(btn, mmi_heng_ai_warning_btn_event_cb);
+
+       lv_obj_t * label = lv_label_create(btn, NULL);
+       lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font26);
+       lv_label_set_text_id(label, WATCH_TEXT_ID_OK);
+       
+       /* start timer (1 min) */
+       ext->timer_id = Hal_Timer_Start(1000 * 60, mmi_heng_ai_warning_screen_timeout, NULL, false);
+
+       watch_set_suspend_enable(false, ACT_ID_HENG_AI_WARNING, 0);
+
+       return obj;
+}
+
+void mmi_heng_ai_warning_audio_ctrl_callback(AUDIO_CTRL_PRIORITY priority)
+{
+       printf("[@CHENG_DEBUG][%s][%d]: priority=%d\n", __FUNCTION__, __LINE__, priority);
+
+    if(AUDIO_CTRL_PRIORITY_REMIND == priority)
+    {
+               //
+    }
+    else if(AUDIO_CTRL_PRIORITY_REMIND > priority)
+    {
+        mmi_heng_ai_warning_screen_clean();
+    }
+}
+
+void mmi_ui_msg_update_heng_ai_warning(void)
+{
+       printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+    if(AUDIO_CTRL_PRIORITY_REMIND == Hal_Audio_Manage_Start_Req(AUDIO_CTRL_PRIORITY_REMIND, mmi_heng_ai_warning_audio_ctrl_callback))
+    {
+               if(MMI_HENG_AI_WARNING_TYPE_SLEEP == s_heng_ai_warning_info.type)
+               Hal_NFFS_File_Play_Repeat(AUDIO_REMIND_SLEEP, query_current_volume());
+               else
+                       Hal_Vibrator_Play_Repeat(); 
+               
+               mmi_heng_ai_warning_screen_create(NULL);
+    }
+}
+
+void mmi_heng_ai_warning_info_set(uint8_t type_value, uint8_t state_value, char * unicode_description)
+{
+       printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+       if(true == mmi_active_screen_is_prohibit_interrupted()
+       #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
+               || true == mmi_watch_is_in_do_not_disturb_time()
+       #endif
+               )
+       {
+               return ;
+       }
+#ifdef __MMI_WECHAT_SUPPORT__
+       if(true == wechat_screen_is_prohibit_interrupted())
+       {
+               return;
+       }
+#endif
+
+       if(true == mmi_heng_ai_warning_screen_is_active())
+       {
+               return ;
+       }
+       
+       if(NULL != s_heng_ai_warning_info.prompt_str)
+       {
+               lv_mem_free(s_heng_ai_warning_info.prompt_str);
+               s_heng_ai_warning_info.prompt_str = NULL;
+       }
+       s_heng_ai_warning_info.type = type_value;
+       s_heng_ai_warning_info.state = state_value;
+
+       uint32_t unicode_length = strlen(unicode_description);
+       uint32_t memory_size = unicode_length / 4 * 3 + 1;
+       uint32_t output_len = 0;
+               
+       s_heng_ai_warning_info.prompt_str = lv_mem_alloc(memory_size);
+       if(NULL != s_heng_ai_warning_info.prompt_str)
+       {
+               printf("[@CHENG_DEBUG][%s][%d]: 0x%x\n", __FUNCTION__, __LINE__, s_heng_ai_warning_info.prompt_str);
+               
+               _lv_memset_00(s_heng_ai_warning_info.prompt_str, memory_size);
+               mmi_unicode_hex_str_to_utf8_str(unicode_description, unicode_length, s_heng_ai_warning_info.prompt_str, &output_len);
+
+               printf("[@CHENG_DEBUG][%s][%d]: unicode_length=%d,memory_size=%d,output_len=%d\n", __FUNCTION__, __LINE__, unicode_length, memory_size, output_len);
+
+               // ui
+               mmi_watch_wake_up();
+               mmi_ui_msg_action_heng_ai_warning();
+       }
+}
+
 #endif
index fc21185..55786d5 100644 (file)
@@ -33,6 +33,57 @@ void mmi_heng_ai_camera_open(void);
 void mmi_heng_ai_wake_ring_type_set(uint8_t ring_type);
 uint8_t mmi_heng_ai_wake_ring_type_get(void);
 
+
+
+typedef enum
+{
+       MMI_HENG_AI_WARNING_TYPE_NONE,
+               
+       MMI_HENG_AI_WARNING_TYPE_HEART_RATE = 1,
+       MMI_HENG_AI_WARNING_TYPE_SPO2,
+       MMI_HENG_AI_WARNING_TYPE_3,
+       MMI_HENG_AI_WARNING_TYPE_TEMPERATURE = 4,
+       MMI_HENG_AI_WARNING_TYPE_5,
+       MMI_HENG_AI_WARNING_TYPE_6,
+       MMI_HENG_AI_WARNING_TYPE_7,
+       MMI_HENG_AI_WARNING_TYPE_SLEEP = 8,
+
+       MMI_HENG_AI_WARNING_TYPE_MAX
+} MMI_HENG_AI_WARNING_TYPE_E;
+
+typedef enum
+{
+       MMI_HENG_AI_WARNING_STATE_NONE,
+
+       MMI_HENG_AI_WARNING_STATE_NORMAL = MMI_HENG_AI_WARNING_STATE_NONE,
+       MMI_HENG_AI_WARNING_STATE_LOW,
+       MMI_HENG_AI_WARNING_STATE_HIGH,
+       MMI_HENG_AI_WARNING_STATE_LOWER,
+       MMI_HENG_AI_WARNING_STATE_HIGHER,
+       MMI_HENG_AI_WARNING_STATE_LOWEST,
+       MMI_HENG_AI_WARNING_STATE_HIGHEST,
+
+       MMI_HENG_AI_WARNING_STATE_MAX
+} MMI_HENG_AI_WARNING_STATE_E;
+
+typedef struct
+{
+       MMI_HENG_AI_WARNING_TYPE_E type;
+       MMI_HENG_AI_WARNING_STATE_E state;
+       void * prompt_str;
+} mmi_heng_ai_warning_info_s;
+
+typedef struct 
+{
+    lv_watch_obj_ext_t lv_watch_obj;
+    /*New data for this type */
+    TIMER_ID timer_id;
+} lv_heng_ai_warning_obj_ext_t;
+
+
+void mmi_heng_ai_warning_info_set(uint8_t type_value, uint8_t state_value, char * unicode_description);
+
+
 #endif
 
 #ifdef __cplusplus
index fd29150..ef57973 100644 (file)
@@ -31,7 +31,7 @@ extern "C" {
 #ifdef __MMI_REMIND_WAKE_UP_SUPPORT__
 #define AUDIO_REMIND_WAKE_UP                 "R:/audio/AUDIO_REMIND_WAKE_UP.mp3"
 #endif
-#ifdef __MMI_REMIND_SLEEP_SUPPORT__
+#if defined(__MMI_REMIND_SLEEP_SUPPORT__) || defined(__MMI_CUSTOM_HENG_AI__)
 #define AUDIO_REMIND_SLEEP                   "R:/audio/AUDIO_REMIND_SLEEP.mp3"
 #endif
 
index c78b84c..4cdcc06 100644 (file)
@@ -10,6 +10,9 @@
 #include "../../../../product/craneg_modem/pcac/mbedtls/include/mbedtls/md5.h"
 #endif
 
+// action key string & action case parse
+#include "mmi_protocol_fzd_content.c"
+
 
 static uint8_t s_fzd_time_data_flag = 0;
 static MMI_PROTOCOL_FZD_SEND_SPACE_STRUCT s_send_space_struct[MMI_FZD_ACTION_MAX] = {0};
@@ -18,8 +21,7 @@ static MMI_PROTOCOL_FZD_RECEIVE_SPACE_STRUCT s_receive_space_struct = {0};
 
 static bool mmi_protocol_fzd_send_without_data(MMI_PROTOCOL_FZD_ACTION_ENUM action);
 static bool mmi_protocol_fzd_send_with_data(MMI_PROTOCOL_FZD_ACTION_ENUM action, unsigned char * content_buff, int content_lenth);
-static unsigned char * mmi_protocol_fzd_action_string_get(MMI_PROTOCOL_FZD_ACTION_ENUM action);
-static bool mmi_protocol_fzd_content_parse(unsigned char * content_ptr, unsigned int content_length);
+
 
 
 //
@@ -489,322 +491,7 @@ static bool mmi_protocol_fzd_send_with_data(MMI_PROTOCOL_FZD_ACTION_ENUM action,
        return result;
 }
 
-static unsigned char * mmi_protocol_fzd_action_string_get(MMI_PROTOCOL_FZD_ACTION_ENUM action)
-{
-       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, "LK"},
-               {MMI_FZD_ACTION_HEARTBEAT, "KA"},
-                       {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"},
-                       {MMI_FZD_ACTION_TALK_MESSAGE, "MESSAGE"},
-               #endif
-               #if USE_LV_WATCH_CAMERA != 0
-                       {MMI_FZD_ACTION_SEND_PHOTO, "img"},
-               #endif
-                       {MMI_FZD_ACTION_GET_WEATHER, "WT"},                     //
-                       {MMI_FZD_SERVER_SET_SOS_NUMBER, "SOS"},                 //
-                       {MMI_FZD_SERVER_SET_CENTER_NUMBER, "CENTER"},           //
-                       {MMI_FZD_SERVER_SET_MONITOR, "MONITOR"},
-                       {MMI_FZD_ACTION_UNBIND, "DLT"},
-
-               #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
-               #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_WULIAN__
-                       {MMI_FZD_WATCH_GET_VC_CONFIG, "jup_hoo_config"},
-                       {MMI_FZD_WATCH_GET_VC_CONTACT, "video_contact"},
-                       
-                       {MMI_FZD_WATCH_VC_CALL_REQUEST, "jup_hoo_call"},
-                       {MMI_FZD_SERVER_VC_CALL_RESPONSE, "jup_hoo_reply"},
-               
-                       {MMI_FZD_SERVER_VC_CALL_REQUEST, "jup_hoo_request"},
-                       {MMI_FZD_WATCH_VC_CALL_RESPONSE, "jup_hoo_response"},
-               #endif
-               #if defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_TONGXIN__)
-                       {MMI_FZD_WATCH_GET_VC_CONFIG, "JPREG"},
-                       {MMI_FZD_WATCH_GET_VC_CONTACT, "MEMBERS"},
-                       {MMI_FZD_WATCH_VC_CALL_REQUEST, "AGTALK"},
-                       {MMI_FZD_SERVER_VC_CALL_RESPONSE, "RTALK"},
-                       {MMI_FZD_SERVER_VC_CALL_REQUEST, "CALLING"},
-                       {MMI_FZD_WATCH_VC_CALL_RESPONSE, "RCALLING"},
-               #endif
-               #endif
-               #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
-                       {MMI_FZD_SERVER_SET_NOT_DISTURB, "SILENCETIME2"},
-               #endif
-                       {MMI_FZD_SERVER_SET_DIAL_PAD_SWITCH, "KEYBRD"},
-                       {MMI_FZD_SERVER_SET_WHITE_LIST_SWITCH, "WLKEY"}, 
-               #ifdef __MMI_REMIND_WAKE_UP_SUPPORT__
-                       {MMI_FZD_SERVER_SET_REMIND_WAKE_UP, "REMIND_CH_WAKEUP"},
-               #endif
-               #ifdef __MMI_CUSTOM_HENG_AI__
-                       {MMI_FZD_SERVER_SET_HENG_AI_WAKE_NOW, "HENG_AI_WAKE_NOW"},
-                       {MMI_FZD_SERVER_SET_HENG_AI_WAKE_RING_TYPE, "HENG_AI_WAKE_RING_TYPE"},
-               #endif
-
-               
-               /*******add before this line*******/
-                       {MMI_FZD_ACTION_MAX, ""}, // MMI_FZD_ACTION_MAX
-           };
-
-    return action_struct[action].action_string;
-}
-
-static bool mmi_protocol_fzd_content_parse(unsigned char * content_ptr, unsigned int content_length)
-{
-       unsigned char * next_buff = NULL;
-       unsigned int next_buff_len = 0;
-       MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_ACTION_NONE;
-       uint8_t content_action_str_len = 0;
-       
-       PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: length=%d, content=%s\n", __FUNCTION__, __LINE__, content_length, content_ptr);
-
-       km_strtok_r(content_ptr, ",", &next_buff);
-       content_action_str_len = strlen(content_ptr);
-       if(NULL == next_buff)
-               next_buff_len = 0;
-       else
-               next_buff_len = content_length - content_action_str_len - 1;
-       
-       for(action = MMI_FZD_ACTION_NONE; action < MMI_FZD_ACTION_MAX; action++)
-       {
-               unsigned char * action_string = mmi_protocol_fzd_action_string_get(action);
-               if(strlen(action_string) == content_action_str_len)
-               {
-                       if(0 == strncmp(content_ptr, action_string, content_action_str_len))
-                       {
-                               PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: action_string=%s, action=%d\n", __FUNCTION__, __LINE__, action_string, action);
-                               break;
-                       }
-               }
-       }
-
-       if(MMI_FZD_ACTION_MAX == action)
-       {
-               PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
-               return false;
-       }
-
-       switch(action)
-       {
-               case MMI_FZD_ACTION_LINK:
-                       mmi_protocol_fzd_parse_LINK(next_buff, next_buff_len);
-                       break;
-               
-               case MMI_FZD_ACTION_HEARTBEAT:
-                       mmi_protocol_fzd_parse_HEARTBEAT(next_buff, next_buff_len);
-                       break;
-
-               case MMI_FZD_ACTION_BIND:
-                       mmi_protocol_fzd_parse_ACTION_BIND(next_buff, next_buff_len);
-                       break;
-
-               case MMI_FZD_ACTION_GET_TIME:
-                       mmi_protocol_fzd_parse_ACTION_GET_TIME(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_ACTION_SEND_LOCATION:
-                       break;
-
-               case MMI_FZD_ACTION_SEND_CUR_LOCATION:
-                       break;
-                       
-               case MMI_FZD_SERVER_GET_CUR_LOCATION:
-                       mmi_protocol_fzd_parse_SERVER_GET_CUR_LOCATION(next_buff, next_buff_len);
-                       break;
-
-               case MMI_FZD_SERVER_SET_UD_INTERVAL:
-                       mmi_protocol_fzd_parse_SERVER_SET_UD_INTERVAL(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_ACTION_ALERT:
-                       break;
-                       
-               case MMI_FZD_SERVER_SET_FACTORY:
-                       mmi_protocol_fzd_parse_SERVER_SET_FACTORY(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_SERVER_SET_POWEROFF:
-                       mmi_protocol_fzd_parse_SERVER_SET_POWEROFF(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_SERVER_FIND_WATCH:
-                       mmi_protocol_fzd_parse_SERVER_FIND_WATCH(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_SERVER_GET_VERSION:
-                       mmi_protocol_fzd_parse_SERVER_GET_VERSION(next_buff, next_buff_len);
-                       break;
-
-               case MMI_FZD_SERVER_SET_PHONEBOOK:
-                       mmi_protocol_fzd_parse_SERVER_SET_PHONEBOOK(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_SERVER_SET_CALL:
-                       mmi_protocol_fzd_parse_SERVER_SET_CALL(next_buff, next_buff_len);
-                       break;
-
-               case MMI_FZD_SERVER_SET_REMIND:
-                       mmi_protocol_fzd_parse_SERVER_SET_REMIND(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_SERVER_SET_HEART_INTERVAL:
-                       mmi_protocol_fzd_parse_SERVER_SET_HEART_INTERVAL(next_buff, next_buff_len);
-                       break;
-
-               case MMI_FZD_ACTION_SEND_HEART:
-                       break;
-                       
-               case MMI_FZD_SERVER_SET_TEMPERATURE_INTERVAL:
-                       mmi_protocol_fzd_parse_SERVER_SET_TEMPERATURE_INTERVAL(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_ACTION_SEND_TEMPERATURE:
-                       break;
-
-               case MMI_FZD_SERVER_SET_BLOOD_INTERVAL:
-                       mmi_protocol_fzd_parse_SERVER_SET_BLOOD_INTERVAL(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_ACTION_SEND_BLOOD:
-                       break;
-
-               case MMI_FZD_SERVER_SET_SPO2_INTERVAL:
-                       mmi_protocol_fzd_parse_SERVER_SET_SPO2_INTERVAL(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_ACTION_SEND_SPO2:
-                       break;
-                       
-       #ifdef __MMI_WECHAT_SUPPORT__
-               case MMI_FZD_ACTION_TALK:
-                       mmi_protocol_fzd_parse_ACTION_TALK(next_buff, next_buff_len);
-                       break;
-
-               case MMI_FZD_ACTION_TALK_MESSAGE:
-                       mmi_protocol_fzd_parse_ACTION_TALK_MESSAGE(next_buff, next_buff_len);
-                       break;
-       #endif
-
-       #if USE_LV_WATCH_CAMERA != 0
-               case MMI_FZD_ACTION_SEND_PHOTO:
-                       break;
-       #endif
-       
-               case MMI_FZD_ACTION_GET_WEATHER:
-                       mmi_protocol_fzd_parse_ACTION_GET_WEATHER(next_buff, next_buff_len);
-                       break;
-
-               case MMI_FZD_SERVER_SET_SOS_NUMBER:
-                       mmi_protocol_fzd_parse_SERVER_SET_SOS_NUMBER(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_SERVER_SET_CENTER_NUMBER:
-                       mmi_protocol_fzd_parse_SERVER_SET_CENTER_NUMBER(next_buff, next_buff_len);
-                       break;
-
-               case MMI_FZD_SERVER_SET_MONITOR:
-                       mmi_protocol_fzd_parse_SERVER_SET_MONITOR(next_buff, next_buff_len);
-                       break;
-
-               case MMI_FZD_ACTION_UNBIND:
-                       break;
-
-       #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
-       #if defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_WULIAN__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_TONGXIN__)
-               case MMI_FZD_WATCH_GET_VC_CONFIG:
-                       mmi_protocol_fzd_parse_WATCH_GET_VC_CONFIG(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_WATCH_GET_VC_CONTACT:
-                       mmi_protocol_fzd_parse_WATCH_GET_VC_CONTACT(next_buff, next_buff_len);
-                       break;
-               
-               case MMI_FZD_WATCH_VC_CALL_REQUEST:
-                       mmi_protocol_fzd_parse_WATCH_VC_CALL_REQUEST(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_SERVER_VC_CALL_RESPONSE:
-                       mmi_protocol_fzd_parse_SERVER_VC_CALL_RESPONSE(next_buff, next_buff_len);
-                       break;
-               
-               case MMI_FZD_SERVER_VC_CALL_REQUEST:
-                       mmi_protocol_fzd_parse_SERVER_VC_CALL_REQUEST(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_WATCH_VC_CALL_RESPONSE:
-                       break;
-       #endif
-       #endif
-
-       #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
-               case MMI_FZD_SERVER_SET_NOT_DISTURB:
-                       mmi_protocol_fzd_parse_SERVER_SET_NOT_DISTURB(next_buff, next_buff_len);
-                       break;
-       #endif
-
-               case MMI_FZD_SERVER_SET_DIAL_PAD_SWITCH:
-                       mmi_protocol_fzd_parse_SERVER_SET_DIAL_PAD_SWITCH(next_buff, next_buff_len);
-                       break;
-
-               case MMI_FZD_SERVER_SET_WHITE_LIST_SWITCH:
-                       mmi_protocol_fzd_parse_SERVER_SET_WHITE_LIST_SWITCH(next_buff, next_buff_len);
-                       break;
-                       
-       #ifdef __MMI_REMIND_WAKE_UP_SUPPORT__
-               case MMI_FZD_SERVER_SET_REMIND_WAKE_UP:
-                       mmi_protocol_fzd_parse_SERVER_SET_REMIND_WAKE_UP(next_buff, next_buff_len);
-                       break;
-       #endif
-
-       #ifdef __MMI_CUSTOM_HENG_AI__
-               case MMI_FZD_SERVER_SET_HENG_AI_WAKE_NOW:
-                       mmi_protocol_fzd_parse_SERVER_SET_HENG_AI_WAKE_NOW(next_buff, next_buff_len);
-                       break;
-                       
-               case MMI_FZD_SERVER_SET_HENG_AI_WAKE_RING_TYPE:
-                       mmi_protocol_fzd_parse_SERVER_SET_HENG_AI_WAKE_RING_TYPE(next_buff, next_buff_len);
-                       break;
-       #endif
-
-                        
-               default:
-                       break;
-    }
-    
-    return true;
-}
-
+/////////////////////////
 
 bool mmi_protocol_fzd_action_LINK(void)
 {
@@ -3165,6 +2852,37 @@ bool mmi_protocol_fzd_parse_SERVER_SET_HENG_AI_WAKE_RING_TYPE(unsigned char * ne
        
        return result;
 }
+
+bool mmi_protocol_fzd_parse_SERVER_SET_HENG_AI_WARNING(unsigned char * next_buff, unsigned int next_buff_len)
+{
+       bool result = false;
+       MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_SERVER_SET_HENG_AI_WARNING;
+
+       if(NULL == next_buff || 0 == next_buff_len)
+       {
+               PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+               return false;
+       }
+       
+       result = true;
+       mmi_protocol_fzd_send_without_data(action);
+
+       char * temp_ptr = NULL;
+       uint8_t type_value = 0;
+       uint8_t state_value = 0;
+
+       temp_ptr = km_strtok_r(NULL, ",", &next_buff);
+       type_value = atoi(temp_ptr);
+
+       temp_ptr = km_strtok_r(NULL, ",", &next_buff);
+       state_value = atoi(temp_ptr);
+       
+       PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+       mmi_heng_ai_warning_info_set(type_value, state_value, next_buff);
+       
+       return result;
+}
 #endif
 
 
index 97243be..002eb35 100644 (file)
@@ -156,6 +156,7 @@ typedef enum
 #ifdef __MMI_CUSTOM_HENG_AI__
        MMI_FZD_SERVER_SET_HENG_AI_WAKE_NOW,
        MMI_FZD_SERVER_SET_HENG_AI_WAKE_RING_TYPE,
+       MMI_FZD_SERVER_SET_HENG_AI_WARNING,
 #endif
 
 
@@ -282,6 +283,7 @@ bool mmi_protocol_fzd_parse_SERVER_SET_REMIND_WAKE_UP(unsigned char * next_buff,
 #ifdef __MMI_CUSTOM_HENG_AI__
 bool mmi_protocol_fzd_parse_SERVER_SET_HENG_AI_WAKE_NOW(unsigned char * next_buff, unsigned int next_buff_len);                
 bool mmi_protocol_fzd_parse_SERVER_SET_HENG_AI_WAKE_RING_TYPE(unsigned char * next_buff, unsigned int next_buff_len);
+bool mmi_protocol_fzd_parse_SERVER_SET_HENG_AI_WARNING(unsigned char * next_buff, unsigned int next_buff_len);
 #endif
 
 
diff --git a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd_content.c b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd_content.c
new file mode 100644 (file)
index 0000000..d2ce593
--- /dev/null
@@ -0,0 +1,333 @@
+
+
+
+#include "lv_watch.h"
+
+#ifdef __MMI_ZHSX_SUPPORT_FZD__
+
+
+static unsigned char * mmi_protocol_fzd_action_string_get(MMI_PROTOCOL_FZD_ACTION_ENUM action)
+{
+       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_LINK, "LK"},
+               {MMI_FZD_ACTION_HEARTBEAT, "KA"},
+                       {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"},
+                       {MMI_FZD_ACTION_TALK_MESSAGE, "MESSAGE"},
+               #endif
+               #if USE_LV_WATCH_CAMERA != 0
+                       {MMI_FZD_ACTION_SEND_PHOTO, "img"},
+               #endif
+                       {MMI_FZD_ACTION_GET_WEATHER, "WT"},     
+                       {MMI_FZD_SERVER_SET_SOS_NUMBER, "SOS"}, 
+                       {MMI_FZD_SERVER_SET_CENTER_NUMBER, "CENTER"},
+                       {MMI_FZD_SERVER_SET_MONITOR, "MONITOR"},
+                       {MMI_FZD_ACTION_UNBIND, "DLT"},
+
+               #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
+               #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_WULIAN__
+                       {MMI_FZD_WATCH_GET_VC_CONFIG, "jup_hoo_config"},
+                       {MMI_FZD_WATCH_GET_VC_CONTACT, "video_contact"},
+                       
+                       {MMI_FZD_WATCH_VC_CALL_REQUEST, "jup_hoo_call"},
+                       {MMI_FZD_SERVER_VC_CALL_RESPONSE, "jup_hoo_reply"},
+               
+                       {MMI_FZD_SERVER_VC_CALL_REQUEST, "jup_hoo_request"},
+                       {MMI_FZD_WATCH_VC_CALL_RESPONSE, "jup_hoo_response"},
+               #endif
+               #if defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_TONGXIN__)
+                       {MMI_FZD_WATCH_GET_VC_CONFIG, "JPREG"},
+                       {MMI_FZD_WATCH_GET_VC_CONTACT, "MEMBERS"},
+                       {MMI_FZD_WATCH_VC_CALL_REQUEST, "AGTALK"},
+                       {MMI_FZD_SERVER_VC_CALL_RESPONSE, "RTALK"},
+                       {MMI_FZD_SERVER_VC_CALL_REQUEST, "CALLING"},
+                       {MMI_FZD_WATCH_VC_CALL_RESPONSE, "RCALLING"},
+               #endif
+               #endif
+               #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
+                       {MMI_FZD_SERVER_SET_NOT_DISTURB, "SILENCETIME2"},
+               #endif
+                       {MMI_FZD_SERVER_SET_DIAL_PAD_SWITCH, "KEYBRD"},
+                       {MMI_FZD_SERVER_SET_WHITE_LIST_SWITCH, "WLKEY"}, 
+               #ifdef __MMI_REMIND_WAKE_UP_SUPPORT__
+                       {MMI_FZD_SERVER_SET_REMIND_WAKE_UP, "REMIND_CH_WAKEUP"},
+               #endif
+               #ifdef __MMI_CUSTOM_HENG_AI__
+                       {MMI_FZD_SERVER_SET_HENG_AI_WAKE_NOW, "HENG_AI_WAKE_NOW"},
+                       {MMI_FZD_SERVER_SET_HENG_AI_WAKE_RING_TYPE, "HENG_AI_WAKE_RING_TYPE"},
+                       {MMI_FZD_SERVER_SET_HENG_AI_WARNING, "HENGAI_WARNING"},
+               #endif
+
+               
+               /*******add before this line*******/
+                       {MMI_FZD_ACTION_MAX, ""}, // MMI_FZD_ACTION_MAX
+           };
+
+    return action_struct[action].action_string;
+}
+
+static bool mmi_protocol_fzd_content_parse(unsigned char * content_ptr, unsigned int content_length)
+{
+       unsigned char * next_buff = NULL;
+       unsigned int next_buff_len = 0;
+       MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_ACTION_NONE;
+       uint8_t content_action_str_len = 0;
+       
+       PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: length=%d, content=%s\n", __FUNCTION__, __LINE__, content_length, content_ptr);
+
+       km_strtok_r(content_ptr, ",", &next_buff);
+       content_action_str_len = strlen(content_ptr);
+       if(NULL == next_buff)
+               next_buff_len = 0;
+       else
+               next_buff_len = content_length - content_action_str_len - 1;
+       
+       for(action = MMI_FZD_ACTION_NONE; action < MMI_FZD_ACTION_MAX; action++)
+       {
+               unsigned char * action_string = mmi_protocol_fzd_action_string_get(action);
+               if(strlen(action_string) == content_action_str_len)
+               {
+                       if(0 == strncmp(content_ptr, action_string, content_action_str_len))
+                       {
+                               PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: action_string=%s, action=%d\n", __FUNCTION__, __LINE__, action_string, action);
+                               break;
+                       }
+               }
+       }
+
+       if(MMI_FZD_ACTION_MAX == action)
+       {
+               PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+               return false;
+       }
+
+       switch(action)
+       {
+               case MMI_FZD_ACTION_LINK:
+                       mmi_protocol_fzd_parse_LINK(next_buff, next_buff_len);
+                       break;
+               
+               case MMI_FZD_ACTION_HEARTBEAT:
+                       mmi_protocol_fzd_parse_HEARTBEAT(next_buff, next_buff_len);
+                       break;
+
+               case MMI_FZD_ACTION_BIND:
+                       mmi_protocol_fzd_parse_ACTION_BIND(next_buff, next_buff_len);
+                       break;
+
+               case MMI_FZD_ACTION_GET_TIME:
+                       mmi_protocol_fzd_parse_ACTION_GET_TIME(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_ACTION_SEND_LOCATION:
+                       break;
+
+               case MMI_FZD_ACTION_SEND_CUR_LOCATION:
+                       break;
+                       
+               case MMI_FZD_SERVER_GET_CUR_LOCATION:
+                       mmi_protocol_fzd_parse_SERVER_GET_CUR_LOCATION(next_buff, next_buff_len);
+                       break;
+
+               case MMI_FZD_SERVER_SET_UD_INTERVAL:
+                       mmi_protocol_fzd_parse_SERVER_SET_UD_INTERVAL(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_ACTION_ALERT:
+                       break;
+                       
+               case MMI_FZD_SERVER_SET_FACTORY:
+                       mmi_protocol_fzd_parse_SERVER_SET_FACTORY(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_SERVER_SET_POWEROFF:
+                       mmi_protocol_fzd_parse_SERVER_SET_POWEROFF(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_SERVER_FIND_WATCH:
+                       mmi_protocol_fzd_parse_SERVER_FIND_WATCH(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_SERVER_GET_VERSION:
+                       mmi_protocol_fzd_parse_SERVER_GET_VERSION(next_buff, next_buff_len);
+                       break;
+
+               case MMI_FZD_SERVER_SET_PHONEBOOK:
+                       mmi_protocol_fzd_parse_SERVER_SET_PHONEBOOK(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_SERVER_SET_CALL:
+                       mmi_protocol_fzd_parse_SERVER_SET_CALL(next_buff, next_buff_len);
+                       break;
+
+               case MMI_FZD_SERVER_SET_REMIND:
+                       mmi_protocol_fzd_parse_SERVER_SET_REMIND(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_SERVER_SET_HEART_INTERVAL:
+                       mmi_protocol_fzd_parse_SERVER_SET_HEART_INTERVAL(next_buff, next_buff_len);
+                       break;
+
+               case MMI_FZD_ACTION_SEND_HEART:
+                       break;
+                       
+               case MMI_FZD_SERVER_SET_TEMPERATURE_INTERVAL:
+                       mmi_protocol_fzd_parse_SERVER_SET_TEMPERATURE_INTERVAL(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_ACTION_SEND_TEMPERATURE:
+                       break;
+
+               case MMI_FZD_SERVER_SET_BLOOD_INTERVAL:
+                       mmi_protocol_fzd_parse_SERVER_SET_BLOOD_INTERVAL(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_ACTION_SEND_BLOOD:
+                       break;
+
+               case MMI_FZD_SERVER_SET_SPO2_INTERVAL:
+                       mmi_protocol_fzd_parse_SERVER_SET_SPO2_INTERVAL(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_ACTION_SEND_SPO2:
+                       break;
+                       
+       #ifdef __MMI_WECHAT_SUPPORT__
+               case MMI_FZD_ACTION_TALK:
+                       mmi_protocol_fzd_parse_ACTION_TALK(next_buff, next_buff_len);
+                       break;
+
+               case MMI_FZD_ACTION_TALK_MESSAGE:
+                       mmi_protocol_fzd_parse_ACTION_TALK_MESSAGE(next_buff, next_buff_len);
+                       break;
+       #endif
+
+       #if USE_LV_WATCH_CAMERA != 0
+               case MMI_FZD_ACTION_SEND_PHOTO:
+                       break;
+       #endif
+       
+               case MMI_FZD_ACTION_GET_WEATHER:
+                       mmi_protocol_fzd_parse_ACTION_GET_WEATHER(next_buff, next_buff_len);
+                       break;
+
+               case MMI_FZD_SERVER_SET_SOS_NUMBER:
+                       mmi_protocol_fzd_parse_SERVER_SET_SOS_NUMBER(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_SERVER_SET_CENTER_NUMBER:
+                       mmi_protocol_fzd_parse_SERVER_SET_CENTER_NUMBER(next_buff, next_buff_len);
+                       break;
+
+               case MMI_FZD_SERVER_SET_MONITOR:
+                       mmi_protocol_fzd_parse_SERVER_SET_MONITOR(next_buff, next_buff_len);
+                       break;
+
+               case MMI_FZD_ACTION_UNBIND:
+                       break;
+
+       #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__
+       #if defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_WULIAN__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_FZD__) || defined(__MMI_ZHSX_SUPPORT_VIDEO_CALL_TONGXIN__)
+               case MMI_FZD_WATCH_GET_VC_CONFIG:
+                       mmi_protocol_fzd_parse_WATCH_GET_VC_CONFIG(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_WATCH_GET_VC_CONTACT:
+                       mmi_protocol_fzd_parse_WATCH_GET_VC_CONTACT(next_buff, next_buff_len);
+                       break;
+               
+               case MMI_FZD_WATCH_VC_CALL_REQUEST:
+                       mmi_protocol_fzd_parse_WATCH_VC_CALL_REQUEST(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_SERVER_VC_CALL_RESPONSE:
+                       mmi_protocol_fzd_parse_SERVER_VC_CALL_RESPONSE(next_buff, next_buff_len);
+                       break;
+               
+               case MMI_FZD_SERVER_VC_CALL_REQUEST:
+                       mmi_protocol_fzd_parse_SERVER_VC_CALL_REQUEST(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_WATCH_VC_CALL_RESPONSE:
+                       break;
+       #endif
+       #endif
+
+       #ifdef __MMI_ZHSX_SUPPORT_DO_NOT_DISTURB__
+               case MMI_FZD_SERVER_SET_NOT_DISTURB:
+                       mmi_protocol_fzd_parse_SERVER_SET_NOT_DISTURB(next_buff, next_buff_len);
+                       break;
+       #endif
+
+               case MMI_FZD_SERVER_SET_DIAL_PAD_SWITCH:
+                       mmi_protocol_fzd_parse_SERVER_SET_DIAL_PAD_SWITCH(next_buff, next_buff_len);
+                       break;
+
+               case MMI_FZD_SERVER_SET_WHITE_LIST_SWITCH:
+                       mmi_protocol_fzd_parse_SERVER_SET_WHITE_LIST_SWITCH(next_buff, next_buff_len);
+                       break;
+                       
+       #ifdef __MMI_REMIND_WAKE_UP_SUPPORT__
+               case MMI_FZD_SERVER_SET_REMIND_WAKE_UP:
+                       mmi_protocol_fzd_parse_SERVER_SET_REMIND_WAKE_UP(next_buff, next_buff_len);
+                       break;
+       #endif
+
+       #ifdef __MMI_CUSTOM_HENG_AI__
+               case MMI_FZD_SERVER_SET_HENG_AI_WAKE_NOW:
+                       mmi_protocol_fzd_parse_SERVER_SET_HENG_AI_WAKE_NOW(next_buff, next_buff_len);
+                       break;
+                       
+               case MMI_FZD_SERVER_SET_HENG_AI_WAKE_RING_TYPE:
+                       mmi_protocol_fzd_parse_SERVER_SET_HENG_AI_WAKE_RING_TYPE(next_buff, next_buff_len);
+                       break;
+
+               case MMI_FZD_SERVER_SET_HENG_AI_WARNING:
+                       mmi_protocol_fzd_parse_SERVER_SET_HENG_AI_WARNING(next_buff, next_buff_len);
+                       break;
+       #endif
+
+                        
+               default:
+                       break;
+    }
+    
+    return true;
+}
+
+
+#endif
+
+