forked from xuos/xiuos
Optimize ota transfer function
This commit is contained in:
parent
652e5789a7
commit
e61ffc4589
|
@ -25,7 +25,7 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#define KEEPALIVE_TIME 300 //保活时间(单位s),300s
|
#define KEEPALIVE_TIME 300 //保活时间(单位s),300s
|
||||||
#define HEART_TIME 120000 //空闲时发送心跳包的时间间隔(单位ms),120s
|
#define HEART_TIME 200000 //空闲时发送心跳包的时间间隔(单位ms),200s
|
||||||
#define PACK_SIZE 512 //存放报文数据缓冲区大小
|
#define PACK_SIZE 512 //存放报文数据缓冲区大小
|
||||||
#define CMD_SIZE 3072 //保存推送的PUBLISH报文中的数据缓冲区大小
|
#define CMD_SIZE 3072 //保存推送的PUBLISH报文中的数据缓冲区大小
|
||||||
#define CLIENTID_SIZE 64 //存放客户端ID的缓冲区大小
|
#define CLIENTID_SIZE 64 //存放客户端ID的缓冲区大小
|
||||||
|
|
|
@ -825,6 +825,17 @@ reconnect:
|
||||||
if(datalen <= 0)
|
if(datalen <= 0)
|
||||||
{
|
{
|
||||||
freecnt++;
|
freecnt++;
|
||||||
|
if((freecnt >= 20) && (CalculateTimeMsFromTick(CurrentTicksGain()) - heart_time >= HEART_TIME)) //连续20次未收到数据默认为为空闲状态,需每隔一段时间发送需要发送心跳包保活
|
||||||
|
{
|
||||||
|
heart_time = CalculateTimeMsFromTick(CurrentTicksGain());
|
||||||
|
freecnt = 0;
|
||||||
|
if(MQTT_SendHeart() != 0) //发送心跳包失败可能连接断开,需要重连
|
||||||
|
{
|
||||||
|
KPrintf("The connection has been disconnected, reconnecting!\n");
|
||||||
|
goto reconnect;
|
||||||
|
}
|
||||||
|
KPrintf("Send heartbeat packet successful!\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(MqttRxbuf[0] == 0x30)
|
else if(MqttRxbuf[0] == 0x30)
|
||||||
{
|
{
|
||||||
|
@ -916,19 +927,6 @@ reconnect:
|
||||||
freecnt = 0;
|
freecnt = 0;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if((freecnt >= 10) && (CalculateTimeMsFromTick(CurrentTicksGain()) - heart_time >= HEART_TIME)) //连续10次未收到数据默认为为空闲状态,需每隔一段时间发送需要发送心跳包保活
|
|
||||||
{
|
|
||||||
heart_time = CalculateTimeMsFromTick(CurrentTicksGain());
|
|
||||||
if(MQTT_SendHeart() != 0) //发送心跳包失败可能连接断开,需要重连
|
|
||||||
{
|
|
||||||
KPrintf("The connection has been disconnected, reconnecting!\n");
|
|
||||||
freecnt = 0;
|
|
||||||
heart_time = 0;
|
|
||||||
goto reconnect;
|
|
||||||
}
|
|
||||||
KPrintf("Send heartbeat packet successful!\n");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(0 == ret)
|
if(0 == ret)
|
||||||
|
@ -1054,6 +1052,17 @@ reconnect:
|
||||||
if(datalen <= 0)
|
if(datalen <= 0)
|
||||||
{
|
{
|
||||||
freecnt++;
|
freecnt++;
|
||||||
|
if((freecnt >= 20) && (CalculateTimeMsFromTick(CurrentTicksGain()) - heart_time >= HEART_TIME)) //连续20次未收到数据默认为为空闲状态,需每隔一段时间发送需要发送心跳包保活
|
||||||
|
{
|
||||||
|
heart_time = CalculateTimeMsFromTick(CurrentTicksGain());
|
||||||
|
freecnt = 0;
|
||||||
|
if(MQTT_SendHeart() != 0) //发送心跳包失败可能连接断开,需要重连
|
||||||
|
{
|
||||||
|
KPrintf("The connection has been disconnected, reconnecting!\n");
|
||||||
|
goto reconnect;
|
||||||
|
}
|
||||||
|
KPrintf("Send heartbeat packet successful!\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(MqttRxbuf[0] == 0x30)
|
else if(MqttRxbuf[0] == 0x30)
|
||||||
{
|
{
|
||||||
|
@ -1144,19 +1153,6 @@ reconnect:
|
||||||
freecnt = 0;
|
freecnt = 0;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if((freecnt >= 10) && (CalculateTimeMsFromTick(CurrentTicksGain()) - heart_time >= HEART_TIME)) //连续10次未收到数据默认为为空闲状态,需每隔一段时间发送需要发送心跳包保活
|
|
||||||
{
|
|
||||||
heart_time = CalculateTimeMsFromTick(CurrentTicksGain());
|
|
||||||
if(MQTT_SendHeart() != 0) //发送心跳包失败可能连接断开,需要重连
|
|
||||||
{
|
|
||||||
KPrintf("The connection has been disconnected, reconnecting!\n");
|
|
||||||
freecnt = 0;
|
|
||||||
heart_time = 0;
|
|
||||||
goto reconnect;
|
|
||||||
}
|
|
||||||
KPrintf("Send heartbeat packet successful!\n");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(0 == ret)
|
if(0 == ret)
|
||||||
|
|
Loading…
Reference in New Issue