读取Telosb内部传感器数据,并在计算机上显示。

senseC.nc代码如下:

 #include "Timer.h"
#include "sense.h"
#include "printf.h" module senseC
{
uses{
interface Boot;
interface Timer<TMilli>;//??????
interface Read<uint16_t>;
interface SplitControl;
interface Packet;
interface AMSend;
}
}
implementation
{
bool busy=FALSE;
message_t pkt; event void Boot.booted()
{
call SplitControl.start();
}
event void SplitControl.startDone(error_t err)
{
if(SUCCESS==err)
call Timer.startPeriodic();
else
call SplitControl.start();
}
event void SplitControl.stopDone(error_t err){} event void Timer.fired()
{
call Read.read();
} event void Read.readDone(error_t err,uint16_t data)
{
if(SUCCESS==err)
{
if(!busy)
{
SenseMsg* tspkt=(SenseMsg*)(call Packet.getPayload(&pkt,sizeof(SenseMsg)));
if(NULL==tspkt)
return;
if (call Packet.maxPayloadLength() < sizeof(SenseMsg))
return;
tspkt->data=((float)data/*1.5-0.986)/0.0035;//(float)data*3/4096
if(call AMSend.send(AM_BROADCAST_ADDR,&pkt,sizeof(SenseMsg))==SUCCESS)
busy=TRUE;
//java net.tinyos.tools.PrintfClient -comm serial@/dev/ttyUSB0:telosb
printf("The current temperature is %u.\n",tspkt->data);
printfflush();
}
}
}
event void AMSend.sendDone(message_t* msg,error_t err)
{
if(msg==&pkt)
busy=FALSE;
}
}

注意事项:

  • 使用printf()须在Makefile中添加代码:CFLAGS += -I$(TOSDIR)/lib/printf
  • 可用的内部传感器组件可在$(TOSDIR)/chips/msp430/sensors/中找到
  • 由Read.readDone()得到的数据还需进一步的计算

下面我们由Java tools输出程序的结果:

1、java net.tinyos.tools.Listen -comm serial@/dev/ttyUSB0:telosb

2、java net.tinyos.tools.MsgReader -comm serial@/dev/ttyUSB0:telosb SenseMsg

3、java net.tinyos.tools.PrintfClient -comm serial@/dev/ttyUSB0:telosb

4、java net.tinyos.sf.SerialForwarder -comm serial@/dev/ttyUSB0:telosb

Tinyos学习笔记(三)的更多相关文章

  1. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  2. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  3. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  4. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  5. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

  6. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  7. NumPy学习笔记 三 股票价格

    NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...

  8. Learning ROS for Robotics Programming Second Edition学习笔记(三) 补充 hector_slam

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(三) indigo rplidar rviz slam

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  10. Typescript 学习笔记三:函数

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

随机推荐

  1. LisView控件

    用LisView控件在窗体中创建一个表,设置一个按钮,点击按钮, 将数据库中的表在这个控件中显示(LisView控件中表格式列名与数据库中一致) 首先使用控件将表的每一列创建好,加入一个按钮,如图,现 ...

  2. SSM商城项目(二)

    1. 学习计划 1.将工程改造为基于SOA架构 2.商品列表查询功能实现. 2. 将工程改造为SOA架构 2.1. 分析 由于商城是基于soa的架构,表现层和服务层是不同的工程.所以要实现商品列表查询 ...

  3. PPT的感想

    ①double:使用double类型的数值进行计算, 其结果是不精确的.因为double类型的数值占用64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差. 这个涉及到二进制 ...

  4. bind,call,applay的区别

    方法调用模式: 当一个函数被保存为对象的一个方法时,如果调用表达式包含一个提取属性的动作,那么它就是被当做一个方法来调用,此时的this被绑定到这个对象. var a = 1 var obj1 = { ...

  5. Javascript概念

    什么是JavaScript? 1 以前的目的:验证表单输入的正确性. 2 现在的目的:多做一些页面的交互效果. 3 javascript是一个跨平台的脚本语言. 4 网景公司开发的,由布兰登·艾奇最先 ...

  6. 1.5.6、CDH 搭建Hadoop在安装之前(定制安装解决方案---使用Cloudera Manager模板创建CDH群集)

    使用Cloudera Manager模板创建CDH群集 您可以通过从Cloudera Manager管理的现有CDH群集导出群集模板来创建新的CDH群集.然后,您可以修改模板并使用它在新的主机集上创建 ...

  7. cdnbest如何检查https证书是否有效

    注意: 用此方法检查ssl证书是否有效,此帐号下必须有有效的cdn节点,因为这个证书是要通过底层的cdn节点来检测的 1. 在站点设置中如下图点打开添加ssl证书 2.加完证书后点检查,打勾就表示证书 ...

  8. cdnbest如何查看站点操作日志(同步日志)

     1. 在区域列表点同步日志 2. 点击进入后,可以查看对哪个站点进行了操作,操作时间,ip,id都有记录 3. 想知道详细操作了什么内容把鼠标指向操作类型,就会弹出操作的信息

  9. 使用git或TortoiseGit推送项目至gitlab

    一.Wins安装Git+Trtoisegit工具实现版本克隆与推送 Git:         https://git-scm.com/ Tortoisegit: https://tortoisegit ...

  10. ELK 日志学习

    一.Elasticsearch 安装(所有的版本均使用5.5.0 ,且版需要相同 logstash \ kibana \ filebeat ) 官网下载地址:https://www.elastic.c ...