接上一篇https://mp.csdn.net/postedit/90445213
解决问题
上一篇留下两个待解决问题:
1.发现数据在上传一段时间后,在激活网络过程中程序死机。
2.没有实现控制多个终端的效果。
第一个问题怀疑是串口通讯问题,串口上报数据指令与发送激活网络指令时间刚好撞在一起,导致串口卡死,最终导致程序死机,暂时只能尽可能错开两个发送时间,或者添加看门狗。
第二个问题利用串口加平台进行协调配合。在平台再添加一个按钮(官方文档里说明是添加按钮时数据设置为开关型,但是经过测试,这样是平台是无法控制的,应该设置为数据可读类型),添加完按钮与数据点后,进行绑定。
1.根据官方手册,模块有两种接收服务器下发指令的格式,一种是直接接收数据长度与实际数据,一种是再发送一个命令到服务器进行获取。建议选第一种,比较方便。
2.我没有找到官方文档关于服务器下发指令的格式,只能通过文档得知客户端要获取服务器指令必须先上报数据。所以串口调试工具,平台下发数据给模块,PC通过串口发送一段数据给模块,模块获得数据进行上报,接着就得到了服务器下发的指令(指令有点规律,大概就是从机设备+06功能码+寄存器起始地址(我猜的)+校验码)。看到这里应该知道了,服务器是通过寄存器来操作从机设备的。
3.从机设备上报数据,下图是上报格式
平台添加了新的数据点,要相对应的改变上报的数据格式,不然会产生上报错误。