(1)请问,这种情况是丢失安全密钥造成的吗?我在协议栈中只搜索到bdb_reportCommissioningState该函数中NLME_SetPollRate(TCLK_POLL_RATE);将zgPollRate设置为了1000的轮训率。并且timeout=0会进入PM3模式,导致无法操作;我本身设置的轮询率为5000,该情况是频繁断开,重连的操作后,有时会出现。
(2)上面那种情况出现后,我调用bdb_resetLocalAction进行复位,然后主机允许入网,终端重新入网,可此时终端就已经入不了网了,并且信标也没发出来;
我通过仿真得知,在搜索网络时,终端搜索到了主机的网络信息,但是因为信息中dev.cap为0,所以忽略了该网络,导致无法发出信标进行入网,
这里可以确定的是主机中设备容量是够的,并且主机也允许入网了。 请问这是为什么?
(3)然后,这种情况只能够通过终端重新掉电,上电操作后,才能够重新连上主机。 请问掉电复位和bdb_resetLocalAction的区别在哪?
————
我设置的设备类型为终端,zgPollRate为5000
Viki Shi:
没有遇到过此情况。“我本身设置的轮询率为5000”,修改为其他值【多个】再测试呢?
lzc lzc:
回复 Viki Shi:
你好,那协议栈的bdb_resetLocalAction和掉电复位有什么区别吗?
Viki Shi:
回复 lzc lzc:
bdb_resetLocalAction会擦除NV,恢复初始状态
lzc lzc:
回复 Viki Shi:
你好,请问发不出信标Beacon request可能是哪方面的问题呢? -》我调用的入网语句为:bdb_StartCommissioning
Viki Shi:
回复 lzc lzc:
协议栈版本是哪个?硬件复位试过吗,是否能发出beacon request?
lzc lzc:
回复 Viki Shi:
(1)协议栈版本3.0.1仿真器reset键后可以发出beacon request。 用bdb_resetLocalAction复位的话,则还是不能发出beacon request;这是为什么?
(2) 如果仿真一步步调试的话,搜索到了主机的网络,但搜索到的网络中deviceCapacity为0,所以终端将该网络删除了;但我用别的终端就可以进入该协调器
VV:
回复 lzc lzc:
如果你的设备已经处在加网的状态的话,调用bdb_resetLocalAction以后,会首先执行leave的命令。
会发送leave包出去,然后执行到ZDO_LeaveCnf里面,最后去复位自己。
这些流程都对吗?