读取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. mysql 数据导出

    windowos: select * from pj_zzspdz_fpmx  order by kprq desc LIMIT 0,1000000 into outfile 'd:\fpmx.xls ...

  2. php常见排序

    public function actionQuickSort(){ $arr = ['5', '4', '3', '2', '1', '0']; $quickRes = $this->quic ...

  3. Nodejs this详解

    [Nodejs this详解] Nodejs中, 文件层this,指向的是module.export. 函数层this,指向的是global对象. 参考:http://www.jb51.net/art ...

  4. express 中间件

    [express 中间件] 中间件(Middleware) 是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)), 和 ...

  5. myeclipse2014安装aptana3.4.0插件(转)

    1.下载aptana3.4.0_eclipse的zip包  http://pan.baidu.com/s/1qXOiZl6 或者是:https://pan.baidu.com/s/1jIqOYcI 2 ...

  6. 【Scrapy】关于使用Scrapy框架爬虫遇到的问题1

    class testScrapy(scrapy.Spider): name = "testLogs" allowed_domains=["cnblogs.com" ...

  7. 超详细 Nginx 极简教程

    什么是Nginx? Nginx (engine x) 是一款轻量级的Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器. 什么是反向代理? 反向代理(Reverse Proxy ...

  8. HDU-2054.A==B?(字符串简单处理)

    这道题......被我各种姿势搞死的... 本题大意:给出两个数A和B,判断A和B是否相等,对应输出YES or NO. 本题思路:本题我有两种思路,第一种是直接去除前导零和后导零然后稍加处理比较字符 ...

  9. http://www.bugku.com:Bugku——Easy_vb

      之前复习了汇编等知识,这是人生中第一个逆向题目,嘻嘻.   启程.   对于执行文件,首先需要看它是32位还是64位的.这里了解到静态工具IDA的启动程序为idaq.exe和idaq64.exe( ...

  10. Meta-Analysis

    meta-analysis是用统计的概念与方法,去收集.整理与分析之前学者专家针对某个主题所做的众多实证研究,希望能够找出该问题或所关切的变量之间的明确关系模式,可弥补传统的Review Articl ...