From 8e2859512884fd1dba4e4ed4cdc1d5c933357a32 Mon Sep 17 00:00:00 2001 From: dianke3yu <343528259@qq.com> Date: Sat, 24 May 2025 11:34:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=9C=E6=8B=9C,=E5=86=8D=E8=A7=81=E7=AD=89?= =?UTF-8?q?=E6=94=B6=E5=88=B0close=E5=90=8E=E6=96=AD=E5=BC=80=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5,=E4=BD=A0=E5=A5=BD=E5=B0=8F=E5=AE=9D=E5=94=A4?= =?UTF-8?q?=E9=86=92=E5=8A=A0=E5=88=A4=E6=96=AD,=E6=B2=A1=E8=81=94?= =?UTF-8?q?=E7=BD=91=E5=B0=B1=E8=81=94=E7=BD=91,=E8=81=94=E7=BD=91?= =?UTF-8?q?=E4=BA=86=E6=89=8D=E4=BC=9A=E5=8F=91=E6=89=93=E6=96=AD=C2=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bk_websocket/bk_websocket_client.c | 29 +++++++++++-------- .../beken_wss_paopao/main/app_event.c | 22 ++++++++++---- .../main/websocket_rtc_demo.c | 16 ++++++++-- 3 files changed, 48 insertions(+), 19 deletions(-) diff --git a/bk_aidk/bk_avdk/bk_idk/components/bk_websocket/bk_websocket_client.c b/bk_aidk/bk_avdk/bk_idk/components/bk_websocket/bk_websocket_client.c index c8f28c31..a365348a 100755 --- a/bk_aidk/bk_avdk/bk_idk/components/bk_websocket/bk_websocket_client.c +++ b/bk_aidk/bk_avdk/bk_idk/components/bk_websocket/bk_websocket_client.c @@ -1419,7 +1419,7 @@ void websocket_client_task(beken_thread_arg_t *thread_param) BK_LOGE(TAG, "Client run iteration in a default state: %d\r\n", client->state); break; } - + if (WEBSOCKET_STATE_CONNECTED == client->state) { read_select = ws_tcp_poll_read(client, 1000); //Poll every 1000ms if (read_select < 0) { @@ -1431,17 +1431,22 @@ void websocket_client_task(beken_thread_arg_t *thread_param) rtos_delay_milliseconds(WEBSOCKET_RECONNECT_TIMEOUT_MS); } else if (WEBSOCKET_STATE_CLOSING == client->state) { BK_LOGE(TAG, " Waiting for TCP connection to be closed by the server\r\n"); - int ret = ws_poll_connection_closed(&(client->sockfd), 1000); - if (ret == 0) { - // still waiting - break; - } - if (ret < 0) { - BK_LOGE(TAG, "Connection terminated while waiting for clean TCP close\r\n"); - } - client->run = false; - client->state = WEBSOCKET_STATE_UNKNOW; - bk_websocket_client_dispatch_event(client, WEBSOCKET_EVENT_CLOSED, NULL, 0, -1); + + + ws_disconnect(client);//zhanyu + // int ret = ws_poll_connection_closed(&(client->sockfd), 1000); + // if (ret == 0) { + // // still waiting + // break; + // } + // if (ret < 0) { + // BK_LOGE(TAG, "Connection terminated while waiting for clean TCP close\r\n"); + // } + // client->run = false; + // client->state = WEBSOCKET_STATE_UNKNOW; + // bk_websocket_client_dispatch_event(client, WEBSOCKET_EVENT_CLOSED, NULL, 0, -1); + + break; } } diff --git a/bk_aidk/projects/beken_wss_paopao/main/app_event.c b/bk_aidk/projects/beken_wss_paopao/main/app_event.c index ceb97d67..8f3cc0f5 100755 --- a/bk_aidk/projects/beken_wss_paopao/main/app_event.c +++ b/bk_aidk/projects/beken_wss_paopao/main/app_event.c @@ -26,7 +26,7 @@ #include "bat_monitor.h" #include "bk_ota_private.h" #define TAG "app_evt" -#include "spi_led.h"//zhanyu +#include "spi_led.h" //zhanyu #define LOGI(...) BK_LOGI(TAG, ##__VA_ARGS__) #define LOGW(...) BK_LOGW(TAG, ##__VA_ARGS__) #define LOGE(...) BK_LOGE(TAG, ##__VA_ARGS__) @@ -46,7 +46,9 @@ typedef struct extern void lvgl_app_init(void); extern void lvgl_app_deinit(void); +extern void beken_auto_run(void); +extern bool g_connected_flag; // zhanyu static app_evt_info_t app_evt_info; bk_err_t app_event_send_msg(uint32_t event, uint32_t param) @@ -66,7 +68,7 @@ bk_err_t app_event_send_msg(uint32_t event, uint32_t param) return BK_FAIL; } - +extern bk_err_t audio_tras_init(void); void app_event_asr_evt_callback(media_app_evt_type_t event, uint32_t param) { LOGD("asr event callback: %x\n", event); @@ -76,10 +78,20 @@ void app_event_asr_evt_callback(media_app_evt_type_t event, uint32_t param) switch (event) { case MEDIA_APP_EVT_ASR_WAKEUP_IND: - - bk_printf("MEDIA_APP_EVT_ASR_WAKEUP_IND_sent_abort_msg\n"); ws2812_led_asr_wakeup(); - sent_abort_msg();//zhanyu + bk_printf("MEDIA_APP_EVT_ASR_WAKEUP_IND_sent_abort_msg\n"); + if (g_connected_flag) + { // zhanyu + + sent_abort_msg(); + } + else + { + + bk_printf("beken_rtc_start~~~audio_tras_init\n"); + beken_auto_run(); + // audio_tras_init(); + } app_event_send_msg(APP_EVT_ASR_WAKEUP, 0); break; diff --git a/bk_aidk/projects/beken_wss_paopao/main/websocket_rtc_demo.c b/bk_aidk/projects/beken_wss_paopao/main/websocket_rtc_demo.c index b51aa0e9..22fe1bdc 100755 --- a/bk_aidk/projects/beken_wss_paopao/main/websocket_rtc_demo.c +++ b/bk_aidk/projects/beken_wss_paopao/main/websocket_rtc_demo.c @@ -110,6 +110,8 @@ extern uint32_t volume; extern uint32_t g_volume_gain[SPK_VOLUME_LEVEL]; extern app_aud_para_t app_aud_cust_para; +bk_err_t beken_rtc_stop(void);//zhanyu + #if CONFIG_WIFI_ENABLE extern void rwnxl_set_video_transfer_flag(uint32_t video_transfer_flag); #else @@ -748,7 +750,7 @@ static bk_err_t init_check_timer(void) timer_initialized = true; return 0; } - +//extern bk_err_t audio_tras_deinit(void);zhanyu void rtc_websocket_event_handler(void *event_handler_arg, char *event_base, int32_t event_id, void *event_data) { bk_websocket_event_data_t *data = (bk_websocket_event_data_t *)event_data; @@ -769,11 +771,17 @@ void rtc_websocket_event_handler(void *event_handler_arg, char *event_base, int3 // rtc_websocket_send_text(client, (void *)(&audio_info), BEKEN_RTC_SEND_LISTEN); break; case WEBSOCKET_EVENT_DISCONNECTED: + bk_printf("WEBSOCKET_EVENT_DISCONNECTED~~~~\n"); LOGE("Disconnected from WebSocket server\r\n"); g_connected_flag = false; __get_beken_rtc()->disconnecting_state++; - if (__get_beken_rtc()->disconnecting_state == 1) + if (__get_beken_rtc()->disconnecting_state == 1){ app_event_send_msg(APP_EVT_RTC_CONNECTION_LOST, 0); + } + + + beken_rtc_stop();//zhanyu + //audio_tras_deinit(); break; case WEBSOCKET_EVENT_DATA: LOGD("data from WebSocket server, len:%d op:%d\r\n", data->data_len, data->op_code); @@ -904,8 +912,11 @@ bk_err_t beken_rtc_stop(void) return BK_OK; } + + static bk_err_t beken_rtc_start(void) { + bk_printf("beken_rtc_start2222~~~\n"); bk_err_t ret = BK_OK; if (rtc_runing) @@ -1020,3 +1031,4 @@ void cli_beken_rtc_test_cmd(char *pcWriteBuffer, int xWriteBufferLen, int argc, cmd_fail: cli_beken_rtc_help(); } +