打印

判断zigbee设备的网络状态

[复制链接]
1187|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一灯大神|  楼主 | 2016-9-11 22:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
判断网络状态:
一、
1、extern devStates_t devState;(在ZDApp.h中声明)
typedef enum
{
  DEV_HOLD,               // Initialized - not started automatically
  DEV_INIT,               // Initialized - not connected to anything
  DEV_NWK_DISC,           // Discovering PAN's to join
  DEV_NWK_JOINING,        // Joining a PAN
  DEV_NWK_REJOIN,         // ReJoining a PAN, only for end devices
  DEV_END_DEVICE_UNAUTH,  // Joined but not yet authenticated by trust center
  DEV_END_DEVICE,         // Started as device after authentication
  DEV_ROUTER,             // Device joined, authenticated and is a router
  DEV_COORD_STARTING,     // Started as Zigbee Coordinator
  DEV_ZB_COORD,           // Started as Zigbee Coordinator
  DEV_NWK_ORPHAN          // Device has lost information about its parent..
} devStates_t;
2、HAL_LED_3灯的状态。
亮表示设备成为Coo(ZDO_NetworkFormationConfirmCB函数)或者Route(ZDO_StartRouterConfirmCB函数)成功、加网成功(ZDO_JoinConfirmCB函数),
闪烁表示失败。在ZDApp.c文件中设值。


二、
1、在主task中注册ZDO_STATE_CHANGE消息的事件函数。
2、在消息事件相应函数中可以获取新状态,用于判断设备状态。
uint16 ***_event_loop(()
{
  if ( events & SYS_EVENT_MSG )
  {
    MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( ***_TaskID );
    while ( MSGpkt )
    {
      switch ( MSGpkt->hdr.event )
      {
case ZDO_STATE_CHANGE:
          ***_NwkState = (devStates_t)(MSGpkt->hdr.status);
          break;


        default:
          break;
      }


      // Release the memory
      osal_msg_deallocate( (uint8 *)MSGpkt );


      // Next
      MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( ***_TaskID );
    }


    // Return unprocessed events
    return (events ^ SYS_EVENT_MSG);
  }

}


注意:只有EndDevice设备才能判断是否是孤儿节点,router设备是不能的


相关帖子

沙发
dirtwillfly| | 2016-9-29 21:35 | 只看该作者
感谢分享

使用特权

评论回复
板凳
uytyu| | 2016-9-29 23:13 | 只看该作者
这是什么芯片?

使用特权

评论回复
地板
uytyu| | 2016-9-29 23:15 | 只看该作者
用的什么开发板?

使用特权

评论回复
5
一灯大神|  楼主 | 2016-10-7 21:56 | 只看该作者
uytyu 发表于 2016-9-29 23:13
这是什么芯片?

都一样的,协议里边实现的!

使用特权

评论回复
6
i1mcu| | 2016-10-7 22:24 | 只看该作者
一灯大神 发表于 2016-10-7 21:56
都一样的,协议里边实现的!

zigbee的判断是状态寄存器吗

使用特权

评论回复
7
i1mcu| | 2016-10-7 22:27 | 只看该作者
一灯大神 发表于 2016-10-7 21:56
都一样的,协议里边实现的!

哪里有协议说明?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

65

主题

112

帖子

2

粉丝