楼主: outman

[原创]奥特曼Zigbee读书日记(四)-- 设备“对话”专题(2)

[复制链接]
ssls18years 发表于 2010-8-19 21:05:20 | 显示全部楼层
EndPoint: 设备以应用对象(Application Objects)的形式实现。每个应用对象通过一个端点连接到ZigBee堆
           栈的余下部分,它们都是器件中可寻址的组件。
profiles: 是一组统一的消息,消息格式和处理方法,允许开发者建立一个可以共同使用的分布式应用程序,
           这些应用是利用驻扎在独立设备中的应用实体来实现的。这些应用profiles允许应用程序发送命令、
           请求数据和处理命令的请求。
簇标识符: 可用来区分不同的簇,簇标识符联系着从设备流出和向设备流入的数据。
ssls18years 发表于 2010-8-19 21:50:28 | 显示全部楼层
本帖最后由 ssls18years 于 2010-8-19 21:54 编辑

以大学一年级流行的友好寝室为例:
男宿舍8个人构成开发板A, 女宿舍8个人构成开发板B.
男宿舍8个人就是开发板A上的8个EndPoint。
男宿舍5个人喜欢学习,3个爱玩,分为具有不同行为爱好的两个集团,也就是两个Profile.
女宿舍8个人3个喜欢学习,2个爱玩,剩下4个爱吃,分为3个集团,也就是三个Profile。
爱学习的Profile = 0x0010; 爱玩的Profile = 0x0011; 爱吃的Profile = 0x0012;
以上定义结束,现在来看绑定过程:
某男同学(爱玩)打个电话给女宿舍说要出去玩,8个女同学中的6个因为爱好不同(Profile值不同),直接拒绝。剩下的2个女生有一个因为讨厌该男同学(脑子中没有注册该男同学的任何示好),也拒绝了,另外一个女生暗恋该男生(脑子中已经填满该男同学的任何示好,随时准备...), 于是绑定成功。
这样以后该男生就会直接拨这位女生的手机了。
假设这位男生排名老3, 那并不一定要求这位女生也排名老3。

牵强附会,期待斧正。
 楼主| outman 发表于 2010-8-19 21:56:17 | 显示全部楼层
楼上研究得比较仔细,我只做了一个简单的实验,在教程中的BeginApp例子中,把终端的endpoint号保留为20,而把调协器endpoint号改为21,这样发现老王和老张说不上话了,没有深入分析具体的原因,惭愧啊,明天好好看下,具体是什么原因导致通讯失败。
ssls18years 发表于 2010-8-19 22:39:17 | 显示全部楼层
我测试的是simple例程中的simpleController & simpleSwitch这个开关灯例子。Controller的EndPoint是2,我把swicht的endpoint从2改成3,绑定成功,开关控制灯也正常。
yuzhiwu1 发表于 2010-11-21 20:41:47 | 显示全部楼层
我把程序下载到两个节点,可是问什么没有任何反应啊
 楼主| outman 发表于 2010-11-21 22:57:00 | 显示全部楼层
这个教程也是用的市面上的一家2430的板子,市场上的2430的硬件差别太大了,很难保证能针对每一套板子都可以正常工作的. 后面的教程都是基于TI的SmartRF05EB的, 至少保证在论坛里交流问题的互通性
yuzhiwu1 发表于 2010-11-22 19:21:17 | 显示全部楼层
我想问一下协调器节点,路由节点,这三种节点的短地址我们该如何分配啊,怎么能知道是哪个路由器节点绑定哪些终端节点呢,谢谢啊
yuzhiwu1 发表于 2010-11-25 09:13:46 | 显示全部楼层
使用奥特曼的程序,是不是协调器,路由器,终端节点都要下程序啊,我的怎么一直没反应啊
 楼主| outman 发表于 2010-11-25 22:19:57 | 显示全部楼层
这个程序只要有一个协调器跟一个终端节点就可以完成功能了,不过由于大家用的硬件平台都有些差异,很有可能按键与串口等基本硬件定义会不同。这个程序用的是2430的平台,现在已经转到2530平台上来了,最好是自己按照文章的方法来做,而不是用这套代码
yuzhiwu1 发表于 2010-11-28 14:23:32 | 显示全部楼层
我把初始化串口的程序initUart加到void GenericApp_Init( byte task_id )中,为什么整个系统没有反应了,谁知道原因啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表