Search code examples
c++omnet++inet

What is the correlation between RadioMedium's maxCommunicationRange parameter and Radio transmitter's power parameter?


Warm greetings to all

I want to have an understanding of the RadioMedium's parameter: maxCommunicationRange and the Radio transmitter's parameter : power

Indeed, I wanted my nodes don't communicate with neighbors if those later are beyond a threshold range. I parameterized as follow :

*.radioMedium.*.power = -110dBm
*.radioMedium.*.bandwidth = 2.8MHz
*.radioMedium.*.centerFrequency = 2.4GHz
*.radioMedium.*.maxTransmissionPower = 2.24mW
*.radioMedium.*.maxTransmissionDuration = 1000ms
*.radioMedium.*.maxCommunicationRange = 20m

**.radio.transmitter.power = 2.24mW

But I'm surprised to see that packets are still transmitted to all the nodes in my network. I even set *.radioMedium.*.maxCommunicationRange = 0m but all the nodes still receive packets.

Unlikely, when I variate the transmitter's power parameter (**.radio.transmitter.power = 0.05mW), I clearly saw that only the nodes which are at a certain distance around the sender node are receiving the packets. But the problem is that I can't exactly know this admissible distance of communication whereas I need to know it in my work.

1- How does this parameter ( maxCommunicationRange ) work?

2- How can I impose to my nodes not to communicate with each other beyond a certain distance?

3- What is the relationship between maxCommunicationRange and **.radio.transmitter.power?

I'm using omnetpp-6.0pre11 and INET 4.3

Many thanks for your continued support on Stackoverflow.


Solution

  • The maxCommunicationRange is the parameter of the MediumLimitCache submodule of RadioMedium. The medium limit cache is an optimization, so that the radio medium doesn't have to calculate the ranges with each transmitter/receiver pair from the power and sensitivity, but you can specify some values to use (by default the medium limit cache is not used.) These ranges (max communication and interference range) are used for further optimization, such as the range filter (rangeFilter parameter in the radio medium). The filter can be set so that transmissions which are beyond the max communication range are not sent to the nodes.

    In your example, if you want the radio medium to not send any transmissions to nodes beyond the max communication range, you also need to set the range filter to communication range (see the radio medium NED documentation).

    So by default, the max communication range of the medium limit cache is not used, but the success of a transmission is calculated from the transmitter power, attentuation due to distance and the receiver sensitivity. To set a communication range, the power and sensitivity need to be fine-tuned.

    However, you mentioned that it is important for the communication range to be a specific distance. For this, the UnitDiskRadio model might be better suited (if you don't care about other things about the transmissions such as signal attenuation). In this model, you can set specific communication ranges for each transmitter, and transmissions in the range are always successful, out of range they are never.