beats me...why are you doing loop 1? by the time you get to done()
transmission should be complete. Also I would put the re-transmit
into a separate task and post it from done()...

MS

ram kishore wrote:
> Hi,
>      I did the following:
> 
>             event result_t RsendMsg.sendDone(TOS_MsgPtr msg, result_t success)
>   {
>        result_t txmode,sndmsg;
> 
>               TOSH_uwait(1000);
> 
>               do{                                                             
>    /*LOOP 1*/
>                 txmode = call CC1000Control.RxMode();
>                 }while(!txmode);
>                 if ( txmode == SUCCESS )
>                 call CLeds.yellowOff();
> 
>                do{                                                            
>    /* LOOP2*/
>                 sndmsg = call RsendMsg.send(TOS_BCAST_ADDR,12,msg);
>                 }while(!sndmsg);
>                if ( sndmsg == SUCCESS )
>                call CLeds.yellowOn();
>               
>    return SUCCESS;
>   }
> 
> If I remove LOOP 1, then retransmissions occur.But, when LOOP 1 is
> included no retransmissions occur.
> What could be the reason.?
> 
> Regards,
> Kishore
> On Mon, Jul 28, 2008 at 11:44 PM, Michael Schippling <[EMAIL PROTECTED]> 
> wrote:
>> Just some things to try...
>>
>> I'd bet that the message buffer gets reused or erased before your
>> second send can complete. You may also have trouble calling the
>> send directly from the done, since done is in an "event"
>> context which is sometimes tantamount to an interrupt, perhaps
>> try copying the message and posting a task to resend?
>>
>> Another possibility is that you are walking over the "normal"
>> send process. You should check the result of the second send
>> to see if it's giving you an error. And you may need to put
>> in some condition variable to block simultaneous sends.
>>
>> All that said, TOSBase seems to be a bit of a
>> hack-to-get-things-to-work so it might not be
>> easy to modify....
>>
>> MS
>>
>>
>> ram kishore wrote:
>>> Hi all,
>>>         I am using TOS1.1.10 .In the standard receiver application
>>> TOSBase. I am trying to retransmit the message.I sent a message by
>>> calling
>>>
>>>         call RadioSend.send(gpTxMsg);.
>>>
>>>        For this RadioSend.sendDone(TOS_MsgPtr Msg, result_t success)
>>> event is generated.
>>>        Hoping that Msg is a pointer to the already transmitted
>>> message,I call
>>>
>>>       call RadioSend.send(Msg);  to retransmit the same message again.
>>>
>>>       But the message is not being re-transmitted .
>>>
>>>     Can somebody tell me what is wrong   or  how to accomplish
>>> retransmission?
>>>
>>> Regards,
>>> Kishore
>>> _______________________________________________
>>> 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