1 Zigbee应用程序框架开发指南 - 概述

2 Zigbee应用程序框架开发指南 - 应用程序框架结构

3 Zigbee应用程序框架开发指南 - 应用程序框架目录结构

4 Zigbee应用程序框架开发指南 - 生成应用程序配置文件

5 Zigbee应用程序框架开发指南 - 应用程序框架API

6 Zigbee应用程序框架开发指南 - 应用程序框架Callback接口

7 Zigbee应用程序框架开发指南 - 时间处理

8 Zigbee应用程序框架开发指南 - 事件

9 Zigbee应用程序框架开发指南 - 属性管理

10 Zigbee应用程序框架开发指南 - 命令处理和生成

11 Zigbee应用程序框架开发指南 - 命令行接口(CLI)

12 Zigbee应用程序框架开发指南 - 调试打印接口

13 Zigbee应用程序框架开发指南 - 多网络支持

14 Zigbee应用程序框架开发指南 - 睡眠设备

15 Zigbee应用程序框架开发指南 - 应用程序框架插件

16 Zigbee应用程序框架开发指南 - 扩展ZigBee Cluster Library (ZCL)

17 Zigbee应用程序框架开发指南 - 使用Ember AppBuilder设计应用程序

18 Zigbee应用程序框架开发指南 - 应用框架V6

14 睡眠设备

14.1 介绍

Zigbee应用程序框架包含对休眠终端设备的支持。休眠终端设备是ZigBee网络中的一个设备,大部分时间都处于休眠状态, 并且仅在需要执行某些特定操作如GPIO中断或轮询其父是否有任何消息在网络上等待它时才唤醒。

14.2 轮询

休眠终端设备不直接从网络上的其他设备接收数据。相反,它们必须轮询父进程以获取数据,并从父进程接收数据。父设备充当睡眠设备的代理,在孩子睡觉时保持清醒并缓冲消息。因此,休眠终端设备的睡眠/唤醒周期由ZigBee网络上的两个重要超时控制:APS重试超时(7.8秒)和终端设备轮询超时(由父设备默认为5分钟定义)。这两个超时对应于休眠终端设备上的两个轮询间隔:SHORT_POLL和LONG_POLL间隔。这些时间间隔有时分别被称为“nap duration”和“hibernation duration”。因此,当设备处于在SHORT_POLL时间间隔内不断发送轮询的状态时,它就被认为是在“napping”,因为它在很短的时间内就会不断醒来进行轮询。当设备在LONG_POLL时间间隔上发出轮询时,它被称为“hibernating”,因为它的睡眠时间间隔更长。

当设备需要响应从网络发送给它的消息时,它将进入一种状态,在此状态中,它将在SHORT_POLL间隔(napping)上轮询其父设备。这将确保它的父设备收到的任何消息都将立即被休眠的终端设备检索并处理。当设备在网络上不再需要响应时,它将返回到LONG_POLL interval (hibernating)上轮询父设备的状态,这将确保子设备在父设备的子表中保持活动状态,但不会响应网络。

在此期间,根据SHORT_POLL间隔,休眠端设备以增加的速率进行轮询,称为“Short Poll Mode”、“Fast Poll Mode”或简称为“Napping”。所有这些术语的意思都是一样的。休眠设备轮询其父设备的速度比终端设备的父设备保留终端设备的消息所需的7.68秒要快。通常,SHORT_POLL间隔将小于1秒,以确保以有序的方式发送给父级的所有消息,因为父级只需要保持一条消息。如果从父级检索消息的速度不够快,则可能会被同一子级或其他子级的其他传入消息覆盖。有关快速轮询的更多信息,请参见14.2. Forcing “Fast Polling”的部分。

14.2.1 SHORT_POLL间隔

短轮询间隔是在发送或接收消息的过程中,终端设备在轮询其父设备之前可能等待的时间。此间隔必须小于间接传输超时(ZigBee PRO networks的标准为7.68秒)。这是因为在发送设备决定重新发送消息之前,终端设备必须向发送设备发送一个APS ACK。最终的结果是,为了让休眠终端设备可靠地与网络上的其他设备通信,他们必须知道什么时候发送或接收消息的过程中,必须唤醒和调查父母中的数据轮询间隔短,直到事务完成的消息。

