Z-Stack协议栈ZDO绑定和管理API
1 ZDO绑定API
ZDO绑定API创建并发送ZDO绑定请求和相应。所有的绑定信息(表)被zigbee协调器保持,因此,只有zigbee协调器可以接收绑定请求。下表列出了协议所支持的绑定API以及它们在zigbee规范 相应的命令名称。
ZDP绑定API函数 ZDP绑定服务命令 功能描述 用来执行终端设备与远程设备的绑定 响应终端设备与远程设备的绑定请求 为其参数中的源地址和目的地址创建一条绑定表记录 响应通过其参数中的源地址和目的地址创建一条绑定表记录请求 本地设备用来删除源地址和目的地址指定的一个绑定表记录 远程设备用来响应删除源地址和目的地址指定的一个绑定表记录请求 ZDP_EndDeviceBindReq() End_Device_Bind_req ZDP_EndDeviceBindRsp() End_Device_Bind_rsp ZDP_BindReq() Bind_req ZDP_BindRsp() Bind_rsp ZDP_UnbindReq() Unbind_req ZDP_UnbindRsp() Unbind_rsp 1.1 ZDP_EndDeviceBindReq()
调用该函数将创建并发送一个终端设备绑定请求(也可以设置为手工绑定)。发送该信息来尝试为该设备进行一个绑定绑定之后,可以发送间接(没有地址)的信息给协调器,协调器将发送该信息给这个信息所绑定到的那个设备,或者可以重新绑定到的那个设备接收信息。
函数原型
afStatus_t ZDP_EndDeviceBindReq( zAddrType_t *dstAddr, uint16 LocalCoordinator, byte endPoint, uint16 ProfileID,
byte NumInClusters, cId_t *InClusterList, byte NumOutClusters, cId_t *OutClusterList, byte SecurityEnable ) 参数细节
dstAddr - 目的地址。
LocalCoordinator - 已知的设备的父协调器的16位网络地址。 endPoint - 应用的端点/接口。
ProfileID - 作为簇ID参考的应用的规范ID。 NumInClusters —在输入簇列表中的簇ID的编号。 InClusterList - 输入簇ID(每一个字节)的数组。 NumOutClusters - 在输出簇列表中的簇ID的编号。 OutClusterList - 输出簇ID(每一个字节)的数组。 SecurityEnable - 信息的安全类型。 返回值
afStatus_t - 该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。
1.2 ZDP_EndDeviceBindRsp()
该函数为一个直接调用ZDP_SendData()的宏。调用该函数来响应终端设备绑定请求。
函数原型
ZDP_EndDeviceBindRsp( TransSeq, dstAddr, Status, SecurityEnable ) 参数细节
TransSeq - 传输序列。 dstAddr - 目的地址。
Status - 成功或其他值(ZDP_SUCCESS或ZDP_INVALID_REQTYPE等)。 SecurityEnable - 信息安全类型。 返回值
afStatus_t - 该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。
1.3 ZDP_BindReq()
该函数是一个调用ZDP_BindUnbindReq()的宏。该调用将创建和发送一个绑定请求。使用该函数来请求zigbee协调器基于簇ID绑定应用。
函数原型
ZDP_BindReq( dstAddr, SourceAddr, SrcEP, \\
ClusterID, DestinationAddr, DstEP, SecurityEnable ) 参数细节
dstAddr - 目的地址。
SourceAddr - 发出请求信息的设备的64位IEEE地址。 SrcEP - 发出请求信息的应用的端点/接口。 ClusterID - 请求信息要绑定的簇ID。
DestinationAddr - 接收请求信息的设备的64位IEEE地址。 DstEP - 接收请求信息的应用的端点/接口。 SecurityEnable - 信息的安全类型。 返回值
afStatus_t - 该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。
1.4 ZDP_BindRsp()
本函数是一个直接调用ZDP_SendData()的宏。调用该函数来响应绑定请求。 函数原型
ZDP_BindRsp( TransSeq, dstAddr, Status, SecurityEnable ) 参数细节
TransSeq - 传输序列。 dstAddr - 目的地址。
Status - 成功或其他值(ZDP_SUCCESS或ZDP_INVALID_REQTYPE等) SecurityEnable - 信息安全类型。 返回值
afStatus_t - 该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。
1.5 ZDP_UnbindReq()
该函数实际上时一个调用ZDP_BindUnbindReq()的宏。该调用将创建并发送一个解除绑定请求。使用该函数来请求zigbee协调器来移除一个绑定(其他参数细节同上)。
函数原型
ZDP_UnbindReq( dstAddr, SourceAddr, SrcEP, \\
ClusterID, DestinationAddr, DstEP, SecurityEnable ) 参数细节
dstAddr - 目的地址。
SourceAddr - 发出请求信息的设备的64位IEEE地址。 SrcEP - 发出请求信息的应用的端点/接口。 ClusterID - 请求信息要绑定的簇ID。
DestinationAddr - 接收请求信息的设备的64位IEEE地址。 DstEP - 接收请求信息的应用的端点/接口。 SecurityEnable - 信息的安全类型。 返回值
afStatus_t - 该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。
1.6 ZDP_UnbindRsp()
该函数将直接调用ZDP_SendData()的宏。调用该函数来响应解除绑定请求。
函数原型
ZDP_UnbindRsp( TransSeq, dstAddr, Status, SecurityEnable ) 参数细节
TransSeq - 传输序列。 dstAddr - 目的地址。
Status - 成功或其他值(ZDP_SUCCESS或ZDP_INVALID_REQTYPE等)。 SecurityEnable - 信息安全类型。 返回值
afStatus_t - 该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。
2 ZDO管理API
ZDO管理API创建并发送ZDO管理请求和响应。这些信息被用来获得设备状态和更新表。下表列出了协议栈所支持的管理API以及它们在zigbee规范中相应的命令名称。
ZDP管理API函数 ZDP网络管理服务命令 功能描述 本地设备用来请求远程设备执行信道扫描,报告本地设备附近存在的网络情况 响应远程设备执行信道扫描,报告本地设备附近存在的网络情况请求 地设备产生,用来获取远程设备的临近列表以及远程设备与每个邻居之间的LQI值 响应获取远程设备的临近列表以及远程设备与每个邻居之间的LQI值请求 ZDP_MgmtNwkDiscReq() Mgmt_NWK_Disc_req ZDP_MgmtNwkDiscRsp() Mgmt_NWK_Disc_rsp ZDP_MgmtLqiReq() Mgmt_Lqi_req ZDP_MgmtLqiRsp() Mgmt_Lqi_rsp