1、collector,无ACK回复三次,sensor变成孤节点。
可是我在通讯中,把collector断电,sensor发送孤节点事件无断点进入,抓包信息,无任何抓包信息。如果sensor重启,发送孤节点请求。
Alvin Chen:
你在打断点state 有变化吗?
user5322468:
回复 Alvin Chen:
sensor断点我是打在scanCnfcb没有任何变化。
按理说collector断点应该会进入孤节点
Alvin Chen:
回复 user5322468:
你先看看他的状态有没有切换,如果你poll rate 很慢,可能不会离开切换状态。
YiKai Chen:
回复 user5322468:
先設個斷點在Ssf_stateChangeUpdate裡面看看有沒有进入
user5322468:
回复 YiKai Chen:
嗯,状态是变成孤节点了,值是5,但是我在dataCNfcb中只进入了一次NOACK,并没有运行函数handlemaxdatafail,那他的state是如何改变。改变成5,应该是需要发送orphan,我在scanCnfcb,没有成功的scantype=orphan,断点没有进入。
user5322468:
回复 Alvin Chen:
如上述的回复,devInfoBlock.DataFailures==3,devInfoBlock.DataFailures断点只进来了一次,结果是1。才会发送孤节点把,为何状态会改变啊
Alvin Chen:
回复 user5322468:
你不要在这里设置断点啊,你只需要动态观察devInfoBlock.DataFailures的值。你在说你变成orphan 状态,然后就应该会触发case Jdllc_deviceStates_scanOrphan:/* Orphan scan */if(!CONFIG_FH_ENABLE){sendScanReq(ApiMac_scantype_orphan);}break;
你去打断点。
user5322468:
回复 Alvin Chen:
是进入了这个地方,我是想问是,如何进来的。他的状态改变才会发送 Orphan scan ,孤节点的发送只有二种情况啊,第一是ACK,三次都不成功,然后就是孤节点发送的回调失败。我断点在devInfoBlock.DataFailures==3
{
这里面,这个地方都没有进来,如何进入sendScanReq(ApiMac_scantype_orphan);
}
Alvin Chen:
回复 user5322468:
只有devInfoBlock.DataFailures==3才会进入,我建议你不要打断点在这,卡住了datarequest 没有ack 没法计算,你直接去检测devInfoBlock.DataFailures的值
user5322468:
回复 Alvin Chen:
因为的我处理写在,
PDATA–>scantype==APimac_scantype_orphan{处理类
}其他地方都无断点,只在处理里面打了断点。
按照孤节点执行顺序,collector断电后,先进入devInfoBlock.DataFailures==3,然后改变状态,然后发送orphan,然后进入scan回调,判断错误,进入处理的地方。
我断电之后,sensor好像挂掉了一样,我等待了,20分钟左右,还是没有反应。
TI中文支持网

