"); //-->
TinyOS组件模型
基于TinyOS的应用程序通常由Main配件,应用组件,感知组件、执行组件、通信组件和硬件抽象组件构成。但有时我们会困惑:其他组件都可以找到,但Main组件呢?为什么每个应用程序都要用到它,但我们就是没见过他的身影呢?答案如下:
比如Blink.nc代码如下:
configuration Blink {
}
implementation {
components Main, BlinkM, LedsC;
Main.StdControl -> BlinkM.StdControl;
BlinkM.Leds -> LedsC;
}
我们知道,BlinkM文件其实就是BlinkM.nc文件,他实现Blink应用的具体功能,主要包括命令、事件、任务等的具体实现。他就在Blink.nc所在的文件夹。但Main 和LedsC在哪呢?查询得到,原来他们都属于系统文件,都在tos/system文件夹中,打开Main.nc文件如下:
configuration Main {
uses interface StdControl;
}
implementation
{
components RealMain, PotC, HPLInit;
StdControl = RealMain.StdControl;
RealMain.hardwareInit -> HPLInit;
RealMain.Pot -> PotC;
}
StdControl文件位于tos\interfaces中,打开如下:
interface StdControl
{
command result_t init();
command result_t start();
command result_t stop();
}
至此,找到所有相关的components,根据引用关系顺序解读各个文件即可明白每个实例。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。