没有合适的资源?快使用搜索试试~ 我知道了~
Zigbee节点的绑定,不一定非要建立绑定表
3星 · 超过75%的资源 需积分: 50 14 下载量 166 浏览量
2014-05-31
22:11:05
上传
评论 1
收藏 2KB TXT 举报
温馨提示
试读
2页
在SerialApp中 节点通过ZDO MatchReq 来帮定设备 源节点发出匹配描述符请求(请求数据包里有源节点的端点号 网络地址 ProfileID 输入输出簇 以及ClusterID) 目标节点收到这个请求后 对这个请求进行处理 处理后向源节点发出匹配描述符响应(响应数据包里有目标节点的网络地址 匹配到的端点(目标节点中)及其个数 状态 序列号) 源节点在收到响应消息后 对响应数据包进行处理 从中取出目标设备的网络地址 匹配的端点号 写到这里我突然想到 匹配描述符时 发送的匹配描述符请求数据包用的是广播的形式 那么网络中所有的节点都将收到这个数据包 这里我们假设网络中所有的节点都注册了Match Desc req 那么所有的节点都将与源端点进行匹配 那么所有的节点也都会向源节点发出匹配描述符响应 对于源节点来说 a 多条响应消息该如何处理 然后就以这个网络地址和端点向外发送数据包">在SerialApp中 节点通过ZDO MatchReq 来帮定设备 源节点发出匹配描述符请求(请求数据包里有源节点的端点号 网络地址 ProfileID 输入输出簇 以及ClusterID) 目标节点收到这个请求后 对这个请求进行处理 处理后向源节点 [更多]
资源推荐
资源详情
资源评论
Zigbee节点的绑定,不一定非要建立绑定表
1. 先看没有建立绑定表的情况
在SerialApp中,节点通过ZDO_MatchReq( )来帮定设备,源节点发出匹配描述符请求(请求数据包里有源节点的端点号,网络地址,ProfileID,输入输出簇,以及ClusterID),目标节点收到这个请求后,对这个请求进行处理,处理后向源节点发出匹配描述符响应(响应数据包里有目标节点的网络地址,匹配到的端点(目标节点中)及其个数,状态,序列号),源节点在收到响应消息后,对响应数据包进行处理,从中取出目标设备的网络地址,匹配的端点号(写到这里我突然想到,匹配描述符时,发送的匹配描述符请求数据包用的是广播的形式,那么网络中所有的节点都将收到这个数据包,这里我们假设网络中所有的节点都注册了Match_Desc_req,那么所有的节点都将与源端点进行匹配,那么所有的节点也都会向源节点发出匹配描述符响应,对于源节点来说,a.多条响应消息该如何处理?),然后就以这个网络地址和端点向外发送数据包
这里还有一个问题,如果在同一个目标节点中匹配到2个及2个以上的端点,这些匹配到的端点都会被封装在数据包里,然后发送给源节点,我们可以得到所有的匹配端点,b.假如我们想让源节点发送的数据包被所有匹配的目标节点的端点接收到该怎么做?
总结一下,这里有a,b,c三个问题:
a. 源节点匹配到了多个目标节点怎么办?(这里我们假设每个目标节点中只有一个匹配 端点)
b. 源节点匹配到了多个端点怎么办?(这里我们假设网络中只有一个节点与源节点匹配 )
c. 源节点不仅匹配到了网络中的多个节点,而且与每个匹配的节点中的多个端点相匹配怎么办?(这是a,b两个问题的综和)
2. 看看建立了绑定表的情况
在SimpleApp中,传感节点使用函数zb_BindDevice( )绑定采集节点,这里分为两种情况:
1. 知道采集节点的扩展地址也就是64bit IEEE地址(其实知道了目标节点的网络地址也是可以的),就可以直接调用函数 APSME_BindRequest()建立绑定表,成功建立绑定表之后就可以调用函数 ZDP_NwkAddrReq()来获得目标设备的网络地址,如此一来绑定就建立好了
2. 不知道采集节点的扩展地址,那么只有通过匹配描述符(更缺起的说是簇的匹配),调用ZDO_MatchDescReq( )采用广播的形式寻找是否有匹配的节点,若有匹配节点将处理匹配描述符请求,并向源节点发送响应消息(响应数据包里有目标节点的网络地址,匹配到的端点(目标节点中)及其个数,状态,序列号),这样源节点就可以获得了目标节点的地址,源节点接收到响应消息后,依据响应数据包里的信息调用APSME_BindRequest()建立绑定表(这里是用的目标节点的网络地址)
后记:
仔细想了一下,SerialApp中调用的ZDO_MatchReq( ),其实不算是绑定了,因为它都没有建立绑定表
1. 先看没有建立绑定表的情况
在SerialApp中,节点通过ZDO_MatchReq( )来帮定设备,源节点发出匹配描述符请求(请求数据包里有源节点的端点号,网络地址,ProfileID,输入输出簇,以及ClusterID),目标节点收到这个请求后,对这个请求进行处理,处理后向源节点发出匹配描述符响应(响应数据包里有目标节点的网络地址,匹配到的端点(目标节点中)及其个数,状态,序列号),源节点在收到响应消息后,对响应数据包进行处理,从中取出目标设备的网络地址,匹配的端点号(写到这里我突然想到,匹配描述符时,发送的匹配描述符请求数据包用的是广播的形式,那么网络中所有的节点都将收到这个数据包,这里我们假设网络中所有的节点都注册了Match_Desc_req,那么所有的节点都将与源端点进行匹配,那么所有的节点也都会向源节点发出匹配描述符响应,对于源节点来说,a.多条响应消息该如何处理?),然后就以这个网络地址和端点向外发送数据包
这里还有一个问题,如果在同一个目标节点中匹配到2个及2个以上的端点,这些匹配到的端点都会被封装在数据包里,然后发送给源节点,我们可以得到所有的匹配端点,b.假如我们想让源节点发送的数据包被所有匹配的目标节点的端点接收到该怎么做?
总结一下,这里有a,b,c三个问题:
a. 源节点匹配到了多个目标节点怎么办?(这里我们假设每个目标节点中只有一个匹配 端点)
b. 源节点匹配到了多个端点怎么办?(这里我们假设网络中只有一个节点与源节点匹配 )
c. 源节点不仅匹配到了网络中的多个节点,而且与每个匹配的节点中的多个端点相匹配怎么办?(这是a,b两个问题的综和)
2. 看看建立了绑定表的情况
在SimpleApp中,传感节点使用函数zb_BindDevice( )绑定采集节点,这里分为两种情况:
1. 知道采集节点的扩展地址也就是64bit IEEE地址(其实知道了目标节点的网络地址也是可以的),就可以直接调用函数 APSME_BindRequest()建立绑定表,成功建立绑定表之后就可以调用函数 ZDP_NwkAddrReq()来获得目标设备的网络地址,如此一来绑定就建立好了
2. 不知道采集节点的扩展地址,那么只有通过匹配描述符(更缺起的说是簇的匹配),调用ZDO_MatchDescReq( )采用广播的形式寻找是否有匹配的节点,若有匹配节点将处理匹配描述符请求,并向源节点发送响应消息(响应数据包里有目标节点的网络地址,匹配到的端点(目标节点中)及其个数,状态,序列号),这样源节点就可以获得了目标节点的地址,源节点接收到响应消息后,依据响应数据包里的信息调用APSME_BindRequest()建立绑定表(这里是用的目标节点的网络地址)
后记:
仔细想了一下,SerialApp中调用的ZDO_MatchReq( ),其实不算是绑定了,因为它都没有建立绑定表
资源评论
- brightnesssssss2018-12-14一般般,有一点用
501007162021
- 粉丝: 89
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- vsftpd 无依赖安装包
- 老照片修复教程(带资料),再也不用去照相馆修复了!-教程网盘链接提取码下载 .txt
- AI认知课+AI工具实战课,理论结合实操一门课全搞定-视频课程资源网盘链接提取码下载 .txt
- IP切片带货5.0,图文玩法,制作更加简单,流量更大,日入1000+-教程网盘链接提取码下载 .txt
- 2服务注册中心Nacos应用实践
- 2024年3月份GESP1~8级编程题题干+数据
- STM32单片机FPGA毕设电路原理论文报告一种建立单片机应用系统菜单的新方法
- 诊所医院超常规运营管理思维,课程+直播+社群+连麦+实操-教程网盘链接提取码下载 .txt
- STM32单片机FPGA毕设电路原理论文报告一种简单方法实现基于STC89C52RC单片机的频率计
- 使用Dbeaver连接GaussDB(DWS)-PostGresql驱动包
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功