ZigBee学习之绑定表管理函数详解ZStackAPI解读

ZigBee学习之绑定表管理函数详解——ZStackAPI解读ZiqBee技术|标签:级遍uint8uint16两数字号订阅应用支持子层(APS)应用支持子层提供如下管理功能:•邦定表管理・组表管理•快速地址查找除了管理功能外,APS还提供数据服务,只是应用不能访问数据服务。应用需要通过AF数据接口AF_DataRequest()來发送数据。如果要使用邦定表两数需要包含BindingTable.h头文件。邦定表管理请注意,绑定服务只能在“耳补”设备之间建立。那就是,只有分别在两个节点的简单描述结构体(simpledescriptorstructure)中,同时注册了相同的命令标识符(command_id)并且方向相反(一个属于输出指令“output”,另一个属于输入指令“input”),才能成功建立绑定。APS邦定表是在静态RAM中定义的…张表,定义在nwk_globals.c中。表的大小可以通过f8wConfig.cfg中的【NWK_MAX_BINDING_ENTRIES和MAX_BINDING_CLUSTER_IDS]莱配置。只有定义了REFLECTOR或者COORDINATOR_BINDING才能包含此表,用REFLECTOR编译选项来支持APS层的源邦定。邦定表结构-BindingEntry_ttypedefstruct0uint16srcldx;//AddressManagerindexuint8srcEP;uint8dstGroupMode;//Destinationaddresstype;0・Normaladdressindex,1・//Groupaddressuint16dstldx;//Thisfieldisusedinbothmodes(groupandnon-group)to//saveNVandRAMspace//dstGroupMode=0・AddressManagerindex//dstGroupMode=1・GroupAddressuint8dstEP;uint8numClusterlds;uint16clusterldList[MAX_BINDING_CLUSTER」DS】;//Don4tuseMAX_BINDING_CLUSTERS_IDwhen//usingtheclusterldListfield.Use//gMAX_BINDING_CLUSTER_IDS}BindingEntry_t;srcldx-源地址(绑定记录的源地址)的地址管理器索引,地址管理器保存着源地址的IEEE地址和短地址。srcEP・源终端dstGroupMode■目的地址类型。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*dstAddr,bytedstEpInt,bytenumClusterlds,uint16*clusterlds);在邦定表中增加一个入口。由于每个入口可以有多个clusterID,所以此函数有可能仅仅在已有邦定条目上增加clusterIDsrcAddr■邦定记录源地址。为Addr16Bit或者Addr64Bit的addr数据结构srcEpInt■邦定记录源终端dstAddr■邦定记录目的地址,为Addr16Bit,Addr64Bit或AddrGroupaddrMode,若为AddrGroup则组ID(groupID)填充到addr.shortAddrdstEpInt-邦定记录目标终端,若dstAddr为组地址,则忽略此位clusterlds■指向要增加的clusterID(16位)列表。返回值:BindingEntry_t•指向一条新加入的邦定入口bytebindRemoveEntry(BindingEntry_t*pBind);pBind■指向邦定表中一个入口的指针bytebindRemoveClusterldFromList(BindingEntryJ*entry,uint16clusterld);从LL存在的邦定表入口的clusterID列表中移除一个clusterID。如果至少移除了一个clusterID则返回真。此函数不检查参数的正确性。entry■指向邦定表的指针clusterld■要移除的16位的clusterIDbytebindAddClusterldToList(BindingEntry_t*entry,uint16clusterld);是上面那个函数的反操作函数voidbindRemoveDev(zAddrType_t*Addr);移除参数指定的所有邦定表入口,一旦Addr兀配了源地址或者目的地址,则对应的入口将被删除voidbindRemoveSrcDev(zAddrType_t*srcAddr,uint8ep);功能同上,只是限定了终端和源地址的匹配项目voidbindUpdateAddr(uint16oldAddr,uint16newAddr);交换邦定表中的短地址,所有oldAddr将被newAddr取代。BindingEntry_t水bindFindExisting(zAddrType_t*srcAddr,bytesrcEpInt,zAddrType_t*dstAddr,bytedstEpInt);按指定参数查找一个已存在的邦定表入口。若找到则返回指向此邦定表入口的指针,否则返回NULL。bytebindlsClusterlDinList(BindingEntry_t*entry,uint16clusterld);检查此clusterID是否在簇ID列表中。如果在列...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?