On Thu, Jul 31, 2008 at 12:59 PM, ram kishore <[EMAIL PROTECTED]> wrote:
> Hi,
> Can I know what is the amount of random time backed-off to avoid
> collisions?
> Can any interface tell me that?
>
> Regards,
> Kishore
>
> On Thu, Jul 31, 2008 at 1:03 AM, Michael Schippling <[EMAIL PROTECTED]> wrote:
>> I don't know an exact message delay figure. There's some software
>> overhead, and then the MAC protocol which may backoff a random
>> time to avoid collisions. There's also some indication that there
>> should be a few milli-sec delay before retrying a message -- see
>> recent posts and my message reliability reports -- but that might
>> be receiver related.
>>
>> MS
>>
>> ram kishore wrote:
>>>
>>> Hi,
>>> The robocode you sent gave a deep insight.Thanks Micheal.
>>> One question;How long(in micro seconds) will the mote wait before
>>> doing retransmission? This should be protocol specific.
>>>
>>> Regards,
>>> Kishore
>>>
>>> On Wed, Jul 30, 2008 at 10:29 PM, Michael Schippling <[EMAIL PROTECTED]>
>>> wrote:
>>>>
>>>> Lets keep this on the help list....
>>>>
>>>> As for loop 1, if you enable ACKs in the protocol they are handled
>>>> in the lower levels and sendDone() is not called until the message
>>>> is ACKed or times out. Search this list for many ACK explanations,
>>>> and references to my robocode that makes extensive use of ACKs.
>>>>
>>>> As for message copy. You need a message buffer that lasts at least
>>>> until all the sends are Done. If you can keep track of the buffer
>>>> from the original message then you can just re-use it, otherwise
>>>> you should copy it before trying to send again because the send
>>>> operation will last longer than the scope of the function call,
>>>> task or not...
>>>>
>>>> MS
>>>>
>>>>
>>>> ram kishore wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I put loop 1 because I want a message (ACK) to be received after a
>>>>> message is sent.Thats why I switched to Receiving mode.
>>>>> Secondly,putting the re-transmit into separate task and post it form
>>>>> done() would require the message to be copied again, which is memory
>>>>> inefficient.
>>>>>
>>>>> Regards,
>>>>> Kishore
>>>>>
>>>>> On Tue, Jul 29, 2008 at 11:28 PM, Michael Schippling <[EMAIL PROTECTED]>
>>>>> wrote:
>>>>>>
>>>>>> 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
>>
>
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help