首页 > 其他 > 详细

浅析ZigBee的应用层开发之终端结点(Route)

时间:2014-03-14 01:08:05      阅读:433      评论:0      收藏:0      [点我收藏+]

有关Zigbee知识见此链接

 

Route在zigbee的开发中,主要有两个功能

<1>将采集到的信息发送给协调器(coordinator)

<2>接受协调器发送过来的命令,并执行

 

以sample app为例,简单的广播方式传送信息为例

当运行程序,操作系统启动,注册好应用层ID后,开始任务轮询。

 

<1>

在函数 uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )中会完成应用层调用函数的所有处理函数

并且设置广播传送的时间间隔

#define SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT   2000  //两秒广播一次

 

 

 

并通过函数启动循环广播

  if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT )
  {
    // Send the periodic message
    SampleApp_SendPeriodicMessage();

    // Setup to send message again in normal period (+ a little jitter)
    osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
        (SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT + (osal_rand() & 0x00FF)) );

    // return unprocessed events
    return (events ^ SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
  }

 

 

因此可以以相同的方式,给终端route开启循环采集数据

void SampleApp_SendPeriodicMessage( void ) 
{   
  
//采集信息process

  if ( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,
                       SAMPLEAPP_PERIODIC_CLUSTERID,
                       length,
                       array[],
                       &SampleApp_TransID,
                       AF_DISCV_ROUTE,
                       AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
  {
  }
  else
  {
    // Error occurred in request to send.
  }
}

此时协调器则会收到终端采集到的信息,2秒更新一次

 

<2>当协调器通过广播的形式发送来命令时,终端route只要判定是不是给自己的命令,是则执行,否则跳过

接受到信息则会调用该处理函数

void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
{

  switch ( pkt->clusterId ) //判断标识
  {
    case SAMPLEAPP_PERIODIC_CLUSTERID: //与上面的那个发送标识对应

    if(pkt->cmd.Data[0]==0)  //判断发来的命令
    {
         LED=0;    //是发给我的,灯泡亮
    }
      break;
      

......................................................

 

 

 此时已经可以开发基本的小项目了,比如说多个传感器采集农田的信息,发送给协调器,协调器通过网络把数据传到你的网页上,在线观看。还可以把命令反馈回去,控制终端结点上的继电器等等改善环境。

 

 

 


 

浅析ZigBee的应用层开发之终端结点(Route),布布扣,bubuko.com

浅析ZigBee的应用层开发之终端结点(Route)

原文:http://blog.csdn.net/wxwd1/article/details/21165103

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!