WiFi心跳超时放宽:30s一次PINGREQ,连续2帧无应答(约60s)才复位(V1.4/V1.4-Chinese/V1.5 + README)
This commit is contained in:
parent
8570eac171
commit
01a27be2e2
|
|
@ -135,15 +135,22 @@ void net_wifi_process(void)
|
|||
NVIC_SystemReset();
|
||||
}
|
||||
|
||||
/* 15s 一次 PINGREQ;上一帧 PINGREQ 未收到 PINGRESP 判断链 */
|
||||
if (HAL_GetTick() - s_ping_tick >= 15000) {
|
||||
/* 30s 一次 PINGREQ(须小于 MQTT keepalive 60s);
|
||||
* 连续 2 帧无 PINGRESP(约 60s 无响应)才判链路死亡,复位重连,
|
||||
* 容忍单次网络抖动,避免误复位 */
|
||||
static uint8_t ping_miss = 0;
|
||||
if (HAL_GetTick() - s_ping_tick >= 30000) {
|
||||
if (g_mqttc_ping_outstanding) {
|
||||
/* 心跳超时:服务器无响应(假在线/网络异常),直接复位重连 */
|
||||
log_error("> WiFi: 心跳超时(服务器无响应),系统复位");
|
||||
ping_miss++;
|
||||
if (ping_miss >= 2) {
|
||||
log_error("> WiFi: 心跳超时 60s(服务器无响应),系统复位");
|
||||
reset_log_mark(RSN_PING_TIMEOUT);
|
||||
HAL_Delay(100);
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
} else {
|
||||
ping_miss = 0;
|
||||
}
|
||||
s_ping_tick = HAL_GetTick();
|
||||
mqttc_ping();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ WiFi 建链子顺序(net_wifi_init,阻塞式,等待期间 vTaskDelay 让
|
|||
② AT+CWJAP 连代码里固定的 SSID/PASS(esp8266.h 的 WIFI_SSID/WIFI_PASS,60s 倒计时)
|
||||
③ ESP-Touch SmartConfig 智能配网(60s 倒计时,配到的热点由模块保存)
|
||||
全部失败 → 回 4G
|
||||
WiFi 运行:15s MQTT PINGREQ 心跳;TCP 断开(CLOSED)/心跳超时 → 打印原因并直接整机复位重连
|
||||
WiFi 运行:30s MQTT PINGREQ 心跳,连续 2 帧无应答(约 60s)判死;TCP 断开(CLOSED)/心跳超时 → 打印原因并直接整机复位重连
|
||||
(CLOSED=服务器主动断开/被平台踢下线;ping 超时=服务器无响应/假在线,最坏检测延迟 ~30s)
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -132,14 +132,21 @@ void net_wifi_process(void)
|
|||
NVIC_SystemReset();
|
||||
}
|
||||
|
||||
/* 15s 一次 PINGREQ;上一帧 PINGREQ 未收到 PINGRESP 判断链 */
|
||||
if (HAL_GetTick() - s_ping_tick >= 15000) {
|
||||
/* 30s 一次 PINGREQ(须小于 MQTT keepalive 60s);
|
||||
* 连续 2 帧无 PINGRESP(约 60s 无响应)才判链路死亡,复位重连,
|
||||
* 容忍单次网络抖动,避免误复位 */
|
||||
static uint8_t ping_miss = 0;
|
||||
if (HAL_GetTick() - s_ping_tick >= 30000) {
|
||||
if (g_mqttc_ping_outstanding) {
|
||||
/* 心跳超时:服务器无响应(假在线/网络异常),直接复位重连 */
|
||||
log_error("> WiFi: ping timeout (server no response), system reset");
|
||||
ping_miss++;
|
||||
if (ping_miss >= 2) {
|
||||
log_error("> WiFi: ping timeout 60s (server no response), system reset");
|
||||
HAL_Delay(100);
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
} else {
|
||||
ping_miss = 0;
|
||||
}
|
||||
s_ping_tick = HAL_GetTick();
|
||||
mqttc_ping();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ WiFi 建链子顺序(net_wifi_init,阻塞式,等待期间 vTaskDelay 让
|
|||
② AT+CWJAP 连代码里固定的 SSID/PASS(esp8266.h 的 WIFI_SSID/WIFI_PASS,60s 倒计时)
|
||||
③ ESP-Touch SmartConfig 智能配网(60s 倒计时,配到的热点由模块保存)
|
||||
全部失败 → 回 4G
|
||||
WiFi 运行:15s MQTT PINGREQ 心跳;TCP 断开(CLOSED)/心跳超时 → 打印原因并直接整机复位重连
|
||||
WiFi 运行:30s MQTT PINGREQ 心跳,连续 2 帧无应答(约 60s)判死;TCP 断开(CLOSED)/心跳超时 → 打印原因并直接整机复位重连
|
||||
(CLOSED=服务器主动断开/被平台踢下线;ping 超时=服务器无响应/假在线,最坏检测延迟 ~30s)
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -135,15 +135,22 @@ void net_wifi_process(void)
|
|||
NVIC_SystemReset();
|
||||
}
|
||||
|
||||
/* 15s 一次 PINGREQ;上一帧 PINGREQ 未收到 PINGRESP 判断链 */
|
||||
if (HAL_GetTick() - s_ping_tick >= 15000) {
|
||||
/* 30s 一次 PINGREQ(须小于 MQTT keepalive 60s);
|
||||
* 连续 2 帧无 PINGRESP(约 60s 无响应)才判链路死亡,复位重连,
|
||||
* 容忍单次网络抖动,避免误复位 */
|
||||
static uint8_t ping_miss = 0;
|
||||
if (HAL_GetTick() - s_ping_tick >= 30000) {
|
||||
if (g_mqttc_ping_outstanding) {
|
||||
/* 心跳超时:服务器无响应(假在线/网络异常),直接复位重连 */
|
||||
log_error("> WiFi: 心跳超时(服务器无响应),系统复位");
|
||||
ping_miss++;
|
||||
if (ping_miss >= 2) {
|
||||
log_error("> WiFi: 心跳超时 60s(服务器无响应),系统复位");
|
||||
reset_log_mark(RSN_PING_TIMEOUT);
|
||||
HAL_Delay(100);
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
} else {
|
||||
ping_miss = 0;
|
||||
}
|
||||
s_ping_tick = HAL_GetTick();
|
||||
mqttc_ping();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ WiFi 建链子顺序(net_wifi_init,阻塞式,等待期间 vTaskDelay 让
|
|||
② AT+CWJAP 连代码里固定的 SSID/PASS(esp8266.h 的 WIFI_SSID/WIFI_PASS,60s 倒计时)
|
||||
③ ESP-Touch SmartConfig 智能配网(60s 倒计时,配到的热点由模块保存)
|
||||
全部失败 → 回 4G
|
||||
WiFi 运行:15s MQTT PINGREQ 心跳;TCP 断开(CLOSED)/心跳超时 → 打印原因并直接整机复位重连
|
||||
WiFi 运行:30s MQTT PINGREQ 心跳,连续 2 帧无应答(约 60s)判死;TCP 断开(CLOSED)/心跳超时 → 打印原因并直接整机复位重连
|
||||
(CLOSED=服务器主动断开/被平台踢下线;ping 超时=服务器无响应/假在线,最坏检测延迟 ~30s)
|
||||
```
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue