I didn't look carefully, but the first problem that jumped out to me
was taht you need to have
uses interface Timer[uint8_t id];
not just
uses interface Timer;
in your module definition.
Kevin
On Jan 29, 2008 7:29 AM, Ubaldo Tiberi <[EMAIL PROTECTED]> wrote:
> Hello everybody.
>
> I've just start studying theTinyOS and I have some problems about
> parametrized intefaces.
> The code I wrote is below (this app is something that should simulate
> a traffic light, I know that I could did it in another way, but I did
> it so just as exercise)
>
>
> =====================================================
>
> configuration Semaforo {
> }
> implementation {
> components Main, SemaforoM, TimerC, LedsC;
>
> Main.StdControl -> TimerC.StdControl;
> Main.StdControl -> SemaforoM.StdControl;
> SemaforoM.Timer -> TimerC.Timer[unique("Timer")];
> SemaforoM.Leds -> LedsC;
> }
>
>
> =====================================================
>
> module SemaforoM {
> provides {
> interface StdControl;
> }
> uses {
> interface Timer;
> interface Leds;
> }
> }
>
>
> implementation {
>
> command result_t StdControl.init() {
> call Leds.init();
> return SUCCESS;
> }
>
> command result_t StdControl.start() {
> return call Timer.start[1](TIMER_ONE_SHOT, 1000);
> }
>
>
>
> command result_t StdControl.stop() {
> return call Timer.stop[1]();
>
> }
>
> event result_t Timer.fired[1]() {
> switch (call Leds.get()) {
> case 1:
> call Leds.redOff();
> call Leds.yellowOn();
> call Timer.start[1](TIMER_ONE_SHOT, 1000);
> break;
> case 4:
> call Leds.greenOn();
> call Timer.stop[1]();
> call Timer.start[2](TIMER_ONE_SHOT, 300);
> break;
> default :
> call Leds.redOn();
> call Timer.start[1](TIMER_ONE_SHOT, 1000);
> break;
> }
> return call Timer.start[1](TIMER_ONE_SHOT, 1000);
> }
>
> event result_t Timer.fired[2]() {
> call Leds.greenOff();
> call Leds.yellowOff();
> call Leds.redOn();
> return call Timer.start[1](TIMER_ONE_SHOT, 1000);
> }
> }
> ====================================
>
> When I compile it I obtain the following errors:
>
> =========================================
>
> [EMAIL PROTECTED] /opt/tinyos-1.x/apps/Semaforo
> $ make mica2
> mkdir -p build/mica2
> compiling Semaforo to a mica2 binary
> ncc -o build/mica2/main.exe -Os -finline-limit=100000 -Wall -Wshadow -
> DDEF_TOS_A
> M_GROUP=0x7d -Wnesc-all -target=mica2 -fnesc-cfile=build/mica2/app.c -
> board=mica
> sb -DIDENT_PROGRAM_NAME="Semaforo" -
> DIDENT_PROGRAM_NAME_BYTES="83,101,109,97,102
> ,111,114,111,0" -DIDENT_USER_ID="Administrator" -
> DIDENT_USER_ID_BYTES="65,100,10
> 9,105,110,105,115,116,114,97,116,111,114,0" -
> DIDENT_HOSTNAME="dewsoli2" -DIDENT_
> HOSTNAME_BYTES="100,101,119,115,111,108,105,50,0" -
> DIDENT_USER_HASH=0x268063f6L
> -DIDENT_UNIX_TIME=0x479f328eL Semaforo.nc -lm
> SemaforoM.nc: In function `StdControl.start':
> SemaforoM.nc:69: subscripted value is neither array nor pointer
> SemaforoM.nc: In function `StdControl.stop':
> SemaforoM.nc:80: subscripted value is neither array nor pointer
> SemaforoM.nc: At top level:
> SemaforoM.nc:90: syntax error before `{'
> SemaforoM.nc: `Timer.fired' not implemented
> make: *** [exe0] Error 1
> ==========================================
>
> What's happening? Who illustrate me how modificate the code and tell
> me why?
> And... if I wanna declare the wiring as
>
> -----> SemaforoM.Timer -> TimerC.Timer[uint8_t id];
>
> How should I modify the module SemaforoM.nc??
> Thank You!!
>
> Ubaldo Tiberi
> --
>
>
> --
> Email.it, the professional e-mail, gratis per te: http://www.email.it/f
>
> Sponsor:
> Stai cercando l'email marketing di successo ed economica? Prova con Email.it
> le tue campagne di Email Marketing a partire da 250 Euro!
> *
> Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=7149&d=29-1
> _______________________________________________
> Tinyos-help mailing list
> [email protected]
> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>
--
~Kevin
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help