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