#define AI_MAX_RETRY_COUNT 3 // 最大重试次数
#define AI_QUEUE_CHECK_INTERVAL 1000 // 队列检查间隔(ms)
+// WebSocket超时配置
+#define AI_WS_TCP_CONNECTION_TIMEOUT_MS 15000 // 15秒TCP连接确认超时
+#define AI_WS_HANDSHAKE_TIMEOUT_MS 10000 // 10秒握手等待超时
+#define AI_WS_TCP_CHECK_INTERVAL_MS 100 // TCP状态检查间隔(ms)
+
// 资源保护
static osMutexId_t g_ai_mutex = NULL;
static uint32_t g_ai_memory_usage = 0;
}
uint32_t start_time = (uint32_t)osKernelGetTickCount();
- uint32_t check_interval = 100; // 每100ms检查一次
+ uint32_t check_interval = AI_WS_TCP_CHECK_INTERVAL_MS; // 使用宏定义的检查间隔
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "%s 等待TCP连接建立确认...", client_type);
tcp_connection_state_t current_state = tcp_get_connection_state(chat_client->tcp_handle);
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "Chat WebSocket: 当前TCP连接状态: %s", tcp_state_to_string(current_state));
- if (!wait_for_tcp_connection(chat_client, "Chat", 15000)) { // 15秒TCP连接确认超时
+ if (!wait_for_tcp_connection(chat_client, "Chat", AI_WS_TCP_CONNECTION_TIMEOUT_MS)) { // 使用宏定义的TCP连接确认超时
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Chat WebSocket: TCP连接确认失败,退出线程");
lwip_close_websocket_client(chat_client);
chat_client = NULL;
// 等待WebSocket握手完成,增加超时机制
uint32_t handshake_start_time = (uint32_t)osKernelGetTickCount();
- const uint32_t handshake_timeout_ms = 10000; // 30秒超时
+ const uint32_t handshake_timeout_ms = AI_WS_HANDSHAKE_TIMEOUT_MS; // 使用宏定义的握手超时
while (chat_client->handshake == 0) {
// 检查是否超时
tcp_connection_state_t current_state = tcp_get_connection_state(asr_client->tcp_handle);
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "ASR WebSocket: 当前TCP连接状态: %s", tcp_state_to_string(current_state));
- if (!wait_for_tcp_connection(asr_client, "ASR", 15000)) { // 15秒TCP连接确认超时
+ if (!wait_for_tcp_connection(asr_client, "ASR", AI_WS_TCP_CONNECTION_TIMEOUT_MS)) { // 使用宏定义的TCP连接确认超时
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ASR WebSocket: TCP连接确认失败,退出线程");
lwip_close_websocket_client(asr_client);
asr_client = NULL;
// 等待ASR WebSocket握手完成,增加超时机制
uint32_t asr_handshake_start_time = (uint32_t)osKernelGetTickCount();
- const uint32_t asr_handshake_timeout_ms = 10000; // 30秒超时
+ const uint32_t asr_handshake_timeout_ms = AI_WS_HANDSHAKE_TIMEOUT_MS; // 使用宏定义的握手超时
while (asr_client->handshake == 0) {
// 检查是否超时
tcp_connection_state_t current_state = tcp_get_connection_state(tts_client->tcp_handle);
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "TTS WebSocket: 当前TCP连接状态: %s", tcp_state_to_string(current_state));
- if (!wait_for_tcp_connection(tts_client, "TTS", 15000)) { // 15秒TCP连接确认超时
+ if (!wait_for_tcp_connection(tts_client, "TTS", AI_WS_TCP_CONNECTION_TIMEOUT_MS)) { // 使用宏定义的TCP连接确认超时
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TTS WebSocket: TCP连接确认失败,退出线程");
lwip_close_websocket_client(tts_client);
tts_client = NULL;
// 等待TTS WebSocket握手完成,增加超时机制
uint32_t tts_handshake_start_time = (uint32_t)osKernelGetTickCount();
- const uint32_t tts_handshake_timeout_ms = 10; // 30秒超时
+ const uint32_t tts_handshake_timeout_ms = AI_WS_HANDSHAKE_TIMEOUT_MS; // 使用宏定义的握手超时
while (tts_client->handshake == 0) {
// 检查是否超时