拜拜,再见等收到close后断开连接,你好小宝唤醒加判断,没联网就联网,联网了才会发打断

This commit is contained in:
dianke3yu 2025-05-24 11:34:07 +08:00
parent 50edb94a7e
commit 8e28595128
3 changed files with 48 additions and 19 deletions

View File

@ -1431,17 +1431,22 @@ void websocket_client_task(beken_thread_arg_t *thread_param)
rtos_delay_milliseconds(WEBSOCKET_RECONNECT_TIMEOUT_MS); rtos_delay_milliseconds(WEBSOCKET_RECONNECT_TIMEOUT_MS);
} else if (WEBSOCKET_STATE_CLOSING == client->state) { } else if (WEBSOCKET_STATE_CLOSING == client->state) {
BK_LOGE(TAG, " Waiting for TCP connection to be closed by the server\r\n"); 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 ws_disconnect(client);//zhanyu
break; // int ret = ws_poll_connection_closed(&(client->sockfd), 1000);
} // if (ret == 0) {
if (ret < 0) { // // still waiting
BK_LOGE(TAG, "Connection terminated while waiting for clean TCP close\r\n"); // break;
} // }
client->run = false; // if (ret < 0) {
client->state = WEBSOCKET_STATE_UNKNOW; // BK_LOGE(TAG, "Connection terminated while waiting for clean TCP close\r\n");
bk_websocket_client_dispatch_event(client, WEBSOCKET_EVENT_CLOSED, NULL, 0, -1); // }
// client->run = false;
// client->state = WEBSOCKET_STATE_UNKNOW;
// bk_websocket_client_dispatch_event(client, WEBSOCKET_EVENT_CLOSED, NULL, 0, -1);
break; break;
} }
} }

View File

@ -26,7 +26,7 @@
#include "bat_monitor.h" #include "bat_monitor.h"
#include "bk_ota_private.h" #include "bk_ota_private.h"
#define TAG "app_evt" #define TAG "app_evt"
#include "spi_led.h"//zhanyu #include "spi_led.h" //zhanyu
#define LOGI(...) BK_LOGI(TAG, ##__VA_ARGS__) #define LOGI(...) BK_LOGI(TAG, ##__VA_ARGS__)
#define LOGW(...) BK_LOGW(TAG, ##__VA_ARGS__) #define LOGW(...) BK_LOGW(TAG, ##__VA_ARGS__)
#define LOGE(...) BK_LOGE(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_init(void);
extern void lvgl_app_deinit(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; static app_evt_info_t app_evt_info;
bk_err_t app_event_send_msg(uint32_t event, uint32_t param) 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; 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) void app_event_asr_evt_callback(media_app_evt_type_t event, uint32_t param)
{ {
LOGD("asr event callback: %x\n", event); 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) switch (event)
{ {
case MEDIA_APP_EVT_ASR_WAKEUP_IND: case MEDIA_APP_EVT_ASR_WAKEUP_IND:
bk_printf("MEDIA_APP_EVT_ASR_WAKEUP_IND_sent_abort_msg\n");
ws2812_led_asr_wakeup(); 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); app_event_send_msg(APP_EVT_ASR_WAKEUP, 0);
break; break;

View File

@ -110,6 +110,8 @@ extern uint32_t volume;
extern uint32_t g_volume_gain[SPK_VOLUME_LEVEL]; extern uint32_t g_volume_gain[SPK_VOLUME_LEVEL];
extern app_aud_para_t app_aud_cust_para; extern app_aud_para_t app_aud_cust_para;
bk_err_t beken_rtc_stop(void);//zhanyu
#if CONFIG_WIFI_ENABLE #if CONFIG_WIFI_ENABLE
extern void rwnxl_set_video_transfer_flag(uint32_t video_transfer_flag); extern void rwnxl_set_video_transfer_flag(uint32_t video_transfer_flag);
#else #else
@ -748,7 +750,7 @@ static bk_err_t init_check_timer(void)
timer_initialized = true; timer_initialized = true;
return 0; 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) 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; 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); // rtc_websocket_send_text(client, (void *)(&audio_info), BEKEN_RTC_SEND_LISTEN);
break; break;
case WEBSOCKET_EVENT_DISCONNECTED: case WEBSOCKET_EVENT_DISCONNECTED:
bk_printf("WEBSOCKET_EVENT_DISCONNECTED~~~~\n");
LOGE("Disconnected from WebSocket server\r\n"); LOGE("Disconnected from WebSocket server\r\n");
g_connected_flag = false; g_connected_flag = false;
__get_beken_rtc()->disconnecting_state++; __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); app_event_send_msg(APP_EVT_RTC_CONNECTION_LOST, 0);
}
beken_rtc_stop();//zhanyu
//audio_tras_deinit();
break; break;
case WEBSOCKET_EVENT_DATA: case WEBSOCKET_EVENT_DATA:
LOGD("data from WebSocket server, len:%d op:%d\r\n", data->data_len, data->op_code); 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; return BK_OK;
} }
static bk_err_t beken_rtc_start(void) static bk_err_t beken_rtc_start(void)
{ {
bk_printf("beken_rtc_start2222~~~\n");
bk_err_t ret = BK_OK; bk_err_t ret = BK_OK;
if (rtc_runing) if (rtc_runing)
@ -1020,3 +1031,4 @@ void cli_beken_rtc_test_cmd(char *pcWriteBuffer, int xWriteBufferLen, int argc,
cmd_fail: cmd_fail:
cli_beken_rtc_help(); cli_beken_rtc_help();
} }