TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1310 15.4stack sensor/collector SDK2.4中孤节点重连接?

在2.4版本中,sensor-collector:三个collector连接20个sensor,正常通讯30分钟左右,一个collector挂掉(此collector 上面的sensor全部变成孤节点,每五分钟发送一次Orphan notification),重启collector,只有一个sensor入网,其他sensor发送的Orphan notification,无ACK回复,然后找到此collector对应sensor,重启,正常入网。请问TI我应该如何解决此问题?

user5322468:

这是正常通讯中,突然collector 就死机了。

Alvin Chen:

dllc_deviceStates_scanOrphan 会有Orphan scan 吗?正常会间隔发送Orphan notification

间隔为CONFIG_ORPHAN_BACKOFF_INTERVAL

在如下code中有体现:

/* Process scan backoff in case of orphan scan */if(Jdllc_events & JDLLC_SCAN_BACKOFF){switchState(devInfoBlock.prevDevState);if(devInfoBlock.prevDevState == Jdllc_deviceStates_scanOrphan) {ApiMac_mlmeSetReqBool(ApiMac_attribute_RxOnWhenIdle, true);}/* Clear the event */Util_clearEvent(&Jdllc_events, JDLLC_SCAN_BACKOFF);}有可能其他节点距离较远或者其他原因导致Orphan notification 没有送达collector

user5322468:

回复 Alvin Chen:

你这是sensor的孤节点请求啊,这个有发。五分钟一次的间隔,我等了快一个小时,都没有连上。
还有一个问题,就是collector很容易死机。
三个collector,每个collector 连接6个sensor,collector的信道分别是0,1,2,sensor也是对应的信道。
正常通讯30分钟左右,就如上图所示。然后collector就死机,需要重启sensor和collector才可以入网。

Alvin Chen:

回复 user5322468:

你collector 没有回复就会一直发,你collector 容易死机这个概念太大,只能尝试去debug ,如果你是死机造成的,你应该看看NV有没有被擦除。

user5322468:

回复 Alvin Chen:

你说的NV有木有被擦除,是sensor的还是collector的。
我现在使用的2.4版本,我的应用层的代码流程如下:
第一步:通过串口通讯,collector得到panid和信道,然后组建网络。
第二步:第一次sensor都加入0信道。根据私有协议,collector发送sensor连接的信道和panid网络,然后分离网络加入对应的panid和信道
第三步:数据通讯

多个collector(我测试是按照3个collector,18个sensor)以上三步流程,都是正常运行,大概10-30分钟后,就会出现collector逐个死机。
我用单个collector测试10个sensor,入网正常通讯3天都没有问题。
请问是信道通讯中互斥影响吗?

Alvin Chen:

回复 user5322468:

应该不是信道的问题,如果你不做修改只用sensor 和collector 例程呢?会不会出现你说的死机。我建议你排查一下你的内存的malloc 和free情况。

user5322468:

回复 Alvin Chen:

我修改后的代码,一个collector运行多个节点,可以稳定3天。
我也觉得可能是内存导致,我在2.3移植2.4中,有个全局数据加了200,只能入网就挂了。我把他改小,就可以正常运行。
我查看了内存消耗,还有多余的空间
nameoriginlengthusedunusedattrfill
——————————————————————-FLASH000000000001e0000001d96e00000692RXFLASH_NV0001e000000010000000100000000000RW XFLASH_LAST0001f000000010000000005800000fa8RXSRAM200000000000500000003e8000001180RW X

user5322468:

回复 Alvin Chen:

有了明显的效果,跑了一晚上没有死机现象。
请问下:sensor变孤节点是不是如下情况:
1,sensor发送collector,collector无回复(次数为sensor一个全局变量),回调信标flag为false,sensor为孤节点。

如果我要节约功耗,是不是直接把孤节点定时器关闭就可以了。

我想在sensor变为孤节点之后,选择其他网络入网操作。请问2.4SDK有实现吗?如果我要改,是在回调信标中panid有效标识里面做处理吗?

Alvin Chen:

回复 user5322468:

针对你这个问题,你可以在state变为orphan 后进行FN ,即擦除NV然后软复位为一个新设备。

赞(0)
未经允许不得转载:TI中文支持网 » CC1310 15.4stack sensor/collector SDK2.4中孤节点重连接?
分享到: 更多 (0)