From 93e6f32ac3f04e34e6c95d0ee9aebba138b4fd1d Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Sun, 28 Sep 2025 14:14:44 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0ai=E5=AF=B9=E8=AF=9D=E6=96=87?= =?utf8?q?=E4=BB=B6=E7=BC=93=E5=AD=98=EF=BC=8C=E4=BC=98=E5=8C=96=E9=9F=B3?= =?utf8?q?=E9=A2=91=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=EF=BC=8Cln=20ws?= =?utf8?q?=E5=A2=9E=E5=8A=A0=E6=96=B0=E7=9A=84=E5=9B=9E=E8=B0=83=E4=BA=8B?= =?utf8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../brandy-native-js-ln/libwebsocket.a | Bin 59696 -> 400816 bytes .../zhihui/ai/media/ai_media_service_ext.cpp | 302 +++++++++++++++++- .../zhihui/leiniao/imsl_ln/leiniao_api_at.c | 37 ++- code/sdk/zhihui/leiniao/imsl_ln/ln_api.c | 5 +- code/sdk/zhihui/leiniao/imsl_ln/ln_api.h | 13 +- .../zhihui/leiniao/imsl_ln/ln_api_websocket.c | 174 ++++++++-- .../zhihui/websocket/os_ws/haisi_websocket.c | 129 ++++++-- .../zhihui/websocket/os_ws/haisi_websocket.h | 11 +- 8 files changed, 612 insertions(+), 59 deletions(-) diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js-ln/libwebsocket.a b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js-ln/libwebsocket.a index 93b5e6f80fc437ea9ae1fe4187d8ab987618dd84..8de57b289d5924baac991029a9a845ebec0667f3 100644 GIT binary patch literal 400816 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 Q$MyTH758XsB;pkR7daBV?f?J) literal 59696 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 #include #include +#include +#include +#include #include "securec.h" #include "audio_manager.h" @@ -67,6 +70,7 @@ const uint32_t DEFAULT_CHANNEL_COUNT = 1; const uint32_t DEFAULT_SAMPLE_RATE = SAMPLERATE_16000; static MediaMutexHandle GetGlobalMutex(void); +int32_t AI_GetQueueStatus(uint32_t* queueSize, uint32_t* queueCapacity); // AI语音音频参数结构体IVoiceAudioParams; @@ -126,6 +130,12 @@ typedef struct { static MediaMutexHandle g_aiVoiceContextMutex = nullptr; static AIVoiceContext *g_aiVoiceContext = nullptr; +// 文件缓存相关变量 +static const char* AI_AUDIO_CACHE_FILE = "/user/ai_audio_cache.dat"; +static const size_t AI_AUDIO_CHUNK_SIZE = 1024; // 固定音频块大小:1KB +static MediaMutexHandle g_fileCacheMutex = nullptr; +static long g_fileCacheOffset = 0; // 文件读取偏移量 + // OGG相关内存管理函数 static void MediaMemFree(void **src) { @@ -154,6 +164,198 @@ static void *MediaMemCalloc(const size_t bytesNum) return tmp; } +// 文件缓存操作辅助函数 +/** + * @brief 初始化文件缓存互斥锁 + */ +static void AI_InitFileCacheMutex() +{ + if (g_fileCacheMutex == nullptr) { + g_fileCacheMutex = MediaMutexCreate(nullptr); + if (g_fileCacheMutex == nullptr) { + MEDIA_ERR_LOG("Failed to create file cache mutex"); + } + } +} + +/** + * @brief 将音频数据写入文件缓存 + * @param msg 音频消息 + * @return 0 成功,-1 失败 + */ +static int32_t AI_WriteToFileCache(const AIVoiceQueueMessage& msg) +{ + AI_InitFileCacheMutex(); + if (g_fileCacheMutex == nullptr) { + return -1; + } + + MediaMutexLock(g_fileCacheMutex); + + // 写入文件 + FILE *file = fopen(AI_AUDIO_CACHE_FILE, "ab"); + if (file != NULL) { + // 写入音频数据 + size_t written = fwrite(msg.data, 1, msg.size, file); + if (written != msg.size) { + MEDIA_ERR_LOG("Failed to write audio data to file cache"); + fclose(file); + MediaMutexUnLock(g_fileCacheMutex); + return -1; + } + + fclose(file); + MEDIA_INFO_LOG("Successfully wrote %u bytes to file cache", msg.size); + MediaMutexUnLock(g_fileCacheMutex); + return 0; + } else { + MEDIA_ERR_LOG("Failed to open file cache for writing"); + MediaMutexUnLock(g_fileCacheMutex); + return -1; + } +} + +/** + * @brief 从文件缓存读取音频数据 + * @param msg 输出的音频消息 + * @return 0 成功,-1 失败 + */ +static int32_t AI_ReadFromFileCache(AIVoiceQueueMessage& msg) +{ + AI_InitFileCacheMutex(); + if (g_fileCacheMutex == nullptr) { + return -1; + } + + MediaMutexLock(g_fileCacheMutex); + + // 从文件读取 + FILE *file = fopen(AI_AUDIO_CACHE_FILE, "rb"); + if (file != NULL) { + // 设置文件读取位置到当前偏移量 + if (fseek(file, g_fileCacheOffset, SEEK_SET) != 0) { + MEDIA_ERR_LOG("Failed to seek to offset %ld in file cache", g_fileCacheOffset); + fclose(file); + MediaMutexUnLock(g_fileCacheMutex); + return -1; + } + + // 分配固定大小的内存 + msg.data = static_cast(malloc(AI_AUDIO_CHUNK_SIZE)); + if (msg.data == nullptr) { + MEDIA_ERR_LOG("Failed to allocate memory for cached audio data"); + fclose(file); + MediaMutexUnLock(g_fileCacheMutex); + return -1; + } + + // 读取固定大小的音频数据 + size_t read_count = fread(msg.data, 1, AI_AUDIO_CHUNK_SIZE, file); + if (read_count == 0) { + // 没有数据可读,检查是否到达文件末尾 + fseek(file, 0, SEEK_END); + long file_size = ftell(file); + + if (g_fileCacheOffset >= file_size) { + // 已到达文件末尾,清理文件内容并重置偏移量 + MEDIA_INFO_LOG("Reached end of file cache (offset: %ld, file size: %ld), clearing cache", + g_fileCacheOffset, file_size); + fclose(file); + + // 清理文件内容 + if (remove(AI_AUDIO_CACHE_FILE) == 0) { + MEDIA_INFO_LOG("File cache cleared successfully"); + } else { + MEDIA_ERR_LOG("Failed to clear file cache"); + } + + // 重置偏移量 + g_fileCacheOffset = 0; + + free(msg.data); + msg.data = nullptr; + MediaMutexUnLock(g_fileCacheMutex); + return -1; + } else { + MEDIA_ERR_LOG("No data available in file cache at offset %ld", g_fileCacheOffset); + free(msg.data); + msg.data = nullptr; + fclose(file); + MediaMutexUnLock(g_fileCacheMutex); + return -1; + } + } + + // 更新偏移量 + g_fileCacheOffset += read_count; + + // 设置实际读取的数据大小 + msg.size = read_count; + + fclose(file); + MEDIA_INFO_LOG("Read %u bytes from file cache at offset %ld", msg.size, g_fileCacheOffset - read_count); + MediaMutexUnLock(g_fileCacheMutex); + return 0; + } else { + MEDIA_ERR_LOG("Failed to open file cache for reading"); + MediaMutexUnLock(g_fileCacheMutex); + return -1; + } +} + +/** + * @brief 检查文件缓存是否有数据 + * @return true 有数据,false 无数据 + */ +static bool AI_HasFileCacheData() +{ + AI_InitFileCacheMutex(); + if (g_fileCacheMutex == nullptr) { + return false; + } + + MediaMutexLock(g_fileCacheMutex); + + // 检查文件是否存在且不为空 + FILE *file = fopen(AI_AUDIO_CACHE_FILE, "rb"); + bool hasData = false; + if (file != NULL) { + fseek(file, 0, SEEK_END); + long fileSize = ftell(file); + + // 检查文件大小是否大于0,且偏移量小于文件大小(还有数据可读) + hasData = (fileSize > 0) && (g_fileCacheOffset < fileSize); + + fclose(file); + } + + MediaMutexUnLock(g_fileCacheMutex); + return hasData; +} + +/** + * @brief 清理文件缓存 + */ +static void AI_ClearFileCache() +{ + AI_InitFileCacheMutex(); + if (g_fileCacheMutex == nullptr) { + return; + } + + MediaMutexLock(g_fileCacheMutex); + + // 重置文件偏移量 + g_fileCacheOffset = 0; + + // 删除文件 + if (remove(AI_AUDIO_CACHE_FILE) == 0) { + MEDIA_INFO_LOG("File cache cleared successfully"); + } + + MediaMutexUnLock(g_fileCacheMutex); +} + // OGG头部初始化函数 static int32_t AudioCapturerOggHeaderInit(CaptureOggContext *oggCtx, uint32_t channelCount, uint32_t sampleRate) { @@ -864,6 +1066,30 @@ static int32_t RunAIVoice(AIVoiceContext *context) if (context->queueMsgCount > 0) { context->queueMsgCount--; } + + // 检查并处理文件缓存中的数据(每次只处理一个) + if (AI_HasFileCacheData()) { + AIVoiceQueueMessage cachedMsg; + if (AI_ReadFromFileCache(cachedMsg) == 0) { + MEDIA_INFO_LOG("RunAIVoice: restoring cached data to queue: size=%u, timestamp=%u", + cachedMsg.size, cachedMsg.timestamp); + + // 将缓存的数据重新写入队列 + if (cachedMsg.data != nullptr && cachedMsg.size > 0) { + osStatus_t queueStatus = osMessageQueuePut(context->inputQueue, &cachedMsg, 0, 0); + if (queueStatus == osOK) { + context->queueMsgCount++; + MEDIA_INFO_LOG("Successfully restored %u bytes from cache to queue", cachedMsg.size); + } else { + MEDIA_ERR_LOG("Failed to restore cached data to queue: %d", queueStatus); + // 如果队列写入失败,释放内存 + free(cachedMsg.data); + } + } + } else { + MEDIA_ERR_LOG("Failed to read from file cache"); + } + } } else if (status == osErrorTimeout) { // 超时,继续循环检查停止标志 continue; @@ -1125,7 +1351,7 @@ int32_t old_Start_AIVoice(AIVoiceDataCallback dataCallback, void* userData, task_cfg.create_queue_handle = CreateAIVoiceQueue; // 设置队列创建函数 task_cfg.attr.name = "AIVoiceThread"; - task_cfg.attr.priority = (osPriority_t)16; // 使用合适的优先级 + task_cfg.attr.priority = (osPriority_t)24; // 使用合适的优先级 task_cfg.attr.stack_size = 0x2000; // 8KB栈空间 task_cfg.func = AIVoiceThread; task_cfg.use_mem = USE_EXTEND_MEM; @@ -1147,6 +1373,9 @@ int32_t old_Start_AIVoice(AIVoiceDataCallback dataCallback, void* userData, g_aiVoiceContext->threadName[sizeof(g_aiVoiceContext->threadName) - 1] = '\0'; // 确保字符串结束 MEDIA_INFO_LOG("AI voice thread created successfully with name: %s", g_aiVoiceContext->threadName); + + AI_ClearFileCache(); + return 0; EXIT: // 清理已分配的资源 @@ -1253,6 +1482,9 @@ int32_t StopAIVoice(void) // 首先清理AI语音资源(包括队列) DeinitAIVoiceResources(context); + // 清理文件缓存 + AI_ClearFileCache(); + // 清理线程同步资源 if (context->cond != nullptr) { (void)MediaThreadCondDestroy(&context->cond); @@ -1409,6 +1641,74 @@ int32_t AI_SendAudioDataToQueue(const uint8_t* data, uint32_t size) MEDIA_ERR_LOG("Invalid audio data parameters"); return -1; } + uint32_t queueSize, queueCapacity; + AI_GetQueueStatus(&queueSize, &queueCapacity); + // 检查是否有文件缓存数据需要优先处理 + bool hasFileCacheData = AI_HasFileCacheData(); + + if(queueSize>=queueCapacity) + { + MEDIA_INFO_LOG("Queue is full, writing to file cache instead"); + + // 分配内存并复制数据 + uint8_t *dataCopy = (uint8_t*)malloc(size); + if (dataCopy == nullptr) { + MEDIA_ERR_LOG("Failed to allocate memory for audio data"); + return -1; + } + + memcpy(dataCopy, data, size); + + // 创建队列消息 + AIVoiceQueueMessage msg; + msg.data = dataCopy; + msg.size = size; + msg.timestamp = (uint32_t)time(NULL); + + // 写入文件缓存 + int32_t result = AI_WriteToFileCache(msg); + if (result == 0) { + MEDIA_INFO_LOG("Successfully wrote %u bytes to file cache", size); + return 0; + } else { + MEDIA_ERR_LOG("Failed to write to file cache"); + free(dataCopy); + return -1; + } + } + + // 如果队列有空闲但存在文件缓存数据,优先处理缓存数据 + if (hasFileCacheData) { + MEDIA_INFO_LOG("Queue has space but file cache exists, writing new data to cache to maintain order"); + + // 分配内存并复制数据 + uint8_t *dataCopy = (uint8_t*)malloc(size); + if (dataCopy == nullptr) { + MEDIA_ERR_LOG("Failed to allocate memory for audio data"); + return -1; + } + + memcpy(dataCopy, data, size); + + // 创建队列消息 + AIVoiceQueueMessage msg; + msg.data = dataCopy; + msg.size = size; + msg.timestamp = (uint32_t)time(NULL); + + // 写入文件缓存以保持顺序 + int32_t result = AI_WriteToFileCache(msg); + if (result == 0) { + MEDIA_INFO_LOG("Successfully wrote %u bytes to file cache to maintain order", size); + return 0; + } else { + MEDIA_ERR_LOG("Failed to write to file cache for order maintenance"); + free(dataCopy); + return -1; + } + } + + MEDIA_ERR_LOG("AI_GetQueueStatus %d,%d\r\n",queueSize,queueCapacity); MediaMutexHandle mutex = GetGlobalMutex(); if (mutex == nullptr) { diff --git a/code/sdk/zhihui/leiniao/imsl_ln/leiniao_api_at.c b/code/sdk/zhihui/leiniao/imsl_ln/leiniao_api_at.c index bcc7c7139..02b99ec38 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/leiniao_api_at.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/leiniao_api_at.c @@ -755,11 +755,38 @@ static uint32_t ln_ws_close_status_at(uint8_t *para, uint32_t paraLen, char *str /* AT^LN_WS_START_AUDIO_CHAT - 开始音频聊天 */ static uint32_t ln_ws_start_audio_chat_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd) { - VAD_UNUSED(para); - VAD_UNUSED(paraLen); VAD_UNUSED(strCommonCmd); - printf("[LN][WS_START_AUDIO_CHAT]\n"); - int ret = ln_ws_start_audio_chat(); + + ln_audio_chat_command_t command_type = LN_AUDIO_CHAT_VOICE_CHAT_REQUEST; // 默认值 + + // 解析参数 + if (para != NULL && paraLen > 0) { + uint8_t argv[LN_MAX_ARGC][LN_MAX_ARGV_LEN] = {0}; + uint32_t argc = 0; + + if (ConvertCmdToParam(para, paraLen, argv, &argc) == VAD_SUCCESS && argc >= 1) { + const char *param = (const char *)argv[0]; + + if (strcmp(param, "0") == 0 || strcmp(param, "VoiceChatRequest") == 0) { + command_type = LN_AUDIO_CHAT_VOICE_CHAT_REQUEST; + } else if (strcmp(param, "1") == 0 || strcmp(param, "ChooseStoryRequest") == 0) { + command_type = LN_AUDIO_CHAT_CHOOSE_STORY_REQUEST; + } else { + printf("[LN][WS_START_AUDIO_CHAT] Invalid parameter: %s\n", param); + printf("Usage: AT^LN_WS_START_AUDIO_CHAT[=0/1 or VoiceChatRequest/ChooseStoryRequest]\n"); + printf(" 0 or VoiceChatRequest: 语音聊天请求 (默认)\n"); + printf(" 1 or ChooseStoryRequest: 选择故事请求\n"); + return ERRCODE_FAIL; + } + } + } + + const char *command_name = (command_type == LN_AUDIO_CHAT_VOICE_CHAT_REQUEST) ? + "VoiceChatRequest" : "ChooseStoryRequest"; + + printf("[LN][WS_START_AUDIO_CHAT] Starting with command: %s\n", command_name); + + int ret = ln_ws_start_audio_chat(command_type); if (ret != 0) { printf("[LN][WS_START_AUDIO_CHAT] failed: %d\n", ret); @@ -1727,7 +1754,7 @@ static const at_cmd_table_t g_ln_api_cmd[] = { {(char *)"AT^LN_WS_SLEEP", ln_ws_sleep_at, (char *)"进入休眠状态: AT^LN_WS_SLEEP"}, {(char *)"AT^LN_WS_WAKEUP", ln_ws_wakeup_at, (char *)"退出休眠状态: AT^LN_WS_WAKEUP"}, {(char *)"AT^LN_WS_CLOSE_STATUS", ln_ws_close_status_at, (char *)"查询WebSocket关闭状态: AT^LN_WS_CLOSE_STATUS"}, - {(char *)"AT^LN_WS_START_AUDIO_CHAT", ln_ws_start_audio_chat_at, (char *)"开始音频聊天: AT^LN_WS_START_AUDIO_CHAT"}, + {(char *)"AT^LN_WS_START_AUDIO_CHAT", ln_ws_start_audio_chat_at, (char *)"开始音频聊天: AT^LN_WS_START_AUDIO_CHAT[=0/1]"}, {(char *)"AT^LN_WS_END_AUDIO_CHAT", ln_ws_end_audio_chat_at, (char *)"结束音频聊天: AT^LN_WS_END_AUDIO_CHAT"}, /* 音频播放 */ diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c index 010d26fe0..c1f035382 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c @@ -78,6 +78,8 @@ static int ln_write_string_file(const char *file_path, const char *str) /* 获取设备id: 优先读本地缓存文件 /user/userdata/leiniao/device_id.bin*/ char *uapi_ln_get_device_id(void) { + return "DEVICE_PC_TEST_001"; + if (s_cached_device_id && s_cached_device_id[0]) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "device_id cached: %s", s_cached_device_id); return s_cached_device_id; @@ -176,6 +178,7 @@ char *uapi_ln_get_device_version(void) /* 获取设备token: 优先读本地缓存,判断过期,否则刷新 */ char *uapi_ln_get_device_token(void) { + return "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJXWVNaIiwiZGV2aWNlTW9kZWwiOiJhYm15Ym94XzEiLCJkZXZpY2VWZXJzaW9uIjoiMS4wLjAiLCJkZXZpY2VJZCI6IkRFVklDRV9QQ19URVNUXzAwMSIsImV4cCI6MTc2MTQ2MjQ5Mn0.Oeyu8BDopDTvtAcdNpzz46U2w1UwzEzqcvPwD3Dp08Y"; /* 若内存已有且非占位,直接返回 */ if (g_device_token && strcmp(g_device_token, "") != 0) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"uapi_ln_get_device_token: cached token=%s", g_device_token); @@ -1293,7 +1296,7 @@ static void ln_http_server_send_task(void const *arg) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[LN_HTTP_SERVER_SEND_TASK] 获取雷鸟设备Token成功\n"); set_is_ln_get_device_token_success(1); - ret = ln_ws_start(ln_ws_process_message); + // ret = ln_ws_start(ln_ws_process_message); if (ret != 0) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[LN_HTTP_SERVER_SEND_TASK] 启动WebSocket失败: %d\n", ret); diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h index 11195b407..3c975368a 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h @@ -333,6 +333,9 @@ typedef enum { WS_CMD_PING, /* 心跳 (Ping) */ WS_CMD_PONG, /* 心跳回应 (Pong) */ WS_CMD_VOICE_CHAT_RESPONSE, /* 语音聊天响应 (VoiceChatResponse) */ + WS_CMD_CHOOSE_STORY_RESPONSE, /* 选择故事响应 (ChooseStoryResponse) */ + WS_CMD_CONNECTED, /* WebSocket连接成功 */ + WS_CMD_DISCONNECTED, /* WebSocket断连 */ WS_CMD_MAX /* 最大命令 */ } ws_command_t; @@ -347,7 +350,7 @@ typedef struct { // VoiceChatResponse 特定字段 char audio_url[512]; // 音频URL - char text_content[1024]; // 文本内容 + char text_content[512]; // 文本内容 bool finished; // 是否完成 char chat_id[64]; // 聊天ID } ws_data_msg_t; @@ -359,11 +362,17 @@ typedef void (*ws_message_callback_t_ln)(const ws_data_msg_t *data_msg, ws_comma void ln_ws_process_message(const ws_data_msg_t *data_msg, ws_command_t type); /* -------------------------------------------------------------------------- */ +/* 音频聊天命令类型枚举 */ +typedef enum { + LN_AUDIO_CHAT_VOICE_CHAT_REQUEST = 0, /* 语音聊天请求 */ + LN_AUDIO_CHAT_CHOOSE_STORY_REQUEST = 1 /* 选择故事请求 */ +} ln_audio_chat_command_t; + /* WebSocket接口函数 */ int ln_ws_start(ws_message_callback_t_ln callback); int ln_ws_send_text(const char *text); int ln_ws_send_audio_data(const uint8_t *audio_data, uint32_t audio_size, bool finished); -int ln_ws_start_audio_chat(void); +int ln_ws_start_audio_chat(ln_audio_chat_command_t command_type); int ln_ws_end_audio_chat(void); const char* ln_ws_get_current_chat_id(void); int ln_ws_stop(void); diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_websocket.c b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_websocket.c index efb7c0b00..3bb39a8b9 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_websocket.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_websocket.c @@ -42,6 +42,9 @@ static size_t g_base64_cache_size = 0; /* 缓存大小 */ static size_t g_base64_cache_capacity = 0; /* 缓存容量 */ static bool g_base64_in_progress = false; /* 是否正在进行Base64数据接收 */ +/* 音频聊天命令类型 */ +static ln_audio_chat_command_t g_audio_chat_command_type = LN_AUDIO_CHAT_VOICE_CHAT_REQUEST; + /* 回调函数结构体 */ static ws_call_backs_t g_ws_callbacks = {0}; @@ -126,16 +129,27 @@ static void ln_ws_event_callback(ws_event_type_t event_type) case WS_EVENT_CONNECTED: printf("[LN][WS] Event: Connected\n"); g_ws_connected = WS_STATE_CONNECTED; + + // 触发连接成功事件 + if (g_ws_message_callback != NULL) { + g_ws_message_callback(NULL, WS_CMD_CONNECTED); + } break; case WS_EVENT_DISCONNECTED: printf("[LN][WS] Event: Disconnected\n"); - g_ws_connected = WS_STATE_DISCONNECTED; - /* 断开后增加重连计数,由监督线程在下一次连接时携带 */ - if (g_ws_running) { - if (g_ws_reconnect_count < 0xFFFFFFFFu) { - g_ws_reconnect_count++; - } - } + g_ws_connected = WS_STATE_DISCONNECTED; + + // 触发断连事件 + if (g_ws_message_callback != NULL) { + g_ws_message_callback(NULL, WS_CMD_DISCONNECTED); + } + + /* 断开后增加重连计数,由监督线程在下一次连接时携带 */ + if (g_ws_running) { + if (g_ws_reconnect_count < 0xFFFFFFFFu) { + g_ws_reconnect_count++; + } + } break; default: printf("[LN][WS] Event: Unknown event type %d\n", event_type); @@ -341,7 +355,11 @@ int ln_ws_send_audio_data(const uint8_t *audio_data, uint32_t audio_size, bool f cJSON_AddStringToObject(json, "deviceId", uapi_ln_get_device_id()); cJSON_AddNumberToObject(json, "timestamp", (double)timestamp); cJSON_AddStringToObject(json, "messageId", message_id); - cJSON_AddStringToObject(json, "command", "VoiceChatRequest"); + + // 根据命令类型设置不同的command + const char *command_str = (g_audio_chat_command_type == LN_AUDIO_CHAT_VOICE_CHAT_REQUEST) ? + "VoiceChatRequest" : "ChooseStoryRequest"; + cJSON_AddStringToObject(json, "command", command_str); // 创建data对象 cJSON *data_obj = cJSON_CreateObject(); @@ -388,18 +406,25 @@ int ln_ws_send_audio_data(const uint8_t *audio_data, uint32_t audio_size, bool f } // 开始新的音频聊天 -int ln_ws_start_audio_chat(void) +int ln_ws_start_audio_chat(ln_audio_chat_command_t command_type) { if (g_audio_chat_ctx.is_active) { printf("[LN][WS] Audio chat already active: %s\n", g_audio_chat_ctx.chat_id); return 0; } + // 设置命令类型 + g_audio_chat_command_type = command_type; + generate_chat_id(g_audio_chat_ctx.chat_id, sizeof(g_audio_chat_ctx.chat_id)); g_audio_chat_ctx.message_counter = 0; g_audio_chat_ctx.is_active = true; - printf("[LN][WS] Audio chat started: %s\n", g_audio_chat_ctx.chat_id); + const char *command_name = (command_type == LN_AUDIO_CHAT_VOICE_CHAT_REQUEST) ? + "VoiceChatRequest" : "ChooseStoryRequest"; + + printf("[LN][WS] Audio chat started: %s (command: %s)\n", + g_audio_chat_ctx.chat_id, command_name); return 0; } @@ -451,7 +476,7 @@ static void AIVoiceDataCallback_ln(const uint8_t* data, uint32_t size, void* use // "audioBase64": -static void ai_binary_message_handler(const uint8_t *raw_data, uint32_t timestamp, uint16_t data_len) +static void ai_binary_message_handler(const uint8_t *raw_data, uint32_t timestamp, uint32_t data_len) { printf("[AI] Received binary message at %u, length: %d bytes\n", timestamp, data_len); @@ -483,8 +508,6 @@ static void ai_binary_message_handler(const uint8_t *raw_data, uint32_t timestam current_pos += current_chunk_size; remaining -= current_chunk_size; - // 添加小延迟避免过快发送 - usleep(1000); // 1ms延迟 } printf("[AI] All %d chunks sent successfully\n", chunk_count); @@ -719,6 +742,8 @@ static ws_command_t ln_ws_parse_command_string(const char *command_str) return WS_CMD_PONG; } else if (strcmp(command_str, "VoiceChatResponse") == 0) { return WS_CMD_VOICE_CHAT_RESPONSE; + } else if (strcmp(command_str, "ChooseStoryResponse") == 0) { + return WS_CMD_CHOOSE_STORY_RESPONSE; } else { return WS_CMD_UNKNOWN; } @@ -730,7 +755,23 @@ static ws_command_t ln_ws_parse_command_string(const char *command_str) * @param data_msg 输出的消息结构体 * @return 0成功,-1失败 */ - +// { +// "deviceId": "DEVICE_001", +// "timestamp": 1640995203, +// "messageId": "story_response_001", +// "command": "ChooseStoryResponse", +// "data": { +// "chatId": "story_12345", +// "finished": false, +// "data": { +// "storyTheme": "童话故事", +// "storyContent": "从前有一个可爱的小女孩", +// "storyAudioUrl": "https://example.com/story/audio/chunk_001.mp3", +// "storyDuration": null +// }, +// "errorCode": null +// } +// } // {"deviceId":"DEVICE_PC_TEST_001","timestamp":1758880220, // "messageId":"d63a0670a3854d709cb95720e1e89f83","command":"VoiceChatResponse","data": // {"finished":false,"chatId":"chat_1758880210_2087035594", @@ -838,6 +879,46 @@ static int ln_ws_parse_data_message(const char *json_str, ws_data_msg_t *data_ms data_msg->finished ? "true" : "false", data_msg->chat_id, data_msg->audio_url, data_msg->text_content); } + // 解析ChooseStoryResponse特定字段 + if (data_msg->command == WS_CMD_CHOOSE_STORY_RESPONSE) { + cJSON *data_obj = cJSON_GetObjectItem(root, "data"); + if (data_obj && cJSON_IsObject(data_obj)) { + // 解析finished字段 + cJSON *finished = cJSON_GetObjectItem(data_obj, "finished"); + if (finished && cJSON_IsBool(finished)) { + data_msg->finished = cJSON_IsTrue(finished); + } + + // 解析chatId字段 + cJSON *chat_id = cJSON_GetObjectItem(data_obj, "chatId"); + if (chat_id && cJSON_IsString(chat_id) && chat_id->valuestring) { + strncpy(data_msg->chat_id, chat_id->valuestring, sizeof(data_msg->chat_id) - 1); + data_msg->chat_id[sizeof(data_msg->chat_id) - 1] = '\0'; + } + + // 解析data.data字段 + cJSON *data_data = cJSON_GetObjectItem(data_obj, "data"); + if (data_data && cJSON_IsObject(data_data)) { + // 解析storyTheme字段,存储到text_content中 + cJSON *story_theme = cJSON_GetObjectItem(data_data, "storyTheme"); + if (story_theme && cJSON_IsString(story_theme) && story_theme->valuestring) { + strncpy(data_msg->text_content, story_theme->valuestring, sizeof(data_msg->text_content) - 1); + data_msg->text_content[sizeof(data_msg->text_content) - 1] = '\0'; + } + + // 解析storyAudioUrl字段,存储到audio_url中 + cJSON *story_audio_url = cJSON_GetObjectItem(data_data, "storyAudioUrl"); + if (story_audio_url && cJSON_IsString(story_audio_url) && story_audio_url->valuestring) { + strncpy(data_msg->audio_url, story_audio_url->valuestring, sizeof(data_msg->audio_url) - 1); + data_msg->audio_url[sizeof(data_msg->audio_url) - 1] = '\0'; + } + } + } + + printf("[LN][WS] ChooseStoryResponse parsed: finished=%s, chatId=%s, storyTheme=%s, storyAudioUrl=%s\n", + data_msg->finished ? "true" : "false", data_msg->chat_id, data_msg->text_content, data_msg->audio_url); + } + // 保存原始JSON字符串 data_msg->raw_json = (char*)malloc(strlen(json_str) + 1); if (data_msg->raw_json) { @@ -877,42 +958,73 @@ static void ln_ws_free_data_message(ws_data_msg_t *data_msg) */ static void ln_ws_default_message_handler(const ws_data_msg_t *data_msg, ws_command_t type) { - if (!data_msg) return; - - printf("[LN][WS] Default handler: Processing %s message (type: %d)\n", data_msg->command_str, type); + printf("[LN][WS] Default handler: Processing message (type: %d)\n", type); switch (type) { + case WS_CMD_CONNECTED: + printf("[LN][WS] Default: Processing WebSocket Connected event\n"); + break; + case WS_CMD_DISCONNECTED: + printf("[LN][WS] Default: Processing WebSocket Disconnected event\n"); + break; case WS_CMD_PONG: - printf("[LN][WS] Default: Processing Pong message\n"); - // 更新心跳状态、记录响应时间等 + if (data_msg) { + printf("[LN][WS] Default: Processing Pong message\n"); + // 更新心跳状态、记录响应时间等 + } break; case WS_CMD_CHARACTER_CHANGE: - printf("[LN][WS] Default: Processing CharacterChange message\n"); + if (data_msg) { + printf("[LN][WS] Default: Processing CharacterChange message\n"); + } break; case WS_CMD_SLEEP_MODE_START: - printf("[LN][WS] Default: Processing SleepModeStart message\n"); + if (data_msg) { + printf("[LN][WS] Default: Processing SleepModeStart message\n"); + } break; case WS_CMD_SLEEP_MODE_END: - printf("[LN][WS] Default: Processing SleepModeEnd message\n"); + if (data_msg) { + printf("[LN][WS] Default: Processing SleepModeEnd message\n"); + } break; case WS_CMD_DEVICE_BIND: - printf("[LN][WS] Default: Processing DeviceBind message\n"); + if (data_msg) { + printf("[LN][WS] Default: Processing DeviceBind message\n"); + } break; case WS_CMD_DEVICE_UNBIND: - printf("[LN][WS] Default: Processing DeviceUnbind message\n"); + if (data_msg) { + printf("[LN][WS] Default: Processing DeviceUnbind message\n"); + } break; case WS_CMD_SCHEDULE_REMINDER: - printf("[LN][WS] Default: Processing ScheduleReminder message\n"); + if (data_msg) { + printf("[LN][WS] Default: Processing ScheduleReminder message\n"); + } break; case WS_CMD_SCHEDULE_REMINDER_CFG: - printf("[LN][WS] Default: Processing ScheduleReminderConfig message\n"); + if (data_msg) { + printf("[LN][WS] Default: Processing ScheduleReminderConfig message\n"); + } break; case WS_CMD_VOICE_CHAT_RESPONSE: - printf("[LN][WS] Default: Processing VoiceChatResponse message\n"); - printf("[LN][WS] VoiceChatResponse details: finished=%s, chatId=%s\n", - data_msg->finished ? "true" : "false", data_msg->chat_id); - printf("[LN][WS] Audio URL: %s\n", data_msg->audio_url); - printf("[LN][WS] Text Content: %s\n", data_msg->text_content); + if (data_msg) { + printf("[LN][WS] Default: Processing VoiceChatResponse message\n"); + printf("[LN][WS] VoiceChatResponse details: finished=%s, chatId=%s\n", + data_msg->finished ? "true" : "false", data_msg->chat_id); + printf("[LN][WS] Audio URL: %s\n", data_msg->audio_url); + printf("[LN][WS] Text Content: %s\n", data_msg->text_content); + } + break; + case WS_CMD_CHOOSE_STORY_RESPONSE: + if (data_msg) { + printf("[LN][WS] Default: Processing ChooseStoryResponse message\n"); + printf("[LN][WS] ChooseStoryResponse details: finished=%s, chatId=%s\n", + data_msg->finished ? "true" : "false", data_msg->chat_id); + printf("[LN][WS] Story Theme: %s\n", data_msg->text_content); + printf("[LN][WS] Story Audio URL: %s\n", data_msg->audio_url); + } break; default: printf("[LN][WS] Default: Processing unknown command: %d\n", type); diff --git a/code/sdk/zhihui/websocket/os_ws/haisi_websocket.c b/code/sdk/zhihui/websocket/os_ws/haisi_websocket.c index decd7adb8..5be52ada6 100644 --- a/code/sdk/zhihui/websocket/os_ws/haisi_websocket.c +++ b/code/sdk/zhihui/websocket/os_ws/haisi_websocket.c @@ -2,6 +2,7 @@ #include #include #include +#include #include "cJSON.h" // Added for JSON parsing #include "custom_utils.h" #include "soc_osal.h" @@ -40,7 +41,7 @@ typedef enum { typedef struct { uint8_t msg_type; - uint16_t data_len; + uint32_t data_len; uint32_t timestamp; // 收到消息的时间戳 bool isBinary; // 消息是否为二进制数据 char *raw_data; // 动态分配的原始消息数据 @@ -56,6 +57,10 @@ static osMessageQueueId_t g_ws_msg_queue = NULL; static ws_call_backs_t g_ws_callbacks = {0}; /* WebSocket回调函数结构体 */ static volatile ws_close_status_t g_ws_close_status = WS_CLOSE_NOT_EXECUTED; /* WebSocket关闭状态标志位 */ +/* 连接超时检测相关变量 */ +static time_t g_ws_connect_start_time = 0; /* 连接开始时间 */ +static volatile int g_ws_connect_timeout_occurred = 0; /* 超时标志 */ + static void uapi_ws_build_url(char *out, size_t out_size); static void uapi_ws_default_url_handler(char *url, size_t url_size, char *header_buf, size_t header_size); int uapi_ws_send_ping(void); @@ -64,6 +69,11 @@ static ws_close_status_t uapi_ws_get_close_status(void); static void uapi_ws_reset_close_status(void); const char* uapi_ws_get_connection_state_string(void); +/* 连接超时检测相关函数 */ +static void uapi_ws_start_connect_timer(void); +static int uapi_ws_is_connect_timeout(void); +static void uapi_ws_reset_connect_timer(void); + /* 消息内存管理函数 */ static ws_msg_info_t* ws_msg_create(uint16_t data_len) { @@ -114,6 +124,7 @@ static void uapi_ws_on_open(int client) printf("WebSocketClientConstructor uapi_ws_on_open\r\n"); g_ws_connected = WS_STATE_CONNECTED; uapi_ws_reset_close_status(); // 连接成功时重置关闭状态 + uapi_ws_reset_connect_timer(); // 连接成功时重置超时计时器 printf("[LN][WS] 连接状态: 连接成功, 关闭状态已重置为 NOT_EXECUTED (%d)\n", g_ws_close_status); } @@ -132,34 +143,37 @@ static void uapi_ws_on_message(int client, const char *data, size_t length, bool if (isFinished) { // 数据完整,创建消息结构体 - ws_msg_info_t *msg = ws_msg_create(length); - if (msg == NULL) { - printf("[LN][WS] Failed to create message structure\n"); - return; - } - - msg->msg_type = WS_MSG_TYPE_RAW_MESSAGE; - msg->isBinary = isBinary; // 设置二进制标志 - - // 记录收到消息的时间戳 - uapi_get_timestampe_ss(&msg->timestamp); - - // 复制原始数据 - memcpy(msg->raw_data, data, length); - msg->raw_data[length] = '\0'; + if(isBinary) { + uint32_t timestamp; + uapi_get_timestampe_ss(×tamp); if (g_ws_callbacks.binary_callback != NULL) { - g_ws_callbacks.binary_callback((const uint8_t*)msg->raw_data, msg->timestamp, msg->data_len); + g_ws_callbacks.binary_callback(data, timestamp, length); } else { printf("[LN][WS] No binary message callback registered\n"); } // 二进制消息处理完后释放内存 - ws_msg_free(msg); } else { + ws_msg_info_t *msg = ws_msg_create(length); + if (msg == NULL) { + printf("[LN][WS] Failed to create message structure\n"); + return; + } + + msg->msg_type = WS_MSG_TYPE_RAW_MESSAGE; + msg->isBinary = isBinary; // 设置二进制标志 + + // 记录收到消息的时间戳 + uapi_get_timestampe_ss(&msg->timestamp); + + // 复制原始数据 + memcpy(msg->raw_data, data, length); + msg->raw_data[length] = '\0'; + osStatus_t ret = osMessageQueuePut(g_ws_msg_queue, &msg, 0, 0); if (ret == osOK) { printf("[LN][WS] Raw message queued successfully, length: %d, timestamp: %u\n", msg->data_len, msg->timestamp); @@ -256,6 +270,7 @@ static void uapi_ws_main_thread(void *arg) if (g_ws_client_fd >= 0) { printf("[LN][WS] WebSocketClientClose\n"); uapi_ws_close_with_status(g_ws_client_fd); + g_ws_client_fd=-1; printf("[LN][WS] WebSocketClientClose end\n"); } g_ws_connected = WS_STATE_DISCONNECTED; @@ -343,6 +358,9 @@ static void uapi_ws_main_thread(void *arg) g_ws_callbacks.event_callback(WS_EVENT_CONNECTING); } + // 启动连接超时计时器 + uapi_ws_start_connect_timer(); + g_ws_client_fd = WebSocketClientConstructor(uapi_ws_on_open, uapi_ws_on_message, uapi_ws_on_error, uapi_ws_on_close); if (g_ws_client_fd < 0) { printf("[LN][WS] constructor failed: %d\n", g_ws_client_fd); @@ -380,6 +398,7 @@ static void uapi_ws_main_thread(void *arg) printf("[LN][WS] connect failed: %d\n", ret); g_ws_connected = WS_STATE_DISCONNECTED; printf("[LN][WS] 连接状态: 未连接(连接失败)\n"); + uapi_ws_reset_connect_timer(); // 连接失败时重置超时计时器 (void)uapi_ws_close_with_status(g_ws_client_fd); g_ws_client_fd = -1; /* 指数退避*/ @@ -398,6 +417,31 @@ static void uapi_ws_main_thread(void *arg) printf("[LN][WS] 连接请求已发送,等待握手完成...\n"); } + // 连接超时检测:在连接中状态时检查是否超时 + if (g_ws_connected == WS_STATE_CONNECTING) { + if (uapi_ws_is_connect_timeout()) { + printf("[LN][WS] Connection timeout detected, forcing disconnect and reconnect\n"); + + // 强制关闭连接 + if (g_ws_client_fd >= 0) { + uapi_ws_close_with_status(g_ws_client_fd); + g_ws_close_status = WS_CLOSE_NOT_EXECUTED; + g_ws_client_fd = -1; + } + + // 重置连接状态 + g_ws_connected = WS_STATE_DISCONNECTED; + uapi_ws_reset_connect_timer(); + + // 增加重连计数 + if (g_ws_reconnect_count < 0xFFFFFFFFu) { + g_ws_reconnect_count++; + } + + printf("[LN][WS] Connection timeout handled, will retry connection\n"); + } + } + // 心跳部分:由回调函数处理时间判断和心跳发送 if (g_ws_connected == WS_STATE_CONNECTED && g_ws_client_fd >= 0) { // 使用心跳回调函数处理,包括时间判断 @@ -866,5 +910,54 @@ int uapi_ws_exit_sleep(void) return 0; } +/* ============================== 连接超时检测函数实现 ============================== */ + +/** + * @brief 开始连接超时计时器 + */ +static void uapi_ws_start_connect_timer(void) +{ + g_ws_connect_start_time = time(NULL); + g_ws_connect_timeout_occurred = 0; + printf("[LN][WS] Connect timer started, timeout: %d seconds\n", WS_CONNECT_TIMEOUT_SECONDS); +} +/** + * @brief 检查连接是否超时 + * @return 1表示超时,0表示未超时 + */ +static int uapi_ws_is_connect_timeout(void) +{ +#if WS_CONNECT_TIMEOUT_ENABLED + if (g_ws_connect_start_time == 0) { + return 0; /* 计时器未启动 */ + } + + time_t current_time = time(NULL); + time_t elapsed = current_time - g_ws_connect_start_time; + + if (elapsed >= WS_CONNECT_TIMEOUT_SECONDS) { + if (!g_ws_connect_timeout_occurred) { + g_ws_connect_timeout_occurred = 1; + printf("[LN][WS] Connect timeout after %ld seconds (limit: %d seconds)\n", + elapsed, WS_CONNECT_TIMEOUT_SECONDS); + } + return 1; + } + + return 0; +#else + return 0; /* 超时检测被禁用 */ +#endif +} + +/** + * @brief 重置连接超时计时器 + */ +static void uapi_ws_reset_connect_timer(void) +{ + g_ws_connect_start_time = 0; + g_ws_connect_timeout_occurred = 0; + printf("[LN][WS] Connect timer reset\n"); +} diff --git a/code/sdk/zhihui/websocket/os_ws/haisi_websocket.h b/code/sdk/zhihui/websocket/os_ws/haisi_websocket.h index d2ac635a6..8c077a280 100644 --- a/code/sdk/zhihui/websocket/os_ws/haisi_websocket.h +++ b/code/sdk/zhihui/websocket/os_ws/haisi_websocket.h @@ -6,6 +6,15 @@ #include #include +/* WebSocket连接超时配置 */ +#ifndef WS_CONNECT_TIMEOUT_SECONDS +#define WS_CONNECT_TIMEOUT_SECONDS 30 /* 连接超时时间(秒),默认30秒 */ +#endif + +#ifndef WS_CONNECT_TIMEOUT_ENABLED +#define WS_CONNECT_TIMEOUT_ENABLED 1 /* 是否启用连接超时检测,默认启用 */ +#endif + #ifdef __cplusplus extern "C" { #endif @@ -15,7 +24,7 @@ extern "C" { typedef void (*ws_message_callback_t)(const char *raw_data, uint32_t timestamp); /* 二进制消息处理回调函数类型 */ -typedef void (*ws_binary_message_callback_t)(const uint8_t *raw_data, uint32_t timestamp, uint16_t data_len); +typedef void (*ws_binary_message_callback_t)(const uint8_t *raw_data, uint32_t timestamp, uint32_t data_len); /* 数据不完整消息处理回调函数类型 */ typedef void (*ws_incomplete_message_callback_t)(const char *raw_data, size_t length, bool isBinary); -- 2.17.1