Hi,

I'm trying to use printf in the application 'RadioCountToLeds' running on
top of tinyOS-2.0.2. I have some problems with wiring interfaces of printf.

I have modified RadioCountToLedsAppC.nc as follows:
*configuration RadioCountToLedsAppC {}
implementation {
  components MainC, RadioCountToLedsC as App, LedsC;
...
  components PrintfC;

  App.Boot -> MainC.Boot;
...
  App.PrintfControl -> PrintfC;
  App.PrintfFlush -> PrintfC;
}*

I have also modified RadioCountToLedsC.nc as follows:
*#include "printf.h"


module RadioCountToLedsC {
  uses {
    ...
    interface PrintfFlush;
    interface PrintfControl;
 }
}
implementation {
  event void Boot.booted() {
    call PrintfControl.start();
    call AMControl.start();
  }

  ...

  event void PrintfControl.startDone(error_t err) {
    // do nothing
  }

  event void PrintfControl.stopDone(error_t err) {
    // do nothing
  }

 event void PrintfFlush.flushDone(error_t err) {
    // do nothing
  }

  event void MilliTimer.fired() {
    counter++;
    dbg("RadioCountToLedsC", "RadioCountToLedsC: timer fired, counter is
%hu.\n", counter);
    printf("RadioCountToLedsC: timer fired, counter is %hu.\n", counter);
    call PrintfFlush.flush();
}

*I have modified the Makefile to include $(TOSDIR)/tos/lib/printf/2_0_2 in
the CFLAGS.

When compiling for micaz, I get the following errors:
*mkdir -p build/micaz
    compiling RadioCountToLedsAppC to a micaz binary
ncc -o build/micaz/main.exe -Os -finline-limit=100000 -Wall -Wshadow
-Wnesc-all -target=micaz -fnesc-cfile=build/micaz/app.c -board=micasb
-I/opt/tinyos-2.x/tos/lib/printf/2_0_2
-DIDENT_PROGRAM_NAME=\"RadioCountToLed\" -DIDENT_USER_ID=\"tai\"
-DIDENT_HOSTNAME=\"tai-desktop\" -DIDENT_USER_HASH=0xde281e84L
-DIDENT_UNIX_TIME=0x4a253f62L -DIDENT_UID_HASH=0x5473dbafL
-fnesc-dump=wiring -fnesc-dump='interfaces(!abstract())'
-fnesc-dump='referenced(interfacedefs, components)'
-fnesc-dumpfile=build/micaz/wiring-check.xml RadioCountToLedsAppC.nc -lm
In file included from RadioCountToLedsAppC.nc:48:
In component `RadioCountToLedsC':
RadioCountToLedsC.nc:57: interface PrintfControl not found
RadioCountToLedsC.nc: In function `Boot.booted':
RadioCountToLedsC.nc:67: interface has no command or event named `start'
RadioCountToLedsC.nc: At top level:
RadioCountToLedsC.nc:84: `startDone' is not in interface `PrintfControl'
RadioCountToLedsC.nc:88: `stopDone' is not in interface `PrintfControl'
In file included from /opt/tinyos-2.x/tos/lib/printf/2_0_2/PrintfC.nc:53,
                 from RadioCountToLedsAppC.nc:53:
In component `PrintfP':
/opt/tinyos-2.x/tos/lib/printf/2_0_2/PrintfP.nc: In function `sendNext':
/opt/tinyos-2.x/tos/lib/printf/2_0_2/PrintfP.nc:86: warning: passing
argument 2 of `Packet.getPayload' makes pointer from integer without a cast
In component `RadioCountToLedsAppC':
RadioCountToLedsAppC.nc: At top level:
RadioCountToLedsAppC.nc:64: cannot find `PrintfControl'
make: *** [exe0] Error 1*

I cannot find the tutorial modules (TestPrintf, etc.) for printf 2.0.2
release.

Does anyone have an idea about what is wrong?

Thanks,
Vincent
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to