From 135c06fedb2c455c9c798c4c2a09ea5857fa3252 Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Mon, 30 Jun 2025 17:23:58 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E6=94=B9=E4=BD=BF=E7=94=A8=E4=B9=9D?= =?utf8?q?=E5=A4=A9=E6=A8=A1=E5=9E=8B=EF=BC=8C=E5=A2=9E=E5=8A=A0=E8=AF=AD?= =?utf8?q?=E9=9F=B3=E6=89=93=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- code/sdk/drivers/peripheral/slip/asio.c | 3 +- .../peripheral/slip/cat1Service/cat1_ws.cpp | 59 +++++++++++++------ .../voice_call_volte_sample_wrapper.cpp | 30 +++++++--- 3 files changed, 64 insertions(+), 28 deletions(-) diff --git a/code/sdk/drivers/peripheral/slip/asio.c b/code/sdk/drivers/peripheral/slip/asio.c index 24810bdb0..4b7719ba3 100644 --- a/code/sdk/drivers/peripheral/slip/asio.c +++ b/code/sdk/drivers/peripheral/slip/asio.c @@ -187,7 +187,8 @@ void sio_send(u8_t c, sio_fd_t fd) { slip_send_buffer.buffer[slip_send_buffer.len] = c; slip_send_buffer.len += 1; - if( slip_send_buffer.len >= (SLIP_UART_SEND_BUFFER_MAX) ) { + // if( slip_send_buffer.len >= (SLIP_UART_SEND_BUFFER_MAX) ) + if( slip_send_buffer.len >= (SLIP_UART_SEND_BUFFER_MAX) || c == SLIP_END) { //printf("send2 data len = %d\n", slip_send_buffer.len); // uart_write_bytes(UART_NUM_0, (const char *)slip_send_buffer.buffer, slip_send_buffer.len); slip_uart_write((const char *)slip_send_buffer.buffer, slip_send_buffer.len); diff --git a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp index f53db3929..02fcf6aeb 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp @@ -892,7 +892,7 @@ void send_ai_txt(uint8_t type,char *msg) } - cJSON_AddStringToObject(dataJSON,"type","chat"); + cJSON_AddStringToObject(dataJSON,"type","jiutian-lan"); cJSON_AddStringToObject(dataJSON,"content",msg); @@ -978,7 +978,7 @@ bool chat_ws_url_init(char * put_buf) char token[64]={0}; if(read_dev_token(token)) { - sprintf(put_buf,"ws://amp.raisound.com/chat/ws?dt=%s&platform=huoshan",token); + sprintf(put_buf,"ws://amp.raisound.com/chat/ws?dt=%s&platform=chinamobiledevice&bot_type=jiutian-lan",token); return true; } else @@ -995,7 +995,7 @@ static uint8_t ai_tts_server_init_flag = 0; //tts初始化标志 // 获取ASR服务初始化标志 uint8_t get_ai_asr_service_init_flag(void) { - return 1; + return true; } // 设置ASR服务初始化标志 @@ -1034,26 +1034,26 @@ void bk_websocket_demo(void *data) { /* code */ is_bk_websocket_chat=1; - // char url_buf[124]={0}; - // if(chat_ws_url_init(url_buf)) - // { - // printf("%s\r\n",url_buf); - // } - // else - // { - // is_bk_websocket_chat=0; - // return; - // } + char url_buf[124]={0}; + if(chat_ws_url_init(url_buf)) + { + printf("%s\r\n",url_buf); + } + else + { + is_bk_websocket_chat=0; + return; + } uint8_t client_count=3; while (client_count) { // http://118.145.158.207:22080ws://118.145.158.207:22080/chat/ws - chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws",NULL,0); + chat_client = init_websocket_client(url_buf,NULL,1); if (chat_client== NULL) { client_count--; -bk_sleep(1000); + bk_sleep(1000); continue ; } else @@ -1150,11 +1150,22 @@ int32_t uapi_tts_paly_init(void); int32_t uapi_tts_paly_stop(void); +uint32_t bk_websocket_tts_tick=0; + +uint8_t tts_reconnect=0; + +void tts_server_deinit(void); void uapi_UI_start_asr(void) { asr_server_init(); + + if(bk_websocket_tts_tick!=0) + { + tts_server_deinit(); + tts_reconnect=1; + } } void uapi_UI_stop_asr(void) @@ -1236,7 +1247,7 @@ void send_ai_bin(char *buf,uint32_t len) if (send_websocket_message(asr_client,( const unsigned char *)buf,len,WS_BINARY)==0) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"send_websocket_message succ 0\n"); - bk_sleep(300); + bk_sleep(100); } else { @@ -1749,12 +1760,13 @@ void tts_paly() } uint8_t is_bk_websocket_tts=0; -uint32_t bk_websocket_tts_tick=0; + void bk_websocket_tts(void *data) { // while (1) + TTS_SATRT : uapi_cat1_keep_wakeup(1); WebSocketMessageType type; @@ -1841,7 +1853,7 @@ void bk_websocket_tts(void *data) { bk_sleep(1); printf("bk_websocket_demo %d\n",len); } - else + else if(type==WS_TEXT) { printf("bk_websocket_demo %s %d %d\n",tts_recv_buf,bk_websocket_tts_tick,(uint32_t)osKernelGetTickCount()); bk_websocket_tts_tick=0; @@ -1856,6 +1868,15 @@ void bk_websocket_tts(void *data) { lwip_close_websocket_client(tts_client); tts_client=NULL; + + if(tts_reconnect) + { + if(disconnect_server==0) + { + goto TTS_SATRT; + } + tts_reconnect=0; + } // return; } is_bk_websocket_tts=0; @@ -1985,7 +2006,7 @@ bool init_ai_task(void) if (g_timer_time_sync == NULL) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"g_timer_time_sync create failed\n"); -} + } diff --git a/code/sdk/middleware/services/media/foundation/sample/wrapper/voice_call_volte_sample_wrapper.cpp b/code/sdk/middleware/services/media/foundation/sample/wrapper/voice_call_volte_sample_wrapper.cpp index 6ce130d25..730668c59 100755 --- a/code/sdk/middleware/services/media/foundation/sample/wrapper/voice_call_volte_sample_wrapper.cpp +++ b/code/sdk/middleware/services/media/foundation/sample/wrapper/voice_call_volte_sample_wrapper.cpp @@ -1251,7 +1251,7 @@ void stop_AudioCaptureProcess_AI(void) } -static void* AudioCaptureProcess_AI(void* arg) +static void AudioCaptureProcess_AI(void* arg) { MEDIA_ERR_LOG("AudioCaptureProcess_AI"); @@ -1275,7 +1275,7 @@ static void* AudioCaptureProcess_AI(void* arg) ret = g_stream_in_uplink->Start(); if (ret != 0) { MEDIA_ERR_LOG("audio stream out downink play failed"); - return NULL; + return ; } MEDIA_ERR_LOG("g_stream_in_uplink->Start"); @@ -1284,7 +1284,7 @@ static void* AudioCaptureProcess_AI(void* arg) if(data_buf == NULL) { MEDIA_ERR_LOG("malloc"); - return NULL; + return ; } AudioCaptureTask_is_run=1; @@ -1309,7 +1309,7 @@ static void* AudioCaptureProcess_AI(void* arg) record_size+=readlen; fwrite(data_buf,1,readlen,fp); - if(record_size>=1024*20) + if(record_size>=1024*40) { g_sample_needStop=1; } @@ -1341,9 +1341,10 @@ static void* AudioCaptureProcess_AI(void* arg) MEDIA_INFO_LOG("AudioCaptureProcess end"); AudioCaptureTask_is_run=0; - return NULL; + return ; } - +#include "thread_init.h" +#include "custom_utils.h" void startAudioCaptureTask(void) { @@ -1352,8 +1353,21 @@ void startAudioCaptureTask(void) MEDIA_ERR_LOG("AudioCaptureTask_is_run %d",AudioCaptureTask_is_run); return; } - MediaThreadattr attr = { "AudioCaptureTask", 0x1000, THREAD_SCHED_INVALID, 0, true }; - MediaThreadCreate(AudioCaptureProcess_AI, NULL, &attr); + // MediaThreadattr attr = { "AudioCaptureTask", 0x1000, THREAD_SCHED_INVALID, 0, true }; + // MediaThreadCreate(AudioCaptureProcess_AI, NULL, &attr); + + + MEDIA_ERR_LOG("startAudioCaptureTask !\r\n"); + + app_task_definition_t taskcfg; + taskcfg.create_queue_handle = NULL; + taskcfg.attr.name="AudioCaptureTask"; + taskcfg.attr.priority = TASK_PRIORITY_APP; + taskcfg.attr.stack_size = 0x1000; + taskcfg.func = AudioCaptureProcess_AI; + taskcfg.use_mem = USE_EXTEND_MEM; + + errcode_t ret=uapi_create_osThread_custom(&taskcfg); } -- 2.17.1