ZStack--建立自己的应用程序.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ZStack--建立自己的应用程序.doc

ZStack--建立自己的应用程序 收藏 在TI提供例程中有一个SimpleApp的例程,对于应用开发而言,例程SimpleApp展现了简化的API的使用,减少了一系列的API函数和回调函数,简化了协议栈启动的流程。这里重点介绍这些简化以后的API. 1、Z-Stack Simple API总述 Z-Stack是TI正对CC2430/CC2431等提供的免费协议栈,简称为ZCP,他由以下单元组成: HAL(硬件抽象层) OSAL(操作系统抽象层) Zigbee Stack + IEEE 802.15.4 MAC User Application (用户应用程序) MT(moniter test)--通过串口与PC通信,主要用于调试 简单Zigbee API包括以下几个部分: 1 Initialization zb_SystemReset zb_StartRequest 2 Configuration zb_ReadConfiguration zb_WriteConfiguration zb_GetDeviceInfo 3 Discovery(device,netword and service discovery) zb_FindDeviceRequest zb_BindDeviceRequest zb_PermitJoinRequest 4 Data transfer zb_SendDataRequest zb_ReceiveDataIndication 1.1将一个设备加入网络 作为网络的一部分,每个设备的“network-specific”参数要配置成相同的值。 每个设备的“device-specific”参数可以配置成不同的值,但是ZCD_NV_LOGICAL_TYPE必须被设置成 保证整个网络只有一个协调器设备,所有其他电池供电的设备配置成为终端设备。 在上述两个前提之下,任何设备就可以在任何顺序下启动,协调器被启动后将完成网络的组件,其他设备会 发现该网络并加入该网络。 协调器在启动的时候会执行以下步骤: 信道扫描(ZCD_NV_CHANLIST),挑选一个能量最小的信道;如果有很多信道都是低能量的信道,(低能量就是该信道在被使用) 则协调器将会挑选一个使用量最小的信道。 最后协调器会选择网络ID,这个ID在ZCD_NV_PANID被定义。 路由设备和终端设备会扫描信道(ZCD_NV_CHANLIST),尝试发现网络‘ 1.2设备绑定 绑定就是形成在两个设备的应用层之间的一个逻辑链路。在一个设备上可以创建多种绑定,每种绑定由各自的数据包类型。一个绑定也可以由多个目的设备。 一旦在源设备上创建了绑定,应用程序可以不用知道目的设备的地址而发送数据(调用zb_SendDataRequest()函数,无效地址是-0XFFFE可以作为目的地址)。远设备就会在它的绑定列表中查找目的地址。 一个绑定路口可能由一个以上的目的地址,在这种情况下协议会自动复制要传输的数据,把他们发送到各个地址设备中去。 如果NV_RESTORE在会变中被定义的话,绑定列表将被放到非易失性存储设备中,这样在端点和重启后还能保存原先的绑定关系,继而恢复。 当在不知道目的地址的扩展地址的情况下,要建立绑定列表的话,目的设备会处于一种允许绑定的状态,通过函数zb_AllowBindResponse()作为应答。而源设备会通过函数zb_ BindDeviceRequest()发出绑定请求。 绑定表的建立是建立在端点的匹配的前提下的,所谓匹配就是,相同的端点,相同的描述符。 1.3开发一个简单的个人配件(profile) 在这里我们介绍如何通过使用简单API来创建一个应用 (1)在应用里定义所有设备,例如 -e.g. temperature sensor, occupancy sensor, thermostat, heating unit and remote control -assign a device_id(unique 16bit identifier)to each of them (2)定义“commands”,这些“commands”命令在设备之间传送,要给他们分配16位的ID,例如: -temperature reading -occupancy reading -thermostat setting object -heating/cooling unit control object (3)给每个命令定义相应的设备输入和输出,例如: -The temperature reading is output from the temp sensor and input to the thermostat -The

文档评论(0)

zzqky + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档