我用的是SimpliciTI官方例子程序,RE的作用是当AP与ED由于距离太远而无法通信的情况下作为数据转发模块使AP与ED进行通信。RE收到AP的数据都会转发给ED,AP的数据包中包含有ED的ID号。目前存在的问题是AP发送的指令有不同的类型,有的指令发送一次出去,ED会收到两次,有两次反馈,而有的指令是正常的一次反馈,不知道是哪个模块的问题。希望有经验的朋友能够指点一下。
应该是程序修改出了问题,我记得是ED主动查询RE或者AP的数据,是不是ED一直处于接收状态,把AP或者RE的数据全接收了一遍.
电子工程师技术交流QQ群:12425841,专注于自动控制、数字电源等
通过修改RE配置文件中的-DMAX_APP_PAYLOAD(Maximum size of application payload default)可以解决这一问题,AP发送的指令长度大于这个值ED就只接收到一次,否则会收到两次或者更多。
但-DMAX_APP_PAYLOAD的值最小只能设到8,即AP发出的最短指令必须大于8才行,而且经过试验,指令长度和此值相当的时候偶尔也会出现多次接收的问题。
可以通过将AP的最短指令长度加长解决问题,但现在很想知道这是什么原理,为什么要使RE的-DMAX_APP_PAYLOAD值比AP的指令长度小才能正常,还是应该有别的解决问题的方法。
加大发送间隔或者发送大的数据,可以避免一些这个问题。
电子工程师技术交流QQ群:12425841,专注于自动控制、数字电源等