Z-Stack协议栈ZDO绑定和管理API

更新时间:2024-07-08 03:55:01 阅读量: 综合文库 文档下载

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

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

ZDP_MgmtRtgReq() Mgmt_Rtg_req 本地设备产生,用来获取远程设备的路由表信息 响应获取远程设备的路由表信息请求 本地设备产生,用来获取远程设备的绑定表信息 响应获取远程设备的绑定表信息请求 本地设备产生,请求远程设备离开网络或请求另一个设备离开网络 响应远程设备离开网络或请求另一个设备离开网络请求 ZDP_MgmtRtgRsp() Mgmt_Rtg_rsp ZDP_MgmtBindReq() Mgmt_Bind_req ZDP_MgmtBindRsp() Mgmt_Bind_rsp ZDP_MgmtLeaveReq() Mgmt_Leave_req ZDP_MgmtLeaveRsp() Mgmt_Leave_rsp 本地设备产生,请求远程ZDP_MgmtDirectJoinReq() Mgmt_Direct_Join_req 设备允许指定的设备立即加入网络 响应远程设备允许指定ZDP_MgmtDirectJoinRsp() Mgmt_Direct_Join_rsp 的设备立即加入网络请求 本地设备产生,请求一个ZDP_MgmtPermitJoinReq() Mgmt_Permit_Join_req 远程设备允许或不允许关联 ZDP_MgmtPermitJoinRsp() Mgmt_Permit_Join_rsp 响应一个远程设备允许或不允许关联请求 2.1 ZDP_MgmtNwkDiscReq()

如果设备支持该命令(可选的),调用该函数将为目的设备产生请求来完成一个网络扫描。应用只能在ZDConfig.h文件中的ZDO_MGMT_NWKDISC_REQUEST编译标志被设置时才能被调用本函数。

函数原型

afStatus_t ZDP_MgmtNwkDiscReq( zAddrType_t *dstAddr, uint32 ScanChannels, byte ScanDuration, byte StartIndex, byte SecurityEnable ) 参数细节

dstAddr - 目的地址。

ScanChannels - 该请求要扫描的信道。信道定义包含在NLMEDE.h中ScanDuration - 扫描持续时间。

StartIndex - 响应设备可能有更多的响应项目,在一个响应信息中无法全部装下,请求者可以指定一个开始索引给这些可能的响应项目。

SecurityEnable - 信息的安全类型。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

2.2 ZDP_MgmtNwkDiscRsp()

如果设备支持该命令(可选的),调用该函数将产生响应。当一个“管理网络发现请求”被收到时ZDO将自动产生该信息。

函数原型

afStatus_t ZDP_MgmtNwkDiscRsp( byte TransSeq, zAddrType_t *dstAddr, byte Status, byte NetworkCount, byte StartIndex, byte NetworkListCount, networkDesc_t *NetworkList, byte SecurityEnable ) 参数细节

TransSeq - 传输序号。

dstAddr - 目的地址。

Status - 在ZComDef.h文件中的ZStatus_t中定义。 NetworkCount - 在该信息中可能的项目数量。

StartIndex - 响应设备可能有更多的响应项目,在一个响应信息中无法全部装下,请求者可以指定一个开始索引给这些可能的响应项目。该字段是响应信息的起始索引。

NetworkListCount - 在该信息中相应项目的数量。

NetworkList - 网络发现记录列表。可以在NLMEDE.h中查找networkDesc_t结构体来获得信息。

SecurityEnable - 信息的安全类型。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

2.3 ZDP_MgmtLqiReq()

如果设备支持该命令(可选)ZDO_MGMT_LQI_REQUEST被定义时,调用该函数将为目的设备产生请求来返回它的近邻表。

函数原型

ZDP_MgmtLqiReq( dstAddr, StartIndex, SecurityEnable ) 参数细节

dstAddr – 目的地址。

StartIndex – 响应设备可能有更多的响应项目,在一个响应中无法全部装下,请求者可以指定一个开始索引给这些可能的响应项目。

SecurityEnable - 信息的安全类型。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

2.4 ZDP_MgmtLqiRsp()

如果设备支持该命令(可选的),调用该函数将产生响应。当一个“管理LQI请求”被收到时ZDO将自动产生该信息。

函数原型

ZStatus_t ZDP_MgmtLqiRsp( byte TransSeq, zAddrType_t *dstAddr, byte Status,

byte NeighborLqiEntries, byte StartIndex, byte NeighborLqiCount,

ZDP_MgmtLqiItem_t* NeighborList, byte SecurityEnable ) 参数细节

