TinyOS系统与nesC程序设计课内实验指导书(8)
2、Cygwin with TinyOS 2.x 3、UltraEdit / EditPlus
四 实验内容和步骤 1、Sense应用程序 Sense应用程序在tinyos-2.x/apps/Sense可以找到,我们先看下它的配置文件SenseApp.nc:
configuration SenseAppC { } implementation { components SenseC, MainC, LedsC, new TimerMilliC(); components new DemoSensorC() as Sensor; SenseC.Boot -> MainC; SenseC.Leds -> LedsC; SenseC.Timer -> TimerMilliC; SenseC.Read -> Sensor; } 该文件与BlinkAppC基本类似,再看看模块文件SenseC.nc:
module SenseC { uses { interface Boot; interface Leds; interface Timer
Read接口(tinyos-2.x/tos/interface)用来读取传感器的数据 interface Read
components new DemoSensorC() as Sensor; SenseC.Read -> Sensor; 值得注意的是,Sense.nc无法知道他所连接的传感器,甚至无法知道是否从传感器得到数据,因为它能导通到任何提供Read
事实上DemoSensorC在不同的平台下是不一样的。平台依赖于DemoSensorC组件来定义应用程序从哪个传感器来采样。例如, DemoSensorC.nc在telosb上的实现与在micaz上的实现是不一样的。 2、DemoSensorC组件 这一节,我们仔细看看DemoSensorC组件的内容,不用的节点平台对它的实现部分是不一样的。举例来说,在telosb上,DemoSensorC实例化了一个组件,名为VoltageC,它从MCU内部的电压传感器中读取数据。但是,在micaz节点没有内置的传感器,所以它返回“假的”传感数据。 然而,怎样才能采集其他传感器的数据,而不是默认传感器呢?其实,这只需要改变DemoSensorC里面的一行代码就可以了。例如,你想要把telosb中的VoltageC组件替换为ConstantSensorC,只要将下面语句更换如下:
components new VoltageC() as DemoSensor; components new ConstantSensorC(uint16_t, 0xbeef) as DemoSensor; 传感器组件常位于每个节点平台的子目录下(tinyos-2.x/tos/platforms),各自的传感器板子目录(tinyos-2.x/tos/sensorboards),或者是在微处理器传感器子目录下(tinyos-2.x/tos/chips)。ConstantSensorC和SinSensorC在tinyos-2.x/tos/system下。 把程序安装到节点,观察结果。 3、Oscilloscope 应用程序 Oscilloscope程序将传感器采集到的数据显示在电脑上。安装此程序的节点周期性的采样默认传感器(通过DemoSensorC),当采集到10个数据时,把它作为一个数据包广播出去。我们再拿一个节点,安装BaseStation程序,它把收到的数据包显示到电脑上。 OscilloscopeAppC.nc配件如下:
configuration OscilloscopeAppC { } implementation { components OscilloscopeC, MainC, ActiveMessageC, LedsC, new TimerMilliC(), new DemoSensorC() as Sensor, new AMSenderC(AM_OSCILLOSCOPE), new AMReceiverC(AM_OSCILLOSCOPE); OscilloscopeC.Boot -> MainC; OscilloscopeC.RadioControl -> ActiveMessageC; OscilloscopeC.AMSend -> AMSenderC; OscilloscopeC.Receive -> AMReceiverC; OscilloscopeC.Timer -> TimerMilliC; OscilloscopeC.Read -> Sensor; OscilloscopeC.Leds -> LedsC; }
部分OscilloscopeC.nc代码如下:
module OscilloscopeC { uses { interface Boot; interface SplitControl as RadioControl; interface AMSend; interface Receive; interface Timer; interface Read; interface Leds; } } 安装有Oscilloscope程序的节点每发送一个数据包,就切换第二盏灯;若是从其他节点那接收到数据包(用于告之自己的序列号或是更改了自己的采样频率),则切换第三盏灯;为了防止无线收发器之间的竞争,会切换第一盏灯; 为了显示传感器采集到的数据,我们首先在cygwin进入/tinyos-2.x/apps/Oscilloscope/java目录,然后输入make,把java文件编译成相应的消息类以及Oscilloscope GUI。 输入./run,将会出现以下界面:
每条不同颜色的线代表一个节点,x坐标表示数据包计数值,y坐标表示传感器数据采集到的数据。 五 实验报告要求
①实验名称 ②实验内容说明 ③程序源代码
④实验步骤,实验中出现的问题,观察到的结果 ⑤实验总结
实验七:存储
一 实验目的
1、 了解TinyOS中的永久数据存储方法。
2、 了解几种不同的需要永久存储的数据及对应的抽象类型。
3、 了解卷(volume)的概念,读懂BlinkConfig和PacketParrot程序。
二 实验原理 1、基本介绍
1.1. 不同种类的永久数据存储:小对象,日志,大对象,TinyOS 2.x分别提供了三个基本存
储抽象:小对象,循环日志和大对象。 1.2. 相关接口: BlockRead
BlockWrite Mount
ConfigStorage LogRead LogWrite Storage.h
1.3. 卷(volume)
①在编译时,TinyOS用一个XML文件把闪存(flash)分成一个或多个固定大小的卷,这些文件叫卷表。每一卷提供一个单独类型的存储对象(配置,日志,块存储)。 ②卷是针对特殊应用的,所以必须放在应用程序的文件夹中且命名为volumes-CHIPNAME.xml(CHIPNAME是特定平台的闪存芯片名)。 2、存储配置数据
2.1. 配置数据可能出现在以下特点:这些数据的大小有限;它们的值不统一;值未知;值与
硬件相关。
2.2. 为什么配置数据必须存留:
①校准:传感器的校准系数是出场配置的,持久的
②设备标识:设备标识一旦分配给一个节点,这些值应该持久。
③定位:节点位置数据可能在编译时不知,只有在运行时可见,需要存储。 ④传感:传感与发出信号过程的参数 这些都需要这种类型的数据存储。 2.3. 如何使用Mount和configuration 3、日志数据
3.1. 事件和小数据项的自动日志记录是一种常见的应用。日志数据不应该丢失,日志可以是
线性的,也可以是循环的。
3.2. LogStorage抽象支持上面的日志要求。日志是基于记录的,每一次调用LogWrite.append()
时就会创建一个新的日志。
3.3. Pack …… 此处隐藏:2330字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




