TinyOS学习笔记3
5.TinyOS2.1.1应用程序举例:Blink
1.导入TinyOS例子
File->New->Example->选择TinyOS Example,配置如下:
Projete Name:MyBlink
Environment: TinyOS Unix Wrapper 2
Example: Blink
Targer: telosb
2.参考Blink例子,建立自己的TestBlink进行分析,我们的程序只让一个灯闪烁。
File->New->Project->TinyOSProject
Project Name:TestBlink
Target:telosb
3.src->New->Module->Nameof new Module:BlinkC
Moduule的含义:模块实现应用程序的代码,实现一个或多个接口。
在模块中添加接口,供configuration来调用。
本程序的源代码如下:
#include "Timer.h" //导比入头文件
module BlinkC @safe(){ //@safe的含义:?????
uses interface Timer<TMilli> as Timer0; //Timer接口,必须实现
uses interface Leds;//Led灯的接口
uses interface Boot;//启动接口
}
//接口的实现
implementation{
//自动生成
event void Timer0.fired(){
// TODO Auto-generated method stub
//输出信息,在tossim中显示
dbg("BlinkC", "Timer 0 fired @ %s./n", sim_time_string());
//使led灯改变
call Leds.led0Toggle();
}
event void Boot.booted(){
// TODO Auto-generated method stub
//时间周期为250毫秒
call Timer0.startPeriodic(250);
}
}
3.src->New->configuration->Nameof new Configuration:BlinkAppC
Configuration的含义:配置是将组件装配起来的组件,将各个组件使用的接口与其他组件提供的接口连接在一起。
components的含义:各个组件连接形成nesC的程序,组件是由各个模块组成的。
代码如下:
//配置
configuration BlinkAppC{
}
implementation{
//声明各个组件
components MainC, BlinkC, LedsC;
components new TimerMilliC() as Timer0;
//连接各个组件的接口
BlinkC -> MainC.Boot;
BlinkC.Timer0 -> Timer0;
BlinkC.Leds -> LedsC;
}
4.左侧选中项目->右键->Properties->TinyOSBuild->1.Application->选中BlinkAppC.nc->OK
5.编译的程序。选中项目,Run->Run As->TinOSBuild
6.在TinyOS中生成帮助文档,生成Blink的文档
1.打开终端
2. cd /opt/tinyos-2.1.1/apps/Blink/
3.make<platform> docs
我们用的命令为 make telosb docs
4.在TinyOS-2.1.1中生成目录 doc
5.doc->nesdoc->telosb此目录为我们生成的目录
6.点击index.html即可查看帮助文档,可以看到引用的各个组件和接口。
欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) | Powered by Discuz! X3.4 |