zoukankan      html  css  js  c++  java
  • Z-Stack内部API 小结

    Z-Stack是TI推出的全功能ZigBee协议栈,通过了ZigBee联盟的兼容性平台测试,包含如下几个组件。

    1. HAL,硬件抽象层

    2. OSAL,操作系统抽象层

    3. ZigBee Stack和IEEE 802.15.4

    4. User App

    5. MT,通过串口与PC进行通讯的demo

    API主要有以下几个方面:

    初始化

    zb_SystemReset     复位设备,一般在写入新配置后,重启设备来启用更新的信息

    zb_StartRequest :   启动ZigBee协议栈与zb_StartConfirm形成回调关系,回调就是StartRequest请求发出后,处理结果的函数在StartConfirm函数里面。

    配置

    zb_ReadConfiguration : 从非易失性存储器中获得指定的配置信息

    zb_WriteConfiguration:往非易失性存储器中写配置信息

    zb_GetDeviceInfo :获得设备相关信息

    发现

    zb_FindDeviceRequest

    zb_BindDevice:   建立或者移除一个绑定条目

    zb_AllowBind:     设置为一段指定时间(永久、不允许、一段时间)的允许绑定模式,与zb_BindDevice配合使用。

    zb_PermitJoiningRequest 用来控制设备加入请求

    数据传输

    zb_SendDataRequest 发送数据

    zb_SendDataConfirm  响应数据的回调函数

    如果要求ACK回应,但是没有收到ACK回应的话,设备会移除它已经创建的绑定表,尝试着重新绑定。

    zb_ReceiveDataIndication:当应用层收到数据时,被此函数异步通知调用

    绑定

    在ZigBee中,绑定是在两个设备应用层之间的一个逻辑链路,一个设备可以为每个数据包分布建立绑定关系,除此之外,绑定可以有多于一个的目的地。以灯泡控制为例子,每个开关可以控制一个或者多个灯泡。这种情况下,每个开关就要建立一个绑定,这允许应用发送数据包,而不需要知道实际目的地址。

    zb_SendDataRequest这个函数的第一个参数为目的地址,一般目的地址为0~0xFFFD,绑定关系的发送目的地址为0xFFFE,广播发送地址为0xFFFF.

    当以绑定模式发送数据时,实际的目的地址是在内部绑定表中查找获得的。当在绑定表中有多个目的地址时,协议会自动发送一份数据拷贝给指定的目标。

    如何配置设备的绑定状态呢?

    1.如果目标设备的MAC地址已知,那么zb_BindDevice可被用来创建一个绑定项

    2.如果目标设备MAC地址未知,待绑定的目标设备执行zb_AllowBindResponse来使其处于响应匹配请求的状态,要求绑定的设备执行zb_AllowBind来设置为允许绑定请求状态。

    两个绑定设备之间需要有相同的ClusterID,不同的Cluster方向才能完匹配。

    NV_RESTORE编译选项:从字面上可以猜测到,这个宏用来恢复已经存储的信息,既然是恢复,那么肯定是比较重要的、掉电不能丢失的信息,比如网络信息、绑定表信息等等。

  • 相关阅读:
    three.js引擎基础知识—摄像机、场景及渲染器
    javaScript执行环境、作用域链与闭包
    zclip笔记:解决zclip失效问题
    jQuery笔记:checkbox
    jenkins笔记:手动更新插件
    Maven笔记:
    MyBatis笔记:invalid bound statement (not found)
    spring jpa data笔记
    springMVC笔记:@ResponseBody
    PDF笔记:内嵌字体
  • 原文地址:https://www.cnblogs.com/cherishui/p/3701945.html
Copyright © 2011-2022 走看看