From 161860cfbfa76f230d0eb9369a80ee7e4fb0d341 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=AD=99=E6=98=A5=E9=98=B3?= Date: Sat, 28 Jun 2025 17:44:47 +0800 Subject: [PATCH] =?utf8?q?ai=E6=B5=8B=E8=AF=95=E5=A2=9E=E5=8A=A0=E6=9C=8D?= =?utf8?q?=E5=8A=A1=E5=99=A8=E6=8C=87=E5=AE=9A=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- code/sdk/drivers/peripheral/slip/asio.c | 18 ++---- .../slip/cat1Service/cat1_at_cmd.cpp | 9 ++- .../peripheral/slip/cat1Service/cat1_ws.cpp | 62 ++++++++++++------- code/sdk/drivers/peripheral/slip/slipif.c | 5 +- 4 files changed, 57 insertions(+), 37 deletions(-) diff --git a/code/sdk/drivers/peripheral/slip/asio.c b/code/sdk/drivers/peripheral/slip/asio.c index 766547240..24810bdb0 100644 --- a/code/sdk/drivers/peripheral/slip/asio.c +++ b/code/sdk/drivers/peripheral/slip/asio.c @@ -185,28 +185,20 @@ sio_fd_t sio_open(u8_t devnum) #define SLIP_END 0xC0 /* 0300: start and end of every packet */ void sio_send(u8_t c, sio_fd_t fd) { - // slip_uart_write( (const char *)&c, 1); - //uart_write_bytes(UART_NUM_0, (const char *)&c, 1); slip_send_buffer.buffer[slip_send_buffer.len] = c; slip_send_buffer.len += 1; - if( slip_send_buffer.len >= (SLIP_UART_SEND_BUFFER_MAX) || c == SLIP_END) { + if( slip_send_buffer.len >= (SLIP_UART_SEND_BUFFER_MAX) ) { //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); slip_send_buffer.len = 0; } } - -void sio_send_all(u8_t c, sio_fd_t fd) +void sio_sendall(sio_fd_t fd) { - // slip_uart_write( (const char *)&c, 1); - //uart_write_bytes(UART_NUM_0, (const char *)&c, 1); - if( slip_send_buffer.len > 0 ) { - //printf("send data len = %d\n", slip_send_buffer.len); - slip_uart_write((const char *)slip_send_buffer.buffer, slip_send_buffer.len); - // uart_write_bytes(UART_NUM_0, (const char *)slip_send_buffer.buffer, slip_send_buffer.len); - slip_send_buffer.len = 0; - } + // if (slip_send_buffer.len) + // slip_uart_write((const char *)slip_send_buffer.buffer, slip_send_buffer.len); + // slip_send_buffer.len = 0; } /** 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 47d28f75d..9e4561c5e 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_at_cmd.cpp +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_at_cmd.cpp @@ -454,6 +454,13 @@ static uint32_t wstest(uint8_t *para, uint32_t paraLen, char *strCommonCmd) return ERRCODE_FAIL; } + + extern int g_test_server_index ; //0 ��ʽ�汾�� 1 ���԰汾�� 2 Snicker ���������԰汾 + if( argc == 1) + { + g_test_server_index = atoi((char*)argv[0]); + } + printf("AT^WSTEST g_test_server_index %d\n",g_test_server_index); init_ai_task(); return 0; } @@ -560,7 +567,7 @@ static uint32_t sendfilebindata(uint8_t *para, uint32_t paraLen, char *strCommon return ERRCODE_FAIL; } uapi_cat1_keep_wakeup(1); - record_test_tcp(); + // record_test_tcp(); return 0; } static uint32_t sendbindata(uint8_t *para, uint32_t paraLen, char *strCommonCmd) diff --git a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp index 25f242e85..11d407523 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp @@ -828,11 +828,11 @@ lwip_setsockopt(client->sockfd, SOL_SOCKET, SO_KEEPALIVE, (const void*)&opt, siz printf("aic_zalloc(BUFFER_SIZE);null "); goto client_ERROR; } - printf("recv: ??? "); + printf("lwip_recv: ??? "); bytes_received = lwip_recv(client->sockfd, buffer, BUFFER_SIZE - 1, 0); - printf("recv; "); + printf("lwip_recv; "); if (bytes_received > 0) { buffer[bytes_received] = '\0'; @@ -871,7 +871,9 @@ void lwip_close_websocket_client(WebSocketClient *client) { if(client) { printf("lwip_close_websocket_client "); - lwip_close(client->sockfd); + lwip_shutdown(client->sockfd,SHUT_RDWR); + int err= lwip_close(client->sockfd); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"lwip_close %d\n",err); free(client); } @@ -1260,7 +1262,7 @@ void record_test(void) do { memset_s(buf,1024,0,1024); - read_size=fread(buf,1,1024,fp); + read_size=fread(buf,1,pack,fp); if(read_size!=0) { @@ -1271,7 +1273,7 @@ void record_test(void) } - } while (read_size==1024); + } while (read_size==pack); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"record_test %d\n",read_size_num); fclose(fp); } @@ -1284,7 +1286,7 @@ void record_test(void) // "start_time":760,"end_time":2280}} void asr_record_test(void) { - uapi_start_asr(); + // uapi_start_asr(); bk_sleep(500); record_test(); bk_sleep(500); @@ -1385,7 +1387,7 @@ bool aer_result_analysis(char *buf) { asr_is_start=0; } -return false; + return false; } if(strcmp(event_str,"Failed")==0) @@ -1421,6 +1423,10 @@ bool asr_ws_url_init(char * put_buf) } } +const char* ws_test_server_url="ws://118.145.158.207:22080/asr/ws"; +const char* ws_snicker_test_server_url="ws://110.42.224.129:8910/asr/ws"; + +int g_test_server_index = 1; //0 正式版本, 1 测试版本, 2 Snicker 服务器测试版本 static int asr_client_ping=0; @@ -1435,23 +1441,37 @@ void bk_websocket_asr(void *data) { is_bk_websocket_asr=1; // while (disconnect_server==0) { - //ws://amp.raisound.com/asr/ws - // char url_buf[124]={0}; - // if(asr_ws_url_init(url_buf)) - // { - // printf("%s\r\n",url_buf); - // } - // else - // { - // return; - // } + char url_buf[124]={0}; + if (g_test_server_index==0) + { + //ws://amp.raisound.com/asr/ws + if(asr_ws_url_init(url_buf)) + { + printf("%s\r\n",url_buf); + } + else + { + return; + } + } + uint8_t client_count=3; while (client_count) { - asr_client = init_websocket_client("ws://118.145.158.207:22080/asr/ws",NULL,0); - // asr_client = init_websocket_client(url_buf,NULL,1); + if (g_test_server_index == 1) + { + asr_client = init_websocket_client("ws://118.145.158.207:22080/asr/ws",NULL,0); + + }else if (g_test_server_index == 2) + { + asr_client = init_websocket_client("ws://110.42.224.129:8910/asr/ws",NULL,0); + + }else{ + asr_client = init_websocket_client(url_buf,NULL,1); + + } if (asr_client== NULL) { printf("init_websocket_client fail %d\r\n",client_count); client_count--; @@ -1489,7 +1509,7 @@ bk_sleep(1000); // uapi_start_asr(); // SendMsgToUIService(UI_4G_AI_INIT_STAUS, 0,&state, sizeof(bool)); -uapi_start_asr(); + uapi_start_asr(); while (disconnect_server==0) { @@ -1772,7 +1792,7 @@ void bk_websocket_tts(void *data) { } else { - printf("init_websocket_client succ \r\n"); + printf("tts_client init_websocket_client succ \r\n"); break; } } diff --git a/code/sdk/drivers/peripheral/slip/slipif.c b/code/sdk/drivers/peripheral/slip/slipif.c index 3e38733a9..48bfe0765 100644 --- a/code/sdk/drivers/peripheral/slip/slipif.c +++ b/code/sdk/drivers/peripheral/slip/slipif.c @@ -155,8 +155,9 @@ slipif_output(struct netif *netif, struct pbuf *p) } /* End with packet delimiter. */ sio_send(SLIP_END, priv->sd); - // extern void sio_send_all(sio_fd_t fd); - // sio_send_all(priv->sd); + //不管缓存大小,保证一个完整的slip包每次都发出去。 + extern void sio_sendall(sio_fd_t fd); + sio_sendall(priv->sd); return ERR_OK; } -- 2.17.1