zigbee两种绑定机制(1)我使用的协议栈版本及例子信息:ZigBee2006\\Projects\zstack\Samples\2430DB 建立一个绑定表格有3种方式:(1)ZDO绑定请求:一个试运转的工具能告诉这个设备制作一个绑定报告(2)ZDO终端设备绑定请求:设备能告诉协调器他们想建立绑定表格报告。该协调器将使协调并在这两个设备上创建绑定表格条目。(3)设备应用:在设备上的应用能建立或管理一个绑定表格。有两种可用的机制配置设备绑定:(1)如果目的设备的扩展地址是已知的,则zb_BindDeviceRequest()函数能创建一个绑定条目。(2)如果扩展地址是未知的,则一个"按钮"可以利用。这样的话,这个目的设备首先处于一种状态,它将被zb_AllowBindResponse()发出一个匹配响应;然后在源设备处,zb_AllowBindRequest(),最终都是用函数APSME_BindRequest()创建绑定。不同的是,前者采用的目的地址是64位扩展地址,而后者采用的目的地址是16位网络地址。前者已知扩展地址,调用了ZDP_NwkAddrReq()函数获得目的设备短地址;后者利用描述匹配得到了短地址,然后调用了ZDP_IEEEAddrReq()函数,获取目的设备的扩展地址.******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************1、已知扩展地址的绑定这里可以直接调用函数zb_BindDevice()发起绑定请求: zb_BindDevice(uint8create, //是否创建绑定,TRUE则创建,FALSE则解除 mandId, //命令ID,基于某命令的绑定,相当于簇 uint8*pDestination) //指向扩展地址的指针函数程序如下(已知扩展地址的绑定部分)******************************************voidzb_BindDevice(uint8create,mandId,uint8*pDestination){ zAddrType_tdestination; uint8ret=ZB_ALREADY_IN_PROGRESS; if(create) //create=true建立绑定 { if(sapi_bindInProgress==0xffff) //不允许绑定过程?? {//--------------------------------- if(pDestination) //已知扩展地址的绑定,即*pDestination为非NULL { =Addr64Bit; osal_cpyExtAddr(,pDestination); //直接调用APS绑定请求函数 ret=APSME_BindRequest(, //源EP commandId, //簇ID &destination, //目的地址模式 );//目的EP if(ret==ess) //绑定成功 { //Findnwkaddr发现网络地址,得到被绑定设备的短地址 ZDP_NwkAddrReq(pDestination,ZDP_ADDR_REQTYPE_SINGLE,0,0); osal_start_timerEx(ZDAppTaskID,ZDO_NWK_UPDATE_NV,250
zigbee两种绑定机制(1)模板 来自淘豆网m.daumloan.com转载请标明出处.