Я пытаюсь понять, как работают модули, конфигурации, интерфейсы и компоненты nesC.
Для этого я попытался реализовать очень простое приложение; когда он завершит загрузку, он должен включить три светодиода, чтобы показать его ID.
Но я получаю ошибку:
/home/tinyos/WSN-Project/src/CoolLed/CoolLedM.nc: In function `CL.setCoolLed':
/home/tinyos/WSN-Project/src/CoolLed/CoolLedM.nc:12: Leds.led0On not connected
/home/tinyos/WSN-Project/src/CoolLed/CoolLedM.nc:14: Leds.led0Off not connected
Я использовал примеры Blink
и BlinkToRadio
в качестве руководства, но не видел, чтобы каждый отдельный светодиод был подключен.
Так что же означает это сообщение об ошибке?
И как мне решить эту проблему?
Вот моя программа с комментарием, показывающая, в каком файле она находится.
// AppC.nc
configuration AppC{}
implementation{
components AppM;
components MainC;
AppM.Boot -> MainC;
components CoolLedM;
AppM.CL -> CoolLedM;
}
// AppM.nc
module AppM{
uses interface Boot;
uses interface CoolLedI as CL;
}
implementation{
event void Boot.booted(){
call CL.setCoolLed((uint8_t)TOS_NODE_ID);
}
}
// CoolLedI.nc
interface CoolLedI{
command void setCoolLed(uint8_t mask);
}
// CoolLedC.nc
configuration CoolLedC{}
implementation
{
components CoolLedM;
components LedsC;
CoolLedM.Leds -> LedsC;
}
// CoolLedM.nc
module CoolLedM{
provides interface CoolLedI as CL;
uses interface Leds;
}
implementation{
command void CL.setCoolLed(uint8_t mask){
if(mask & 0x01)
call Leds.led0On();
else
call Leds.led0Off();
...
}
}