static void ws_queue_deinit(ws_message_queue_t* queue)
{
if (!queue || !queue->initialized) return;
-
+ queue->initialized=false;
+
if (queue->queue_id != 0) {
osal_msg_queue_delete(queue->queue_id);
queue->queue_id = 0;
is_bk_websocket_chat = 1;
AI_UNLOCK();
+ if (chat_msg_queue.initialized ) {
+ WEARABLE_LOGW(WEARABLE_LOG_MODULE_APP, "WebSocket queues already initialized, deinitializing first");
+ ws_queue_deinit(&chat_msg_queue);
+ }
+ ws_queue_init(&chat_msg_queue,256);
char_reconnet:
ws_queue_cleanup(&chat_msg_queue);
cleanup_and_exit:
AI_LOCK();
+ ws_queue_deinit(&chat_msg_queue);
is_bk_websocket_chat = 0;
chat_client_ping = 0;
AI_UNLOCK();
WebSocketMessageType type;
bool state = true;
+if (asr_msg_queue.initialized ) {
+ WEARABLE_LOGW(WEARABLE_LOG_MODULE_APP, "WebSocket queues already initialized, deinitializing first");
+ ws_queue_deinit(&asr_msg_queue);
+ }
+ ws_queue_init(&asr_msg_queue,256);
+
ASR_SATRT:
AI_LOCK();
is_bk_websocket_asr = 1;
asr_cleanup_and_exit:
AI_LOCK();
is_bk_websocket_asr = 0;
+ ws_queue_deinit(&asr_msg_queue);
+
AI_UNLOCK();
+
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "ASR WebSocket ended");
return;
}
void uapi_stop_tts(void)
{
- if (tts_is_ready!=1)
- {
- return;
- }
-
char *jsonString =
" { \
\"header\": { \
void bk_websocket_tts(void *data) {
uint32_t start_time = (uint32_t)osKernelGetTickCount();
uint32_t retry_count = 0;
+
+ if (tts_msg_queue.initialized ) {
+ WEARABLE_LOGW(WEARABLE_LOG_MODULE_APP, "WebSocket queues already initialized, deinitializing first");
+ ws_queue_deinit(&tts_msg_queue);
+ }
+ ws_queue_init(&tts_msg_queue,0);
+
TTS_SATRT:
uapi_cat1_keep_wakeup(1);
AI_LOCK();
is_bk_websocket_tts = 0;
tts_client_ping = 0;
+ ws_queue_deinit(&tts_msg_queue);
AI_UNLOCK();
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "TTS WebSocket ended");
disconnect_server = 0;
- 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");
- ai_cleanup_resources();
- return false;
- }
+ // 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");
+ // ai_cleanup_resources();
+ // return false;
+ // }
type_ai = type;
// 初始化TTS播放
if (uapi_tts_paly_init() != ERRCODE_SUCC) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to initialize TTS playback");
- ai_cleanup_resources();
- return false;
+ // ai_cleanup_resources();
+ // return false;
}
// 初始化TTS服务器
if (tts_server_init() != ERRCODE_SUCC) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to initialize TTS server");
- ai_cleanup_resources();
- return false;
+ // ai_cleanup_resources();
+ // return false;
}
// 初始化聊天服务器
if (chat_server_init() != ERRCODE_SUCC) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to initialize chat server");
- ai_cleanup_resources();
- return false;
+ // ai_cleanup_resources();
+ // return false;
}
// 初始化ASR服务器
if (asr_server_init() != ERRCODE_SUCC) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to initialize asr server");
- ai_cleanup_resources();
- return false;
+ // ai_cleanup_resources();
+ // return false;
}
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "AI task initialized successfully, type: %d", type);
}
}
// 清理定时器
- if (g_timer_time_sync) {
- osTimerDelete(g_timer_time_sync);
- g_timer_time_sync = NULL;
- }
+ // if (g_timer_time_sync) {
+ // osTimerDelete(g_timer_time_sync);
+ // g_timer_time_sync = NULL;
+ // }
// 重置内存使用统计
g_ai_memory_usage = 0;
g_ai_memory_usage = 0;
// 初始化WebSocket消息队列
- if (ws_queues_init_all() != 0) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to initialize all WebSocket queues");
- if (g_ai_mutex) {
- osMutexDelete(g_ai_mutex);
- g_ai_mutex = NULL;
- }
- tcp_simple_manager_deinit(); // 清理TCP管理器
- return ERRCODE_FAIL;
- }
+ // if (ws_queues_init_all() != 0) {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to initialize all WebSocket queues");
+ // if (g_ai_mutex) {
+ // osMutexDelete(g_ai_mutex);
+ // g_ai_mutex = NULL;
+ // }
+ // tcp_simple_manager_deinit(); // 清理TCP管理器
+ // return ERRCODE_FAIL;
+ // }
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "AI system initialized successfully");
return true;
}
+bool uapi_get_server_state_is_end()
+{
+ bool ret=true;
+
+ int osThreadGetState_t= osThreadGetState(chat_taskcfg.task_handle);
+
+ const char *buf= osThreadGetName(chat_taskcfg.task_handle);
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"chat osThreadGetState_t %d!\r\n",osThreadGetState_t);
+ if(strcmp("chat_server_init",buf)==0)
+ {
+ if(osThreadGetState_t!=osThreadReady && osThreadGetState_t!=osThreadError && osThreadGetState_t !=osThreadInactive)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"osThreadGetState is %d!\r\n",osThreadGetState_t);
+ ret=false;
+ }
+ }
+
+ osThreadGetState_t= osThreadGetState(tts_taskcfg.task_handle);
+
+ buf= osThreadGetName(tts_taskcfg.task_handle);
+
+ if(strcmp("tts_server_init",buf)==0)
+ {
+ if(osThreadGetState_t!=osThreadReady && osThreadGetState_t!=osThreadError && osThreadGetState_t !=osThreadInactive)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"osThreadGetState is %d!\r\n",osThreadGetState_t);
+ ret=false;
+ }
+ }
+ osThreadGetState_t= osThreadGetState(asr_taskcfg.task_handle);
+
+ buf= osThreadGetName(asr_taskcfg.task_handle);
+
+ if(strcmp("asr_server_init",buf)==0)
+ {
+ if(osThreadGetState_t!=osThreadReady && osThreadGetState_t!=osThreadError && osThreadGetState_t !=osThreadInactive)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"osThreadGetState is %d!\r\n",osThreadGetState_t);
+ ret=false;
+ }
+ }
+
+ return ret;
+}
+
+
+
+
#ifdef __cplusplus
}
#endif /* __cplusplus */