But NoCRCPacket doesn't have an interface.  It looks to be a standalone
module.  Or am I missing something?

-----Original Message-----
From: Michael Schippling [mailto:[EMAIL PROTECTED] 
Sent: Monday, March 17, 2008 5:43 PM
To: Mark Tsang
Cc: [email protected]
Subject: Re: [Tinyos-help] Utilizing a command from another module,

look for documentation on NESC. Basically anything in the interface
for a module can be "call"ed from another module.
MS

Mark Tsang wrote:
> I was wondering how I would go about calling a command from another 
> module to utilize in my own module.  For instance, I want to use the 
> command "txBytes" in NoCRCPacket in my own program MyApp.  What do I 
> have to add in my program to do so.  I've read in other threads that I 
> need to wire NoCRCPacket to UART and I have done so, but I'm still 
> receiving the following error message during compilation:  NOTE:  I'm 
> calling txBytes in my Timer.fired command below in the module
> 
>  
> 
> In component `NoCRCPacket':
> 
> /opt/MoteWorks/tos/platform/micaz/NoCRCPacket.nc: In function
`receiveTask':
> 
> /opt/MoteWorks/tos/platform/micaz/NoCRCPacket.nc:306: Receive.receive 
> not connected
> 
>  
> 
>  
> 
> The error message isn't pointing to my program, instead the platform 
> file.  What am I doing wrong.  Thanks in advance!
> 
>  
> 
> configuration MyApp {
> 
>   provides {
> 
>                 command result_t txBytes(uint8_t *bytes, uint8_t
numBytes);
> 
>   }
> 
> }
> 
> implementation {
> 
>   components Main, MyAppM, TimerC, LedsC, NoCRCPacket as NoPacket, UART;
> 
>  
> 
>   Main.StdControl -> TimerC.StdControl;
> 
>   Main.StdControl -> MyAppM.StdControl;
> 
>   Main.StdControl -> NoPacket.Control;
> 
>  
> 
>   MyAppM.Timer -> TimerC.Timer[unique("Timer")];
> 
>   MyAppM.Leds -> LedsC.Leds;
> 
>  
> 
>   txBytes = NoPacket.txBytes;
> 
>  
> 
>   NoPacket.ByteControl -> UART;
> 
>   NoPacket.ByteComm -> UART;
> 
>  
> 
> }
> 
>  
> 
> module MyAppM {
> 
>   provides {
> 
>     interface StdControl;
> 
>                
> 
>   }
> 
>   uses {
> 
>     interface Timer;
> 
>     interface Leds;
> 
>                 interface StdControl as PhotoControl;
> 
>                 interface SendUART;
> 
>                
> 
>                 command result_t txBytes(uint8_t *bytes, uint8_t
numBytes);
> 
>   }
> 
> }
> 
> implementation {
> 
>  
> 
>   /**
> 
>    * Toggle the red LED in response to the <code>Timer.fired</code> event.

> 
>    * Start the Light sensor control and sample the data
> 
>    *
> 
>    * @return Always returns <code>SUCCESS</code>
> 
>    **/
> 
>   event result_t Timer.fired()
> 
>   {
> 
>     call Leds.redToggle();   
> 
>                 // send message to UART (serial) port
> 
>                 if (call txBytes((uint8_t *)0x41,(uint8_t *)0x01) != 
> SUCCESS)
> 
>                   sending_packet = FALSE;
> 
>                  
> 
>     return SUCCESS;
> 
>   }
> 
>  
> 
>   command result_t StdControl.init() {
> 
>     call Leds.init();
> 
>     }
> 
>  
> 
>   command result_t StdControl.start() {
> 
>     // Start a repeating timer that fires every 1000ms
> 
>     return call Timer.start(TIMER_REPEAT, 1000);
> 
>   }
> 
>  
> 
>   /**
> 
>    * Halt execution of the application.
> 
>    * This just disables the clock component.
> 
>    *
> 
>    * @return Always returns <code>SUCCESS</code>
> 
>    **/
> 
>   command result_t StdControl.stop() {
> 
>     return call Timer.stop();
> 
>   }
> 
>  
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Tinyos-help mailing list
> [email protected]
> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

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

Reply via email to