关于终端设备的数据接收问题
时间:10-02
整理:3721RD
点击:
问题描述:
终端设备启用低功耗,设置POLL_RATE=1000,也就是间隔1秒钟发送一包数据请求给父节点。
应用场景:当协调器点播方式连续发送3包数据给终端设备,每包数据的间隔时间为200ms;重复每间隔2秒连续发送3包数据。
发生的情况为: 终端设备送给协调器的数据正常,但是协调器点播给终端的数据到达不了终端,成为单向传输了。
这时候终端断网重新连接后恢复正常。
我尝试将POLL_RATE=200,此现象会极少发生,是否是终端设备的数据接收缓冲区满的问题?是否可以设置。
出现问题后,通过抓包工具发现终端的data request正常发送,父节点正常应答。
目前协议栈里面默认父设备给每个子设备缓存的数据最多只有3条,你发的快,取的慢会容易出问题的。
这个缓冲可以改,但是改了以后对RAM有一定的消耗。
另外200ms于1s相比还是会出现问题的。
不知道您的具体应用是什么,一定要这样做吗
感谢回复。
我们网络中有很多终端开关,每个开关是3路输出,采用3路分开控制。
为了控制的实时性,所以每个终端开关会间隔200ms接收一个数据包,导致出现上述问题。
请问如何修改缓冲区的条数?是在终端改还是在父节点改?
请问改大缓存条数后,占用的是栈空间还是堆空间。
堆