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

cc1310 发送孤节点之后,sensor重启?

协议栈是2.4,非信标模式。

sensor正常入网之后,因为ACK 3次无回复(数据或者poll),sensor变成孤节点。发送孤节点之后,sensor出现重启现象。

sensor代码做了串口输出打印,分别在,发送孤节点和主线程sensor_process中的jdllc_process之后打印,扫描回调,关联回调,信标回调中也会打印。

在变成孤节点后,之后二次打印,分别在发送孤节点和sensor_process睡眠里面。个人判断为,孤节点发送后MAC没有发出回调给主线程。

个人测试恢复,需要30个以上节点入网,变成孤节点才出现。

Alvin Chen:

是全部可以还是个别sensor,你可以分享你的sniffer 文件以及log吗

user5322468:

回复 Alvin Chen:

我昨天是48个一起启动随机加入到二个collector中,大部分都是发送孤节点后重启。很频繁。

然后我每10个一次,加入,全部加入后,有7只出现重启现象,但是不频繁。

sniffer文件就是ACK无回复,然后发送孤节点请求。然后就没有输出了。

我打印的比较好定位。打印就是在发送孤节点之后,MAC无回应回调

Alvin Chen:

回复 user5322468:

在逻辑上发orphan之后会到backoff 里面,你能debug看一下吗,看是否进入下面的event
/* 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);}

user5322468:

回复 Alvin Chen:

进入了。你可能还没有理解我的意思。

sensor发送数据无ACK和poll无ACK都会进入
handleMaxDataFail
调用你上述的孤节点事件,然后发送。这些都是正常。发送完成之后主线程sensor_process中的jdllc_process出来,然后等待MAC的响应。

这个时候就出现了重启了。

你可以测试下,一个collector连接30个sensor,入网后,把collector关闭,让sensor变成孤节点,会有重启现象出现。

Alvin Chen:

回复 user5322468:

”我昨天是48个一起启动随机加入到二个collector中,大部分都是发送孤节点后重启。很频繁。“

你为什么出现大规模的掉线呢?是否你的距离问题还是板子问题?

user5322468:

回复 Alvin Chen:

距离3米左右,板子也正常。我以前没有测试过变成孤节点的问题。
我现在把孤节点的发送频率改为60000一次,大概发送10多次就会重启。scan回调里面有孤节点的失败然后启动下次,默认是300000.

Alvin Chen:

回复 user5322468:

user5322468距离3米左右,板子也正常。我以前没有测试过变成孤节点的问题。我现在把孤节点的发送频率改为60000一次,大概发送10多次就会重启。scan回调里面有孤节点的失败然后启动下次,默认是300000.

Alvin Chen:

回复 Alvin Chen:

你可以用未修改的demo 测试一下吗?也会出现大量的orphan情况, 此外由于周末的原因,我可能无法快速回复你 ,你可以发到英文那边。

user5322468:

回复 Alvin Chen:

我现在的代码流程:sensor发送数据后我就打开了poll(500),而不是在收到了data的ACK后发送poll,然后我把collector关机,这个时候sensor发送poll或者data会进入noack==3,变成孤节点,然后发送孤节点,然后sensor重启。我然后又改动了一下noack==3,不发送孤节点,发送ASSOC,这种情况会直接重启。我先用demo测试下,下周在向你咨询。

Alvin Chen:

回复 user5322468:

"我现在的代码流程:sensor发送数据后我就打开了poll(500),而不是在收到了data的ACK后发送poll" 你这样会直接导致孤儿节点,你需要等待ACK

赞(0)
未经允许不得转载:TI中文支持网 » cc1310 发送孤节点之后,sensor重启?
分享到: 更多 (0)