zigbee学习笔记——四种地址绑定模式
来源:互联网 发布:离婚率数据 编辑:程序博客网 时间:2024/06/02 17:41
ZDP_MatchDescReq( &dstAddr, NWK_BROADCAST_SHORTADDR,
SERIALAPP_PROFID,
SERIALAPP_MAX_CLUSTERS, (cId_t *)SerialApp_ClusterList,
SERIALAPP_MAX_CLUSTERS, (cId_t *)SerialApp_ClusterList,
FALSE );
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 );
}
}
{
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 );
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:
广播模式一般采用匹配符绑定方式,和直接地址模式相似,只是在发送函数中加入下列语句
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_Group.name,"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;
SerialApp_Group.ID = 0x0001;
osal_memcpy(SerialApp_Group.name,"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);
- zigbee学习笔记——四种地址绑定模式
- NAT 四种地址解释
- zigbee学习笔记1——基本概念
- 路由器NAT中的四种地址
- 四、代理模式——设计模式学习笔记
- 设计模式学习笔记(四)—Bridge桥接模式
- ZigBee组网学习笔记(四)--协议栈按键实验
- ZIGBEE学习笔记五——读取温度电量信息
- ZigBee学习笔记——ZStack的架构
- ZigBee学习之绑定表管理函数详解——ZStack API解读
- 设计模式学习笔记(四)——Prototype原型
- 学习笔记四--数据绑定
- ButterKnife学习笔记【四】--- Fragment中的绑定
- zigbee networks 学习笔记
- zigbee学习笔记---入门
- ZigBee学习笔记_osal_int_disable()
- ZigBee学习笔记_HAL_BOARD_INIT()
- ZigBee学习笔记_zmain_vdd_check()
- 寻求高手帮助解决sql问题
- ASIHTTPRequest系列(二):文件下载
- 关于类的继承后基类在派生类中访问方式的改变
- ASIHTTPRequest系列(三):文件上传
- 黑马程序员-接口和多态
- zigbee学习笔记——四种地址绑定模式
- 使用递归的方法求next值来理解KMP算法(待继)
- ASIHTTPRequest系列(四):Cookies
- ASIHTTPRequest系列(四):Cookies
- 123
- 各大主流的虚拟机比较
- 问题小结(7)-sd卡和/data分区使用情况检测
- dm9000AE调试记录
- zigbee学习笔记---通信例程之GenericApp