revert(eth): 回退SendNoDataCnt无应答兜底复位逻辑

ETH为裸ASCII透传, 普通数据上传服务器不回复0x7A帧,
SendNoDataCnt只增不清, 连续上传11次误触发ETH_RESET硬件复位,
导致TCP连接被重置, 服务器误判网关掉线。

回退上一版新增的SendNoDataCnt全部代码:
- 移除ETH_SEND_NO_DATA_MAX宏和SendNoDataCnt字段
- 移除SEND_DATA中的计数+复位判断
- 移除ETH_RESET/ETH_OFF/接收线程中的清零
保留物理断线清除MuchRegFlag的两处正确修改
This commit is contained in:
2026-08-21 15:56:09 +08:00
parent 4cf73b5a0f
commit 1d252888d0
2 changed files with 0 additions and 15 deletions
@@ -10,7 +10,6 @@
#define ETH_RECV_TIMEOUT_MAX (10 * 1000)
#define ETH_SEND_RETRY_MAX 3
#define ETH_FIRST_REG_DELAY (1 * 1000)
#define ETH_SEND_NO_DATA_MAX 10
typedef enum {
ETH_IDEL,
@@ -29,7 +28,6 @@ typedef struct {
uint32_t LinkWaitCnt;
uint32_t RecvTimeoutCnt;
uint8_t SendRetryCnt;
uint8_t SendNoDataCnt;
bool FirstRegFlag;
GateWayPara GateWay;
-13
View File
@@ -93,7 +93,6 @@ void EthLoopHandler(void)
case ETH_RESET:
ETH_DBG_LOG("ETH Reset!\r\n");
Eth.SendNoDataCnt = 0;
ETH_RESET_CLR();
rt_thread_delay(10);
ETH_RESET_SET();
@@ -176,16 +175,6 @@ void EthLoopHandler(void)
break;
case ETH_SEND_DATA:
if(Eth.GateWay->ConfigPara.Much == CH_ETH) {
Eth.SendNoDataCnt++;
if(Eth.SendNoDataCnt > ETH_SEND_NO_DATA_MAX) {
ETH_DBG_LOG("ETH has no receive data for a long time, Reset!\r\n");
Eth.SendNoDataCnt = 0;
Eth.GateWay->MuchRegFlag = false;
Eth.Status = ETH_RESET;
break;
}
}
HexToAscii(Eth.TxBuff, CommUnitSendASCII, Eth.TxLen);
EthRevTimeOutCnt = 0;
EthUartSend((uint8_t *)CommUnitSendASCII, Eth.TxLen * 2);
@@ -239,7 +228,6 @@ void EthLoopHandler(void)
case ETH_OFF:
ETH_DBG_LOG("ETH Power Off!\r\n");
Eth.SendNoDataCnt = 0;
Eth.Status = ETH_IDEL;
Eth.ResetDelayCnt = ETH_RESET_DELAY_TIME_MAX;
break;
@@ -299,7 +287,6 @@ static void EthRev_Thread_Entry(void *parameter)
memset(HexData, 0x00, EthRxLen / 2);
uint8_t ret = AsciiToHex(RxBuffTemp, HexData, EthRxLen);
if(ret > 0 && HexData[0] == 0x7A) {
Eth.SendNoDataCnt = 0;
if(GateWay->ConfigPara.Much == CH_ETH)
GateWay->MuchRevCallBack(GateWay, HexData, ret);
else