hi, Razvan Musaloiu-E.,
thanks for your nice help.
I proposed this question is becuase that when I was using the tutorial code 
"EasyCollection" which used the sample routing protocol ctp, I found that if I 
set the flag CFLAGS += -DCC2420_NO_ACKNOWLEDGEMENTS in MakeFile, then the ctp 
protocol is almost failed.

I greped in the ctp lib diretory, but not found there is some file used 
PacketAcknowledgements interface,  could you help me to figure out why I set 
that flag will lead to the ctp protocol fail? thanks

and another question, there are a big number of CFLAGS += -DCC2420_* flags in 
tinyos, could you tell me where I can find a file that list all the CFLAGS 
there?
great thanks
Sam

"Razvan Musaloiu-E." <[EMAIL PROTECTED]> 写道: Hi!

On Thu, 25 Sep 2008, Renee Azhen wrote:

> thanks, Razvan Musaloiu-E,
> then what is the usage of CC2420_NO_ACKNOWLEDGEMENTS?

The CC2420_NO_ACKNOWLEDGEMENTS will disable the sending of ACKs. The other 
directive related to ACKs is CC2420_HW_ACKNOWLEDGEMENTS which will disable 
the software ACKs and enable the hardware ones.

> If a sender transmit a packet, then the receiver will reply with a ACK.

If a sender does not request for ACKs then the received will not ACK the 
packet. If the packet requests for an ACK and the receiver has disabled 
the ACKS then again the ACK will not be sent.

> So what interface the sender will use to receive the ACK?
> and how does the sender process the ACK message?
> Do you know some sample code about this flag? could you please share it with 
> me?

Actually there is such a problem already in the tree in this place:
  apps/tests/cc2420/TestAcks

All the best!
Razvan ME

> "Razvan Musaloiu-E."  写道: Hi!
>
> On Wed, 24 Sep 2008, Renee Azhen wrote:
>
>> Does this flag(CC2420_NO_ACKNOWLEDGEMENTS) is used by mac/link layer?
>> if the CC2420_NO_ACKNOWLEDGEMENTS was set, then no ack will be sent by
>> receiver, so the receive.Done event will always return true?
>
> You are talking about AMSend.sendDone? AMSend.sendDone will not return a
> fail even if the packet is not acked. To check for that you have to use
> the wasAcked from the PacketAcknowledgements interface
> (PacketAcknowledgements.nc from tos/interfaces). You also need to use the
> requestAck from it before doing a AMSend.send of the packet.
>
> --
> Razvan ME
>
>> Tony O'Donovan
>> When a sender tranmits a message to a receiver the receiver can send an
>> acknowledgment (ACK) message. The purpose of the ACK is to let the
>> sender know the message was successfully received. If the
>> CC2420_NO_ACKNOWLEDGEMENTS option is set the receiver does not send an
>> ACK when it receives a message.
>>
>>
>> --- Renee Azhen  wrote:
>>
>>> hi, all,
>>> I am using the collection protocol, and found that
>>> if I use:
>>> CFLAGS += -DCC2420_NO_ACKNOWLEDGEMENTS
>>> CFLAGS += -DCC2420_NO_ADDRESS_RECOGNITION
>>> in the app makfile, network almost failed, it can't
>>> deliver any packet.
>>>
>>> So is there anyone know what is the usage of that
>>> line in Makefile??
>>>
>>> thanks
>>> Sam
>>>
>>>
>
>
>
> ---------------------------------
> 雅虎邮箱,您的终生邮箱!

       
---------------------------------
 雅虎邮箱,您的终生邮箱!
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to