UnitDiskRadio

Package: inet.physicallayer.unitdisk

UnitDiskRadio

compound module

This radio model provides a very simple but fast and predictable physical layer behavior. It must be used in conjunction with the UnitDiskRadioMedium model.

The idea behind this radio model is to describe transmissions with a few distance based parameters: communication range, interference range, and detection range. Whether the reception is successful or not, depends on the distance between the transmitter and the receiver. This model is similar to the unit disk radio, but it's also more general than that. The ideal model also supports an ideal communication channel where all transmissions are received sucessfully independent of distance and interfering transmissions.

See also: UnitDiskRadioMedium, UnitDiskAnalogModel, UnitDiskTransmitter, UnitDiskReceiver.

IAntenna ITransmitter IReceiver IEnergyConsumer

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Extends

Name Type Description
Radio compound module

The radio model describes the physical device that is capable of transmitting and receiving signals on the medium. It contains an antenna model, a transmitter model, a receiver model, and an energy consumer model.

Parameters

Name Type Default value Description
radioMediumModule string "radioMedium"

module path of the medium module where this radio communicates

energySourceModule string ""

module path of the energy source module which provides energy to the radio

initialRadioMode string "off"
switchingTimes string "ms 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"

time parameters to switch between radio modes

sendRawBytes bool false

when true packets are serialized into a sequence of bytes before sending out

separateTransmissionParts bool false

when enabled the transmission of preamble, header and data part are simulated separately

separateReceptionParts bool false

when enabled the reception of preamble, header and data part are simulated separately

displayCommunicationRange bool false

if true communication range is displayed as a blue circle around the node

displayInterferenceRange bool false

if true interference range is displayed as a gray circle around the node

Properties

Name Value Description
display i=block/wrxtx
class UnitDiskRadio

Gates

Name Direction Size Description
upperLayerIn input
upperLayerOut output
radioIn input

Signals

Name Type Unit
receptionStateChanged long
radioModeChanged long
transmissionStarted
receptionEnded
transmittedSignalPartChanged long
receptionStarted
packetReceivedFromUpper cPacket
receivedSignalPartChanged long
packetSentToUpper cPacket
transmissionStateChanged long
listeningChanged
transmissionEnded

Statistics

Name Title Source Record Unit Interpolation Mode
receptionState Radio reception state receptionStateChanged count, vector sample-hold
bitErrorRate Bit error rate bitErrorRate(packetSentToUpper) histogram
radioMode Radio mode radioModeChanged count, vector sample-hold
packetErrorRate Packet error rate packetErrorRate(packetSentToUpper) histogram
symbolErrorRate Symbol error rate symbolErrorRate(packetSentToUpper) histogram
transmissionState Radio transmission state transmissionStateChanged count, vector sample-hold
minSnir Min SNIR minimumSnir(packetSentToUpper) histogram

Source code

//
// This radio model provides a very simple but fast and predictable physical
// layer behavior. It must be used in conjunction with the ~UnitDiskRadioMedium
// model.
//
// The idea behind this radio model is to describe transmissions with a few
// distance based parameters: communication range, interference range, and
// detection range. Whether the reception is successful or not, depends on the
// distance between the transmitter and the receiver. This model is similar to
// the unit disk radio, but it's also more general than that. The ideal model
// also supports an ideal communication channel where all transmissions are
// received sucessfully independent of distance and interfering transmissions.
//
// @see ~UnitDiskRadioMedium, ~UnitDiskAnalogModel, ~UnitDiskTransmitter,
// ~UnitDiskReceiver.
//
module UnitDiskRadio extends Radio
{
    parameters:
        transmitter.typename = default("UnitDiskTransmitter");
        receiver.typename = default("UnitDiskReceiver");
        separateTransmissionParts = default(false);
        separateReceptionParts = default(false);
        @class(UnitDiskRadio);
}

File: src/inet/physicallayer/unitdisk/UnitDiskRadio.ned