zigbee学习笔记四——四种地址绑定模式

更新时间:2023-05-24 21:48:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

zigbee

zigbee学习笔记四——四种地址绑定模式

2011-09-25 21:24

ZDP_MatchDescReq( &dstAddr, NWK_BROADCAST_SHORTADDR,

SERIALAPP_PROFID,

SERIALAPP_MAX_CLUSTERS, (cId_t *)SerialApp_ClusterList,

SERIALAPP_MAX_CLUSTERS, (cId_t *)SerialApp_ClusterList,

FALSE );

也叫匹配描述符绑定,一般相当于广播绑定,网络中可能有一个或多个与本节点端口匹配的设备,本节点只接受其中一个节点的设备信息,既一对一绑定。处理函数是:

case Match_Desc_rsp:

{

ZDO_ActiveEndpointRsp_t *pRsp = ZDO_ParseEPListRsp( inMsg );

if ( pRsp )

{

if ( pRsp->status == ZSuccess && pRsp->cnt )

{

SerialApp_DstAddr.addrMode = (afAddrMode_t)Addr16Bit;

SerialApp_DstAddr.addr.shortAddr = pRsp->nwkAddr;

// Take the first endpoint, Can be changed to search through endpoints

SerialApp_DstAddr.endPoint = pRsp->epList[0];

// Light LED

HalLedSet( HAL_LED_4, HAL_LED_MODE_ON );

}

osal_mem_free( pRsp );

}

}

也叫终端绑定,当按键按下时,调用函数

ZDP_EndDeviceBindReq( &dstAddr, NLME_GetShortAddr(),

SerialApp_epDesc.endPoint,

SERIALAPP_PROFID,

SERIALAPP_MAX_CLUSTERS, (cId_t *)SerialApp_ClusterList,

SERIALAPP_MAX_CLUSTERS, (cId_t *)SerialApp_ClusterList,

FALSE );

终端绑定实际上是两个终端设备通过与协调器绑定,实现两个终端设备之间互相通信。处理函数

case End_Device_Bind_rsp:

zigbee

广播模式一般采用匹配符绑定方式,和直接地址模式相似,只是在发送函数中加入下列语句 SerialApp_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast;//自己添加 SerialApp_DstAddr.addr.shortAddr = 0xffff;//自己修改,用于协调器广播

然后会调用 AF_DataRequest函数,这样既可以将协调器数据发给网络中的所有设备。

aps_Group_t SerialApp_Group;

SerialApp_Group.ID = 0x0001;

osal_memcpy(SerialApp_,"Broad Group",11);

static afAddrType_t SerialApp_GrpDstAddr;

SerialApp_GrpDstAddr.addrMode = (afAddrMode_t)afAddrGroup;

SerialApp_GrpDstAddr.endPoint = SERIALAPP_ENDPOINT;

SerialApp_GrpDstAddr.addr.shortAddr = SerialApp_Group.ID;

aps_AddGroup(SERIALAPP_ENDPOINT,&SerialApp_Group);

本文来源:https://www.bwwdw.com/article/6xv4.html

Top