ln_bt_disconnect();
return ERRCODE_SUCC;
}
+
+//获取心跳间隔
+static uint32_t ln_ws_get_heartbeat_interval_sec_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
+{
+ LN_UNUSED(strCommonCmd);
+ LN_UNUSED(para);
+ LN_UNUSED(paraLen);
+ return ln_ws_get_heartbeat_interval_sec();
+}
+
+//设置心跳间隔
+static uint32_t ln_ws_set_heartbeat_interval_sec_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
+{
+ LN_UNUSED(strCommonCmd);
+ LN_UNUSED(para);
+ LN_UNUSED(paraLen);
+ uint8_t argv[LN_MAX_ARGC][LN_MAX_ARGV_LEN] = {0};
+ uint32_t argc = 0;
+ if (ConvertCmdToParam(para, paraLen, argv, &argc) != LN_SUCCESS || argc < 1) {
+ printf("ERROR: Failed to parse heartbeat interval\n");
+ return ERRCODE_FAIL;
+ }
+ uint32_t heartbeat_interval = atoi((char*)argv[0]);
+ ln_ws_set_heartbeat_interval_sec(heartbeat_interval);
+ printf("[LN][WS_HEARTBEAT_INTERVAL] Set heartbeat interval to: %d\n", heartbeat_interval);
+ return ERRCODE_SUCC;
+}
static uint32_t ln_ws_set_log_level_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
{
LN_UNUSED(strCommonCmd);
{(char *)"AT^LN_WS_LOG_LEVEL", ln_ws_set_log_level_at, (char *)"设置WebSocket日志等级: AT^LN_WS_LOG_LEVEL=0-3"},
//压测相关
{(char *)"AT^LN_STRESS_TEST_DIALOGUE", ln_stress_test_dialogue_at, (char *)"压测模式:跳转到对话说话界面,常亮屏且循环播放FactoryMode.mp3: AT^LN_STRESS_TEST_DIALOGUE"},
+
+ //心跳间隔设置
+ {(char *)"AT^LN_WS_HEARTBEAT_INTERVAL", ln_ws_get_heartbeat_interval_sec_at, (char *)"获取心跳间隔: AT^LN_WS_HEARTBEAT_INTERVAL"},
+ {(char *)"AT^LN_WS_HEARTBEAT_INTERVAL_SET", ln_ws_set_heartbeat_interval_sec_at, (char *)"设置心跳间隔: AT^LN_WS_HEARTBEAT_INTERVAL_SET=60"},
};
// 主线程循环间隔时长(毫秒)
#define LN_WS_MAIN_THREAD_INTERVAL_MS 500
-// 心跳间隔(秒)
-#define LN_WS_HEARTBEAT_INTERVAL_SEC 60*5 //5分钟发送一次心跳,正常最大7分钟
-
+ // 心跳间隔(秒)
+// #define LN_WS_HEARTBEAT_INTERVAL_SEC 60*5 //5分钟发送一次心跳,正常最大7分钟
+static volatile uint32_t LN_WS_HEARTBEAT_INTERVAL_SEC = 60*5; //5分钟发送一次心跳,正常最大7分钟
+
+void ln_ws_set_heartbeat_interval_sec(uint32_t interval)
+{
+ LN_WS_HEARTBEAT_INTERVAL_SEC = interval;
+}
+uint32_t ln_ws_get_heartbeat_interval_sec(void)
+{
+ return LN_WS_HEARTBEAT_INTERVAL_SEC;
+}
// 心跳间隔计数器阈值(基于主线程间隔计算)
#define LN_WS_HEARTBEAT_COUNTER_THRESHOLD ((LN_WS_HEARTBEAT_INTERVAL_SEC * 1000) / LN_WS_MAIN_THREAD_INTERVAL_MS)