协调器跑着跑着就挂了,然后重新创建网络,重新进网,大概2小时会发生一次。
Changjiang Rui:
抓包文件过大传不上来,只能截一些图。
VV:
什么叫挂了?
是复位了?还是程序就跑飞了?
Changjiang Rui:
回复 VV:
没有复位,内存的数据还在,是重新建立网络,再一个个进网。会不会有这种情况:我在协调器里的接收程序里,做了一个动作就是,接收到某个指定指令,马上回复一段指令,在终端里心跳的来发这个指令,心跳周期在2秒钟,这样的话如果节点变得很多时,数据一下都堆叠在这里,协调器的发送缓冲会满,导致崩溃吗?恭候解答,谢谢!!!
MarS:
回复 Changjiang Rui:
可以确认一下 是否使用了内存相关操作函数, 例如申请内存 和释放内存。
之前我就试过 接收 远程信息时,申请完内存未释放, 程序跑了一段时间后就 乱了(但又不死机)!
Changjiang Rui:
回复 MarS:
是作了申请内存操作,但我的内存操作是一次申请永久使用,不存在需要释放的情况。局部函数没有动态申请内存。我有点倾向在RF接收里调用了AF_DataRequest,这样如果很多个节点同时发过来数据,我的AF_DataRequest函数会被很快调用很多次,而AF_DataRequest底层调用的函数缓冲区会被填满而没有来得及清除。