看来是新同学啊,问题都比较基础,估计TI大神不会回答的。我最近也在做zigbee,针对你的问题分享下我的思路,你还是要多看官方资料多实践才行。
广播我看到有个差不多100MS的延迟,所以想使用单播。
在我看来广播和单播的延迟没什么区别。只不过广播会在网络里多次转发,占用信道时间较多,有可能导致下一包数据不能及时发送。所以在知道短地址的情况下建议使用单播。
我看到绑定需要外部按键来建立。我们方案不接受,而且看着是只能绑定一个?
在官方开发板中是使用按键的,实质上就是调用了程序中的“绑定函数”。关于绑定的方法你可以参考http://blog.csdn.net/tanqiuwei/article/details/7642716
(1)抓包看,终端在入网成功后,会发送自己的网络短地址,但这个帧在哪里处理啊??难道必须我自己在终端入网后写个发送函数??
提供几种获取短地址方法
1.就像你说的,当有新节点入网后,会广播device announce数据包,目的是告诉网内其他节点我来了以及我的短地址和长地址。协调器收到device announce数据包,你可以在应用层接收系统事件“ZDO_CB_MSG”,对该事件中的“clusterID”判断,如果是“Device_annce”,则以“ZDO_DeviceAnnce_t”这个数据结构解析收到的数据即可获得短地址。上面的名词你直接在协议栈搜索就能找到。
2.网络建立好之后,你可以读取协调器的子节点数量及他们的短地址;然后再依次读取这些子节点的子节点的数量及短地址,直到遍历整个网络。相应的操作方法参考Method for Discovering Network Topology.pdf
3.你的终端应该都是你预先准备好的,所以你应该知道他们的长地址。因此你可以使用ZDP_NwkAddrReq(),以长地址来查询短地址。使用方法参考Z-Stack API.pdf的3.1.4.1
(2)存的表格,如果在断电重启后,又要重新建立一遍,怎么保存呢??好实现断电后不用再建立表格
想要保存自己的数据,可以使用OSAL API.pdf的第10章节的函数。
看来是新同学啊,问题都比较基础,估计TI大神不会回答的。我最近也在做zigbee,针对你的问题分享下我的思路,你还是要多看官方资料多实践才行。
广播我看到有个差不多100MS的延迟,所以想使用单播。
在我看来广播和单播的延迟没什么区别。只不过广播会在网络里多次转发,占用信道时间较多,有可能导致下一包数据不能及时发送。所以在知道短地址的情况下建议使用单播。
我看到绑定需要外部按键来建立。我们方案不接受,而且看着是只能绑定一个?
在官方开发板中是使用按键的,实质上就是调用了程序中的“绑定函数”。关于绑定的方法你可以参考http://blog.csdn.net/tanqiuwei/article/details/7642716
(1)抓包看,终端在入网成功后,会发送自己的网络短地址,但这个帧在哪里处理啊??难道必须我自己在终端入网后写个发送函数??
提供几种获取短地址方法
1.就像你说的,当有新节点入网后,会广播device announce数据包,目的是告诉网内其他节点我来了以及我的短地址和长地址。协调器收到device announce数据包,你可以在应用层接收系统事件“ZDO_CB_MSG”,对该事件中的“clusterID”判断,如果是“Device_annce”,则以“ZDO_DeviceAnnce_t”这个数据结构解析收到的数据即可获得短地址。上面的名词你直接在协议栈搜索就能找到。
2.网络建立好之后,你可以读取协调器的子节点数量及他们的短地址;然后再依次读取这些子节点的子节点的数量及短地址,直到遍历整个网络。相应的操作方法参考Method for Discovering Network Topology.pdf
3.你的终端应该都是你预先准备好的,所以你应该知道他们的长地址。因此你可以使用ZDP_NwkAddrReq(),以长地址来查询短地址。使用方法参考Z-Stack API.pdf的3.1.4.1
(2)存的表格,如果在断电重启后,又要重新建立一遍,怎么保存呢??好实现断电后不用再建立表格
想要保存自己的数据,可以使用OSAL API.pdf的第10章节的函数。
举报