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->TinyOS Project
Project Name:TestBlink
Target:telosb
3.src->New->Module->Name of 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->Name of 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->TinyOS Build->1.Application->选中BlinkAppC.nc->OK
5.编译的程序。选中项目,Run->Run As->TinOS Build
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即可查看帮助文档,可以看到引用的各个组件和接口。
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->TinyOS Project
Project Name:TestBlink
Target:telosb
3.src->New->Module->Name of 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->Name of 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->TinyOS Build->1.Application->选中BlinkAppC.nc->OK
5.编译的程序。选中项目,Run->Run As->TinOS Build
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即可查看帮助文档,可以看到引用的各个组件和接口。