From 58f43fd2b0db70ae30fee13d13b8cea7eea20fef Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Wed, 16 Jul 2025 17:48:39 +0800 Subject: [PATCH] =?utf8?q?AI=20=E5=A4=9A=E6=A8=A1=E5=9E=8B=E6=B7=BB?= =?utf8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/aivoice/src/AiVoiceModel.cpp | 4 +- .../nativeui/aivoice/src/AiVoicePresenter.cpp | 8 +- .../slip/cat1Service/cat1_at_cmd.cpp | 10 +-- .../slip/cat1Service/cat1_tcpServer.cpp | 2 +- .../peripheral/slip/cat1Service/cat1_ws.cpp | 78 +++++++++++++++---- .../peripheral/slip/cat1Service/cat1_ws.h | 21 ++++- 6 files changed, 93 insertions(+), 30 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp index 1bb3790c8..8c06c184b 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp @@ -174,7 +174,7 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetSelect4gorbt() == AI_SELECT_4G"); if (GetInit_4gai_task()) { - uapi_UI_start_asr(); + uapi_UI_start_asr(AI_TYPE_JIU); } else { @@ -1486,7 +1486,7 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "4gAi服务初始化成功"); bool state = true; SendMsgToUIService(UI_4G_AI_INIT_STAUS, 0, &state, sizeof(bool)); - uapi_UI_start_asr(); + uapi_UI_start_asr(AI_TYPE_JIU); AiVoiceModel::GetInstance().stop_ai4g_connect_timer(); p_AiVoicePresenter->ChangeViewAndLogicOperator(AIVOICE_4GSERVICECON_VIEW, AIVOICE_AIMODE_CONNECTING); } diff --git a/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp index 0f6e3a1c9..49ace83df 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp @@ -409,7 +409,7 @@ namespace OHOS // usleep(50000); set_clear_queue_stream(1); LOS_Msleep(100); - uapi_UI_start_asr(); + uapi_UI_start_asr(AI_TYPE_JIU); ChangeViewAndLogicOperator(AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_AIMODE_CONNECTING); return true; } @@ -485,7 +485,7 @@ namespace OHOS model->SetSelect4gorbt(AI_SELECT_4G); if (!model->GetInit_4gai_task()) { - init_ai_task(); + init_ai_task(AI_TYPE_JIU); model->start_ai4g_connect_timer(); ChangeViewAndLogicOperator(AIVOICE_STARTCHAT_VIEWID, AIVOICE_4GSERVICECON_VIEW); // LOADING } @@ -512,7 +512,7 @@ namespace OHOS model->SetSelect4gorbt(AI_SELECT_4G); if (!model->GetInit_4gai_task()) { - init_ai_task(); + init_ai_task(AI_TYPE_JIU); model->start_ai4g_connect_timer(); ChangeViewAndLogicOperator(AIVOICE_STARTCHAT_VIEWID, AIVOICE_4GSERVICECON_VIEW); // LOADING } @@ -546,7 +546,7 @@ namespace OHOS model->SetSelect4gorbt(AI_SELECT_4G); if (!model->GetInit_4gai_task()) { - init_ai_task(); + init_ai_task(AI_TYPE_JIU); model->start_ai4g_connect_timer(); ChangeViewAndLogicOperator(model->GetCurView(), AIVOICE_4GSERVICECON_VIEW); // LOADING } 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 0072bf24d..33ffce680 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_at_cmd.cpp +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_at_cmd.cpp @@ -438,7 +438,7 @@ static uint32_t Tcptest(uint8_t *para, uint32_t paraLen, char *strCommonCmd) return 0; } -extern bool init_ai_task(void); +extern bool init_ai_task(uint8_t type); extern errcode_t chat_server_init(void); @@ -461,7 +461,7 @@ static uint32_t wstest(uint8_t *para, uint32_t paraLen, char *strCommonCmd) g_test_server_index = atoi((char*)argv[0]); } printf("AT^WSTEST g_test_server_index %d\n",g_test_server_index); - init_ai_task(); + init_ai_task(AI_TYPE_JIU); return 0; } @@ -536,7 +536,7 @@ static uint32_t sendttstxt(uint8_t *para, uint32_t paraLen, char *strCommonCmd) return 0; } -extern void uapi_UI_start_asr(void); +extern void uapi_UI_start_asr(uint8_t type); static uint32_t start_asr(uint8_t *para, uint32_t paraLen, char *strCommonCmd) { @@ -549,7 +549,7 @@ static uint32_t start_asr(uint8_t *para, uint32_t paraLen, char *strCommonCmd) printf("CAT1TEST ATCMD Convert Command Failed\n"); return ERRCODE_FAIL; } - uapi_UI_start_asr(); + uapi_UI_start_asr(AI_TYPE_JIU); return 0; } @@ -582,7 +582,7 @@ static uint32_t sendbindata(uint8_t *para, uint32_t paraLen, char *strCommonCmd) return ERRCODE_FAIL; } uapi_cat1_keep_wakeup(1); - uapi_UI_start_asr(); + uapi_UI_start_asr(AI_TYPE_JIU); return 0; } #include "dev_authentication.h" diff --git a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_tcpServer.cpp b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_tcpServer.cpp index 62444427f..c1d7d1892 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_tcpServer.cpp +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_tcpServer.cpp @@ -1262,7 +1262,7 @@ void cat1_server_file_task(void *pvParameters) CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1); } - else if (g_py_ver>=19 ) + else if (g_py_ver>=19 && (uapi_dev_runtime_get_cat1_networkstat()) ) { char * cat1_modemver = uapi_dev_runtime_get_cat1_modemver(); if(g_py_ver==19) diff --git a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp index cf159f1d2..424df6375 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp @@ -934,21 +934,35 @@ uint8_t uapi_get_tts_break(void) char result_str_asr[256]={0}; -void uapi_UI_start_asr(void) +static uint8_t type_ai=0; + +uint8_t chat_reconnect=0; + +void uapi_UI_start_asr(uint8_t type) { memset_s(result_str_asr,256,0,256); - // uapi_stop_tts(); + + if(type_ai!=type) + { + type_ai=type; + if(chat_client) + { + chat_server_deinit(); + chat_reconnect=1; + } + } + + + ///////////////////////////////////////////////////// + tts_break=1; tts_server_deinit(); tts_reconnect=1; AIStreamFlush(); send_msg_data_into_Ai_msg_queue((uint8_t *)"tts_recv_buf",13,201); - - - asr_need_stop=0; @@ -998,7 +1012,7 @@ bool send_ai_txt(uint8_t type,char *msg) return false; } - + cJSON_AddStringToObject(dataJSON,"type","jiutian-lan"); cJSON_AddStringToObject(dataJSON,"content",msg); @@ -1167,6 +1181,7 @@ void bk_websocket_demo(void *data) { // while (1) { /* code */ + char_reconnet: is_bk_websocket_chat=1; // char url_buf[124]={0}; @@ -1185,7 +1200,33 @@ void bk_websocket_demo(void *data) { { // http://118.145.158.207:22080ws://118.145.158.207:22080/chat/ws // ws://amp.raisound.com/chat/ws?dt=%s&platform=chinamobiledevice&bot_type=jiutian-lan - chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws?&platform=chinamobiledevice&bot_type=jiutian-lan",NULL,0); + // type_ai=AI_TYPE_DE; + if(type_ai==AI_TYPE_JIU) + { + chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws?&platform=chinamobiledevice&bot_type=jiutian-lan",NULL,0); + } + else if(type_ai==AI_TYPE_DOU) + { + chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws?&platform=huoshan",NULL,0); + } + else if(type_ai==AI_TYPE_WEN) + { + chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws?&platform=baidu",NULL,0); + } + else if(type_ai==AI_TYPE_KIMI) + { + chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws?&platform=moonshot",NULL,0); + } + else if(type_ai==AI_TYPE_DE) + { + chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws?platform=huoshan&model=ep-20250206162546-g74w6",NULL,0); + } + else + { + chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws?&platform=aliyun",NULL,0); + } + + if (chat_client== NULL) { client_count--; @@ -1211,6 +1252,7 @@ void bk_websocket_demo(void *data) { // send_ai_txt(1,"你是谁"); + set_ai_chat_service_init_flag(1); WebSocketMessageType type; while (disconnect_server==0) @@ -1228,6 +1270,12 @@ void bk_websocket_demo(void *data) { set_ai_chat_service_init_flag(0); lwip_close_websocket_client(chat_client); chat_client=NULL; + + if(chat_reconnect==1) + { + chat_reconnect=0; + goto char_reconnet; + } is_bk_websocket_chat=0; return ; } @@ -1248,6 +1296,7 @@ void bk_websocket_demo(void *data) { + errcode_t chat_server_init(void) { if(chat_client || is_bk_websocket_chat) @@ -1450,6 +1499,10 @@ bool aer_result_analysis(char *buf) { //查询结果 startAudioCaptureTask(); + // { + // //上传文件 + // } + bool state = true; SendMsgToUIService(UI_AI_JUMP_TO_LISTENING_VIEW, 0, &state, sizeof(bool)); @@ -2113,7 +2166,7 @@ if(asr_client) -bool init_ai_task(void) +bool init_ai_task(uint8_t type) { if(is_init_ai) { @@ -2124,15 +2177,10 @@ bool init_ai_task(void) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"g_timer_time_sync create failed\n"); } - - - - - + type_ai=type; uapi_tts_paly_init(); - - chat_server_init(); tts_server_init(); + chat_server_init(); // is_init_ai=0; } diff --git a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.h b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.h index 4991e3201..0c94c6851 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.h +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.h @@ -5,12 +5,12 @@ extern "C" { #endif /* __cplusplus */ #endif /* __cplusplus */ -////////////////////////// UI 使用接口/////////////////////////////////// -bool init_ai_task(void); +////////////////////////// UI 使用接口///////////////////////////////// +bool init_ai_task(uint8_t type); bool dinit_ai_task(void); -void uapi_UI_start_asr(void); +void uapi_UI_start_asr(uint8_t type); void uapi_UI_stop_asr(void); @@ -18,12 +18,27 @@ void uapi_start_tts_single_txt(char *buf); void uapi_UI_stop_start_asr_timeout(void); +typedef enum +{ + AI_TYPE_0=0, + AI_TYPE_JIU, + AI_TYPE_DE, + AI_TYPE_DOU, + AI_TYPE_WEN, + AI_TYPE_KIMI +}G_AI_TYPE; + //////////////////////////////////////////////////////////////////////// void tts_server_deinit(void); +void asr_server_deinit(void); + + +void chat_server_deinit(void); + void uapi_set_tts_break(uint8_t data); uint8_t uapi_get_tts_break(void); -- 2.17.1