编译时设置
短轮询间隔在框架中由EMBER_AF_SHORT_POLL_INTERVAL以四分之一秒定义。Ember AppBuilder接口没有允许用户操作这个值的GUI小部件。它默认为一个单位,等于1 / 4秒。如果您希望更改默认的EMBER_AF_SHORT_POLL_INTERVAL,您可以在应用程序配置的“include”选项卡的宏部分为它添加一个定义。

运行时设置
在应用程序框架中,EMBER_AF_SHORT_POLL_INTERVAL被分配给一个名为emberAfNapDuration的全局变量,该变量可以在运行时使用EMBER_AF_SET_NAP_DURATION (int32u duration)宏进行修改。

注意,在stack release
4.7中,变量emberAfNapDuration已经被弃用,并被回调emberAfGetShortPollIntervalQsCallback()所取代。同样,函数EMBER_AF_SET_NAP_DURATION也被弃用,并被函数emberAfSetShortPollIntervalQsCallback(int16u shortPollIntervalQs)所取代。

14.2.2 LONG_POLL间隔

长轮询间隔是终端设备在轮询其父设备之前等待的时间量,否则它是不活动的。这个间隔应该(但不是必须)比“End Device Poll Timeout”短,后者是一个Ember父设备在从子设备表中删除它之前等待它的子设备发出消息的时间。对于Ember设备,默认的结束设备轮询超时时间为320秒或5分钟多一点。

注意:ZigBee协议没有提供超时子表中条目的标准方法。取而代之的是,存在几种启发式机制来对子表中的条目进行老化。例如,如果父进程听到一个它认为是它的子进程与另一个父进程交互或由另一个父进程表示的设备,它可能会从它的子进程表中删除这个条目。Silicon
Labs已经开发出一种更确定的机制来应对孩子的老化,称为“终端设备轮询超时”(End Device Poll
Timeout)。一个Ember父节点期望子节点在终端设备轮询超时期间“检入”它们的父节点。如果不这样做,则假定它们已经消失,并将它们从子表中删除。终端设备轮询超时在stack/include/ember-configuration-default
.h中定义

终端设备不能在其父设备上配置终端设备轮询超时,而且在父设备和子设备之间通信终端设备轮询超时值方面也没有一致的协议。取而代之的是,Silicon Labs在父设备和子设备上都配置了一个假定的端设备轮询超时。这个值在stack/include/ember-configuration-default .h中定义。

根据它的睡眠特征、电池寿命考虑,子设备可能希望睡眠超过假定的终端设备轮询超时。这样做是自由的。但是,如果它这样做,它必须在再次与网络交互之前修复与其父节点的网络连接。通常,有可能这样做的设备在发送数据之前应该检查网络的状态,看看是否需要进行任何修复。一个休眠的设备永远不应该唤醒并假设它的父设备仍然在那里,除非它确切地知道它的父设备配置了一个它所服从的、双方都同意的终端设备轮询超时。有关终端设备轮询超时的更多信息,请参见位于stack/include/ember-configuration-default .h的配置头文件。

编译时设置
长轮询间隔在框架中由EMBER_AF_LONG_POLL_INTERVAL以四分之一秒定义。可以在stack configuration选项卡中操作长轮询间隔。EMBER_AF_LONG_POLL_INTERVAL也可以在stack选项卡的“include”部分定义。

运行时设置
在应用程序框架中,EMBER_AF_LONG_POLL_INTERVAL被分配给一个名为emberAfHibernateDuration的全局变量,该变量可以在运行时使用EMBER_AF_SET_HIBERNATE_DURATION(int32u duration)宏修改。

