zstack如何取消data request
来源:互联网 发布:建筑能耗数据采集器 编辑:程序博客网 时间:2024/05/17 02:43
data request是zigbee协议栈中,终端节点向其父节点发送的数据请求,目的是看父节点中有没有发送给自己的数据包。因为终端节点可能会经常进入休眠,休眠的时候如果父节点接收到了给终端节点的数据包,会暂时保存,等到它唤醒再给它。这个道理很简单,如果终端节点是个孩子,平时没事都睡觉,可能会有人给它送信。如果它睡着的时候有发给他的信件,就会由他的父亲保存信件,等到孩子(定时)醒了,就告诉父亲“我醒了,有没有给我的信呢?”这句“我醒了”,就相当于data request。
抓包的时候可以看到data request。过多的data request看着很烦人,并且data request是要求返回数据的,会加重父节点的负担,那么如何取消data request呢?
首先,编译选项中应当去掉xNWK_AUTO_POLL:
然后在f8wConfig.cfg将DPOLL_RATE设置为0
但是,这两处修改完之后,并不能完全取消data request。这是因为节点只要唤醒(可能是因为别的业务,比如定时唤醒,采集数据),就会询问是否有给自己的消息,只是不再定时询问而已。如果想完全取消data request。可以在f8wConfig.cfg将另一个配置修改一下:
/* This is used after receiving a data confirmation to poll immediately * for response messages...in milliseconds */-DRESPONSE_POLL_RATE=0
注意,这么做有一个弊端,就是节点几乎接收不到所有的广播消息了。因为绝大多数的时候节点都是再休眠,且不再询问是否有自己的消息。
如果还想接收广播消息,就要不再休眠,即取消省电模式,但是会增加功耗。在f8wConfig.cfg修改:(如果必要还需取消条件编译POWER_SAVING)
-DRFD_RCVC_ALWAYS_ON=TRUE//-DRFD_RCVC_ALWAYS_ON=FALSE
个人认为,取消data request只适合那些不处理任何命令,只上报数据的节点。如果实在需要节点处理命令并且不发data request,那么只能不休眠,但是这样做还不如把节点变为路由器。路由器不会休眠。
- zstack如何取消data request
- iOS 如何取消一个request请求,在ASINetworkQueue中
- 如何把request param data传给flex app
- ZStack
- ZStack
- zstack 终端不断重发Match Descriptor Request,无法入网
- Data Import Request Handler
- request的data参数
- Zstack中如何实现自己的任务
- Zstack中如何实现自己的任务
- Zstack中如何实现自己的任务
- Form Data vs Request Payload
- request payload和form data
- volley中多级别取消请求Request
- 如何取消标题栏
- Android AsynTask 如何取消?
- 如何取消bitlocker
- 如何立即取消Toast
- 询问Developer Tools Access问题
- android 自定义view实现数字进度条
- 回首2016的坚持,迎接2017的美好
- android之ArrayAdapter使用
- Java窗体中的事件处理之Button
- zstack如何取消data request
- C# 分段读取大容量文件
- 《番茄工作法》
- 资源地址;浏览和打开文件;GetOpenFileName;GetSaveFileName;OPENFILENAME;PtrToStringChars;.NET类库的打开文件夹操作
- Kernel的环形Buffer(Ring Buffer)——以Logger Buffer为例
- PostgreSQL学习篇9.4 序列类型
- 一张图了解加解密基础
- 王朝 第十六周 字符插入
- 网络数据包的压缩和校验