But according to tossim document, the "simple" radio model places all nodes in a single cell and every bit transmitted is received without error. So it should not have any hidden station problem.

The thing is every time node is transmitting 0s, it is considered not transmitting. That's the part that I don't understand. I'm afraid that it has nothing to do with hidden station problem.


Regards,
Haibin




On 6/5/06, Aditya Bhave <[EMAIL PROTECTED]> wrote:

Any wireless xommunication has two problems associated with it

1. HIdden Station problem

2. Exposed Station problem.

You may want to google these terms to see what they mean. Essentially it means that it is not always possible to detect whether a channel is "really" idle or not. Thats why CSMA (used by tinyos) will not always work correctly. Newer versions of tinyos implemet the B-MAC and S-MAC protocol which supposedly solves these problems. If youre using older versionsof tinyos (< 2.0), you will have to figure out how to tackle these problems on your own at the application level. In my project, i used redundancy i.e every packet was sent 3 times at 500 ms intervals with the hope that at least one of these packet reaches the destination correctly. It worked for me.



 




regards,
Aditya Bhave

From:  "Liu Haibin" < [EMAIL PROTECTED]>
To:  [email protected]
Subject:   [Tinyos-help] Re: question on simple_transmit from Rfm_model.c
Date:  Mon, 5 Jun 2006 18:04:10 +0800


For example, let's say we have 2 motes. Mote 0 is transmitting 0s all the time, so transmitting[5] = 0, radio_active[0] = 0, and radio_active[1] = 0.

While mote 0 is transmitting 0s, the TOSH_rfm_rx_bit() in TOS_SIGNAL_HANDLER(SIG_OUTPUT_COMPARE2B, ()) of mote 1 is called. And because radio_active[1] == 0, TOSH_rfm_rx_bit() returns 0. After 12 bits, it signal
ChannelMon.idleDetect() to show the channel is free. But actually mote 0 is using the channel and transmitting 0s.

Why is it so? Any help is appreciated.


Regards,
Haibin





On 6/2/06, Liu Haibin < [EMAIL PROTECTED]> wrote:
Hi,

I have a question about the following code from Rfm_model.c. The parameter bit can be 1 or 0. When simple_trasmit is transmitting bit 1,  transmitting[modeID] is set to 1, meaning it's transmitting. However, when simple_transmit is transmitting bit 0, transmitting[modeID] is set to 0, meaning it's not transmitting (actually it's transmitting bit 0). Why is it so? I must have the concept wrong. Could any help me on this?


void simple_transmit(int moteID, char bit) {
  int i;
 
  transmitting[moteID] = bit;
  for (i = 0; i < tos_state.num_nodes; i++) {
    radio_active[i] += bit;
  }
}


Regards,
Haibin


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


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

Reply via email to