请问collector 没有ack回复是因为sensor发送频率过快,信道堵塞?应该如何处理
Alvin Chen:
看了一下,应该是距离太远或者你的射频性能不好吧,你看连续data request 没有
ack ,然后变为Orphan,你降低发送速率有效?
user5322468:
回复 Alvin Chen:
你指的发送速率是上传时间?还是指的发送功率。我的上传时间是在120S+(10S的随机数),发送功率是14.我这种情况应该如何调整才可以使ACK正常回复
Alvin Chen:
回复 user5322468:
"问collector 没有ack回复是因为sensor发送频率过快,信道堵塞?应该如何处理"
120s上传一次没有太大影响的。你除了修改了上报间隔,还有修改其他的?比如poll rate?
看上去是你的collector 有问题
user5322468:
回复 Alvin Chen:
sensor的polling 6S,,collector的 TRACKING,都没有改动,collector的我只在他的数据接收数据处理processSensorData里面改动(添加了sendMsg回复sensor)。单节点连接通讯很正常,多个之后就会collector的ACK回复,就有问题。
Alvin Chen:
回复 user5322468:
你这样,你把你的“sendMsg回复sensor”这个屏蔽掉,或者不要放在processSensorData里面试试。此外如果你想确定collector 是否收到sensor 数据,可以 在
static void dataCnfCB(ApiMac_mcpsDataCnf_t *pDataCnf)
进行判别。
user5322468:
回复 Alvin Chen:
我需要sensor发送过来的数据呀,dataCnfCB中只有一些状态判断,无法满足我的sensor数据处理。而且你建议我不要在processSensorData里面做处理,原例子就是在这里面做sensor的数据处理,只是没有使用sendMsg,因为我应用层的collector需要和sensor进行通信,sendMsg肯定是需要的。
Alvin Chen:
回复 user5322468:
“你减小“单节点连接通讯很正常,多个之后就会collector的ACK回复,就有问题。”
我怀疑你的collector 在你的processSensorData处理上面一个node的数据发送,此时你的RF端 其他node发送过来没有及时处理,所以没有ack。
所以我建议你不要在processSensorData里面直接发送数据,便于rf 空闲去接收其他node 的数据,或者你加大发送间隔
user5322468:
回复 Alvin Chen:
但是我多个一起入网的时候,跟这个状况一样。只有个别node有ACK回复,其他入网都连不上去,(我首先是单个节点加入,然后断电了一起启动,就产生这种ACK无回复)
YiKai Chen:
回复 user5322468:
一般不建議多个一起入网