Zigbee协议栈(CC2530开发板):绑定


原文地址: Zigbee协议栈(CC2530开发板)    原文作者: 江淮一士

GenericApp实验

绑定是协调器与终端或者终端与终端之间相互传输数据一种方法。绑定之后,网络内设备之间就可以互相传递数据了。

1.协调器通过广播方式与网络内所有终端建立绑定

uint16 bind_req(uint8 task_id,uint16 events)//终端请求与协调器绑定
{
 zAddrType_t dstAddr;
  
//********** 广播方式 终端 能够与网络内所有设备绑定,包括协调器和其它终端**  
     dstAddr.addrMode = AddrBroadcast;
     dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR;
//*************************************************************************     
     
      ZDP_MatchDescReq( &dstAddr, NWK_BROADCAST_SHORTADDR,
                        GENERICAPP_PROFID,
                        GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
                        GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
                        FALSE );
     
      osal_start_timerEx(bind_TaskID,5,2000);
 
 return 0;
}

 

这是我建立的一个任务,可以通过定时器触发此任务,绑定成功后可以停止该定时器。绑定成功后,协调器就可以通过广播方式发送数据给所有终端了。

 

2.终端与协调器绑定

只需要对上述函数稍作修改就可以啦

如下所示:

uint16 bind_req(uint8 task_id,uint16 events)//终端请求与协调器绑定
{
 zAddrType_t dstAddr;
 
//*******  只与协调器绑定 *************
      dstAddr.addrMode = Addr16Bit;
      dstAddr.addr.shortAddr = 0x0000; // Coordinator
//*************************************     
 
//********** 广播方式 终端 能够与网络内所有设备绑定,包括协调器和其它终端** 
//      dstAddr.addrMode = AddrBroadcast;
//      dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR;
//*************************************************************************     
     
      ZDP_MatchDescReq( &dstAddr, NWK_BROADCAST_SHORTADDR,
                        GENERICAPP_PROFID,
                        GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
                        GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
                        FALSE );
     
      osal_start_timerEx(bind_TaskID,5,2000);
 
 return 0;
}

 

以上介绍了两种绑定方法。实现绑定以后,互传数据就随心所欲啦。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值