On Dec 18, 2006, at 12:17 PM, [EMAIL PROTECTED] wrote:

Dear Mr. Philip Levis,

I'm doing simulation with TOSSIM in TinyOS 2.x.
I have a question about variable "receiving" in UseGainInterferenceModelC.nc. The command putOnAirTo calls sim_gain_put() as many as the number of links
which source node has. Eventually, enqueue_receive_event() sets the
variable "receiving" to 1 if there is no receiving packet. I'm wondering
how the variable "receiving" still has 0 for second link, when
sim_gain_put() for first link set the variable "receiving" to 1. I
know "receiving" is a global variable.
I beg your explanation. Thank you.

The variable "receiving" is for a specific node, not a link. It denotes the reception state at that node.

The variable "receiving" is intended to capture whether or not the radio is searching for a packet preamble. If receiving is 0, then the simulation is looking for preambles. If receiving is 1, then it thinks it is receiving a packet and so does not look for preambles. This logic is based on the observed behavior of the CC2420 radio and default TinyOS CC1000 stack.

The logic matters when a node starts successfully hearing packet A and during packet A starts to hear a much stronger packet B. While B's preamble could be detected, the radio stack just sees it as a corruption of packet A. Therefore A is lost and B is not received. Once A ends, however (based on the length field), the radio starts looking for preambles again. There are radio stacks (e.g., the Ember version of the CC2420, and Kamin Whitehouse's experimental CC1000 capture-aware stack) which detect the stronger preamble and reset packet reception. But since in the case of 802.15.4 the current hardware TinyOS platforms use and in the case of the CC1000 the software stack doesn't support this, the simulation discards the packet.

Phil
_______________________________________________
Tinyos-help mailing list
[email protected]
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to