UnitDiskRadio

Package: inet.physicallayer.wireless.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.

antenna : like IAntenna

IsotropicAntenna: This antenna model describes the theoretical point source which radiates the same intensity of...

IAntenna: The antenna model describes the physical device (a part of the radio) which converts electric...

Source:
antenna: <default("IsotropicAntenna")> like IAntenna {
    parameters:
        @display("p=100,100");
} transmitter : like ITransmitter

ITransmitter: The transmitter model describes the physical process which converts packets into electric signals.

Source:
transmitter: <> like ITransmitter {
    parameters:
        @display("p=100,200");
} receiver : like IReceiver

IReceiver: The receiver model describes the physical process which converts electric signals into packets.

Source:
receiver: <> like IReceiver {
    parameters:
        @display("p=100,300");
} energyConsumer : like IEnergyConsumer

IEnergyConsumer: The energy consumer models describe the energy consumption process of devices over time.

Source:
energyConsumer: <default("")> like IEnergyConsumer if typename != "" {
    parameters:
        @display("p=100,400");
}

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

Scheduled messages (observed)

msgkindctrltagsmsgnamecontext
omnetpp::cMessage0transmissionTimerfilled
omnetpp::cMessage0WirelessSignalreceptionTimer

Direct method calls (observed)

call tofunctioninfo
PcapRecorderinet::PcapRecorder::receiveSignalpacketReceivedFromLower
AckingMacinet::AckingMac::receiveSignaltransmissionStateChanged
BMacinet::BMac::receiveSignalradioModeChanged
BMacinet::BMac::receiveSignaltransmissionStateChanged
CsmaCaMacinet::CsmaCaMac::receiveSignalreceptionStateChanged
CsmaCaMacinet::CsmaCaMac::receiveSignaltransmissionStateChanged
Ieee80211Macinet::ieee80211::Ieee80211Mac::receiveSignalradioModeChanged
Ieee80211Macinet::ieee80211::Ieee80211Mac::receiveSignalreceivedSignalPartChanged
Ieee80211Macinet::ieee80211::Ieee80211Mac::receiveSignalreceptionStateChanged
Ieee80211Macinet::ieee80211::Ieee80211Mac::receiveSignaltransmissionStateChanged
Ieee802154Macinet::Ieee802154Mac::receiveSignaltransmissionStateChanged
LMacinet::LMac::receiveSignalradioModeChanged
LMacinet::LMac::receiveSignaltransmissionStateChanged
XMacinet::XMac::receiveSignalradioModeChanged
XMacinet::XMac::receiveSignaltransmissionStateChanged
StateBasedEpEnergyConsumerinet::physicallayer::StateBasedEpEnergyConsumer::receiveSignalradioModeChanged
StateBasedEpEnergyConsumerinet::physicallayer::StateBasedEpEnergyConsumer::receiveSignalreceivedSignalPartChanged
StateBasedEpEnergyConsumerinet::physicallayer::StateBasedEpEnergyConsumer::receiveSignalreceptionStateChanged
StateBasedEpEnergyConsumerinet::physicallayer::StateBasedEpEnergyConsumer::receiveSignaltransmissionStateChanged
StateBasedEpEnergyConsumerinet::physicallayer::StateBasedEpEnergyConsumer::receiveSignaltransmittedSignalPartChanged
UnitDiskRadioinet::physicallayer::UnitDiskRadio::setRadioModesetRadioMode
UnitDiskRadioMediuminet::physicallayer::RadioMedium::addRadioaddRadio
UnitDiskRadioMediuminet::physicallayer::RadioMedium::listenOnMediumlistenOnMedium
UnitDiskRadioMediuminet::physicallayer::RadioMedium::receivePacketreceivePacket
UnitDiskRadioMediuminet::physicallayer::RadioMedium::transmitPackettransmitPacket

Called methods (observed)

functioninfocall from
inet::physicallayer::UnitDiskRadio::handleOperationStagehandleOperationStageScenarioManager
inet::physicallayer::UnitDiskRadio::setRadioModesetRadioModeAckingMac, BMac, CsmaCaMac, Ieee80211Mac, Ieee802154Mac, LMac, XMac, UnitDiskRadio

Incoming messages (observed)

gatemsgkindctrlsrcModuletags
radioInWirelessSignal0UnitDiskRadio
upperLayerInPacket0AckingMacInterfaceReq, MacAddressInd, MacAddressReq, PacketProtocolTag, DispatchProtocolInd?, ErrorRateInd?, InterfaceInd?, MulticastReq?, NetworkProtocolInd?, SignalPowerInd?, SignalTimeInd?, SnirInd?, SocketReq?, TransportProtocolInd?
upperLayerInPacket0BMacPacketProtocolTag, DispatchProtocolInd?, InterfaceReq?, MacAddressReq?, NetworkProtocolInd?, SocketReq?
upperLayerInPacket0CsmaCaMacMacAddressInd, PacketProtocolTag, DispatchProtocolInd?, ErrorRateInd?, InterfaceInd?, InterfaceReq?, MacAddressReq?, MulticastReq?, NetworkProtocolInd?, SignalPowerInd?, SignalTimeInd?, SnirInd?, SocketReq?, TransportProtocolInd?, UserPriorityInd?
upperLayerInPacket0Ieee80211MacMacAddressInd, PacketProtocolTag, Ieee80211ModeReq, DispatchProtocolInd?, DispatchProtocolReq?, InterfaceReq?, MacAddressReq?, NetworkProtocolInd?, SocketReq?, LlcProtocolTag?
upperLayerInPacket0Ieee802154MacInterfaceReq, MacAddressReq, PacketProtocolTag, DispatchProtocolInd?, NetworkProtocolInd?, SocketReq?
upperLayerInPacket0LMacPacketProtocolTag
upperLayerInPacket0XMacPacketProtocolTag
upperLayerInPacket192XMacInterfaceReq, MacAddressReq, PacketProtocolTag, DispatchProtocolInd?, NetworkProtocolInd?, SocketReq?
upperLayerInRequest1ConfigureRadioCommandIeee80211Mac

Outgoing messages (observed)

gatemsgkindctrldestModuletags
upperLayerOutPacket0AckingMacErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd
upperLayerOutPacket0BMacErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd
upperLayerOutPacket0CsmaCaMacErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd
upperLayerOutPacket0Ieee80211MacErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd
upperLayerOutPacket0Ieee802154MacErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd
upperLayerOutPacket0LMacErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd
upperLayerOutPacket0XMacErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd
upperLayerOutPacket192XMacErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd

Packet operations (observed)

chunkTypepacketAction
UnitDiskPhyHeaderinsertAtFront, popAtFront

Shared Tagging operations (observed)

tagTypetagAction
clearTags
ErrorRateIndfindTag
PacketProtocolTagaddTag, addTagIfAbsent, getTag
SnirIndfindTag

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/wireless/unitdisk/UnitDiskRadio.ned