#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-
+#include "cmsis_os2.h"
#include "bk_websocket.h"
#include <stdint.h>
WebSocketClient *tts_client=NULL;
+static int asr_client_ping=0;
+
+static int tts_client_ping=0;
+
+static int chat_client_ping=0;
+
errcode_t chat_server_init(void);
// uapi_start_tts_single_txt("2025英超夏季转会窗分阶段开启第一阶段2025年6月1日至2025年6月11日凌晨2:00北京时间第二阶段常规夏窗2025年6月16日至2025年9月2日凌晨2:00北京时间本贴将持续更新2025年夏窗以曼联转会相关为主的新闻和消息。");
}
-
+ printf("chat_client succ");
// send_ai_txt(1,"你是谁");
set_ai_chat_service_init_flag(1);
printf("disconnect_server chat_client");
break;
}
- chat_result_analysis(recv_buf);
+ if(type==WS_PONG)
+ {
+ chat_client_ping=0;
+ }
+ else
+ {
+ chat_result_analysis(recv_buf);
+ }
+
if(chat_reconnect==1)
{
break;
goto char_reconnet;
}
is_bk_websocket_chat=0;
- return ;
+
+ chat_client_ping=0;
+
+ // osThreadExit();
+ printf("bk_websocket_demo end\r\n");
+ return;
}
}
#define CAT1_SERVICE_TASK_PRIO 5
+app_task_definition_t chat_taskcfg={0};
+// typedef enum {
+// osThreadInactive = 0, ///< Inactive.
+// osThreadReady = 1, ///< Ready.
+// osThreadRunning = 2, ///< Running.
+// osThreadBlocked = 3, ///< Blocked.
+// osThreadTerminated = 4, ///< Terminated.
+// osThreadError = -1, ///< Error.
+// osThreadReserved = 0x7FFFFFFF ///< Prevents enum down-size compiler optimization.
+// } osThreadState_t;
errcode_t chat_server_init(void)
{
- if(chat_client || is_bk_websocket_chat)
+ int osThreadGetState_t= osThreadGetState(chat_taskcfg.task_handle);
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"chat osThreadGetState_t %d!\r\n",osThreadGetState_t);
+ if(osThreadGetState_t!=osThreadReady && osThreadGetState_t!=osThreadError && osThreadGetState_t !=osThreadInactive)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"osThreadGetState is %d!\r\n",osThreadGetState_t);
+ return ERRCODE_FAIL;
+ }
+
+ if(chat_client || is_bk_websocket_chat )
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"cat1_tcp_server_init is connet!\r\n");
return ERRCODE_FAIL;
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"cat1_tcp_server_init !\r\n");
- app_task_definition_t taskcfg={0};
- taskcfg.create_queue_handle = NULL;
- taskcfg.attr.name="chat_server_init";
- taskcfg.attr.priority = TASK_PRIORITY_APP;
- taskcfg.attr.stack_size = 0x1000;
- taskcfg.func = bk_websocket_demo;
- taskcfg.use_mem = USE_EXTEND_MEM;
+
+ chat_taskcfg.create_queue_handle = NULL;
+ chat_taskcfg.attr.name="chat_server_init";
+ chat_taskcfg.attr.priority = TASK_PRIORITY_APP;
+ chat_taskcfg.attr.stack_size = 0x1000;
+ chat_taskcfg.func = bk_websocket_demo;
+ chat_taskcfg.use_mem = USE_EXTEND_MEM;
+
+
- errcode_t ret=uapi_create_osThread_custom(&taskcfg);
+ errcode_t ret=uapi_create_osThread_custom(&chat_taskcfg);
if(ret != ERRCODE_SUCC)
int g_test_server_index = 0; //0 正式版本, 1 测试版本, 2 Snicker 服务器测试版本
-static int asr_client_ping=0;
+
int asr_client_sockfd_last_id=-1;
}
+ app_task_definition_t asr_taskcfg={0};
errcode_t asr_server_init(void)
{
+ int osThreadGetState_t= osThreadGetState(asr_taskcfg.task_handle);
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"chat osThreadGetState_t %d!\r\n",osThreadGetState_t);
+ if(osThreadGetState_t!=osThreadReady && osThreadGetState_t!=osThreadError && osThreadGetState_t !=osThreadInactive)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"osThreadGetState is %s!\r\n",osThreadGetState_t);
+ return ERRCODE_FAIL;
+ }
+
if(is_bk_websocket_asr || asr_client!=NULL)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"cat1_tcp_server_init is connet!\r\n");
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"asr_server_init !\r\n");
- app_task_definition_t taskcfg={0};
- taskcfg.create_queue_handle = NULL;
- taskcfg.attr.name="asr_server_init";
- taskcfg.attr.priority = TASK_PRIORITY_APP;
- taskcfg.attr.stack_size = 0x1000;
- taskcfg.func = bk_websocket_asr;
- taskcfg.use_mem = USE_EXTEND_MEM;
+
+ asr_taskcfg.create_queue_handle = NULL;
+ asr_taskcfg.attr.name="asr_server_init";
+ asr_taskcfg.attr.priority = TASK_PRIORITY_APP;
+ asr_taskcfg.attr.stack_size = 0x1000;
+ asr_taskcfg.func = bk_websocket_asr;
+ asr_taskcfg.use_mem = USE_EXTEND_MEM;
- errcode_t ret=uapi_create_osThread_custom(&taskcfg);
+ errcode_t ret=uapi_create_osThread_custom(&asr_taskcfg);
if(ret != ERRCODE_SUCC)
}
else
{
- printf("tts_client init_websocket_client succ \r\n");
+ printf("tts_client init_websocket_client succ \r\n");
break;
}
}
bk_websocket_tts_tick=0;
// tts_paly();
}
+ if(type==WS_PONG)
+ {
+ tts_client_ping=0;
+ }
// aer_result_analysis(asr_recv_buf);
}
}
tts_reconnect=0;
}
- // return;
+
}
- is_bk_websocket_tts=0;
+ is_bk_websocket_tts=0;
+ tts_client_ping=0;
+ return;
}
+app_task_definition_t tts_taskcfg={0};
errcode_t tts_server_init(void)
{
+ int osThreadGetState_t= osThreadGetState(tts_taskcfg.task_handle);
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"tts osThreadGetState_t %d!\r\n",osThreadGetState_t);
+ if(osThreadGetState_t!=osThreadReady && osThreadGetState_t!=osThreadError && osThreadGetState_t !=osThreadInactive)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"osThreadGetState is %d!\r\n",osThreadGetState_t);
+ return ERRCODE_FAIL;
+ }
if(tts_client!=NULL || is_bk_websocket_tts)
{
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"osThreadGetState is %d!\r\n",osThreadGetState_t);
return ERRCODE_FAIL;
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"tts_server_init !\r\n");
- app_task_definition_t taskcfg={0};
- taskcfg.create_queue_handle = NULL;
- taskcfg.attr.name="tts_server_init";
- taskcfg.attr.priority = TASK_PRIORITY_APP;
- taskcfg.attr.stack_size = 0x1000;
- taskcfg.func = bk_websocket_tts;
- taskcfg.use_mem = USE_EXTEND_MEM;
+
+ tts_taskcfg.create_queue_handle = NULL;
+ tts_taskcfg.attr.name="tts_server_init";
+ tts_taskcfg.attr.priority = TASK_PRIORITY_APP;
+ tts_taskcfg.attr.stack_size = 0x1000;
+ tts_taskcfg.func = bk_websocket_tts;
+ tts_taskcfg.use_mem = USE_EXTEND_MEM;
- errcode_t ret=uapi_create_osThread_custom(&taskcfg);
+ errcode_t ret=uapi_create_osThread_custom(&tts_taskcfg);
if(ret != ERRCODE_SUCC)
void asr_server_deinit(void)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"WS_CLOSE");
- send_websocket_message(asr_client,(uint8_t *)"WS_CLOSE",strlen("WS_CLOSE"),WS_CLOSE);
+
+ if(send_websocket_message(asr_client,(uint8_t *)"WS_CLOSE",strlen("WS_CLOSE"),WS_CLOSE))
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"WS_CLOSE");
+ }
}
void chat_server_deinit(void)
{
- send_websocket_message(chat_client,(uint8_t *)"WS_CLOSE",strlen("WS_CLOSE"),WS_CLOSE);
+
+ if(send_websocket_message(chat_client,(uint8_t *)"WS_CLOSE",strlen("WS_CLOSE"),WS_CLOSE))
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"WS_CLOSE");
+ }
}
void tts_server_deinit(void)
{
- send_websocket_message(tts_client,(uint8_t *)"WS_CLOSE",strlen("WS_CLOSE"),WS_CLOSE);
-
-
+
+ if(send_websocket_message(tts_client,(uint8_t *)"WS_CLOSE",strlen("WS_CLOSE"),WS_CLOSE))
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"WS_CLOSE");
+ }
}
static void time_sync_func(void)
{
-if(asr_client)
+ if(asr_client)
{
if(asr_client_ping)
{
- // asr_server_deinit();
- // lwip_close_websocket_client(asr_client);
- // asr_client=NULL;
+ asr_server_deinit();
+ lwip_close_websocket_client(asr_client);
+ asr_client=NULL;
}
else
{
- // if(0==send_websocket_message(asr_client,( const unsigned char *)"ping",strlen("ping"),WS_PING))
+ if(0==send_websocket_message(asr_client,(uint8_t *)"ping",strlen("ping"),WS_PING))
{
asr_client_ping=1;
}
-
}
-
+ }
+ if(chat_client)
+ {
+ if(chat_client_ping)
+ {
+ chat_server_deinit();
+ lwip_close_websocket_client(chat_client);
+ chat_client=NULL;
+ }
+ else
+ {
+ if(0==send_websocket_message(chat_client,(uint8_t *)"ping",strlen("ping"),WS_PING))
+ {
+ chat_client_ping=1;
+ }
+ }
+ }
+ if(tts_client)
+ {
+ if(tts_client_ping)
+ {
+ tts_server_deinit();
+ lwip_close_websocket_client(tts_client);
+ tts_client=NULL;
+ }
+ else
+ {
+ if(0==send_websocket_message(tts_client,(uint8_t *)"ping",strlen("ping"),WS_PING))
+ {
+ tts_client_ping=1;
+ }
+ }
}
}
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\n");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"g_timer_time_sync create failed\n");
}
type_ai=type;
uapi_tts_paly_init();