From: @hu <1224667075@qq.com> Date: Fri, 2 Feb 2024 03:53:27 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=3e0371be7211b0992c2a847d1295e671d23a2c4d;p=mirrors%2FASR3603_Z5.git gengxin Signed-off-by: 1 <1> --- diff --git a/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.c b/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.c index 4d90969b..ed3c0028 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.c +++ b/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.c @@ -27,6 +27,11 @@ void mmi_ui_msg_action_watch_power_off(void) mmi_ui_msg_action_no_para_msg(MMI_MSG_WATCH_POWER_OFF); } +void mmi_ui_msg_action_watch_reboot(void) +{ + mmi_ui_msg_action_no_para_msg(MMI_MSG_WATCH_REBOOT); +} + void mmi_ui_msg_action_watch_searching(void) { mmi_ui_msg_action_no_para_msg(MMI_MSG_WATCH_SEARCHING); diff --git a/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.h b/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.h index 6ead1fd5..f53cac6d 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.h +++ b/2.sdk/sdk/gui/lv_watch/framework/message/mmi_msg_zhsx.h @@ -56,6 +56,7 @@ void mmi_watch_lv_ui_message_action(uint16_t msgid, void * msg); void mmi_ui_msg_action_watch_factory(void); void mmi_ui_msg_action_watch_power_off(void); +void mmi_ui_msg_action_watch_reboot(void); void mmi_ui_msg_action_watch_searching(void); #ifdef __MMI_WECHAT_SUPPORT__ void mmi_ui_msg_action_wechat_incoming(void); diff --git a/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.c b/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.c index 947ea7de..94fb44a9 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.c +++ b/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.c @@ -367,14 +367,16 @@ void watch_ui_message_handle(uint16_t msgid, void * msg) #endif case MMI_MSG_WATCH_FACTORY: - //printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); mmi_ui_msg_update_watch_factory(); break; case MMI_MSG_WATCH_POWER_OFF: - //printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); mmi_ui_msg_update_watch_power_off(); break; + + case MMI_MSG_WATCH_REBOOT: + mmi_ui_msg_update_watch_reboot(); + break; case MMI_MSG_WATCH_SEARCHING: //printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); diff --git a/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.h b/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.h index 0958d453..61b3e3dc 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.h +++ b/2.sdk/sdk/gui/lv_watch/framework/message/watch_msg_handle.h @@ -102,6 +102,7 @@ enum #endif MMI_MSG_WATCH_FACTORY, MMI_MSG_WATCH_POWER_OFF, + MMI_MSG_WATCH_REBOOT, MMI_MSG_WATCH_SEARCHING, #ifdef __MMI_WECHAT_SUPPORT__ MMI_MSG_WECHAT_INCOMING, diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng.c index dd3985a0..3fb1b599 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng.c @@ -22,6 +22,7 @@ static uint8_t s_ai_talk_sending_screen_counter = 0; static bool mmi_ai_talk_is_waiting_for_result(void); static void mmi_ai_talk_sending_screen_task_stop(void); +uint8_t debug_type_ai_talk = 0; static void mmi_ai_talk_receive_item_info_clean(void) { @@ -262,13 +263,13 @@ bool mmi_ai_talk_model_answer_result_display(char * data_buff, int data_buff_len return false; } - if(false == mmi_ai_talk_is_waiting_for_result()) - { - printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - return false; - } + // if(false == mmi_ai_talk_is_waiting_for_result()) + // { + // printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + // return false; + // } - //mmi_ai_talk_sending_screen_task_stop(); + //mmi_ai_talk_sending_screen_task_stop(); if(NULL != s_ai_talk_item_info.msg_data_ptr) { @@ -352,6 +353,154 @@ static void mmi_ai_talk_tts_info_result_play_over_cb(void * para) s_ai_talk_item_info.msg_voice_data_size = 0; } +#define blockAlign_16 1 +int simplest_pcm16le_to_wave(void *pcm_str,int pcm_str_size) +{ + int i=0; + int x=0; + char buf_str[64]={0}; + while (1) + { + i++; + + char temp_str[16]={0}; + if(i==14) + { + break; + } + switch (i) + { + case 1: + sprintf(buf_str,"%s","RIFF"); //4 + x=4; + break; + case 2: + for(int i=0;i<4;i++) + { + char temp= (pcm_str_size+32)>>(8*i) & 0xff; + buf_str[x] = temp; + x++; + // sprintf(buf_str,"%s%c",buf_str,temp); //8 + } + + break; + case 3: + sprintf(temp_str,"%s","WAVE"); //12 + _lv_memcpy(buf_str+x,temp_str,4); + x+=4; + break; + case 4: + sprintf(temp_str,"%s","fmt "); //16 + _lv_memcpy(buf_str+x,temp_str,4); + x+=4; + break; + case 5: + sprintf(temp_str,"%c%c%c%c",0x10,0,0,0); // 20 + _lv_memcpy(buf_str+x,temp_str,4); + x+=4; + + break; + case 6: + sprintf(temp_str,"%c%c",1,0);//22 + _lv_memcpy(buf_str+x,temp_str,2); + x+=2; + break; + case 7: + sprintf(temp_str,"%c%c",1,0);//24 + _lv_memcpy(buf_str+x,temp_str,2); + x+=2; + break; + case 8: + sprintf(temp_str,"%c%c%c%c",0x40,0x1f,0x00,0x00);//28 + _lv_memcpy(buf_str+x,temp_str,4); + x+=4; + break; + case 9: + #if blockAlign_16 + sprintf(temp_str,"%c%c%c%c",0x80,0x3e,0x00,0x00);//每秒字节数32 3200 + #else + sprintf(temp_str,"%c%c%c%c",0x40,0x1f,0x00,0x00);//28 16000 + #endif + + _lv_memcpy(buf_str+x,temp_str,4); + x+=4; + break; + case 10: + #if blockAlign_16 + sprintf(temp_str,"%c%c",0x02,0x00);//每个采样比特数36 + #else + sprintf(temp_str,"%c%c",0x01,0x00);//每个采样字节数32 + #endif + _lv_memcpy(buf_str+x,temp_str,2); + x+=2; + break; + case 11: + #if blockAlign_16 + sprintf(temp_str,"%c%c",0x10,0x00);//每个采样比特数36 + #else + sprintf(temp_str,"%c%c",0x08,0x00);//每个采样比特数36 + #endif + _lv_memcpy(buf_str+x,temp_str,2); + x+=2; + break; + case 12: + sprintf(temp_str,"%s","data");//40 + _lv_memcpy(buf_str+x,temp_str,4); + x+=4; + break; + case 13: + for(int i=0;i<4;i++) + { + char temp= (pcm_str_size)>>(8*i) & 0xff; + buf_str[x] = temp; + x++; + } + break; + } + } + + void * new_str=lv_mem_alloc(pcm_str_size +44+ + 1); + _lv_memset_00(new_str, pcm_str_size +44+ 1); + _lv_memcpy(new_str, buf_str, 44); + _lv_memcpy(new_str+44, s_ai_talk_item_info.msg_voice_data_ptr, pcm_str_size); + + s_ai_talk_item_info.msg_voice_data_ptr = lv_mem_realloc(s_ai_talk_item_info.msg_voice_data_ptr, pcm_str_size+44+1); + _lv_memcpy(s_ai_talk_item_info.msg_voice_data_ptr,new_str,pcm_str_size + 44); + lv_mem_free(new_str); + + #if 0 + char * info_buf = ""; + sprintf(info_buf,"测试次数 "); + uint32_t info_size = strlen(info_buf); + { + lv_fs_file_t file_p; + lv_fs_res_t res; + uint32_t bytes_write = 0; + + res = lv_fs_open(&file_p, "C:/bei_ke_debug_17_06.txt", LV_FS_MODE_WR | LV_FS_MODE_APPEND); + if(LV_FS_RES_OK != res) + { + printf("[@CHENG_DEBUG][%s][%d]: errno=%d\n", __FUNCTION__, __LINE__, res); + lv_fs_close(&file_p); + return false; + } + printf("[@CHENG_DEBUG][%s][%d]:\n", __FUNCTION__, __LINE__); + res = lv_fs_write(&file_p, info_buf, info_size, &bytes_write); + lv_fs_close(&file_p); + if(LV_FS_RES_OK != res) + { + printf("[@CHENG_DEBUG][%s][%d]: errno=%d\n", __FUNCTION__, __LINE__, res); + return false; + } + printf("[@CHENG_DEBUG][%s][%d]: file_size=%d,write_size=%d\n", __FUNCTION__, __LINE__, info_size, bytes_write); + + //return true; + } + #endif + return 0; +} + + bool mmi_ai_talk_tts_info_result_display(char * data_buff, int data_buff_len) { uint32_t output_len = 0; @@ -392,44 +541,17 @@ bool mmi_ai_talk_tts_info_result_display(char * data_buff, int data_buff_len) return false; } _lv_memset_00(s_ai_talk_item_info.msg_voice_data_ptr, data_buff_len); - + //mbedtls_base64_encode mbedtls_base64_decode if(0 != mbedtls_base64_decode(s_ai_talk_item_info.msg_voice_data_ptr, data_buff_len, &output_len, data_buff, data_buff_len)) { printf("[@CHENG_DEBUG][%s][%d]: base64 decode error\n", __FUNCTION__, __LINE__); return false; } s_ai_talk_item_info.msg_voice_data_size = output_len; - + simplest_pcm16le_to_wave(s_ai_talk_item_info.msg_voice_data_ptr,output_len); + s_ai_talk_item_info.msg_voice_data_size+=44; printf("[@CHENG_DEBUG][%s][%d]: len1=%d,len2=%d\n", __FUNCTION__, __LINE__, data_buff_len, output_len); //mmi_ai_talk_debug_info_write_to_file(BEI_KE_DEBUG_FILE, s_ai_talk_item_info.msg_voice_data_ptr, s_ai_talk_item_info.msg_voice_data_size); -#if 1 - char * info_buf = s_ai_talk_item_info.msg_voice_data_ptr; - uint32_t info_size = s_ai_talk_item_info.msg_voice_data_size; - { - lv_fs_file_t file_p; - lv_fs_res_t res; - uint32_t bytes_write = 0; - - res = lv_fs_open(&file_p, "C:/bei_ke_debug.wav", LV_FS_MODE_WR | LV_FS_MODE_APPEND); - if(LV_FS_RES_OK != res) - { - printf("[@CHENG_DEBUG][%s][%d]: errno=%d\n", __FUNCTION__, __LINE__, res); - lv_fs_close(&file_p); - return false; - } - - res = lv_fs_write(&file_p, info_buf, info_size, &bytes_write); - lv_fs_close(&file_p); - if(LV_FS_RES_OK != res) - { - printf("[@CHENG_DEBUG][%s][%d]: errno=%d\n", __FUNCTION__, __LINE__, res); - return false; - } - printf("[@CHENG_DEBUG][%s][%d]: file_size=%d,write_size=%d\n", __FUNCTION__, __LINE__, info_size, bytes_write); - - return true; - } -#endif uint8_t volume = 0; #ifdef __MMI_USER_PROFILE_SUPPORT__ @@ -437,6 +559,7 @@ bool mmi_ai_talk_tts_info_result_display(char * data_buff, int data_buff_len) #else volume = query_current_volume(); #endif + //Hal_NFFS_File_Play_Onetime("C:ai_take.wav",volume,mmi_ai_talk_tts_info_result_play_over_cb,NULL); Hal_Tone_Play_Onetime((uint32_t *)s_ai_talk_item_info.msg_voice_data_ptr, s_ai_talk_item_info.msg_voice_data_size, volume, @@ -520,27 +643,29 @@ void mmi_ai_talk_sending_screen_exit(void) void mmi_ai_talk_sending_fail_screen_exit(void) { mmi_ai_talk_sending_screen_exit(); - //return main list screen mmi_ai_talk_main_screen_refresh(); } #define TIMEOUT_SEND_END_CHAR_COUNT (3) // 500ms *3 -#define TIMEOUT_WAIT_FOR_RESULT_COUNT (19) // 500ms *3 + 500ms * 16 -#define TIMEOUT_GET_RESULT_FAIL_COUNT (22) // 500ms *3 + 500ms * 16 + 500ms * 3 - +#define TIMEOUT_WAIT_FOR_RESULT_COUNT (16) // 500ms *3 + 500ms * 16 +#define TIMEOUT_GET_RESULT_FAIL_COUNT (21) // 500ms *3 + 500ms * 16 + 500ms * 3 +//static hal_rtc_t send_time; static bool mmi_ai_talk_is_waiting_for_result(void) { bool result = false; printf("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, s_ai_talk_sending_screen_counter); - if(TIMEOUT_SEND_END_CHAR_COUNT < s_ai_talk_sending_screen_counter + if(1 < s_ai_talk_sending_screen_counter && TIMEOUT_WAIT_FOR_RESULT_COUNT > s_ai_talk_sending_screen_counter ) { result = true; } + // hal_rtc_t cur_time = {0}; + // Hal_Rtc_Gettime(&cur_time); + // if(send_time.) return result; } @@ -558,7 +683,8 @@ static void mmi_ai_talk_sending_screen_task_stop(void) sending_ext->sending_screen_task_id = NULL; } } - s_ai_talk_sending_screen_counter = 0; + + s_ai_talk_sending_screen_counter = -1; } void mmi_ai_talk_sending_screen_task_cb(lv_task_t * task) @@ -572,15 +698,29 @@ void mmi_ai_talk_sending_screen_task_cb(lv_task_t * task) mmi_ai_talk_audio_data_send_end_char(); break; - case TIMEOUT_WAIT_FOR_RESULT_COUNT: + case 5: lv_ai_talk_sending_ext_t * sending_ext = (lv_ai_talk_sending_ext_t *)(task->user_data); + lv_obj_set_hidden(sending_ext->gif_obj, false); + // lv_obj_t * img = lv_img_create(sending_ext, NULL); + // LV_ASSERT_MEM(img); + // lv_img_set_src(img, ICON_UPAY_BINDING); + // lv_obj_set_size(img, LV_HOR_RES, LV_VER_RES); + // lv_obj_align(img, sending_ext, LV_ALIGN_CENTER, 0, 0); + - lv_obj_set_hidden(sending_ext->label_sending, true); - lv_obj_set_hidden(sending_ext->label_result, false); + + + break; + case TIMEOUT_WAIT_FOR_RESULT_COUNT: + //lv_ai_talk_sending_ext_t * sending_ext = (lv_ai_talk_sending_ext_t *)(task->user_data); + // lv_obj_set_hidden(sending_ext->label_sending, true); + // lv_obj_set_hidden(sending_ext->label_result, false); break; case TIMEOUT_GET_RESULT_FAIL_COUNT: + mmi_ai_talk_sending_fail_screen_exit(); + break; default: @@ -620,16 +760,23 @@ lv_obj_t * mmi_ai_talk_sending_screen_create(lv_obj_t * activity_obj) lv_obj_t * cont = lv_cont_create(obj, NULL); lv_obj_set_size(cont, lv_obj_get_width(obj), lv_obj_get_height(obj)); lv_obj_align(cont, obj, LV_ALIGN_CENTER, 0, 0); - lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, lv_color_make(194, 252, 252)); - + lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, lv_color_make(0x00, 0x00, 0x00)); + + lv_obj_t * img1 = lv_cont_create(obj, NULL); + gif_info_t * upay_binding_gif=gif_open(img1, ANIM_UPAY_BINDING, 0); + lv_obj_set_size(img1, 80, 80); + lv_obj_align(img1, NULL , LV_ALIGN_CENTER, 0, -20); + sending_ext->gif_obj=img1; + //lv_obj_set_hidden(sending_ext->gif_obj, true); + sending_ext->label_sending = lv_label_create(cont, NULL); - lv_obj_add_style(sending_ext->label_sending, LV_LABEL_PART_MAIN, &lv_watch_font26_black); + lv_obj_add_style(sending_ext->label_sending, LV_LABEL_PART_MAIN, &lv_watch_font26); lv_label_set_text_id(sending_ext->label_sending, WATCH_TEXT_ID_GETTING_RESULT); - lv_obj_align(sending_ext->label_sending, NULL, LV_ALIGN_CENTER, 0, -10); + lv_obj_align(sending_ext->label_sending, NULL, LV_ALIGN_CENTER, 0, 45); sending_ext->label_result = lv_label_create(cont, sending_ext->label_sending); lv_label_set_text_id(sending_ext->label_result, WATCH_TEXT_ID_GET_RESULT_FAIL); - lv_obj_align(sending_ext->label_result, NULL, LV_ALIGN_CENTER, 0, -10); + lv_obj_align(sending_ext->label_result, NULL, LV_ALIGN_CENTER, 0, 30); lv_obj_set_hidden(sending_ext->label_sending, false); lv_obj_set_hidden(sending_ext->label_result, true); @@ -868,13 +1015,13 @@ lv_obj_t * mmi_ai_talk_recording_screen_create(lv_obj_t * activity_obj) lv_obj_t * cont = lv_cont_create(obj, NULL); lv_obj_set_size(cont, lv_obj_get_width(obj), lv_obj_get_height(obj)); lv_obj_align(cont, obj, LV_ALIGN_CENTER, 0, 0); - lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, lv_color_make(194, 252, 252)); + lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, lv_color_make(0x00, 0x00, 0x00)); //lv_obj_set_click(cont, true); //lv_obj_set_event_cb(cont, mmi_ai_talk_recording_release_event_cb); //lv_obj_add_protect(cont, LV_PROTECT_PRESS_LOST); lv_obj_t * label_time = lv_label_create(cont, NULL); - lv_obj_add_style(label_time, LV_LABEL_PART_MAIN, &lv_watch_font26_black); + lv_obj_add_style(label_time, LV_LABEL_PART_MAIN, &lv_watch_font26); const char * rel_snd = lv_lang_get_text(WATCH_TEXT_ID_AUDIO_RECORDING); // WATCH_TEXT_ID_RELEASE_SENDING); uint8_t len = strlen(rel_snd) + 4; char * text = (char *)lv_mem_alloc(len); @@ -889,6 +1036,13 @@ lv_obj_t * mmi_ai_talk_recording_screen_create(lv_obj_t * activity_obj) lv_img_set_src(img_release_snd, ICON_WECHAT_RECORD_BUTTON_PRESSED); lv_obj_align(img_release_snd, cont, LV_ALIGN_IN_BOTTOM_MID, 0, -8); + lv_obj_t * img1 = lv_cont_create(obj, NULL); + gif_info_t * upay_binding_gif=gif_open(img1, ICON_AI_TALK_GIF, 0); + lv_obj_set_size(img1, 180, 40); + lv_obj_align(img1, NULL , LV_ALIGN_CENTER, 0, 10); + + + lv_anim_t a; lv_anim_init(&a); lv_anim_set_var(&a, label_time); @@ -948,6 +1102,8 @@ void mmi_ai_talk_record_button_event_cb(lv_obj_t * obj, lv_event_t e) // free resource mmi_ai_talk_data_receive_resource_clean(); + mmi_ai_talk_receive_item_info_clean(); + mmi_ai_talk_list_set_slide_enable(&ext->old_ext, false); /*prevent to slide out while recording*/ mmi_ai_talk_recording_screen_create(NULL); } @@ -1079,28 +1235,47 @@ lv_obj_t * mmi_ai_talk_list_msg_item_add(lv_obj_t * list_page, mmi_ai_talk_msg_i lv_ai_talk_list_ext_t * list_page_ext = lv_obj_get_ext_attr(list_page); lv_obj_t * scrl = lv_page_get_scrl(list_page); lv_coord_t obj_y = 0; - - obj_y = lv_obj_get_style_pad_inner(scrl, LV_STATE_DEFAULT); - printf("[@CHENG_DEBUG][%s][%d]: obj_y=%d,size=%d,buf=0x%x\n", __FUNCTION__, __LINE__, - obj_y, msg_item->msg_data_size, msg_item->msg_data_ptr); + obj_y = lv_obj_get_style_pad_top(scrl, LV_STATE_DEFAULT); + printf("[@CHENG_DEBUG][%s][%d]: obj_y=%d,size=%d,debug_type_ai_talk%d\n", __FUNCTION__, __LINE__, + obj_y, msg_item->msg_data_size,debug_type_ai_talk); obj = lv_cont_create(list_page, NULL); - lv_obj_set_size(obj, LV_HOR_RES - 30, 50); //lv_obj_set_size(obj, 153, 53); // same with voice item + lv_obj_set_size(obj, LV_HOR_RES - 30-20, 50); //lv_obj_set_size(obj, 153, 53); // same with voice item lv_cont_set_fit4(obj, LV_FIT_NONE, LV_FIT_NONE, LV_FIT_NONE, LV_FIT_TIGHT); //lv_cont_set_layout(obj, LV_LAYOUT_COLUMN_LEFT); lv_obj_add_style(obj, LV_CONT_PART_MAIN, &(list_page_ext->style_cont_other)); - lv_obj_align(obj, scrl, LV_ALIGN_IN_TOP_MID, 0, obj_y); + lv_obj_align(obj, scrl, LV_ALIGN_IN_TOP_MID, 0, obj_y+200); uint32_t file_size = msg_item->msg_data_size; char * file_buf = msg_item->msg_data_ptr; + + lv_obj_t * label_text = lv_label_create(obj, NULL); lv_obj_add_style(label_text, LV_LABEL_PART_MAIN, &(list_page_ext->style_label_len_other)); - lv_label_set_align(label_text, LV_LABEL_ALIGN_CENTER); + lv_label_set_align(label_text, LV_LABEL_ALIGN_LEFT); lv_label_set_long_mode(label_text, LV_LABEL_LONG_BREAK); lv_obj_set_width(label_text, lv_obj_get_width(obj) - 20); + if(file_buf==NULL) + { + + file_buf="抱歉,网络异常 "; + + } + // else if(debug_type_ai_talk<10 && debug_type_ai_talk>0) + // { + // file_buf[strlen(file_buf)]=debug_type_ai_talk; + // //strcat(file_buf,",语音未返回"); + + //} + debug_type_ai_talk=0; + //sprintf(file_buf,"%s,%d",file_buf,debug_type_ai_talk); lv_label_set_text(label_text, file_buf); - lv_obj_align(label_text, obj, LV_ALIGN_IN_LEFT_MID, 10, 0); + lv_obj_align(label_text, obj, LV_ALIGN_IN_LEFT_MID, 10, 10); + + + // free resource + //mmi_ai_talk_data_receive_resource_clean(); lv_obj_set_click(obj, false); lv_obj_set_adv_hittest(obj, false); @@ -1145,19 +1320,33 @@ void mmi_ai_talk_list_create(lv_obj_t * obj, lv_ai_talk_ext_t * ext) if(NULL == ext) return; - lv_obj_set_size(list_page, lv_obj_get_width(obj), lv_obj_get_height(obj) - 5 - lv_obj_get_height(ext->img_record) - 8); + lv_obj_set_size(list_page, lv_obj_get_width(obj)-20, lv_obj_get_height(obj) - 5 - lv_obj_get_height(ext->img_record) - 58); lv_page_set_scrollbar_mode(list_page, LV_SCROLLBAR_MODE_OFF); lv_obj_set_style_local_bg_opa(list_page, LV_PAGE_PART_BG, LV_STATE_DEFAULT, LV_OPA_0); lv_obj_set_style_local_border_opa(list_page, LV_PAGE_PART_BG, LV_STATE_DEFAULT, LV_OPA_0); lv_obj_set_style_local_outline_width(list_page, LV_PAGE_PART_BG, LV_STATE_DEFAULT, 0); - //lv_obj_set_style_local_pad_bottom(list_page, LV_PAGE_PART_SCROLLABLE, LV_STATE_DEFAULT, 4); - //lv_obj_set_style_local_pad_top(list_page, LV_PAGE_PART_SCROLLABLE, LV_STATE_DEFAULT, 2); - //lv_obj_set_style_local_pad_inner(list_page, LV_PAGE_PART_SCROLLABLE, LV_STATE_DEFAULT, 8); - //lv_obj_set_style_local_bg_color(list_page, LV_PAGE_PART_SCROLLBAR, LV_STATE_DEFAULT, lv_color_make(16, 112, 194)); - //lv_obj_set_style_local_pad_inner(list_page, LV_PAGE_PART_SCROLLBAR, LV_STATE_DEFAULT, LV_DPI / 20); - //lv_obj_set_style_local_pad_left(list_page, LV_PAGE_PART_SCROLLBAR, LV_STATE_DEFAULT, 0); - //lv_obj_set_style_local_pad_right(list_page, LV_PAGE_PART_SCROLLBAR, LV_STATE_DEFAULT, 0); - //lv_obj_set_style_local_radius(list_page, LV_PAGE_PART_SCROLLBAR, LV_STATE_DEFAULT, 0); + lv_obj_align(list_page, obj, LV_ALIGN_IN_TOP_MID, 0, 30); + + + // bool Signal_x=false; + // if(watch_modem_get_signal_bar_req()>3) + // { + // Signal_x=true; + // } + // lv_obj_t * signal = lv_btn_create(obj, obj); + // lv_obj_set_size(signal, 20, 20); + // if(Signal_x) + // { + // lv_obj_set_style_local_bg_color(signal, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x47, 0xA6, 0xFF)); + // } + // else + // { + // lv_obj_set_style_local_bg_color(signal, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xFF, 0x6F, 0x91)); + // } + + // lv_obj_set_style_local_radius(signal, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 30); + // lv_obj_align(signal, NULL, LV_ALIGN_IN_TOP_MID, -50, 20); + lv_page_set_scrl_layout(list_page, LV_LAYOUT_OFF); lv_page_set_scrollable_fit2(list_page, LV_FIT_NONE, LV_FIT_TIGHT); @@ -1174,12 +1363,12 @@ void mmi_ai_talk_list_create(lv_obj_t * obj, lv_ai_talk_ext_t * ext) //lv_style_set_text_color(&(list_page_ext->style_label_time), LV_STATE_DEFAULT, lv_color_make(20, 187, 242)); lv_style_init(&(list_page_ext->style_label_len_other)); - lv_style_copy(&(list_page_ext->style_label_len_other), &lv_watch_font26); - lv_style_set_text_color(&(list_page_ext->style_label_len_other), LV_STATE_DEFAULT, lv_color_make(202, 134, 255)); + lv_style_copy(&(list_page_ext->style_label_len_other), &lv_watch_font20); + lv_style_set_text_color(&(list_page_ext->style_label_len_other), LV_STATE_DEFAULT, lv_color_make(0xff, 0xff, 0xff)); lv_style_init(&(list_page_ext->style_label_len_self)); - lv_style_copy(&(list_page_ext->style_label_len_self), &lv_watch_font26); - lv_style_set_text_color(&(list_page_ext->style_label_len_self), LV_STATE_DEFAULT, lv_color_make(108, 189, 5)); + lv_style_copy(&(list_page_ext->style_label_len_self), &lv_watch_font20); + lv_style_set_text_color(&(list_page_ext->style_label_len_self), LV_STATE_DEFAULT, lv_color_make(0xff, 0xff, 0xff)); lv_style_init(&(list_page_ext->style_cont_self)); lv_style_set_bg_color(&(list_page_ext->style_cont_self), LV_STATE_DEFAULT, LV_COLOR_MAKE(175, 242, 89)); @@ -1190,16 +1379,16 @@ void mmi_ai_talk_list_create(lv_obj_t * obj, lv_ai_talk_ext_t * ext) lv_style_set_pad_right(&(list_page_ext->style_cont_self), LV_STATE_DEFAULT, 5); // 8 lv_style_init(&(list_page_ext->style_cont_other)); - lv_style_set_bg_color(&(list_page_ext->style_cont_other), LV_STATE_DEFAULT, LV_COLOR_MAKE(0xE2, 0xBD, 0xFF)); + lv_style_set_bg_color(&(list_page_ext->style_cont_other), LV_STATE_DEFAULT, LV_COLOR_MAKE(0x00, 0x00, 0x00)); lv_style_set_radius(&(list_page_ext->style_cont_other), LV_STATE_DEFAULT, 15); - lv_style_set_pad_top(&(list_page_ext->style_cont_other), LV_STATE_DEFAULT, 10); + lv_style_set_pad_top(&(list_page_ext->style_cont_other), LV_STATE_DEFAULT, 30); lv_style_set_pad_bottom(&(list_page_ext->style_cont_other), LV_STATE_DEFAULT, 10); lv_style_set_pad_left(&(list_page_ext->style_cont_other), LV_STATE_DEFAULT, 5); lv_style_set_pad_right(&(list_page_ext->style_cont_other), LV_STATE_DEFAULT, 5); //_lv_memset_00(&(list_page_ext->voice_playing_anim), sizeof(lv_anim_t)); //list_page_ext->voice_playing_msg_from = 0; - list_page_ext->pressing = false; + list_page_ext->pressing = false; ext->list = list_page; mmi_ai_talk_msg_item_info_t * msg_item = &s_ai_talk_item_info; @@ -1233,11 +1422,28 @@ void mmi_ai_talk_main_screen_refresh(void) printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); uint8_t msg_count = mmi_ai_talk_info_count_get(); + //mmi_ai_talk_list_create(ext->cont, ext); if(0 == msg_count) { printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - - lv_obj_set_hidden(ext->label_no_msg, false); + char *data_buff="抱歉没听清,或者网络异常 "; + if(NULL != s_ai_talk_item_info.msg_data_ptr) + { + lv_mem_free(s_ai_talk_item_info.msg_data_ptr); + s_ai_talk_item_info.msg_data_ptr = NULL; + } + s_ai_talk_item_info.msg_data_ptr = lv_mem_alloc(38 + 1); + if(NULL == s_ai_talk_item_info.msg_data_ptr) + { + printf("[@CHENG_DEBUG][%s][%d]: alloc memory fail\n", __FUNCTION__, __LINE__); + return false; + } + _lv_memset_00(s_ai_talk_item_info.msg_data_ptr, 38 + 1); + _lv_memcpy(s_ai_talk_item_info.msg_data_ptr, data_buff, 38); + s_ai_talk_item_info.msg_data_size = 38; + + mmi_ai_talk_list_create(ext->cont, ext); + } else { @@ -1329,7 +1535,7 @@ lv_obj_t * mmi_ai_talk_create(lv_obj_t * activity_obj) lv_obj_t * cont = lv_cont_create(obj, NULL); lv_obj_set_size(cont, lv_obj_get_width(obj), lv_obj_get_height(obj)); lv_obj_align(cont, obj, LV_ALIGN_CENTER, 0, 0); - lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, lv_color_make(194, 252, 252)); + lv_obj_set_style_local_bg_color(cont, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, lv_color_make(0x00, 0x00, 0x00)); lv_watch_obj_add_element(cont); ext->cont = cont; diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng.h b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng.h index 7d544da8..24973996 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng.h @@ -59,6 +59,7 @@ typedef struct lv_obj_t * label_sending; lv_obj_t * label_result; lv_task_t * sending_screen_task_id; + lv_obj_t * gif_obj; } lv_ai_talk_sending_ext_t; typedef struct diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng_data.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng_data.c index 5f7c68c2..0af9bfaa 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng_data.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng_data.c @@ -92,9 +92,9 @@ bool mm_ai_talk_login_action(void) sprintf(signature_in, "%s&&%d", secret_id, cur_timestamp); -// re_hmac_sha1(api_key, strlen(api_key), -// signature_in, strlen(signature_in), -// signature_out, sizeof(signature_out)); + // re_hmac_sha1(api_key, strlen(api_key), + // signature_in, strlen(signature_in), + // signature_out, sizeof(signature_out)); // {"secret_id":"Q4NPLBLyidvRc4TAUByUhcVfRFM1kQBi","signature":"77ee9dd69a6a9e5f3c9f28f5754cf7ea03d2fd00","timestamp":"1698046396"} @@ -245,14 +245,15 @@ bool mmi_ai_talk_receive_info_write_to_file(char * path, char * info_buf, uint32 #define KEY_TYPE_TTS_INDEX ("index") -static bool s_ai_talk_type_tts_info_recv_begin = false; -static bool s_ai_talk_type_tts_info_recv_end = false; +bool s_ai_talk_type_tts_info_recv_begin = false; +bool s_ai_talk_type_tts_info_recv_end = false; static char * s_ai_talk_type_tts_info_ptr = NULL; static uint32_t s_ai_talk_type_tts_info_size = 0; static char * s_ai_talk_type_tts_info_json_ptr = NULL; static char * s_ai_talk_type_tts_info_audio_ptr = NULL; static uint32_t s_ai_talk_type_tts_info_audio_size = 0; + void mmi_ai_talk_data_receive_resource_clean(void) { s_ai_talk_type_tts_info_recv_begin = false; @@ -279,6 +280,10 @@ void mmi_ai_talk_data_receive_resource_clean(void) s_ai_talk_type_tts_info_audio_size = 0; } + + + +static int ui_falg_x=0; bool mmi_ai_talk_not_type_tts_info_data_processing(unsigned char * next_buff, unsigned int next_buff_len, cJSON * json_root) { json_root = cJSON_Parse(next_buff); @@ -291,6 +296,7 @@ bool mmi_ai_talk_not_type_tts_info_data_processing(unsigned char * next_buff, un { // {"status":"ok","msg":"The connection was successful","meeting_id":"1ee79e91-e621-6781-86f5-4be19df63f36","type":"start"} printf("[@CHENG_DEBUG][%s][%d]: connect message\n", __FUNCTION__, __LINE__); + return false; } else if(0 == strncmp(value_type_str, VALUE_TYPE_TEXT, strlen(VALUE_TYPE_TEXT))) @@ -311,7 +317,38 @@ bool mmi_ai_talk_not_type_tts_info_data_processing(unsigned char * next_buff, un return false; } uint32_t answer_result_str_len = strlen(value_type_answer_result_str); - mmi_ai_talk_model_answer_result_display(value_type_answer_result_str, answer_result_str_len); + // printf("[@CHENG_DEBUG][%s][%d]: model_answer_222%d,,,,%d\n", __FUNCTION__, __LINE__,answer_result_str_len,ui_falg_x++); + mmi_ai_talk_model_answer_result_display(value_type_answer_result_str, answer_result_str_len); + + // #if 1 + // char * info_buf = ""; + // sprintf(info_buf,"测试次数 %d",falg_x); + // uint32_t info_size = strlen(info_buf); + // { + // lv_fs_file_t file_p; + // lv_fs_res_t res; + // uint32_t bytes_write = 0; + + // res = lv_fs_open(&file_p, "C:/bei_ke_debug_17_06.txt", LV_FS_MODE_WR | LV_FS_MODE_APPEND); + // if(LV_FS_RES_OK != res) + // { + // printf("[@CHENG_DEBUG][%s][%d]: errno=%d\n", __FUNCTION__, __LINE__, res); + // lv_fs_close(&file_p); + // return false; + // } + // printf("[@CHENG_DEBUG][%s][%d]:\n", __FUNCTION__, __LINE__); + // res = lv_fs_write(&file_p, info_buf, info_size, &bytes_write); + // lv_fs_close(&file_p); + // if(LV_FS_RES_OK != res) + // { + // printf("[@CHENG_DEBUG][%s][%d]: errno=%d\n", __FUNCTION__, __LINE__, res); + // return false; + // } + // printf("[@CHENG_DEBUG][%s][%d]: file_size=%d,write_size=%d\n", __FUNCTION__, __LINE__, info_size, bytes_write); + + // //return true; + // } + // #endif s_ai_talk_type_tts_info_recv_begin = true; } @@ -322,6 +359,7 @@ bool mmi_ai_talk_not_type_tts_info_data_processing(unsigned char * next_buff, un return false; } + return true; } @@ -358,7 +396,7 @@ bool mmi_ai_talk_type_tts_info_data_store(unsigned char * next_buff, unsigned in return true; } - +extern uint8_t debug_type_ai_talk; bool mmi_ai_talk_type_tts_info_data_parse(cJSON * json_type_tts) { char t_left_brace = '{'; @@ -372,10 +410,16 @@ bool mmi_ai_talk_type_tts_info_data_parse(cJSON * json_type_tts) t_head_ptr = s_ai_talk_type_tts_info_ptr; while(1) - { + { + if(t_left_brace!=s_ai_talk_type_tts_info_ptr[0]) + { + printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + } + if(s_ai_talk_type_tts_info_size <= (t_head_ptr - s_ai_talk_type_tts_info_ptr)) { printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + debug_type_ai_talk=1; return false; } @@ -396,6 +440,7 @@ bool mmi_ai_talk_type_tts_info_data_parse(cJSON * json_type_tts) if(NULL == s_ai_talk_type_tts_info_json_ptr) { printf("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__); + debug_type_ai_talk=2; return false; } _lv_memset_00(s_ai_talk_type_tts_info_json_ptr, t_offset + 1); @@ -409,7 +454,10 @@ bool mmi_ai_talk_type_tts_info_data_parse(cJSON * json_type_tts) json_type_tts = cJSON_Parse(s_ai_talk_type_tts_info_json_ptr); if(NULL == json_type_tts) { - printf("[@CHENG_DEBUG][%s][%d]: json parse fail\n", __FUNCTION__, __LINE__); + printf("[@CHENG_DEBUG][%s][%d]: json parse fail\n", __FUNCTION__, __LINE__); + debug_type_ai_talk=3; + s_ai_talk_type_tts_info_recv_end=false; + mmi_ai_talk_tts_info_result_display(s_ai_talk_type_tts_info_audio_ptr, s_ai_talk_type_tts_info_audio_size); return false; } @@ -417,11 +465,14 @@ bool mmi_ai_talk_type_tts_info_data_parse(cJSON * json_type_tts) if(0 != strncmp(value_type_str, VALUE_TYPE_TTS, strlen(VALUE_TYPE_TTS))) { printf("[@CHENG_DEBUG][%s][%d]: not tts info json\n", __FUNCTION__, __LINE__); + debug_type_ai_talk=4; return false; } + + int value_type_tts_index = cJSON_GetIntValue(cJSON_GetObjectItem(json_type_tts, KEY_TYPE_TTS_INDEX)); - if(0 > value_type_tts_index) + if(value_type_tts_index==-1) { printf("[@CHENG_DEBUG][%s][%d]: tts info end flag\n", __FUNCTION__, __LINE__); @@ -429,6 +480,7 @@ bool mmi_ai_talk_type_tts_info_data_parse(cJSON * json_type_tts) // write to file for debug mmi_ai_talk_receive_info_write_to_file(BEI_KE_RECEIVE_TTS_AUDIO_TOTAL_FILE, s_ai_talk_type_tts_info_audio_ptr, s_ai_talk_type_tts_info_audio_size); #endif + mmi_ai_talk_tts_info_result_display(s_ai_talk_type_tts_info_audio_ptr, s_ai_talk_type_tts_info_audio_size); @@ -436,17 +488,18 @@ bool mmi_ai_talk_type_tts_info_data_parse(cJSON * json_type_tts) } else { - printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + printf("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__,value_type_tts_index); char * value_type_tts_result_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_type_tts, KEY_TYPE_TTS_RESULT)); uint32_t value_type_tts_result_len = strlen(value_type_tts_result_str); - + debug_type_ai_talk=12; if(NULL == s_ai_talk_type_tts_info_audio_ptr) { s_ai_talk_type_tts_info_audio_ptr = lv_mem_alloc(value_type_tts_result_len + 1); if(NULL == s_ai_talk_type_tts_info_audio_ptr) { printf("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__); + debug_type_ai_talk=5; return false; } _lv_memset_00(s_ai_talk_type_tts_info_audio_ptr, value_type_tts_result_len + 1); @@ -459,40 +512,88 @@ bool mmi_ai_talk_type_tts_info_data_parse(cJSON * json_type_tts) if(NULL == s_ai_talk_type_tts_info_audio_ptr) { printf("[@CHENG_DEBUG][%s][%d]: memory realloc fail\n", __FUNCTION__, __LINE__); + debug_type_ai_talk=6; return false; } _lv_memset_00(s_ai_talk_type_tts_info_audio_ptr + s_ai_talk_type_tts_info_audio_size, value_type_tts_result_len + 1); _lv_memcpy(s_ai_talk_type_tts_info_audio_ptr + s_ai_talk_type_tts_info_audio_size, value_type_tts_result_str, value_type_tts_result_len); s_ai_talk_type_tts_info_audio_size += value_type_tts_result_len; } + #if ai_test + s_ai_talk_type_tts_info_recv_end=false; + //mmi_ai_talk_tts_info_result_display(s_ai_talk_type_tts_info_audio_ptr, s_ai_talk_type_tts_info_audio_size); + break; + #endif + + + } } return true; } - -bool mmi_ai_talk_type_tts_info_data_processing(unsigned char * next_buff, unsigned int next_buff_len, cJSON * json_type_tts) +#define ai_test 0 +bool mmi_ai_talk_type_tts_info_data_processing(unsigned char * next_buff, unsigned int next_buff_len, cJSON * json_type_tts) { // {"answer_id":"1699511956918t","audio":"8f////D/5f8DA9QChwHe // 7/1YfAQA7/1fAQ/D/5f8DAYADR/9q/+j/AfAQgDR/9/fAQD/5f8DAq/+j/Ag // 6afA5QfAQ5/4U/C5CQQ=","index":0,"type":"tts_info"} + // {"answer_id":"1699511956918t","audio":"FgD7/1YADR/9q/+j/AgAlAA==","index":2,"type":"tts_info"} // {"answer_id":"1699511956918t","audio":"","index":-1,"type":"tts_info"} printf("[@CHENG_DEBUG][%s][%d]: receive_size=%d\n", __FUNCTION__, __LINE__, next_buff_len); - // search end flag - char * t_end_str = "\"index\":-1"; + // search end flag + char * t_end_str = "\"index\":-1\,\"type\"\:\"tts_info\"\}"; + //char * t_end_str = "\"type\"\:\"tts_info"; + if(next_buff[0]!='{') + { + printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__); + }else + { + printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__); + } + if(NULL != strstr(next_buff, t_end_str)) { printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__); + // #if 1 + // char * info_buf = s_ai_talk_type_tts_info_ptr; + // uint32_t info_size = s_ai_talk_type_tts_info_size; + // { + // lv_fs_file_t file_p; + // lv_fs_res_t res; + // uint32_t bytes_write = 0; + + // res = lv_fs_open(&file_p,"debug_mmi_ai_talk_type_tts.txt", LV_FS_MODE_WR | LV_FS_MODE_APPEND); + // if(LV_FS_RES_OK != res) + // { + // printf("[@CHENG_DEBUG][%s][%d]: errno=%d\n", __FUNCTION__, __LINE__, res); + // lv_fs_close(&file_p); + // return false; + // } + // printf("[@CHENG_DEBUG][%s][%d]:\n", __FUNCTION__, __LINE__); + // res = lv_fs_write(&file_p, info_buf, info_size, &bytes_write); + // lv_fs_close(&file_p); + // if(LV_FS_RES_OK != res) + // { + // printf("[@CHENG_DEBUG][%s][%d]: errno=%d\n", __FUNCTION__, __LINE__, res); + // return false; + // } + // printf("[@CHENG_DEBUG][%s][%d]: file_size=%d,write_size=%d\n", __FUNCTION__, __LINE__, info_size, bytes_write); + + // //return true; + // } + // #endif + s_ai_talk_type_tts_info_recv_end = true; } // store type tts data if(false == mmi_ai_talk_type_tts_info_data_store(next_buff, next_buff_len)) - { + { printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); return false; } @@ -503,9 +604,26 @@ bool mmi_ai_talk_type_tts_info_data_processing(unsigned char * next_buff, unsign if(false == mmi_ai_talk_type_tts_info_data_parse(json_type_tts)) { printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + //return false; + } + #if ai_test + if(s_ai_talk_type_tts_info_recv_end==false) + { + if(NULL != s_ai_talk_type_tts_info_ptr) + { + lv_mem_free(s_ai_talk_type_tts_info_ptr); + s_ai_talk_type_tts_info_ptr = NULL; + } + s_ai_talk_type_tts_info_size = 0; + + } + else + { return false; } + #endif } + return true; } @@ -541,6 +659,11 @@ bool mmi_ai_talk_data_receive(unsigned char * next_buff, unsigned int next_buff_ else { result = mmi_ai_talk_type_tts_info_data_processing(next_buff, next_buff_len, json_type_tts); + // if(result==true) + // { + // goto exit_no_free_res; + // } + } @@ -564,7 +687,7 @@ exit_free_res: cJSON_Delete(json_root); json_root = NULL; } - +//exit_no_free_res: return result; } diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng_socket.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng_socket.c index 753f8ced..d7759eaa 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng_socket.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/bei_ke_rui_sheng_socket.c @@ -244,7 +244,7 @@ void mmi_ai_talk_tcp_read_data(void *param) } int recv_ret = -1; - int recv_len = 0; + int recv_len = 0; char * recv_buf = (char *)Hal_Mem_Alloc(AI_TALK_RECEIVE_BUFF_LEN); if(NULL == recv_buf) { @@ -256,7 +256,7 @@ void mmi_ai_talk_tcp_read_data(void *param) printf("[@CHENG_DEBUG][%s][%d]: recv_ret=%d,recv_len=%d,recv_buf=0x%x\n", __FUNCTION__, __LINE__, recv_ret, recv_len, recv_buf); printf("[@CHENG_DEBUG][%d]: str=%s\n", __LINE__, recv_buf); if(0 <= recv_ret) - { + { mmi_ai_talk_data_receive(recv_buf, recv_len); // mmi_protocol_receive_data_process(recv_str, recv_len); } diff --git a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c index 3f8272e6..9fd45847 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c +++ b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.c @@ -790,6 +790,19 @@ bool mmi_protocol_fzd_parse_SERVER_SET_POWEROFF(unsigned char * next_buff, unsig return result; } +bool mmi_protocol_fzd_parse_SERVER_SET_REBOOT(unsigned char * next_buff, unsigned int next_buff_len) +{ + bool result = false; + MMI_PROTOCOL_FZD_ACTION_ENUM action = MMI_FZD_SERVER_SET_REBOOT; + + result = true; + mmi_protocol_fzd_send_without_data(action); + + mmi_watch_reboot_aciton(); + + return result; +} + bool mmi_protocol_fzd_parse_SERVER_FIND_WATCH(unsigned char * next_buff, unsigned int next_buff_len) { bool result = false; diff --git a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.h b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.h index f84e5757..6559943f 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.h +++ b/2.sdk/sdk/gui/lv_watch/mmi_protocol/mmi_protocol_fzd.h @@ -137,6 +137,7 @@ typedef enum MMI_FZD_SERVER_SET_CENTER_NUMBER, MMI_FZD_SERVER_SET_MONITOR, MMI_FZD_ACTION_UNBIND, + MMI_FZD_SERVER_SET_REBOOT, #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__) @@ -254,8 +255,8 @@ bool mmi_protocol_fzd_parse_SERVER_GET_CUR_LOCATION(unsigned char * next_buff, u bool mmi_protocol_fzd_parse_SERVER_SET_UD_INTERVAL(unsigned char * next_buff, unsigned int next_buff_len); bool mmi_protocol_fzd_parse_SERVER_SET_FACTORY(unsigned char * next_buff, unsigned int next_buff_len); - bool mmi_protocol_fzd_parse_SERVER_SET_POWEROFF(unsigned char * next_buff, unsigned int next_buff_len); +bool mmi_protocol_fzd_parse_SERVER_SET_REBOOT(unsigned char * next_buff, unsigned int next_buff_len); bool mmi_protocol_fzd_parse_SERVER_FIND_WATCH(unsigned char * next_buff, unsigned int next_buff_len); 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 index 94e83e8b..3636d2a4 100644 --- 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 @@ -60,6 +60,7 @@ static unsigned char * mmi_protocol_fzd_action_string_get(MMI_PROTOCOL_FZD_ACTIO {MMI_FZD_SERVER_SET_CENTER_NUMBER, "CENTER"}, {MMI_FZD_SERVER_SET_MONITOR, "MONITOR"}, {MMI_FZD_ACTION_UNBIND, "DLT"}, + {MMI_FZD_SERVER_SET_REBOOT, "REBOOT"}, #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ #ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL_WULIAN__ @@ -312,6 +313,10 @@ static bool mmi_protocol_fzd_content_parse(unsigned char * content_ptr, unsigned case MMI_FZD_ACTION_UNBIND: break; + case MMI_FZD_SERVER_SET_REBOOT: + mmi_protocol_fzd_parse_SERVER_SET_REBOOT(next_buff, next_buff_len); + 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: diff --git a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c index 382f5e93..82936cd0 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c +++ b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c @@ -149,6 +149,19 @@ void mmi_watch_power_off_aciton(void) mmi_ui_msg_action_watch_power_off(); } +void mmi_ui_msg_update_watch_reboot(void) +{ + mmi_watch_restart(); +} + +void mmi_watch_reboot_aciton(void) +{ + SUNDRY_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); + + mmi_watch_wake_up(); + mmi_ui_msg_action_watch_reboot(); +} + static TIMER_ID s_watch_search_timer_id = NULL; static TIMER_ID s_watch_falldwon_id = NULL; diff --git a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h index e4877067..ca4d1af1 100644 --- a/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h +++ b/2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.h @@ -46,6 +46,8 @@ void mmi_ui_msg_update_watch_factory(void); void mmi_watch_factory_aciton(void); void mmi_ui_msg_update_watch_power_off(void); void mmi_watch_power_off_aciton(void); +void mmi_ui_msg_update_watch_reboot(void); +void mmi_watch_reboot_aciton(void); #define MMI_WATCH_SEARCH_DURATION (1000 * 60) // ms