欢迎来到天天文库
浏览记录
ID:42134759
大小:70.00 KB
页数:5页
时间:2019-09-08
《ZigBee学习之绑定表管理函数详解——ZStackAPI解读》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、ZigBee学习之绑定表管理函数详解——ZStackAPI解读ZiqBee技术
2、标签:级遍uint8uint16两数字号订阅应用支持子层(APS)应用支持子层提供如下管理功能:•邦定表管理・组表管理•快速地址查找除了管理功能外,APS还提供数据服务,只是应用不能访问数据服务。应用需要通过AF数据接口AF_DataRequest()來发送数据。如果要使用邦定表两数需要包含BindingTable.h头文件。邦定表管理请注意,绑定服务只能在“耳补”设备之间建立。那就是,只有分别在两个节点的简单描述结构体(simpledescriptorstructu
3、re)中,同时注册了相同的命令标识符(command_id)并且方向相反(一个属于输出指令“output”,另一个属于输入指令“input”),才能成功建立绑定。APS邦定表是在静态RAM中定义的…张表,定义在nwk_globals.c中。表的大小可以通过f8wConfig.cfg中的【NWK_MAX_BINDING_ENTRIES和MAX_BINDING_CLUSTER_IDS]莱配置。只有定义了REFLECTOR或者COORDINATOR_BINDING才能包含此表,用REFLECTOR编译选项来支持APS层的源邦定。邦定表结构-Bindin
4、gEntry_ttypedefstruct0uint16srcldx;//AddressManagerindexuint8srcEP;uint8dstGroupMode;//Destinationaddresstype;0・Normaladdressindex,1・//Groupaddressuint16dstldx;//Thisfieldisusedinbothmodes(groupandnon-group)to//saveNVandRAMspace//dstGroupMode=0・AddressManagerindex//dstGroupMo
5、de=1・GroupAddressuint8dstEP;uint8numClusterlds;uint16clusterldList[MAX_BINDING_CLUSTER」DS】;//Don4tuseMAX_BINDING_CLUSTERS_IDwhen//usingtheclusterldListfield.Use//gMAX_BINDING_CLUSTER_IDS}BindingEntry_t;srcldx-源地址(绑定记录的源地址)的地址管理器索引,地址管理器保存着源地址的IEEE地址和短地址。srcEP・源终端dstGroupMode■
6、目的地址类型。0普通地址1组地址dstldx■若dstGroupMode为0,则包含目的地址的地址管理器索引,若dstGroupMode为1,则包含目的组地址dstEP•目的终端numClusterlds-clusterldList中的入口数目clusterldList■簇ID列表。列表的最大数目定义由MAX_BINDING_CLUSTER_IDS[f8wConfig.cfg]指定邦定表维护BindingEntry_t*bindAddEntry(zAddrType_t*srcAddr,bytesrcEpInt,zAddrType_t*dstAdd
7、r,bytedstEpInt,bytenumClusterlds,uint16*clusterlds);在邦定表中增加一个入口。由于每个入口可以有多个clusterID,所以此函数有可能仅仅在已有邦定条目上增加clusterIDsrcAddr■邦定记录源地址。为Addr16Bit或者Addr64Bit的addr数据结构srcEpInt■邦定记录源终端dstAddr■邦定记录目的地址,为Addr16Bit,Addr64Bit或AddrGroupaddrMode,若为AddrGroup则组ID(groupID)填充到addr.shortAddrdst
8、EpInt-邦定记录目标终端,若dstAddr为组地址,则忽略此位clusterlds■指向要增加的clusterID(16位)列表。返回值:BindingEntry_t•指向一条新加入的邦定入口bytebindRemoveEntry(BindingEntry_t*pBind);pBind■指向邦定表中一个入口的指针bytebindRemoveClusterldFromList(BindingEntryJ*entry,uint16clusterld);从lL存在的邦定表入口的clusterID列表屮移除一个clusterID。如果至少移除了一个c
9、lusterID则返回真。此函数不检查参数的正确性。entry■指向邦定表的指针clusterld■要移除的16位的clusterIDb
此文档下载收益归作者所有