From 2daa1347347a017eb4888e19267fc5260d37cbfc Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E8=83=A1=E4=BC=A0=E5=86=9B?= <1224667075@qq.com> Date: Wed, 18 Jun 2025 06:30:47 +0000 Subject: [PATCH] Merge #1861 into sdk602patch0911 from refs/changes/1861/head MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Code review from 胡传军 * refs/changes/1861/head: (2 commits squashed) - 增加deinit ai websocket - Merge branch 'sdk602patch0911' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into 0911 Signed-off-by: aliyun8003852482 <1224667075@qq.com> Reviewed-by: Caisking <3449750381@qq.com> Reviewed-by: 罗正 <1732036298@qq.com> Reviewed-by: aliyun8003852482 <1224667075@qq.com> Reviewed-by: snickersun@163.com Reviewed-by: aliyun6865282430 <1624952103@qq.com> Merged-by: 罗正 <1732036298@qq.com> CR-link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1861 --- .../slip/cat1Service/cat1_at_cmd.cpp | 19 +++++ .../peripheral/slip/cat1Service/cat1_ws.cpp | 76 +++++++++++++------ 2 files changed, 71 insertions(+), 24 deletions(-) diff --git a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_at_cmd.cpp b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_at_cmd.cpp index c1ddbc002..13f68c050 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_at_cmd.cpp +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_at_cmd.cpp @@ -556,6 +556,24 @@ static uint32_t readfileput(uint8_t *para, uint32_t paraLen, char *strCommonCmd) read_file_put(); return 0; } +extern bool dinit_ai_task(void); +static uint32_t stopwstest(uint8_t *para, uint32_t paraLen, char *strCommonCmd) +{ + UNUSED(strCommonCmd); + uint8_t argv[PPG_MAX_ARGC][PPG_MAX_ARGV_LEN] = { 0 }; + uint32_t argc = 0; + printf("ai_msg\n"); + int ret = ConvertCmdToParam(para, paraLen, argv, &argc); + if (ret != PPG_SUCCESS) { + printf("CAT1TEST ATCMD Convert Command Failed\n"); + return ERRCODE_FAIL; + } + dinit_ai_task(); + return 0; +} + + + static const at_cmd_table_t g_cat1_cmd[] = { { (char *)"AT^CAT1POWER", cat1_power, (char *)"1" }, @@ -587,6 +605,7 @@ static const at_cmd_table_t g_cat1_cmd[] = { { (char *)"AT^LOGIN", autlogin, (char *)"1" }, { (char *)"AT^STARTTTS", starttts, (char *)"1" }, { (char *)"AT^SENDTTTS", sendttstxt, (char *)"1" }, + { (char *)"AT^STOPTEST", stopwstest, (char *)"1" }, }; diff --git a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp index 8607d02c5..f3dc0373f 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp @@ -685,6 +685,7 @@ int receive_websocket_message(WebSocketClient *client, unsigned char *buf,int l payload_len = 0; }else if(*code == WS_PING) { + printf("send_websocket_message WS_PING \n"); send_websocket_message(client,buf,payload_len,WS_PONG); payload_len = 0; }else if(*code == WS_CONT) @@ -1154,18 +1155,20 @@ void uapi_start_asr(void) void uapi_start_asr_task(void) { - char *jsonString = "{\"header\":{\"event\":\"StartTranscription\",\"trace_id\": \ - \"3fa6b9e6a30b407ea38ad7ae69e6c291\"},\"payload\":{\"format\":\"MP3\",\"sample_rate\":16000}}"; + do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AI_SEND_TEST, nullptr, 0); - if (send_websocket_message(asr_client,( const unsigned char *)jsonString,strlen(jsonString),WS_TEXT)==0) - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"send_websocket_message succ 0\n"); - else - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"send_websocket_message erro\n"); - // lwip_close_websocket_client(asr_client); - // asr_client=NULL; - // disconnect_server=1; - } + // char *jsonString = "{\"header\":{\"event\":\"StartTranscription\",\"trace_id\": \ + // \"3fa6b9e6a30b407ea38ad7ae69e6c291\"},\"payload\":{\"format\":\"MP3\",\"sample_rate\":16000}}"; + + // if (send_websocket_message(asr_client,( const unsigned char *)jsonString,strlen(jsonString),WS_TEXT)==0) + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"send_websocket_message succ 0\n"); + // else + // { + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"send_websocket_message erro\n"); + // // lwip_close_websocket_client(asr_client); + // // asr_client=NULL; + // // disconnect_server=1; + // } } @@ -1229,7 +1232,7 @@ void record_test(void) if(read_size!=0) { send_ai_bin(buf,read_size); - bk_sleep(100); + // bk_sleep(100); read_size_num+=read_size; } @@ -1247,6 +1250,8 @@ void record_test(void) // "start_time":760,"end_time":2280}} void asr_record_test(void) { + uapi_start_asr(); + bk_sleep(500); record_test(); bk_sleep(500); uapi_stop_asr(); @@ -1443,12 +1448,15 @@ void bk_websocket_asr(void *data) { memset_s(asr_recv_buf,1024,0,1024); int len= receive_websocket_message(asr_client,(unsigned char *)asr_recv_buf,1024,&type); // if(type==WS_CONT || + printf(" bk_websocket_asr %d\r\n",type); + printf("bk_websocket_demo %s %d",asr_recv_buf,type); + if( type==WS_CLOSE || len==-1) { printf("WS_lwip_close bk_websocket_asr\r\n"); break; } - printf(" bk_websocket_asr %d\r\n",type); + printf(" bk_websocket_asr %d\r\n",type); printf("bk_websocket_demo %s %d",asr_recv_buf,type); if(false== aer_result_analysis(asr_recv_buf)) { @@ -1468,6 +1476,7 @@ void bk_websocket_asr(void *data) { } + errcode_t asr_server_init(void) { if(is_bk_websocket_asr || asr_client!=NULL) @@ -1869,25 +1878,44 @@ bool init_ai_task(void) } +void asr_server_deinit(void) +{ + send_websocket_message(asr_client,(const unsigned char *)"WS_CLOSE",strlen("WS_CLOSE"),WS_CLOSE); +} + +void chat_server_deinit(void) +{ + send_websocket_message( chat_client,(const unsigned char *)"WS_CLOSE",strlen("WS_CLOSE"),WS_CLOSE); +} + + +void tts_server_deinit(void) +{ + send_websocket_message( tts_client,(const unsigned char *)"WS_CLOSE",strlen("WS_CLOSE"),WS_CLOSE); +} + + bool dinit_ai_task(void) { if(is_init_ai) { - disconnect_server=0; + disconnect_server=1; - if(g_timer_time_sync==NULL) - { - g_timer_time_sync = osTimerNew((osTimerFunc_t)time_sync_func, osTimerPeriodic, NULL, NULL); - } - if (g_timer_time_sync == NULL) - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"g_timer_time_sync create failed\n"); + // if(g_timer_time_sync==NULL) + // { + // g_timer_time_sync = osTimerNew((osTimerFunc_t)time_sync_func, osTimerPeriodic, NULL, NULL); + // } + // if (g_timer_time_sync == NULL) + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"g_timer_time_sync create failed\n"); + uapi_tts_paly_stop(); - uapi_tts_paly_init(); - asr_server_init(); - chat_server_init(); - tts_server_init(); + asr_server_deinit(); + + chat_server_deinit(); + + tts_server_deinit(); // is_init_ai=0; } -- 2.17.1