ESA2GJK1DH1K基础篇: 源码使用注意事项和程序优化
程序BUG:单片机
1-V1.0版本:MQTT断线处理函数里面
有的程序只写了: ConfigModuleNoBlockFlage = 0;
断线重连需要按照下面处理,请用户检查自己的程序!
程序优化:单片机
1-V1.0版本:MQTT心跳包处理优化
屏蔽掉: mqtt->KeepAliveTimeCnt=0;
屏蔽前:如果心跳包间隔内持续接收到服务器数据,不会发送心跳包,因为收到数据默认就是在线!
屏蔽后:强制到达时间以后必须发送心跳包,预防其它不可预期的问题!
2-V1.0版本:请用户屏蔽掉以下部分
在 mqtt_read_function 中
原因:如果发送完订阅主题以后,模块先返回的其它数据,就会执行订阅失败回调
后面返回正确的应答也检测不到!
屏蔽后: 返回订阅成功会进入订阅程序回调,返回订阅失败会进入订阅失败回调
如果不返回订阅应答,将不进任何回调函数
建议处理方式:订阅主题以后用户自己写程序执行超时检测
如果超过一定时间没有进入订阅成功回调,就认为是订阅失败!
用户反映问题及其解决方案:单片机
1-V1.0版本:同时发布两个数据,阿里云物联网平台主动断开问题
问题描述:同时插入两条发布的消息,会和阿里云物联网平台断开!
问题原因:后经验证是阿里云服务器为应对服务器压力,不允许短时间内同时发布两条数据
解决方案:把提取缓存的数据时间改为200ms,具体最短时间没有测试过.
注:更改这里的时间不会影响到主循环运行,此处为软延时!