TransSeq - 传输序号。 dstAddr - 目的地址。

Status - 在ZComDef.h文件中的ZStatus_t中定义。 NeighborLqiEntries - 在该信息中可能的项目数量。

StartIndex - 响应设备可能有更多的响应项目,在一个响应信息中无法全部装下,请求者可以指定一个开始索引给这些可能的响应项目。该字段是响应信息的起始索引。

NeighborLqiCount - 在该信息中相应项目的数量。

NetworkList - 近邻记录列表。可以在ZDProfile.h中查找neighborLqiItem_t结构体来获得信息。

SecurityEnable - 信息的安全类型(如果安全使能,该值为TRUE)。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

2.5 ZDP_MgmtRtgReq()

如果设备支持该命令(可选)ZDO_MGMT_RTG_REQUEST被定义时,调用该函数将为目的设备产生请求来返回它路由表。

函数原型

ZDP_MgmtRtgReq( dstAddr, StartIndex, SecurityEnable ) 参数细节

dstAddr – 目的地址。

StartIndex – 响应设备可能有更多的响应项目,在一个响应中无法全部装下,请求者可以指定一个开始索引给这些可能的响应项目。

SecurityEnable - 信息的安全类型(如果安全使能,该值为TRUE)。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

2.6 ZDP_MgmtRtgRsp()

如果设备支持该命令(可选的),调用该函数将产生响应。当一个“管理路由请求”被收到时ZDO将自动产生该信息。

函数原型

ZStatus_t ZDP_MgmtRtgRsp( byte TransSeq, zAddrType_t *dstAddr, byte Status,

byte RoutingTableEntries, byte StartIndex, byte RoutingListCount, rtgItem_t *RoutingTableList, byte SecurityEnable ) 参数细节

TransSeq - 传输序号。 dstAddr - 目的地址。

Status - 在ZComDef.h文件中的ZStatus_t中定义。 RoutingTableEntries - 在该信息中可能的项目数量。

StartIndex - 响应设备可能有更多的响应项目,在一个响应信息中无法全部装下,请求者可以指定一个开始索引给这些可能的响应项目。该字段是响应信息的起始索引。

RoutingListCount - 在该信息中相应项目的数量。

RoutingTableList - 路由记录列表。可以在ZDProfile.h中查找rtgItem_t结构体来获得信息。

SecurityEnable - 信息的安全类型。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

2.7 ZDP_MgmtBindReq()

如果设备支持该命令(可选)ZDO_MGMT_BIND_REQUEST被定义时,调用该函数将为目的设备产生请求来返回它的绑定表。

函数原型

ZDP_MgmtBindReq( dstAddr, StartIndex, SecurityEnable ) 参数细节

dstAddr – 目的地址。

StartIndex – 响应设备可能有更多的响应项目,在一个响应中无法全部装下,请求者可以指定一个开始索引给这些可能的响应项目。

SecurityEnable - 信息的安全类型(如果安全使能,该值为TRUE)。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

2.8 ZDP_MgmtBindRsp()

如果设备支持该命令(可选的),调用该函数将产生响应。当一个“管理路

由请求”被收到时ZDO将自动产生该信息。

函数原型

ZStatus_t ZDP_MgmtBindRsp( byte TransSeq, zAddrType_t *dstAddr, byte Status,

byte BindingTableEntries, byte StartIndex,

byte BindingTableListCount,

apsBindingItem_t *BindingTableList, byte SecurityEnable ) 参数细节

TransSeq - 传输序号。 dstAddr - 目的地址。

Status - 在ZComDef.h文件中的ZStatus_t中定义。 BindingTableEntries - 在该信息中可能的项目数量。

StartIndex - 响应设备可能有更多的响应项目,在一个响应信息中无法全部装下,请求者可以指定一个开始索引给这些可能的响应项目。该字段是响应信息的起始索引。

BindingTableListCount - 在该信息中相应项目的数量。

BindingTableList - 绑定表记录列表。可以在APSMEDE.h中查找apsBindingItem_t结构体来获得信息。

SecurityEnable - 信息的安全类型。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

2.9 ZDP_MgmtLeaveReq()

如果设备支持该命令(可选的),调用该函数将为目的设备产生请求来离开网络或请求其他设备离开网络。应用只能在ZDConfig.h文件中的ZDO_MGMT_LEAVE_REQUEST编译标志被设置时才能被调用本函数。

函数原型

afStatus_t ZDP_MgmtLeaveReq( zAddrType_t *dstAddr, uint8 *IEEEAddr,

uint8 RemoveChildren,

uint8 Rejoin, uint8 SecurityEnable ) 参数细节

