通过SimpleApp例程总结绑定流程.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通过SimpleApp例程总结绑定流程

通过SimpleApp例程总结绑定的流程?2010-12-04 12:08:45 分类:?嵌入式 ? 这篇文章是在上几篇文章的基础上总结的绑定的整个流程: 下面我们总结一个绑定的整个流程: (1)控制节点在默认情况下(sapi?层初始化时)关闭了匹配描述符响应。当控制节点建立网络后,应用层状态: myAppState = APP_START; 通过按下按键?S1?可以开启允许绑定功能: zb_AllowBind( 0xFF ); 允许绑定的实质即开启匹配描述符响应: afSetMatch(sapi_epDesc.simpleDesc-EndPoint, TRUE); 控制节点允许绑定的时间范围是?10s,即允许其他节点在?10s?内与它建立绑定关系。 (2)开关节点加入网络后,通过手动按下按键S1?发起与控制节点绑定: zb_BindDevice(TRUE, TOGGLE_LIGHT_CMD_ID, NULL); 其中,指定?64?位?IEEE?目的地址为?NULL。所以将设定目的地址模式为?16?位网络地址,而且此地址为广播地址: destination.addrMode = Addr16Bit; destination.addr.shortAddr = NWK_BROADCAST_SHORTADDR; 对于?开?关?节?点?而?言?,?它?将?接?收?来?自?控?制?节?点?的?切?换?命?令?,?因?此?簇?号?为TOGGLE_LIGHT_CMD_ID?的簇是输入簇;该簇对于控制节点而言是输出簇。当开关节点在输入簇列表中找到该簇后: ZDO_AnyClusterMatches( 1, commandId, sapi_epDesc.simpleDesc-AppNumInClusters, sapi_epDesc.simpleDesc-pAppInClusterList ) 将尽量与一个处于允许绑定模式的设备进行匹配: ZDP_MatchDescReq( destination, NWK_BROADCAST_SHORTADDR, sapi_epDesc.simpleDesc-AppProfId, 0, (cId_t *)NULL, 1, commandId, 0 ) 其中,地址模式?destination?为?16?位网络地址模式;16?位网络地址为广播地址;应用程序配置文件?AppProfId?为?0x0F10;?输出簇数目为:1;输出簇为:TOGGLE_LIGHT_CMD_ID;输入簇数目为:0;输入簇为:NULL; 请求匹配描述符函数最后调用: fillAndSend( ZDP_TransID, dstAddr, Match_Desc_req, len ); 其中,传输序号?ZDP_TransID?由?0?开始逐步递增;目的地址模式和地址?dstAddr?为?16?位网络地址模式和广播地址;命令?ID为Match_Desc_req;数据包长度len?为:nwkAddr+ProfileID +NumInClusters+NumOutClusters,单位为字节。 该函数最终通过调用无线发送数据包函数将匹配消息(Match_Desc_req)发送出去: AF_DataRequest(afAddr,ZDApp_epDesc,clusterID,(uint16)(len+1), (uint8*)(ZDP_TmpBuf-1), transSeq, ZDP_TxOptions,??AF_DEFAULT_RADIUS ); 其中,目的地址?afAddr为16?位网络地址模式和广播地址;端点号为:端点?0,?命令ID号为:Match_Desc_req;发送选项为?ZDP_TXOptions,即TXOption=0;跳数为?AF_DEFAULT_RADIUS,即?Radius=0x14。 并且将绑定标志位设置成绑定请求,即:sapi_bindInProgress= Match_Desc_req (3)控制节点的?ZDApp?接收到外界输入的数据后,即?AF_INCOMING_MSG_CMD,ZDApp层任务事件处理函数将进行处理: ZDP_IncomingData( (afIncomingMSGPacket_t *)msgPtr ); 然后,根据?ClusterID(这里是?Match_Desc_req)查找结构体数组函数,找到相对应的匹配描述符处理函数: ZDO_ProcessMatchDescReq( zdoIncomingMsg_t *inMsg ) 该函数最终将发送匹配描述符响应至开关节点: ZDP_MatchDescRsp( inMsg-TransSeq, (inMsg-srcAddr), ZDP_SUCCESS, ZDApp

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档