cc2530 ZStack-CC2530-2.3.0-1.4.0终端节点如何判断与协调器断开连接.
时间:10-02
整理:3721RD
点击:
hi 大侠们:
如题,网络中只有协调器和一个终端,终端要如何得知它与协调器之间的连接已断开?
具体应用是想用zigbee控制玩具小车。小车上装有cc2530,它与协调器断开连接后要停止前进。
断开连接有2种情况:
1.小车跑出有效范围
这个似乎可以让小车不断的给协调器发请求,然后判断RSSI值来计算是否超有效范围。
2.协调器断电了
我用网蜂的板子试了下,协调器断电后,终端的黄色组网灯就会闪烁,终端是怎么知道协调器断电的?应用层要怎么捕获这个事件?
谢谢!
2.协调器断电了
找到了一点小线索,刚刚试了下在应用层可以判断_NIB.nwkState的值。
终端入网后值为4,协调器关闭后终端的nwkState会变1次0,然后持续为2,
再把协调器打开时,终端的nwkState会变1次9,然后持续为4。
还不知道通过_NIB.nwkState来判断连接断开与否,是否准确。
如果只有点对点的话就没有问题
节点状态的值:
typedef enum
{
NWK_INIT,
NWK_JOINING_ORPHAN,
NWK_DISC,
NWK_JOINING,
NWK_ENDDEVICE,
PAN_CHNL_SELECTION,
PAN_CHNL_VERIFY,
PAN_STARTING,
NWK_ROUTER,
NWK_REJOINING
} nwk_states_t;
如果是4的话,代表节点入网成功,是end device设备。