dstAddr - 目的地址。

IEEEAddr - 要离开的设备的64位地址。

RemoveChildren - 设置为1时,移除该设备的子节点,值为0则相反。 Rejoin - 设置的值为1时,该设备离开一段时间后,允许再次加入,值为0则相反。

SecurityEnable - 信息的安全类型。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

2.10 ZDP_MgmtLeaveRsp()

如果设备支持该命令(可选的),调用该函数将产生响应。当一个“管理离开请求”被收的时ZDO将自动产生该信息。

函数原型

ZDP_MgmtLeaveRsp( TransSeq, dstAddr, Status, SecurityEnable ) 参数细节

TransSeq – 传输序号。 dstAddr – 目的地址。

Status – 在ZComDef.h中定义为ZStatus_t。 SecurityEnable - 信息的安全类型。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

2.11 ZDP_MgmtDirectJoinReq()

如果设备支持该命令(可选的),调用该函数将为目的设备产生请求来直接加入其他设备。应用只能在ZDConfig.h文件中的ZDO_MGMT_JOINDIRECT_REQUEST编译标志被设置时才能被调用本函数。

函数原型

afStatus_t ZDP_MgmtDirectJoinReq( zAddrType_t *dstAddr, uint8 *deviceAddr, byte capInfo, byte SecurityEnable ) 参数细节

dstAddr - 目的地址。

deviceAddr - 要加入设备的64位IEEE地址。

capInfo - 要加入设备的能力信息 类型:CAPINFO_ALTPANCOORD CAPINFO_DEVICETYPE_FFD CAPINFO_DEVICETYPE_RFD 等(在

NLMEDE.h中定义)

SecurityEnable - 信息的安全类型。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

2.12 ZDP_MgmtDirectJoinRsp

如果设备支持该命令(可选的),调用该函数将产生响应。当一个“管理直接加入请求”被收的时ZDO将自动产生该信息。

函数原型

ZDP_MgmtDirectJoinRsp( TransSeq, dstAddr, Status, SecurityEnable ) 参数细节

TransSeq – 传输序号。

dstAddr – 目的地址。

Status – 在ZComDef.h中定义为ZStatus_t。 SecurityEnable - 信息的安全类型。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

2.13 ZDP_MgmtPermitJoinReq()

如果设备支持该命令(可选的),调用该函数将创建并发送Mgmt_Permit_Join_req来请求一个远程设备来允许或不允许关联。该请求通常被一个调试工具或网络管理设备产生。另外,如果字段TcSignificance被设置为0x01并且远程设备是认证中心,认证中心的认证政策将被影响。应用只能在ZDConfig.h文件中的ZDO_MGMT_PERMIT_JOIN_REQUEST编译标志被设置时才能被调用本函数。

函数原型

afStatus_t ZDP_MgmtPermitJoinReq( zAddrType_t *dstAddr,

byte duration,

byte TcSignificance,

byte SecurityEnable )

参数细节

dstAddr - 目的地址。

duration - zigbee协调器或路由器允许关联的时间长度(以秒为单位),值为0x00表示允许被禁止;值为0xff表示允许被使能,没有时间限制。

TcSignificance - 这是一个Boolean值。如果字段Tc_Significance被设置为0x01并且远程设备是认证中心,认证中心的认证政策将被影响 。

SecurityEnable - 信息的安全类型。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

2.14 ZDP_MgmtPermitJoinRsp()

如果设备支持该命令(可选的),调用该函数将产生响应。当一个“Mgmt_Permit_Join_rsp”被收的时ZDO将自动产生该信息。

函数原型

ZDP_MgmtPermitJoinRsp( TransSeq, dstAddr, Status, SecurityEnable ) 参数细节

TransSeq – 传输序号。 dstAddr – 目的地址。

Status – 在ZComDef.h中定义为ZStatus_t。 SecurityEnable - 信息的安全类型。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

2.14 ZDP_MgmtPermitJoinRsp()

如果设备支持该命令(可选的),调用该函数将产生响应。当一个“Mgmt_Permit_Join_rsp”被收的时ZDO将自动产生该信息。

函数原型

ZDP_MgmtPermitJoinRsp( TransSeq, dstAddr, Status, SecurityEnable ) 参数细节

TransSeq – 传输序号。 dstAddr – 目的地址。

Status – 在ZComDef.h中定义为ZStatus_t。 SecurityEnable - 信息的安全类型。 返回值

该函数使用AF来发送信息,因此状态值为AF状态值,它们在ZComDef.h文件中的ZStatus_t中定义。

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

Top