From: @CHENG <2393524978@qq.com> Date: Thu, 12 Sep 2024 04:29:05 +0000 (+0800) Subject: [Z5_CIRCLE_240_240] voicechat X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=58d880b1f5d6d6f11293cfbe66adb981d3c5afe1;p=mirrors%2FASR3603_Z5.git [Z5_CIRCLE_240_240] voicechat --- diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.c index dd404466..1380327c 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.c @@ -35,5 +35,26 @@ + +int mmi_ws_header_add_custom_info_check(void) +{ +#ifdef __MMI_CUSTOM_VOICECHAT_SUPPORT__ + return 1; +#endif + + return 0; +} + +char * mmi_ws_header_add_custom_info_get(void) +{ +#ifdef __MMI_CUSTOM_VOICECHAT_SUPPORT__ + return "X-NLS-Token: 0c8b8f05a46f423096be64a9c4c46310\r\n"; +#endif + + return NULL; +} + + + #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.h b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.h index f3e59fb1..9261256b 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/custom_function.h @@ -46,6 +46,13 @@ extern "C" { #endif + + +int mmi_ws_header_add_custom_info_check(void); +char * mmi_ws_header_add_custom_info_get(void); + + + #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_data.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_data.c index e0f1673b..9eaaf8bd 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_data.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_data.c @@ -5,37 +5,307 @@ #ifdef __MMI_CUSTOM_VOICECHAT_SUPPORT__ -//static void mmi_voicechat_recv_trans_text_data_process(void * data_ptr, uint32_t data_len); -//static void mmi_voicechat_recv_chat_text_data_process(void * data_ptr, uint32_t data_len); -//static void mmi_voicechat_recv_tts_audio_data_process(void * data_ptr, uint32_t data_len); +static void mmi_voicechat_data_send_task_msg_send(MMI_VOICECHAT_DATA_SEND_MSG_ID_E msg_id, void * param, uint32_t param_size); -static void mmi_voicechat_send_trans_start_data_process(void * data_ptr, uint32_t data_len); -static void mmi_voicechat_send_trans_audio_data_process(void * data_ptr, uint32_t data_len); -static void mmi_voicechat_send_trans_stop_data_process(void * data_ptr, uint32_t data_len); -static void mmi_voicechat_send_chat_text_data_process(void * data_ptr, uint32_t data_len); -//static void mmi_voicechat_send_tts_start_data_process(void * data_ptr, uint32_t data_len); -//static void mmi_voicechat_send_tts_stop_data_process(void * data_ptr, uint32_t data_len); -static void mmi_voicechat_send_tts_text_data_process(void * data_ptr, uint32_t data_len); +static char s_voicechat_dialog_id[MMI_VOICECHAT_MSG_DIALOG_ID_LEN + 1] = {0}; + +void mmi_voicechat_dialog_id_set(char * id) +{ + if(NULL == id) + return; + + _lv_memset_00(s_voicechat_dialog_id, (MMI_VOICECHAT_MSG_DIALOG_ID_LEN + 1)); + _lv_memcpy(s_voicechat_dialog_id, id, MMI_VOICECHAT_MSG_DIALOG_ID_LEN); +} + +char * mmi_voicechat_dialog_id_get(void) +{ + return s_voicechat_dialog_id; +} + +void mmi_random_string_generate(char * str_buf, uint16_t str_size, uint16_t str_len) +{ +#if 0 + if(NULL == str_buf || 0 == str_len || str_size < (str_len + 1)) + return; + + char charset[] = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + uint8_t i = 0; + for(i = 0; i < str_len; i++) + { + srand(Hal_Timer_Get_Counter()); + + str_buf[i] = charset[rand() % strlen(charset)]; + } + str_buf[i] = '\0'; + +#else + + if(NULL == str_buf || 0 == str_len || str_size < (str_len + 1)) + return; + + char charupper[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + char charlower[] = "abcdefghijklmnopqrstuvwxyz"; + char charnumber[] = "1234567890"; + uint8_t i = 0; + for(i = 0; i < str_len; i++) + { + unsigned int seed = 0; + long rand_num = 0; + uint8_t flag = 0; + + Hal_Rtc_Gettime_Count_Utc(&seed); + srand(seed); + rand_num = arc4random() * rand(); + flag = rand_num % 3; + + if(0 == flag) + str_buf[i] = charupper[rand_num % (strlen(charupper))]; + else if(1 == flag) + str_buf[i] = charlower[rand_num % (strlen(charlower))]; + else + str_buf[i] = charnumber[rand_num % (strlen(charnumber))]; + } + str_buf[i] = '\0'; + +#endif +} + + + +// +void mmi_voicechat_send_start_request_msg(void * param, uint32_t param_size) +{ + mmi_voicechat_data_send_task_msg_send(VOICECHAT_MSG_ID_START_REQUEST, NULL, 0); +} + +static void mmi_voicechat_send_start_request_process(void * data_ptr, uint32_t data_len) +{ + char send_ptr[1024] = {0}; + int send_len = 0; + char message_id[MMI_VOICECHAT_MSG_MESSAGE_ID_LEN + 1] = {0}; + char task_id[MMI_VOICECHAT_MSG_TASK_ID_LEN + 1] = {0}; + + char imei[16 + 1] = {0}; + app_adp_get_imei_req(imei); + + mmi_random_string_generate(message_id, MMI_VOICECHAT_MSG_MESSAGE_ID_LEN + 1, MMI_VOICECHAT_MSG_MESSAGE_ID_LEN); + mmi_random_string_generate(task_id, MMI_VOICECHAT_MSG_TASK_ID_LEN + 1, MMI_VOICECHAT_MSG_TASK_ID_LEN); + + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: message_id=%s\n", __FUNCTION__, __LINE__, message_id); + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: task_id=%s\n", __FUNCTION__, __LINE__, task_id); + + send_len += sprintf(send_ptr, "{\"header\":{\"namespace\":\"VoiceChat\",\"name\":\"Start\"," + "\"appkey\":\"%s\",\"message_id\":\"%s\",\"task_id\":\"%s\"},", + MMI_VOICECHAT_MSG_APPKEY, message_id, task_id); + send_len += sprintf(send_ptr + send_len, "\"payload\":{\"user_agent\":\"python\",\"device_id\":\"%s\"," + "\"dialog_attributes\":{\"model_id\":\"qwen-plus\"," + "\"prompt\":\"你是一个有用的语音助手\"," + "\"voice\":\"longxiaochun\"}}}", + imei); + +#ifdef MMI_VOICECHAT_DEBUG_TO_FILE + mmi_debug_info_write_to_file(VOICECHAT_SEND_DATA_FILE, send_ptr, send_len); +#endif + + int ret = mmi_voicechat_websocket_send_text_data(send_ptr, send_len); + if(0 > ret) + { + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret); + + //mmi_voicechat_trans_text_start_msg_send_fail(); + } +} + + +#if 0 +void mmi_voicechat_send_tts_text_msg(void * param, uint32_t param_size) +{ + mmi_voicechat_data_send_task_msg_send(MMI_VOICECHAT_MSG_TTS_TEXT_SEND, param, param_size); +} + +static void mmi_voicechat_send_tts_text_data_process(void * data_ptr, uint32_t data_len) +{ + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); + + uint32_t temp_len = 0; + uint32_t send_buff_len = data_len + 256; + char * send_buff_ptr = lv_mem_alloc(send_buff_len); + if(NULL == send_buff_ptr) + { + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__); + return; + } + _lv_memset_00(send_buff_ptr, send_buff_len); + + temp_len = 0; + temp_len += sprintf(send_buff_ptr + temp_len, "{\"header\":{\"event\":\"LongTextStream\",\"trace_id\":\"3fa6b9e6a30b407ea38ad7ae69e6c291\"},"); + temp_len += sprintf(send_buff_ptr + temp_len, "\"payload\":{\"voice\":\"xiaoyun\",\"format\":\"mp3\",\"sample_rate\":8000,\"volume\":50,\"speech_rate\":2,"); // 0,"); + temp_len += sprintf(send_buff_ptr + temp_len, "\"text\":\"%s\"}}", data_ptr); // 185 + data_len + +#ifdef MMI_VOICECHAT_DEBUG_TO_FILE + mmi_debug_info_write_to_file(VOICECHAT_SEND_TTS_TEXT_FILE, send_buff_ptr, temp_len); +#endif + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: send_len=%d\n", __FUNCTION__, __LINE__, temp_len); + //int ret = mmi_voicechat_tts_websocket_send_text_data(send_buff_ptr, temp_len); + //if(0 > ret) + { + //VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret); + //mmi_voicechat_list_screen_signal_weak_prompt(); + } + + if(NULL != send_buff_ptr) + { + lv_mem_free(send_buff_ptr); + send_buff_ptr = NULL; + } +} +#endif + + +#if 0 +static void mmi_voicechat_tts_audio_data_recv_msg(void * param, uint32_t param_size) +{ + mmi_voicechat_data_recv_task_msg_send(MMI_VOICECHAT_MSG_TTS_AUDIO_RECV, param, param_size); +} + +static void mmi_voicechat_recv_tts_audio_data_process(void * data_ptr, uint32_t data_len) +{ + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: len=%d\n", __FUNCTION__, __LINE__, data_len); + cplog_printf("[@CHENG_DEBUG][%s][%d]: len=%d\n", __FUNCTION__, __LINE__, data_len); + if(NULL == data_ptr) + { + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no data\n", __FUNCTION__, __LINE__); + return; + } + +#ifdef MMI_VOICECHAT_DEBUG_TO_FILE + mmi_debug_info_write_to_file(VOICECHAT_RECV_TTS_FILE, data_ptr, data_len); +#endif + + cJSON * json_root = cJSON_Parse(data_ptr); + if(NULL != json_root) + { + cplog_printf("[@CHENG_DEBUG][%s][%d]: json root\n", __FUNCTION__, __LINE__); + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tts json\n", __FUNCTION__, __LINE__); + + cJSON * json_header = cJSON_GetObjectItem(json_root, "header"); + if(NULL != json_header) + { + char * value_event_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_header, "event")); + if(0 == strncmp(value_event_str, "EndSynthesis", strlen("EndSynthesis"))) + { + // end + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: EndSynthesis\n", __FUNCTION__, __LINE__); + + mmi_voicechat_tts_end_synthesis_action(); + } + } + } + else + { + // tts data + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tts data\n", __FUNCTION__, __LINE__); + + if(true == mmi_voicechat_tts_audio_store(data_ptr, data_len)) + { + + } + } + + if(NULL != json_root) + { + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); + cplog_printf("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); + cJSON_Delete(json_root); + json_root = NULL; + } +} + +void mmi_voicechat_websocket_recv_data_handler(char * data_ptr, int data_len, int payload_len, int payload_offset) +{ + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); + //cplog_printf("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); + + mmi_voicechat_tts_audio_data_recv_msg(data_ptr, data_len); +} +#else + +void mmi_voicechat_websocket_recv_data_handler(char * data_ptr, int data_len, int payload_len, int payload_offset) +{ + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); + //cplog_printf("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); + + if(NULL == data_ptr) + { + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no data\n", __FUNCTION__, __LINE__); + return; + } + +#ifdef MMI_VOICECHAT_DEBUG_TO_FILE + mmi_debug_info_write_to_file(VOICECHAT_RECV_DATA_FILE, data_ptr, data_len); +#endif + + cJSON * json_root = cJSON_Parse(data_ptr); + if(NULL != json_root) + { + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tts json\n", __FUNCTION__, __LINE__); + + cJSON * json_header = cJSON_GetObjectItem(json_root, "header"); + if(NULL != json_header) + { + char * value_event_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_header, "event")); + if(0 == strncmp(value_event_str, "EndSynthesis", strlen("EndSynthesis"))) + { + // end + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: EndSynthesis\n", __FUNCTION__, __LINE__); + + mmi_voicechat_tts_end_synthesis_action(); + } + } + } + else + { + // tts data + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tts data\n", __FUNCTION__, __LINE__); + + if(true == mmi_voicechat_tts_audio_store(data_ptr, data_len)) + { + + } + } + + if(NULL != json_root) + { + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); + //cplog_printf("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); + cJSON_Delete(json_root); + json_root = NULL; + } +} +#endif + + #if 0 // recv task static TASK_HANDLE * s_voicechat_data_recv_task_id = NULL; static void mmi_voicechat_data_recv_task_msg_send(MMI_VOICECHAT_DATA_RECV_MSG_ID_E msg_id, void * param, uint32_t param_size) { - printf("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n",__FUNCTION__,__LINE__, msg_id); + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n",__FUNCTION__,__LINE__, msg_id); if(NULL != s_voicechat_data_recv_task_id) { if((MMI_VOICECHAT_DATA_RECV_TASK_MSG_QUEUE_SIZE - 1) < Hal_Get_Message_Count(s_voicechat_data_recv_task_id)) { - printf("[@CHENG_DEBUG][%s][%d]: msg queue full\n",__FUNCTION__,__LINE__); + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: msg queue full\n",__FUNCTION__,__LINE__); return; } - printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__); + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__); void * temp_ptr = NULL; if(NULL != param && 0 != param_size) @@ -43,7 +313,7 @@ static void mmi_voicechat_data_recv_task_msg_send(MMI_VOICECHAT_DATA_RECV_MSG_ID temp_ptr = lv_mem_alloc(param_size + 1); if(NULL == temp_ptr) { - printf("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__); + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__); return; } _lv_memset_00(temp_ptr, param_size + 1); @@ -66,7 +336,7 @@ static void mm_voicechat_data_recv_task_handle(void * param) void * msg_param = msg->cmd_param; uint32_t param_size = msg->param_size; - printf("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n",__FUNCTION__,__LINE__, msg_id); + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n",__FUNCTION__,__LINE__, msg_id); switch(msg_id) { case MMI_VOICECHAT_MSG_TRANS_TEXT_RECV: @@ -119,7 +389,7 @@ static void mmi_voicechat_data_recv_task_create(void) MMI_VOICECHAT_DATA_RECV_TASK_PRIORITY, "mm_voicechat_data_recv_task"); - printf("[@CHENG_DEBUG][%s][%d]: tcp_task_id=0x%x\n",__FUNCTION__,__LINE__, s_voicechat_data_recv_task_id); + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tcp_task_id=0x%x\n",__FUNCTION__,__LINE__, s_voicechat_data_recv_task_id); } static void mmi_voicechat_data_recv_task_delete(void) @@ -137,17 +407,17 @@ static TASK_HANDLE * s_voicechat_data_send_task_id = NULL; static void mmi_voicechat_data_send_task_msg_send(MMI_VOICECHAT_DATA_SEND_MSG_ID_E msg_id, void * param, uint32_t param_size) { - printf("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n",__FUNCTION__,__LINE__, msg_id); + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n",__FUNCTION__,__LINE__, msg_id); if(NULL != s_voicechat_data_send_task_id) { if((MMI_VOICECHAT_DATA_SEND_TASK_MSG_QUEUE_SIZE - 1) < Hal_Get_Message_Count(s_voicechat_data_send_task_id)) { - printf("[@CHENG_DEBUG][%s][%d]: msg queue full\n",__FUNCTION__,__LINE__); + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: msg queue full\n",__FUNCTION__,__LINE__); return; } - printf("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__); + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n",__FUNCTION__,__LINE__); void * temp_ptr = NULL; if(NULL != param && 0 != param_size) @@ -155,7 +425,7 @@ static void mmi_voicechat_data_send_task_msg_send(MMI_VOICECHAT_DATA_SEND_MSG_ID temp_ptr = lv_mem_alloc(param_size + 1); if(NULL == temp_ptr) { - printf("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__); + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__); return; } _lv_memset_00(temp_ptr, param_size + 1); @@ -178,23 +448,24 @@ static void mm_voicechat_data_send_task_handle(void * param) void * msg_param = msg->cmd_param; uint32_t param_size = msg->param_size; - printf("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n",__FUNCTION__,__LINE__, msg_id); + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n",__FUNCTION__,__LINE__, msg_id); switch(msg_id) { - case MMI_VOICECHAT_MSG_TRANS_START_SEND: - mmi_voicechat_send_trans_start_data_process(msg_param, param_size); + case VOICECHAT_MSG_ID_START_REQUEST: + mmi_voicechat_send_start_request_process(msg_param, param_size); break; - case MMI_VOICECHAT_MSG_TRANS_AUDIO_SEND: - mmi_voicechat_send_trans_audio_data_process(msg_param, param_size); + case VOICECHAT_MSG_ID_STOP_REQUEST: + //mmi_voicechat_send_trans_audio_data_process(msg_param, param_size); break; + #if 0 case MMI_VOICECHAT_MSG_TRANS_STOP_SEND: //mmi_voicechat_send_trans_stop_data_process(msg_param, param_size); break; case MMI_VOICECHAT_MSG_CHAT_TEXT_SEND: - mmi_voicechat_send_chat_text_data_process(msg_param, param_size); + //mmi_voicechat_send_chat_text_data_process(msg_param, param_size); break; case MMI_VOICECHAT_MSG_TTS_START_SEND: @@ -202,12 +473,13 @@ static void mm_voicechat_data_send_task_handle(void * param) break; case MMI_VOICECHAT_MSG_TTS_TEXT_SEND: - mmi_voicechat_send_tts_text_data_process(msg_param, param_size); + //mmi_voicechat_send_tts_text_data_process(msg_param, param_size); break; case MMI_VOICECHAT_MSG_TTS_STOP_SEND: //mmi_voicechat_send_tts_stop_data_process(msg_param, param_size); break; + #endif default: break; @@ -247,7 +519,7 @@ static void mmi_voicechat_data_send_task_create(void) MMI_VOICECHAT_DATA_SEND_TASK_PRIORITY, "mm_voicechat_data_send_task"); - printf("[@CHENG_DEBUG][%s][%d]: tcp_task_id=0x%x\n",__FUNCTION__,__LINE__, s_voicechat_data_send_task_id); + VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tcp_task_id=0x%x\n",__FUNCTION__,__LINE__, s_voicechat_data_send_task_id); } static void mmi_voicechat_data_send_task_delete(void) @@ -272,680 +544,5 @@ void mmi_voicechat_data_task_delete(void) } - -// trans -void mmi_voicechat_send_trans_start_msg(void * param, uint32_t param_size) -{ - mmi_voicechat_data_send_task_msg_send(MMI_VOICECHAT_MSG_TRANS_START_SEND, NULL, 0); -} - -void mmi_voicechat_send_trans_audio_msg(void * param, uint32_t param_size) -{ - mmi_voicechat_data_send_task_msg_send(MMI_VOICECHAT_MSG_TRANS_AUDIO_SEND, param, param_size); -} - -void mmi_voicechat_send_trans_stop_msg(void * param, uint32_t param_size) -{ - //mmi_voicechat_data_send_task_msg_send(MMI_VOICECHAT_MSG_TRANS_STOP_SEND, NULL, 0); -} - -static void mmi_voicechat_send_trans_start_data_process(void * data_ptr, uint32_t data_len) -{ - char send_ptr[512] = {0}; - int send_len = 0; - - send_len = sprintf(send_ptr, "{\"header\":{\"event\":\"StartTranscription\",\"trace_id\":\"3fa6b9e6a30b407ea38ad7ae69e6c291\"},\"payload\":{\"format\":\"amr\",\"sample_rate\":8000}}"); - - //int ret = mmi_voicechat_trans_websocket_send_text_data(send_ptr, send_len); - //if(0 > ret) - { - //VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret); - - //mmi_voicechat_trans_text_start_msg_send_fail(); - } -} - -static void mmi_voicechat_send_trans_audio_data_process(void * data_ptr, uint32_t data_len) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,data=%s\n", __FUNCTION__, __LINE__, data_len, data_ptr); - - //int ret = mmi_voicechat_trans_websocket_send_binary_data(data_ptr, data_len); - //if(0 > ret) - { - //VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret); - - //mmi_voicechat_trans_text_audio_msg_send_fail(); - } -} - -static void mmi_voicechat_send_trans_stop_data_process(void * data_ptr, uint32_t data_len) -{ -#if 0 - char send_ptr[512] = {0}; - int send_len = 0; - - send_len = sprintf(send_ptr, "{\"header\":{\"event\":\"StopTranscription\",\"trace_id\":\"3fa6b9e6a30b407ea38ad7ae69e6c291\"}}"); - - int ret = mmi_voicechat_trans_websocket_send_text_data(send_ptr, send_len); - if(0 > ret) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret); - } -#endif -} - -#if 0 -static void mmi_voicechat_trans_text_data_recv_msg(void * param, uint32_t param_size) -{ - mmi_voicechat_data_recv_task_msg_send(MMI_VOICECHAT_MSG_TRANS_TEXT_RECV, param, param_size); -} - -static void mmi_voicechat_recv_trans_text_data_process(void * data_ptr, uint32_t data_len) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: len=%d\n", __FUNCTION__, __LINE__, data_len); - cplog_printf("[@CHENG_DEBUG][%s][%d]: len=%d\n", __FUNCTION__, __LINE__, data_len); - if(NULL == data_ptr) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no data\n", __FUNCTION__, __LINE__); - return; - } - -#ifdef MMI_VOICECHAT_DEBUG_TO_FILE - mmi_debug_info_write_to_file(VOICECHAT_RECV_TRANS_FILE, data_ptr, data_len); -#endif - - cJSON * json_root = cJSON_Parse(data_ptr); - if(NULL != json_root) - { - cplog_printf("[@CHENG_DEBUG][%s][%d]: json root\n", __FUNCTION__, __LINE__); - - // "event" - char * value_event_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_root, "event")); - if(0 == strncmp(value_event_str, "TranscriptionStarted", strlen("TranscriptionStarted"))) - { - // start - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: transcription start\n", __FUNCTION__, __LINE__); - - } - else if(0 == strncmp(value_event_str, "Changed", strlen("Changed"))) - { - // changed - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: changed\n", __FUNCTION__, __LINE__); - cJSON * json_result = cJSON_GetObjectItem(json_root, "result"); - if(NULL != json_result) - { - char * value_result_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_result, "result")); - uint32_t value_result_len = strlen(value_result_str); - - if(true == mmi_voicechat_trans_result_text_store(value_result_str, value_result_len, false)) - { - // refresh ui - mmi_voicechat_trans_text_middle_screen_update(); - } - } - } - else if(0 == strncmp(value_event_str, "SentenceEnd", strlen("SentenceEnd"))) - { - // end - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: transcription end\n", __FUNCTION__, __LINE__); - cJSON * json_result = cJSON_GetObjectItem(json_root, "result"); - if(NULL != json_result) - { - char * value_result_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_result, "result")); - uint32_t value_result_len = strlen(value_result_str); - - if(true == mmi_voicechat_trans_result_text_store(value_result_str, value_result_len, true)) - { - // refresh ui - mmi_voicechat_trans_text_stop_screen_update(); - } - } - } - else if(0 == strncmp(value_event_str, "TranscriptionCompleted", strlen("TranscriptionCompleted"))) - { - // stop - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: transcription stop\n", __FUNCTION__, __LINE__); - - } - } - -EXIT_AND_FREE: - if(NULL != json_root) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); - cplog_printf("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); - cJSON_Delete(json_root); - json_root = NULL; - } -} - - -void mmi_voicechat_trans_websocket_recv_data_handler(char * data_ptr, int data_len, int payload_len, int payload_offset) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); - //cplog_printf("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); - - mmi_voicechat_trans_text_data_recv_msg(data_ptr, data_len); -} -#else - -void mmi_voicechat_trans_websocket_recv_data_handler(char * data_ptr, int data_len, int payload_len, int payload_offset) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); - //cplog_printf("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); - - if(NULL == data_ptr) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no data\n", __FUNCTION__, __LINE__); - return; - } - -#ifdef MMI_VOICECHAT_DEBUG_TO_FILE - mmi_debug_info_write_to_file(VOICECHAT_RECV_TRANS_FILE, data_ptr, data_len); -#endif - - cJSON * json_root = cJSON_Parse(data_ptr); - if(NULL != json_root) - { - cplog_printf("[@CHENG_DEBUG][%s][%d]: json root\n", __FUNCTION__, __LINE__); - - // "event" - char * value_event_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_root, "event")); - if(0 == strncmp(value_event_str, "TranscriptionStarted", strlen("TranscriptionStarted"))) - { - // start - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: transcription start\n", __FUNCTION__, __LINE__); - - } - else if(0 == strncmp(value_event_str, "Changed", strlen("Changed"))) - { - // changed - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: changed\n", __FUNCTION__, __LINE__); - cJSON * json_result = cJSON_GetObjectItem(json_root, "result"); - if(NULL != json_result) - { - char * value_result_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_result, "result")); - uint32_t value_result_len = strlen(value_result_str); - - if(true == mmi_voicechat_trans_result_text_store(value_result_str, value_result_len, false)) - { - // refresh ui - mmi_voicechat_trans_text_middle_screen_update(); - } - } - } - else if(0 == strncmp(value_event_str, "SentenceEnd", strlen("SentenceEnd"))) - { - // end - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: transcription end\n", __FUNCTION__, __LINE__); - cJSON * json_result = cJSON_GetObjectItem(json_root, "result"); - if(NULL != json_result) - { - char * value_result_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_result, "result")); - uint32_t value_result_len = strlen(value_result_str); - - if(true == mmi_voicechat_trans_result_text_store(value_result_str, value_result_len, true)) - { - // refresh ui - mmi_voicechat_trans_text_stop_screen_update(); - } - } - } - else if(0 == strncmp(value_event_str, "TranscriptionCompleted", strlen("TranscriptionCompleted"))) - { - // stop - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: transcription stop\n", __FUNCTION__, __LINE__); - - } - } - -EXIT_AND_FREE: - if(NULL != json_root) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); - //cplog_printf("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); - cJSON_Delete(json_root); - json_root = NULL; - } -} -#endif - - - -// chat -void mmi_voicechat_send_chat_text_msg(void * param, uint32_t param_size) -{ - mmi_voicechat_data_send_task_msg_send(MMI_VOICECHAT_MSG_CHAT_TEXT_SEND, param, param_size); -} - -static void mmi_voicechat_send_chat_text_data_process(void * data_ptr, uint32_t data_len) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,data=%s\n", __FUNCTION__, __LINE__, data_len, data_ptr); - - uint32_t temp_len = 0; - uint32_t send_buff_len = data_len + 128; - char * send_buff_ptr = lv_mem_alloc(send_buff_len); - if(NULL == send_buff_ptr) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__); - return; - } - _lv_memset_00(send_buff_ptr, send_buff_len); - - temp_len = sprintf(send_buff_ptr, "{\"type\":\"chat\",\"content\":\"%s\"}", data_ptr); - - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: send_len=%d\n", __FUNCTION__, __LINE__, temp_len); - //int ret = mmi_voicechat_chat_websocket_send_text_data(send_buff_ptr, temp_len); - //if(0 > ret) - { - //VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret); - } - - if(NULL != send_buff_ptr) - { - lv_mem_free(send_buff_ptr); - send_buff_ptr = NULL; - } -} - -#if 0 -static void mmi_voicechat_chat_text_data_recv_msg(void * param, uint32_t param_size) -{ - mmi_voicechat_data_recv_task_msg_send(MMI_VOICECHAT_MSG_CHAT_TEXT_RECV, param, param_size); -} - -static void mmi_voicechat_recv_chat_text_data_process(void * data_ptr, uint32_t data_len) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: len=%d\n", __FUNCTION__, __LINE__, data_len); - cplog_printf("[@CHENG_DEBUG][%s][%d]: len=%d\n", __FUNCTION__, __LINE__, data_len); - if(NULL == data_ptr) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no data\n", __FUNCTION__, __LINE__); - return; - } - -#ifdef MMI_VOICECHAT_DEBUG_TO_FILE - mmi_debug_info_write_to_file(VOICECHAT_RECV_CHAT_FILE, data_ptr, data_len); -#endif - - cJSON * json_root = cJSON_Parse(data_ptr); - if(NULL != json_root) - { - cplog_printf("[@CHENG_DEBUG][%s][%d]: json root\n", __FUNCTION__, __LINE__); - - // "type" - char * value_type_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_root, "type")); - if(0 == strncmp(value_type_str, "start", strlen("start"))) - { - // start - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chat start\n", __FUNCTION__, __LINE__); - - } - else if(0 == strncmp(value_type_str, "middle", strlen("middle"))) - { - // middle - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chat middle\n", __FUNCTION__, __LINE__); - - char * value_content_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_root, "content")); - uint32_t value_content_len = strlen(value_content_str); - - if(true == mmi_voicechat_chat_result_text_store(value_content_str, value_content_len)) - { - // send msg to refresh ui - //mmi_voicechat_chat_text_middle_screen_update(); - } - } - else if(0 == strncmp(value_type_str, "end", strlen("end"))) - { - // stop - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chat stop\n", __FUNCTION__, __LINE__); - - // send msg to refresh ui - mmi_voicechat_chat_text_stop_screen_update(); - } - } - -EXIT_AND_FREE: - if(NULL != json_root) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); - cplog_printf("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); - cJSON_Delete(json_root); - json_root = NULL; - } -} - -void mmi_voicechat_chat_websocket_recv_data_handler(char * data_ptr, int data_len, int payload_len, int payload_offset) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); - //cplog_printf("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); - - mmi_voicechat_chat_text_data_recv_msg(data_ptr, data_len); -} -#else - -void mmi_voicechat_chat_websocket_recv_data_handler(char * data_ptr, int data_len, int payload_len, int payload_offset) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); - //cplog_printf("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); - - if(NULL == data_ptr) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no data\n", __FUNCTION__, __LINE__); - return; - } - -#ifdef MMI_VOICECHAT_DEBUG_TO_FILE - mmi_debug_info_write_to_file(VOICECHAT_RECV_CHAT_FILE, data_ptr, data_len); -#endif - - cJSON * json_root = cJSON_Parse(data_ptr); - if(NULL != json_root) - { - cplog_printf("[@CHENG_DEBUG][%s][%d]: json root\n", __FUNCTION__, __LINE__); - - // "type" - char * value_type_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_root, "type")); - if(0 == strncmp(value_type_str, "start", strlen("start"))) - { - // start - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chat start\n", __FUNCTION__, __LINE__); - - } - else if(0 == strncmp(value_type_str, "middle", strlen("middle"))) - { - // middle - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chat middle\n", __FUNCTION__, __LINE__); - - char * value_content_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_root, "content")); - uint32_t value_content_len = strlen(value_content_str); - - if(true == mmi_voicechat_chat_result_text_store(value_content_str, value_content_len)) - { - // send msg to refresh ui - //mmi_voicechat_chat_text_middle_screen_update(); - } - } - else if(0 == strncmp(value_type_str, "end", strlen("end"))) - { - // stop - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: chat stop\n", __FUNCTION__, __LINE__); - - // send msg to refresh ui - mmi_voicechat_chat_text_stop_screen_update(); - } - } - -EXIT_AND_FREE: - if(NULL != json_root) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); - //cplog_printf("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); - cJSON_Delete(json_root); - json_root = NULL; - } -} -#endif - - - -// tts -#if 0 -void mmi_voicechat_send_tts_start_msg(void * param, uint32_t param_size) -{ - mmi_voicechat_data_send_task_msg_send(MMI_VOICECHAT_MSG_TTS_START_SEND, NULL, 0); -} - -void mmi_voicechat_send_tts_stop_msg(void * param, uint32_t param_size) -{ - mmi_voicechat_data_send_task_msg_send(MMI_VOICECHAT_MSG_TTS_STOP_SEND, NULL, 0); -} - -void mmi_voicechat_send_tts_text_msg(void * param, uint32_t param_size) -{ - mmi_voicechat_data_send_task_msg_send(MMI_VOICECHAT_MSG_TTS_TEXT_SEND, param, param_size); -} - -static void mmi_voicechat_send_tts_start_data_process(void * data_ptr, uint32_t data_len) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,data=%s\n", __FUNCTION__, __LINE__, data_len, data_ptr); - - char send_ptr[512] = {0}; - int send_len = 0; - - send_len = sprintf(send_ptr, "{\"header\":{\"event\":\"StartSynthesis\",\"trace_id\":\"3fa6b9e6a30b407ea38ad7ae69e6c291\"},\"payload\":{\"voice\":\"zhixiaomei\",\"format\":\"mp3\",\"sample_rate\":8000,\"volume\":50,\"speech_rate\":0}}"); - //send_len = sprintf(send_ptr, "{\"header\":{\"event\":\"StartSynthesis\",\"trace_id\":\"3fa6b9e6a30b407ea38ad7ae69e6c291\"},\"payload\":{\"voice\":\"xiaoyun\",\"format\":\"WAV\",\"sample_rate\":16000,\"volume\":50,\"speech_rate\":0}}"); - - int ret = mmi_voicechat_tts_websocket_send_text_data(send_ptr, send_len); - if(0 > ret) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret); - } -} - -static void mmi_voicechat_send_tts_stop_data_process(void * data_ptr, uint32_t data_len) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,data=%s\n", __FUNCTION__, __LINE__, data_len, data_ptr); - - char send_ptr[512] = {0}; - int send_len = 0; - - send_len = sprintf(send_ptr, "{\"header\":{\"event\":\"StopSynthesis\",\"trace_id\":\"3fa6b9e6a30b407ea38ad7ae69e6c291\"}}"); - - int ret = mmi_voicechat_tts_websocket_send_text_data(send_ptr, send_len); - if(0 > ret) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret); - } -} - -static void mmi_voicechat_send_tts_text_data_process(void * data_ptr, uint32_t data_len) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: data=%s\n", __LINE__, data_ptr); - - uint32_t temp_len = 0; - uint32_t send_buff_len = data_len + 128; - char * send_buff_ptr = lv_mem_alloc(send_buff_len); - if(NULL == send_buff_ptr) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__); - return; - } - _lv_memset_00(send_buff_ptr, send_buff_len); - -#if 0 - temp_len = 0; - temp_len += sprintf(send_buff_ptr + temp_len, "{\"header\":{\"event\": \"LongTextStream\",\"trace_id\": \"3fa6b9e6a30b407ea38ad7ae69e6c291\"},"); - temp_len += sprintf(send_buff_ptr + temp_len, "\"payload\":{\"voice\":\"xiaoyun\",\"format\":\"amr\",\"sample_rate\":8000,\"volume\":50,\"speech_rate\":0,"); - temp_len += sprintf(send_buff_ptr + temp_len, "\"text\":\"%s\"}}", data_ptr); -#else - temp_len = 0; - temp_len += sprintf(send_buff_ptr + temp_len, "{\"header\":{\"event\":\"RunSynthesis\",\"trace_id\":\"3fa6b9e6a30b407ea38ad7ae69e6c291\"},"); - temp_len += sprintf(send_buff_ptr + temp_len, "\"payload\":{\"text\":\"%s\"}}", data_ptr); -#endif - - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: send_len=%d\n", __FUNCTION__, __LINE__, temp_len); - int ret = mmi_voicechat_tts_websocket_send_text_data(send_buff_ptr, temp_len); - if(0 > ret) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret); - } - - if(NULL != send_buff_ptr) - { - lv_mem_free(send_buff_ptr); - send_buff_ptr = NULL; - } -} - -#else - -void mmi_voicechat_send_tts_text_msg(void * param, uint32_t param_size) -{ - mmi_voicechat_data_send_task_msg_send(MMI_VOICECHAT_MSG_TTS_TEXT_SEND, param, param_size); -} - -static void mmi_voicechat_send_tts_text_data_process(void * data_ptr, uint32_t data_len) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); - - uint32_t temp_len = 0; - uint32_t send_buff_len = data_len + 256; - char * send_buff_ptr = lv_mem_alloc(send_buff_len); - if(NULL == send_buff_ptr) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__); - return; - } - _lv_memset_00(send_buff_ptr, send_buff_len); - - temp_len = 0; - temp_len += sprintf(send_buff_ptr + temp_len, "{\"header\":{\"event\":\"LongTextStream\",\"trace_id\":\"3fa6b9e6a30b407ea38ad7ae69e6c291\"},"); - temp_len += sprintf(send_buff_ptr + temp_len, "\"payload\":{\"voice\":\"xiaoyun\",\"format\":\"mp3\",\"sample_rate\":8000,\"volume\":50,\"speech_rate\":2,"); // 0,"); - temp_len += sprintf(send_buff_ptr + temp_len, "\"text\":\"%s\"}}", data_ptr); // 185 + data_len - -#ifdef MMI_VOICECHAT_DEBUG_TO_FILE - mmi_debug_info_write_to_file(VOICECHAT_SEND_TTS_TEXT_FILE, send_buff_ptr, temp_len); -#endif - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: send_len=%d\n", __FUNCTION__, __LINE__, temp_len); - //int ret = mmi_voicechat_tts_websocket_send_text_data(send_buff_ptr, temp_len); - //if(0 > ret) - { - //VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret); - //mmi_voicechat_list_screen_signal_weak_prompt(); - } - - if(NULL != send_buff_ptr) - { - lv_mem_free(send_buff_ptr); - send_buff_ptr = NULL; - } -} - -#endif - -#if 0 -static void mmi_voicechat_tts_audio_data_recv_msg(void * param, uint32_t param_size) -{ - mmi_voicechat_data_recv_task_msg_send(MMI_VOICECHAT_MSG_TTS_AUDIO_RECV, param, param_size); -} - -static void mmi_voicechat_recv_tts_audio_data_process(void * data_ptr, uint32_t data_len) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: len=%d\n", __FUNCTION__, __LINE__, data_len); - cplog_printf("[@CHENG_DEBUG][%s][%d]: len=%d\n", __FUNCTION__, __LINE__, data_len); - if(NULL == data_ptr) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no data\n", __FUNCTION__, __LINE__); - return; - } - -#ifdef MMI_VOICECHAT_DEBUG_TO_FILE - mmi_debug_info_write_to_file(VOICECHAT_RECV_TTS_FILE, data_ptr, data_len); -#endif - - cJSON * json_root = cJSON_Parse(data_ptr); - if(NULL != json_root) - { - cplog_printf("[@CHENG_DEBUG][%s][%d]: json root\n", __FUNCTION__, __LINE__); - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tts json\n", __FUNCTION__, __LINE__); - - cJSON * json_header = cJSON_GetObjectItem(json_root, "header"); - if(NULL != json_header) - { - char * value_event_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_header, "event")); - if(0 == strncmp(value_event_str, "EndSynthesis", strlen("EndSynthesis"))) - { - // end - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: EndSynthesis\n", __FUNCTION__, __LINE__); - - mmi_voicechat_tts_end_synthesis_action(); - } - } - } - else - { - // tts data - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tts data\n", __FUNCTION__, __LINE__); - - if(true == mmi_voicechat_tts_audio_store(data_ptr, data_len)) - { - - } - } - - if(NULL != json_root) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); - cplog_printf("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); - cJSON_Delete(json_root); - json_root = NULL; - } -} - -void mmi_voicechat_websocket_recv_data_handler(char * data_ptr, int data_len, int payload_len, int payload_offset) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); - //cplog_printf("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); - - mmi_voicechat_tts_audio_data_recv_msg(data_ptr, data_len); -} -#else - -void mmi_voicechat_websocket_recv_data_handler(char * data_ptr, int data_len, int payload_len, int payload_offset) -{ - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); - //cplog_printf("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len); - - if(NULL == data_ptr) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no data\n", __FUNCTION__, __LINE__); - return; - } - -#ifdef MMI_VOICECHAT_DEBUG_TO_FILE - mmi_debug_info_write_to_file(VOICECHAT_RECV_TTS_FILE, data_ptr, data_len); -#endif - - cJSON * json_root = cJSON_Parse(data_ptr); - if(NULL != json_root) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tts json\n", __FUNCTION__, __LINE__); - - cJSON * json_header = cJSON_GetObjectItem(json_root, "header"); - if(NULL != json_header) - { - char * value_event_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_header, "event")); - if(0 == strncmp(value_event_str, "EndSynthesis", strlen("EndSynthesis"))) - { - // end - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: EndSynthesis\n", __FUNCTION__, __LINE__); - - mmi_voicechat_tts_end_synthesis_action(); - } - } - } - else - { - // tts data - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tts data\n", __FUNCTION__, __LINE__); - - if(true == mmi_voicechat_tts_audio_store(data_ptr, data_len)) - { - - } - } - - if(NULL != json_root) - { - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); - //cplog_printf("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__); - cJSON_Delete(json_root); - json_root = NULL; - } -} -#endif - #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_data.h b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_data.h index fb4805b2..2618067f 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_data.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_data.h @@ -23,16 +23,20 @@ extern "C" { #include "../../../../product/craneg_modem/pcac/wsclient/libwebsockets/inc/mmi_voicechat_websocket.h" -#define MMI_VOICECHAT_DATA_SEND_TASK_PRIORITY 220 -#define MMI_VOICECHAT_DATA_SEND_TASK_MSG_QUEUE_SIZE (TASK_MSGQ_SIZE_16) -#define MMI_VOICECHAT_DATA_SEND_TASK_STACK_SIZE (16 * 1024) +#define MMI_VOICECHAT_MSG_APPKEY ("j2QhAoOeBi5AUlrM") + +#define MMI_VOICECHAT_MSG_DIALOG_ID_LEN (32) +#define MMI_VOICECHAT_MSG_MESSAGE_ID_LEN (32) +#define MMI_VOICECHAT_MSG_TASK_ID_LEN (32) + + +#if 0 #define MMI_VOICECHAT_DATA_RECV_TASK_PRIORITY 220 #define MMI_VOICECHAT_DATA_RECV_TASK_MSG_QUEUE_SIZE (TASK_MSGQ_SIZE_32) #define MMI_VOICECHAT_DATA_RECV_TASK_STACK_SIZE (80 * 1024) - typedef enum { MMI_VOICECHAT_MSG_RECV_ID_START, @@ -43,20 +47,23 @@ typedef enum MMI_VOICECHAT_MSG_RECV_ID_END }MMI_VOICECHAT_DATA_RECV_MSG_ID_E; +#endif + + + +#define MMI_VOICECHAT_DATA_SEND_TASK_PRIORITY 220 +#define MMI_VOICECHAT_DATA_SEND_TASK_MSG_QUEUE_SIZE (TASK_MSGQ_SIZE_16) +#define MMI_VOICECHAT_DATA_SEND_TASK_STACK_SIZE (16 * 1024) + typedef enum { - MMI_VOICECHAT_MSG_SEND_ID_START, + VOICECHAT_MSG_ID_START_REQUEST, + VOICECHAT_MSG_ID_STOP_REQUEST, - MMI_VOICECHAT_MSG_TRANS_START_SEND, - MMI_VOICECHAT_MSG_TRANS_AUDIO_SEND, - MMI_VOICECHAT_MSG_TRANS_STOP_SEND, - MMI_VOICECHAT_MSG_CHAT_TEXT_SEND, - MMI_VOICECHAT_MSG_TTS_START_SEND, - MMI_VOICECHAT_MSG_TTS_TEXT_SEND, - MMI_VOICECHAT_MSG_TTS_STOP_SEND, + - MMI_VOICECHAT_MSG_SEND_ID_END + VOICECHAT_MSG_ID_END }MMI_VOICECHAT_DATA_SEND_MSG_ID_E; @@ -74,11 +81,8 @@ typedef struct void mmi_voicechat_data_task_create(void); void mmi_voicechat_data_task_delete(void); -// trans -void mmi_voicechat_send_trans_start_msg(void * param, uint32_t param_size); -void mmi_voicechat_send_trans_audio_msg(void * param, uint32_t param_size); -void mmi_voicechat_send_trans_stop_msg(void * param, uint32_t param_size); -void mmi_voicechat_send_chat_text_msg(void * param, uint32_t param_size); +void mmi_voicechat_send_start_request_msg(void * param, uint32_t param_size); + #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_ui.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_ui.c index 756baf98..3a66e700 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_ui.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_ui.c @@ -41,7 +41,7 @@ bool mmi_is_ACT_ID_VOICECHAT_MAIN(void) } #endif -static void mmi_voicechat_trans_websocket_open(void) +static void mmi_voicechat_websocket_open(void) { if(false == s_voicechat_ws_open_flag) { @@ -50,17 +50,7 @@ static void mmi_voicechat_trans_websocket_open(void) } } -static void mmi_voicechat_chat_websocket_open(void) -{ - -} - -static void mmi_voicechat_tts_websocket_open(void) -{ - -} - -static void mmi_voicechat_trans_websocket_close(void) +static void mmi_voicechat_websocket_close(void) { if(true == s_voicechat_ws_open_flag) { @@ -69,15 +59,6 @@ static void mmi_voicechat_trans_websocket_close(void) } } -static void mmi_voicechat_chat_websocket_close(void) -{ - -} - -static void mmi_voicechat_tts_websocket_close(void) -{ - -} static void mmi_voicechat_msg_data_clean(void) { @@ -190,7 +171,7 @@ bool mmi_voicechat_trans_result_text_store(char * data_buff, uint32_t data_len, VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,ptr=0x%x\n", __FUNCTION__, __LINE__, t_voicechat_item_info->text_data_size, t_voicechat_item_info->text_data_ptr); #ifdef MMI_VOICECHAT_DEBUG_TO_FILE - mmi_debug_info_write_to_file(VOICECHAT_RECV_TRANS_RESULT_FILE, t_voicechat_item_info->text_data_ptr, t_voicechat_item_info->text_data_size); + //mmi_debug_info_write_to_file(VOICECHAT_RECV_TRANS_RESULT_FILE, t_voicechat_item_info->text_data_ptr, t_voicechat_item_info->text_data_size); #endif return true; @@ -237,8 +218,8 @@ static void mmi_voicechat_trans_text_stop_screen_task_cb(void) VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: ui_state=%d\n", __FUNCTION__, __LINE__, s_voicechat_ui_state); // wb - mmi_voicechat_trans_websocket_close(); - mmi_voicechat_chat_websocket_open(); + //mmi_voicechat_trans_websocket_close(); + //mmi_voicechat_chat_websocket_open(); if(MMI_VOICECHAT_UI_STATE_LISTENING == s_voicechat_ui_state || MMI_VOICECHAT_UI_STATE_LISTENING_MIDDLE == s_voicechat_ui_state) { @@ -286,7 +267,7 @@ static void mmi_voicechat_trans_text_fail_screen_task_cb(void) void mmi_voicechat_trans_text_start_msg_send_fail(void) { - mmi_voicechat_trans_websocket_close(); + //mmi_voicechat_trans_websocket_close(); mmi_voicechat_listening_stop(true); lv_voicechat_ext_t * ext = (lv_voicechat_ext_t *)mmi_voicechat_actId_ext_get(ACT_ID_VOICECHAT_MAIN); @@ -301,8 +282,8 @@ void mmi_voicechat_trans_text_start_msg_send_fail(void) void mmi_voicechat_trans_text_audio_msg_send_fail(void) { - mmi_voicechat_trans_websocket_close(); - mmi_voicechat_trans_websocket_open(); + mmi_voicechat_websocket_close(); + mmi_voicechat_websocket_open(); } @@ -358,7 +339,7 @@ bool mmi_voicechat_chat_result_text_store(char * data_buff, uint32_t data_len) printf("[@CHENG_DEBUG][%s][%d]: size=%d,ptr=0x%x\n", __FUNCTION__, __LINE__, t_voicechat_item_info->text_data_size, t_voicechat_item_info->text_data_ptr); #ifdef MMI_VOICECHAT_DEBUG_TO_FILE - mmi_debug_info_write_to_file(VOICECHAT_RECV_CHAT_RESULT_FILE, t_voicechat_item_info->text_data_ptr, t_voicechat_item_info->text_data_size); + //mmi_debug_info_write_to_file(VOICECHAT_RECV_CHAT_RESULT_FILE, t_voicechat_item_info->text_data_ptr, t_voicechat_item_info->text_data_size); #endif return true; @@ -410,8 +391,8 @@ static void mmi_voicechat_chat_text_stop_screen_task_cb(void) VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: ui_state=%d\n", __FUNCTION__, __LINE__, s_voicechat_ui_state); // wb - mmi_voicechat_chat_websocket_close(); - mmi_voicechat_tts_websocket_open(); + //mmi_voicechat_chat_websocket_close(); + //mmi_voicechat_tts_websocket_open(); if((MMI_VOICECHAT_UI_STATE_THINKING == s_voicechat_ui_state) || (MMI_VOICECHAT_UI_STATE_LIST == s_voicechat_ui_state)) { @@ -436,7 +417,7 @@ void mmi_voicechat_chat_text_download_requst(void) if(NULL != data_ptr && 0 != data_len) { - mmi_voicechat_send_chat_text_msg(data_ptr, data_len); + //mmi_voicechat_send_chat_text_msg(data_ptr, data_len); } } @@ -604,25 +585,7 @@ void mmi_voicechat_send_tts_text_action(char * data_ptr, uint32_t data_len) _lv_memset_00(send_ptr, (output_len + output_len / 9 + 1)); send_len = mmi_voicechat_send_tts_text_data_escape_character(data_ptr, output_len, send_ptr); -#if 0 - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: send_len=%d\n", __FUNCTION__, __LINE__, send_len); - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %#X %#X %#X %#X %#X %#X %#X %#X %#X %#X\n", __LINE__, - send_ptr[0],send_ptr[1],send_ptr[2],send_ptr[3],send_ptr[4],send_ptr[5],send_ptr[6],send_ptr[7],send_ptr[8],send_ptr[9]); - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %#X %#X %#X %#X %#X %#X %#X %#X %#X %#X\n", __LINE__, - send_ptr[10],send_ptr[11],send_ptr[12],send_ptr[13],send_ptr[14],send_ptr[15],send_ptr[16],send_ptr[17],send_ptr[18],send_ptr[19]); - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %#X %#X %#X %#X %#X %#X %#X %#X %#X %#X\n", __LINE__, - send_ptr[20],send_ptr[21],send_ptr[22],send_ptr[23],send_ptr[24],send_ptr[25],send_ptr[26],send_ptr[27],send_ptr[28],send_ptr[29]); - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %#X %#X %#X %#X %#X %#X %#X %#X %#X %#X\n", __LINE__, - send_ptr[30],send_ptr[31],send_ptr[32],send_ptr[33],send_ptr[34],send_ptr[35],send_ptr[36],send_ptr[37],send_ptr[38],send_ptr[39]); - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %#X %#X %#X %#X %#X %#X %#X %#X %#X %#X\n", __LINE__, - send_ptr[40],send_ptr[41],send_ptr[42],send_ptr[43],send_ptr[44],send_ptr[45],send_ptr[46],send_ptr[47],send_ptr[48],send_ptr[49]); - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %#X %#X %#X %#X %#X %#X %#X %#X %#X %#X\n", __LINE__, - send_ptr[50],send_ptr[51],send_ptr[52],send_ptr[53],send_ptr[54],send_ptr[55],send_ptr[56],send_ptr[57],send_ptr[58],send_ptr[59]); - VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %#X %#X %#X %#X %#X %#X %#X %#X %#X %#X\n", __LINE__, - send_ptr[60],send_ptr[61],send_ptr[62],send_ptr[63],send_ptr[64],send_ptr[65],send_ptr[66],send_ptr[67],send_ptr[68],send_ptr[69]); -#endif - - mmi_voicechat_send_tts_text_msg(send_ptr, send_len); + //mmi_voicechat_send_tts_text_msg(send_ptr, send_len); s_voicechat_tts_text_sent_size += output_len; lv_mem_free(send_ptr); @@ -761,7 +724,7 @@ void mmi_voicechat_tts_audio_ctrl_callback(AUDIO_CTRL_PRIORITY priority) else if(MMI_VOICECHAT_TTS_AUDIO_PRI > priority) { // wb - mmi_voicechat_tts_websocket_close(); + //mmi_voicechat_tts_websocket_close(); // res mmi_voicechat_tts_audio_ll_clean(); @@ -987,9 +950,7 @@ void mmi_voicechat_main_prepare_destory(lv_obj_t * activity_obj) VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); // websocket - mmi_voicechat_trans_websocket_close(); - mmi_voicechat_chat_websocket_close(); - mmi_voicechat_tts_websocket_close(); + mmi_voicechat_websocket_close(); // data task mmi_voicechat_data_task_delete(); @@ -1134,7 +1095,7 @@ void mmi_voicechat_thinking_screen_clean(void) { VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - mmi_voicechat_chat_websocket_close(); + //mmi_voicechat_chat_websocket_close(); lv_voicechat_ext_t * ext = (lv_voicechat_ext_t *)mmi_voicechat_actId_ext_get(ACT_ID_VOICECHAT_MAIN); if(NULL == ext) @@ -1460,7 +1421,7 @@ void mmi_voicechat_listening_cb(MCI_EVNET_T event, MCI_INFO_T info_type, int32_t _lv_memset_00(sending_buf, sending_size + 1); _lv_memcpy(sending_buf, ext->record_buffer + s_voicechat_recording_sent_size, sending_size); - mmi_voicechat_send_trans_audio_msg(sending_buf, sending_size); + //mmi_voicechat_send_trans_audio_msg(sending_buf, sending_size); lv_mem_free(sending_buf); s_voicechat_recording_sent_size += sending_size; } @@ -1502,8 +1463,8 @@ void mmi_voicechat_listening_screen_display(void) Hal_Audio_Manage_End_Ind(MMI_VOICECHAT_TTS_AUDIO_PRI); // wb - mmi_voicechat_tts_websocket_close(); - mmi_voicechat_trans_websocket_open(); + //mmi_voicechat_websocket_close(); + //mmi_voicechat_websocket_open(); // res mmi_voicechat_msg_data_clean(); @@ -1525,7 +1486,7 @@ void mmi_voicechat_listening_screen_display(void) { VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__); - mmi_voicechat_send_trans_start_msg(NULL, 0); + mmi_voicechat_send_start_request_msg(NULL, 0); s_voicechat_recording_sent_size = 0; Hal_Record_Buffer_With_Format_Req(ext->record_buffer, @@ -2024,6 +1985,9 @@ lv_obj_t * mmi_voicechat_main_create(lv_obj_t * activity_obj) mmi_voicechat_data_task_create(); watch_set_suspend_enable(false, ACT_ID_VOICECHAT_MAIN, 0); + //mmi_voicechat_websocket_close(); + mmi_voicechat_websocket_open(); + // cont_default lv_obj_t * cont_default = lv_cont_create(obj, NULL); lv_obj_set_size(cont_default, lv_obj_get_width(obj), lv_obj_get_height(obj)); diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_ui.h b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_ui.h index 136fdb01..547c107f 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_ui.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/mmi_voicechat_ui.h @@ -29,14 +29,10 @@ extern "C" { #endif -//#define MMI_VOICECHAT_DEBUG_TO_FILE +#define MMI_VOICECHAT_DEBUG_TO_FILE #ifdef MMI_VOICECHAT_DEBUG_TO_FILE -#define VOICECHAT_RECV_TRANS_FILE "C:/aigc_trans.txt" -#define VOICECHAT_RECV_TRANS_RESULT_FILE "C:/aigc_trans_result.txt" -#define VOICECHAT_RECV_CHAT_FILE "C:/aigc_chat.txt" -#define VOICECHAT_RECV_CHAT_RESULT_FILE "C:/aigc_chat_result.txt" -#define VOICECHAT_RECV_TTS_FILE "C:/aigc_tts.txt" -#define VOICECHAT_SEND_TTS_TEXT_FILE "C:/aigc_tts_text.txt" +#define VOICECHAT_SEND_DATA_FILE "C:/voicechat_send.txt" +#define VOICECHAT_RECV_DATA_FILE "C:/voicechat_data.txt" #endif diff --git a/2.sdk/sdk/product/craneg_modem/pcac/mbedTLS/alios/alios_mbedtls_config.h b/2.sdk/sdk/product/craneg_modem/pcac/mbedTLS/alios/alios_mbedtls_config.h index 6604512c..8167cd73 100644 --- a/2.sdk/sdk/product/craneg_modem/pcac/mbedTLS/alios/alios_mbedtls_config.h +++ b/2.sdk/sdk/product/craneg_modem/pcac/mbedTLS/alios/alios_mbedtls_config.h @@ -12,6 +12,11 @@ #define MBEDTLS_HAVE_TIME //#define MBEDTLS_PLATFORM_MEMORY //#define MBEDTLS_PLATFORM_TIME_ALT + +// @CHENG add +//#define MBEDTLS_ENTROPY_HARDWARE_ALT // open for wss +// @CHENG add + #define MBEDTLS_NO_PLATFORM_ENTROPY /* mbed TLS feature support */ diff --git a/2.sdk/sdk/product/craneg_modem/pcac/wsclient/libwebsockets/src/common/web_transport_ws.c b/2.sdk/sdk/product/craneg_modem/pcac/wsclient/libwebsockets/src/common/web_transport_ws.c index 7becf048..c5ed3ffd 100644 --- a/2.sdk/sdk/product/craneg_modem/pcac/wsclient/libwebsockets/src/common/web_transport_ws.c +++ b/2.sdk/sdk/product/craneg_modem/pcac/wsclient/libwebsockets/src/common/web_transport_ws.c @@ -43,6 +43,10 @@ extern char* strcasestr(const char* haystack,const char* needle); extern int wb_getrandom(void *buf, size_t buflen, unsigned int flags); extern int wb_esp_transport_get_socket(wb_esp_transport_handle_t t); +extern int mmi_ws_header_add_custom_info_check(void); +extern char * mmi_ws_header_add_custom_info_get(void); + + typedef struct { uint8_t opcode; char mask_key[4]; /*!< Mask key for this payload */ @@ -151,6 +155,18 @@ static int ws_connect(wb_esp_transport_handle_t t, const char *host, int port, i ESP_LOGE("Error in request generation, %d", len); return -1; } + + if(0 != mmi_ws_header_add_custom_info_check()) + { + if(NULL != mmi_ws_header_add_custom_info_get()) + { + int t_len = snprintf(ws->buffer + len, DEFAULT_WS_BUFFER - len, mmi_ws_header_add_custom_info_get()); + len += t_len; + + ESP_LOGE("ws_connect: len=%d,add_len=%d", len, t_len); + } + } + if (ws->sub_protocol) { int r = snprintf(ws->buffer + len, DEFAULT_WS_BUFFER - len, "Sec-WebSocket-Protocol: %s\r\n", ws->sub_protocol); len += r;