It could be because the message doesn't get sent at all, due to
something in the packet.

Does the red led come on or off when you send?

-Brian


  event TOS_MsgPtr UARTReceive.receive(TOS_MsgPtr Msg) {
       if (call RadioSend.send(&Msg) == SUCCESS) {
               call Leds.redToggle();
       }
       else{
               failBlink();
   }

       return Msg;
 }

 event TOS_MsgPtr UARTTokenReceive.receive(TOS_MsgPtr Msg, uint8_t Token) {
       if (call RadioSend.send(Msg) == SUCCESS) {
               call Leds.redToggle();
       }
       else{
               call Leds.redToggle();
//              failBlink();
   }


On Fri, Apr 11, 2008 at 10:46 AM, renjie huang <[EMAIL PROTECTED]>
wrote:

> Hi
>
> I think the reason may be due to the code of  event TOS_MsgPtr
> UARTTokenReceive.receive(TOS_MsgPtr Msg, uint8_t Token) ;
>
> When TokenReceiveMsg.receive event is signaled, you need to send back ack
> by calling
>      call TokenReceiveMsg.ReflectToken(gTokenBuf);
>
> You can see the code in FramAckM.nc.
>
> On Fri, Apr 11, 2008 at 1:58 AM, Bhavish Aggarwal <
> [EMAIL PROTECTED]> wrote:
>
> > I am writing an application to bridge packets from UART to radio in
> > tinyos 1. The send command on the radio returns a success but the
> > senddone event is not signalled. Could anyone please help me with this
> > issue. The code is as below.
> >
> > Thanks,
> >
> > Bhavish
> >
> > module UARTToRadioM{
> >        provides{
> >                interface StdControl;
> >        }
> >        uses{
> >                interface StdControl as UARTControl;
> >                interface ReceiveMsg as UARTReceive;
> >            interface BareSendMsg as UARTSend;
> >            interface TokenReceiveMsg as UARTTokenReceive;
> >
> >                interface StdControl as RadioControl;
> >                interface BareSendMsg as RadioSend;
> >                interface ReceiveMsg as RadioReceive;
> >
> >                interface Leds;
> >        }
> > }
> >
> > implementation{
> >
> >  void failBlink();
> >
> >  command result_t StdControl.init() {
> >    result_t ok1, ok2, ok3;
> >
> >    ok1 = call UARTControl.init();
> >    ok2 = call RadioControl.init();
> >    ok3 = call Leds.init();
> >
> >    return rcombine3(ok1, ok2, ok3);
> >  }
> >
> >  command result_t StdControl.start() {
> >    result_t ok1, ok2;
> >
> >    ok1 = call UARTControl.start();
> >    ok2 = call RadioControl.start();
> >
> >    return rcombine(ok1, ok2);
> >  }
> >
> >  command result_t StdControl.stop() {
> >    result_t ok1, ok2;
> >
> >    ok1 = call UARTControl.stop();
> >    ok2 = call RadioControl.stop();
> >
> >    return rcombine(ok1, ok2);
> >  }
> >
> >  event result_t UARTSend.sendDone(TOS_MsgPtr msg, result_t success) {
> >        if (!success) {
> >      failBlink();
> >    }
> >
> >    return SUCCESS;
> >  }
> >
> >  event TOS_MsgPtr UARTReceive.receive(TOS_MsgPtr Msg) {
> >        if (call RadioSend.send(&Msg) == SUCCESS) {
> >                call Leds.redToggle();
> >        }
> >        else{
> >                failBlink();
> >    }
> >
> >        return Msg;
> >  }
> >
> >  event TOS_MsgPtr UARTTokenReceive.receive(TOS_MsgPtr Msg, uint8_t
> > Token) {
> >        if (call RadioSend.send(Msg) == SUCCESS) {
> >                call Leds.redToggle();
> >        }
> >        else{
> >                call Leds.redToggle();
> > //              failBlink();
> >    }
> >
> >        return Msg;
> >  }
> >
> >  event TOS_MsgPtr RadioReceive.receive(TOS_MsgPtr Msg) {
> >    if ((!Msg->crc))
> >      return Msg;
> >
> >        if (call UARTSend.send(&Msg) == SUCCESS) {
> >                call Leds.greenToggle();
> >    }
> >        else {
> >                failBlink();
> >    }
> >
> >    return Msg;
> >  }
> >
> >
> >  event result_t RadioSend.sendDone(TOS_MsgPtr msg, result_t success) {
> >    if (!success) {
> >         call Leds.greenToggle();
> >                //failBlink();
> >    }
> >    call Leds.yellowToggle();
> >    return SUCCESS;
> >  }
> >
> >  void failBlink() {
> >    call Leds.yellowToggle();
> >  }
> > }
> >
> > configuration UARTToRadioC {
> > }
> > implementation {
> >  components Main, UARTToRadioM, RadioCRCPacket as Comm, FramerM, UART,
> > LedsC;
> >
> >  Main.StdControl -> UARTToRadioM;
> >
> >  UARTToRadioM.UARTControl -> FramerM;
> >  UARTToRadioM.UARTReceive -> FramerM;
> >  UARTToRadioM.UARTSend -> FramerM;
> >  UARTToRadioM.UARTTokenReceive -> FramerM;
> >
> >  UARTToRadioM.RadioControl -> Comm;
> >  UARTToRadioM.RadioSend -> Comm;
> >  UARTToRadioM.RadioReceive -> Comm;
> >
> >  UARTToRadioM.Leds -> LedsC;
> >
> >  FramerM.ByteControl -> UART;
> >  FramerM.ByteComm -> UART;
> > }
> > _______________________________________________
> > Tinyos-help mailing list
> > [email protected]
> > https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
> >
>
>
>
> --
> Renjie Huang
> Sensorweb Research Laboratory
> http://sensorweb.vancouver.wsu.edu/
> Washington State University
> _______________________________________________
> 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