父节点向休眠终端发送修改休眠时长的命令
2018-04-11 11:33
253 查看
实现:父节点向休眠终端发送修改休眠时长的命令,终端每次休眠被唤醒之后,向父节点发送Data Request请求数据,父节点将保存的命令发送给终端,终端接收到之后改变时长。
1、在f8wconfig.cfg中设置如下:
1.DNWK_INDIRECT_MSG_TIMEOUT=30 (使得父节点保存数据的时长加长,这个时长不能少于终端休眠的时长,否则可能父节点在终端醒来之前就已经丢弃了,那终端就不能再接收到数据了)
2.
-DRFD_RCVC_ALWAYS_ON=FALSE
/* The number of milliseconds to wait between data request pollsto the coordinator. */
-DPOLL_RATE=0
(关闭终端定时向父节点请求数据的时长)
/* This is used after receiving a data indication to pollimmediately
* for queued messages...inmilliseconds.
*/
-DQUEUED_POLL_RATE=100
/* This is used after receiving a data confirmation to pollimmediately
* for responsemessages...in milliseconds
*/
-DRESPONSE_POLL_RATE=100
(设置终端在每次醒来执行完用户任务之后,即向父节点发送Data Request数据请求)
2、在终端的数据接收函数中,覆盖之前的任务。如下图
终端在接收到之后,可直接设置osal_start_timerEx( GenericApp_TaskID,SEND_DATA_EVENT, Sleep_Time );此时任务会覆盖掉之前的任务,重新开始计时,此时的休眠时长就是所指定的时长。
当然,图中的时长只是为了方便设置的固定值,也可以将时长放在发送的命令中。
3、实验之后通过串口得到数据:
在第一个数据收到之后,发送“11”命令给协调器,协调器接收到“11”之后,向终端发送修改睡眠时长的命令。初始化的睡眠时长是20S,命令其修改为10S可以看到,第一个数据与第二个数据之间是20S,
而第二个数据与第三个数据之间就变成了10S,如此即达到了目标。
但是实际上我想做的是拿到第一个数据之后,预测第二个数据来确定发送完第一个数据之后应该休眠的时长,上述方法得到的结果却延时了一个数据,并没有达到预期。还得继续研究看看。。。
相关文章推荐
- linux终端下修改文件名及文件内容的命令
- Linux命令之stty - 显示和修改终端行设置
- 终端中用命令成功修改linux~Ubuntu PATH环境变量
- linux下终端常用命令和vi命令修改文件及保存的使用方法
- Android平台上,如何通过SecureCRT等终端通过命令控制机顶盒,发送键值
- 终端中用命令成功修改linux~Ubuntu PATH环境变量
- 修改Putty终端目录(ls命令)显示颜色
- 我使用过的Linux命令之stty - 显示和修改终端行设置
- 我使用过的Linux命令之stty - 显示和修改终端行设置
- stty命令_Linux stty 命令用法详解:修改终端命令行的相关设置
- 发送一个命令到其他的终端执行
- Linux命令之stty - 显示和修改终端行设置
- Linux下自动修改用户密码的方法(直接通过命令而不是在终端输入密码)
- Linux tar 修改终端命令
- Linux命令之stty - 显示和修改终端行设置
- 关于ZStack-CC2530-2.3.0-1.4.0中simpleApp例子的 终端节点如何向协调器发送数据,以及数据的接收
- 关于记录用户终端中执行命令而对/etc/bashrc所做的修改
- 修改Windows10 命令终端cmd的编码为UTF-8
- write命令_Linux write 命令用法详解:向指定登录用户终端上发送信息
- 终端中用命令成功修改linux~Ubuntu PATH环境变量