在做collector与sensor通信时,Sensor变为孤节点之后,处于发送Orphan notification阶段。偶尔会出现Sensor连接不上,无论重启collector还是sensor,都连接不上,由于这个问题是偶尔发生,我很难复现。我的问题有如下几点:
1.当sensor状态变为孤节点了之后,我能否通过判断发送了多少次Orphan notification信息(例如发送了3次),然后将NV中与collector相关的信息删除掉,让其变为新的sensor,重新去连接原有的collector
2.如果可以,我应该在哪里进行清除NV信息的操作,清除NV有没有具体的API。
3.这样操作完之后是否还要进行重启,能否通过软件中的操作进行重启。
Alvin Chen:
可以使用下面的API 清除NV:Ssf_clearAllNVItems();
lin shi chang:
回复 Alvin Chen:
谢谢您的回答。我还有如下疑问,您能帮我解决一下吗?
1.要是Sensor变为孤节点清除了NV信息之后。重新加入到collector时(实验的时候只有一个collector),会将collector的NV占满吗?(假如这边有多个sensor变为孤节点重新连接),这种方案是否可行。2.如果我只想清除collector的数据,是不是要调用Ssf_clearNetworkInfo();
3.清除完NV之后,是否要重启sensor。如果要,需要使用哪个API呢?
Alvin Chen:
回复 lin shi chang:
collector使用如下API 清除SM_removeEntryFromSeedKeyTable(pExtAddress);ApiMac_secDeleteDevice(pExtAddress);
需要重启
lin shi chang:
回复 Alvin Chen:
感谢您的回复!今天我在进行NV相关的实验,我在Sensor变为孤节点时在Orphan request做了判断,发送几次时,删除NV中的信息,这个实验成功了。现在我有个疑问:
1.假如Sensor每次都重启,collector中都会多一次sensor的信息。如下图,正常连接是第一次,后面重启了两次,出现了图中多了2、3的两条信息。
2.在Collector端如何判断Sensor什么时候丢失?在哪里进行的判断?
3.使用SM_removeEntryFromSeedKeyTable(pExtAddress); ApiMac_secDeleteDevice(pExtAddress);就可以删除未连接的sensor吗?