14. Zigbee应用程序框架开发指南 - 睡眠设备相关推荐

  1. 9. Zigbee应用程序框架开发指南 - 属性管理

    1 Zigbee应用程序框架开发指南 - 概述 2 Zigbee应用程序框架开发指南 - 应用程序框架结构 3 Zigbee应用程序框架开发指南 - 应用程序框架目录结构 4 Zigbee应用程序框架 ...

  2. 王者级微信小程序开发实战教学 从零到高手搭建微信小程序框架开发教程

    王者级微信小程序开发实战教学 从零到高手搭建微信小程序框架开发教程 小程序进阶 王者级微信小程序开发实战教学课程,讲师手把手对同学们进行微信小程序开发的进阶实战,从零开始搭建,从本地到云端开始系统化的 ...

  3. 开发跨端微信小程序框架选型指南

    多端框架uni-app和Taro选型对比 一. 背景 小程序原生开发有不少槽点: 1.原生wxml开发对Node.预编译器.webpack支持不好,影响开发效率和工程构建流程.所以大公司都会用框架开发 ...

  4. 「小程序」开发 指南(里面是小程序开发的各种论坛和文档)

    之前研究小程序,看到了一篇小程序的开发帖子,在这分享给大家. 什么是微信小程序? 微信之父张小龙是这样描述小程序的: 小程序是一个不需要下载安装就可使用的应用,它实现了应用触手可及的梦想,用户扫一扫或 ...

  5. Jdon框架开发指南

    Jdon框架快速开发指南 开发主要步骤如下: JdonFramework6.0以上两步开发见这里. 快速配置指南 新增/查询/修改/删除(CRUD); 批量查询和分页显示 本文Step By Step ...

  6. 使用Taro小程序框架开发一个学习、刷题、论坛、聊天交流的微信小程序

    本项目小程序端采用Taro技术框架,可将React代码编译为微信小程序.安卓APP.IOS程序.H5页面等,管理端采用React Hook + TypeScript来进行开发 项目介绍 当代大学生上课 ...

  7. 《Boost程序完全开发指南》

    1.3开发环境 由于Boost大量使用了C++高级特性(如模板偏特化.ADL),因此不是所有的编译器都 能够很好地支持Boost. 在VC集成环境中使用嵌入工程编译的方式需要定义宏BOOST_ALL_ ...

  8. 程序员开发指南!半路出家Android程序员看我轻松逆袭!实战篇

    前言 不清楚你是不是知道,咱们中国有相当大的一部分软件公司,他们的软件开发团队都小的可怜,甚至只有1-3个人,连一个项目小组都算不上,而这样的团队却要承担一个软件公司所有的软件开发任务,在软件上线和开 ...

  9. 程序员开发指南!金三银四Android面试的一些感受,这原因我服了

    前言 前几年移动互联网创业的风口,如今渐渐消失,移动互联网被巨头公司瓜分,一些创业公司倒闭了,Android 开发需求慢慢趋近于饱和.而当初移动互联网处于风口时,自学.转行以及培训机构出来了大量 An ...

  10. 全志Tina Linux MPP (多媒体框架)开发指南支持百问网T113 D1-H哪吒DongshanPI-D1s V853-Pro等开发板

    1 简述 整理 MPP sample 使用说明文档的目的是:使 MPP sample 更好用. 2 简介 MPP sample 一般存放在 MPP Middleware 的 sample 目录下.此外 ...

最新文章

  1. 2017-10-6Linux基础知识(4)安装Linux及设置语言环境
  2. 快速生成解决方案 ctrl + shilf + b
  3. python写魔兽世界脚本_用python bat写软件安装脚本 + HM NIS Edit自动生成软件安装脚本...
  4. python复制俩文件夹相同文件_Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法...
  5. php redis mset,MSET命令_视频讲解_用法示例-redis编程词典-php中文网
  6. JWT (Json Web Token)教程
  7. I. Intersections
  8. 电感发出声音怎么解决_如何解决多层PCB设计时的EMI
  9. tshark删除pcap文件中与网关通信的数据包
  10. lisp画垫圈_晓东CAD家园-论坛-LISP/VLISP程序库-[LISP程序]:俺的画内六角圆柱头螺钉的LISP程序-见附件 - Powered by Discuz!...
  11. python编译出来的程序员_Windows下编译Python2.7源码
  12. [转载] Python round四舍五入精度缺失的解决
  13. anaconda创建和删除环境
  14. 【尚锐科技课堂】安全健康位置云平台系统
  15. 默然日记20150207
  16. 微信小程序: wx:key详解
  17. 吉他大横按的学习技巧总结
  18. HTML 标签全写及描述
  19. 技术改变生活——用HanLP来协助处理现实中问题
  20. 小程序如何实时音视频聊天

热门文章

  1. 硬件-电子基础元器件(一)电阻
  2. 查看已激活Windows的密钥
  3. 人脸识别接口_活体检测在人脸识别中不可或缺的一部分
  4. 基于STM32的MLX90614(GY-906)人体红外测温
  5. R语言绘图技巧1:二元隐函数的绘制方法
  6. 服务器被黑客入侵了怎么办?
  7. 黑苹果E430c, 安装过程
  8. acme 生成通配符 SSL 证书
  9. 植物大战僵尸变态辅助开发系列教程(E语言实现和VC6实现)(中)
  10. 河海大学计算机信息学院2013年考研录取名单,河海大学地学院2013年考研录取名单...