Also I would recommend eliminating the busy-wait delay()
by splitting the whole sending sequence into multiple calls
driven by a timer. It's not much of a delay, but long-running
tasks may end up blocking other tasks which need resources.

MS

Eric Decker wrote:
> It is very strange to be sending modem commands to a pc but okay if you 
> must.
> 
> You are using UartStream which is split phase.  You need to be catching 
> the completion event (signal) from UartStream.sendDone.  When the 
> sendDone comes in you can then start up the next string you want to send.
> 
> The way you have UartStream.sendDone right now doesn't make a whole lot 
> of sense.
> 
> 
> If you don't know how this works you need to read the basic TinyOS 
> documents and tutorials.  Start with Phil's book.
> 
> On Mon, Feb 13, 2012 at 12:13 AM, #BHARTI GOEL# <[email protected] 
> <mailto:[email protected]>> wrote:
> 
>     Hi,
> 
>     I am trying to send a series of commands to the PC hyperterminal
>     using UART interface. Now when I send a single command it works
>     fine. But when I send a series of commands it stops working. I have
>     tried to create delays after each command but still it does not
>     work. Can anyone tell me what I can possibly do?
> 
>     Here is my code :
> 
>     module GSMmodemC @safe()
>     {
>       uses interface Boot;
>       uses interface Init as UartInit;
>       uses interface StdControl as UartControl;
>       uses interface UartStream;
>       uses interface Leds;
>       uses interface Timer<TMilli>;
>      
>      
>     }
>     implementation
>     {
> 
>     // COMMANDS TO BE SENT
>     char* uartsendBuf1 = "AT\n";
>     char* uartsendBuf2 = "AT+CMGF=1\n";
>     char* uartsendBuf3 = "AT+CMGS=";
>     char* uartsendBuf4 = "+6590140252 <tel:%2B6590140252>";
>     char* output = "Hello";
>     char* input;
>     uint16_t inputlen;
>     uint8_t recevedByte;
>      
>       event void Boot.booted() {
>        
>         call UartInit.init();
>        
>         call Timer.startPeriodic(3000);
>         call UartControl.start();
>           
>       }
> 
> 
>     static void delay(uint32_t cycles)
>       {
>         while (--cycles > 0)
>         {
>           //nop();
>         }
>       } 
>      
>           event void Timer.fired() {
>        
>        
>         call UartControl.start();   
>         call UartStream.send(uartsendBuf1, 3);
>         /*call Leds.led1Toggle();                              // This
>     part does not work
>         delay(5000);
>         call UartControl.start();
>         call UartStream.send(uartsendBuf2, 10);
>         call Leds.led1Toggle();
>         delay(5000);
>         call UartControl.start();
>         call UartStream.send(uartsendBuf3, 8);
>         call Leds.led1Toggle();
>         delay(5000);
>         call UartControl.start();
>         call UartStream.send(uartsendBuf4, 11);
>         call Leds.led1Toggle();
>         delay(5000); */
>       }
>         
> 
>      
>       async event void UartStream.sendDone( uint8_t* buf, uint16_t len,
>     error_t error )
>       {
> 
>         call Leds.led0Toggle();       
>         call UartStream.enableReceiveInterrupt();
>       
>       }
>      
>       async event void UartStream.receivedByte( uint8_t byte )
>       {
>      
>       if( (char* )byte == "a")
>       {
>       call Leds.led1Toggle();
>       }
>       call Leds.led2Toggle();
>       recevedByte = byte; 
>       call UartControl.stop();
>      
>       }
>      
>       async event void UartStream.receiveDone( uint8_t* buf, uint16_t
>     len, error_t error )
>       {
>        
>       }
> 
>     }
> 
> 
>     _______________________________________________
>     Tinyos-help mailing list
>     [email protected]
>     <mailto:[email protected]>
>     https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
> 
> 
> 
> 
> -- 
> Eric B. Decker
> Senior (over 50 :-) Researcher
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> 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