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即可查看帮助文档,可以看到引用的各个组件和接口。
|