增加deinit ai websocket
authorhcj <1224667075@qq.com>
Wed, 18 Jun 2025 06:18:49 +0000 (14:18 +0800)
committerhcj <1224667075@qq.com>
Wed, 18 Jun 2025 06:18:49 +0000 (14:18 +0800)
code/sdk/drivers/peripheral/slip/cat1Service/cat1_at_cmd.cpp
code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp

index c1ddbc0..13f68c0 100644 (file)
@@ -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" },
     
 };
 
index 8607d02..f3dc037 100644 (file)
@@ -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;
     }