3)TinyOS中组件分为两种类型:模块(module)和配件(configuration)。前者用于程序代码的具体实现,后者则他组件连接起来形成新的组件。相应地,一个组件主要由两种文件形式表述:模块文件(文件形式为:*C.nc)和常表达为*AppC.nc),*为自命名的组件名称。
4)配置文件主用功能是实现组件的声明和连接,其一般格式如下: configuration *AppC { }
implementation {
//声明组件或组件的实例化 ……
//连接组件 …… }
5)模块文件是实现文件,也即相应事件和调用命令的文件,其一般格式如下: module *C {
//提供的接口声明或实例化 provides interface ** ;
//使用的接口声明或实例化 uses interface ** as ***; }
implementation {
//事件响应和命令调用 }
6)接口:TinyOS中接口是事件和命令的集合,通过接口,可以调用该接口的事件(event)和命令(commands如Timer接口中包含的命令和事件如下 Commands:
command uint32_t getdt() …… Events
event void fired()
调用形式:假设Timer接口的一个实例为Timer0,则事件响应函数如下: event void Timer0.fired()
【实验步骤】
1、分析实验内容和要求,确定所需组件 从实验内容知,需要使用和定时器有关的组件和驱动LED有关的组件,通过查找和参阅相关资料,得知TimerMilliC组件,通过帮助文档,得知两个组件所提供的接口,再利用帮助文档查找相关的实现功能(如本实验的点亮LE命令)。所需组件分析如下:
节点上电:MainC(提供Boot接口) 定时器:TimerMilliC组件 LED驱动:LedsC组件
2、定义新的组件用以“集合”所需的组件
分析所需的组件之后,定义一个“父”组件,用以集成各组件,也即通过配置文件和模块文件来实现。 如本实验定义组件TimerLightC组件,与其他组件之间的关系如下框图所示:
登录/注册后可看大图 定时器, TinyOS, 编程

