Package: inet.physicallayer.wireless.unitdisk
UnitDiskRadio
compound moduleThis 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.
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)
msg | kind | ctrl | tags | msgname | context |
---|---|---|---|---|---|
omnetpp::cMessage | 0 | transmissionTimer | filled | ||
omnetpp::cMessage | 0 | WirelessSignal | receptionTimer |
Direct method calls (observed)
call to | function | info |
---|---|---|
PcapRecorder | inet::PcapRecorder::receiveSignal | packetReceivedFromLower |
AckingMac | inet::AckingMac::receiveSignal | transmissionStateChanged |
BMac | inet::BMac::receiveSignal | radioModeChanged |
BMac | inet::BMac::receiveSignal | transmissionStateChanged |
CsmaCaMac | inet::CsmaCaMac::receiveSignal | receptionStateChanged |
CsmaCaMac | inet::CsmaCaMac::receiveSignal | transmissionStateChanged |
Ieee80211Mac | inet::ieee80211::Ieee80211Mac::receiveSignal | radioModeChanged |
Ieee80211Mac | inet::ieee80211::Ieee80211Mac::receiveSignal | receivedSignalPartChanged |
Ieee80211Mac | inet::ieee80211::Ieee80211Mac::receiveSignal | receptionStateChanged |
Ieee80211Mac | inet::ieee80211::Ieee80211Mac::receiveSignal | transmissionStateChanged |
Ieee802154Mac | inet::Ieee802154Mac::receiveSignal | transmissionStateChanged |
LMac | inet::LMac::receiveSignal | radioModeChanged |
LMac | inet::LMac::receiveSignal | transmissionStateChanged |
XMac | inet::XMac::receiveSignal | radioModeChanged |
XMac | inet::XMac::receiveSignal | transmissionStateChanged |
StateBasedEpEnergyConsumer | inet::physicallayer::StateBasedEpEnergyConsumer::receiveSignal | radioModeChanged |
StateBasedEpEnergyConsumer | inet::physicallayer::StateBasedEpEnergyConsumer::receiveSignal | receivedSignalPartChanged |
StateBasedEpEnergyConsumer | inet::physicallayer::StateBasedEpEnergyConsumer::receiveSignal | receptionStateChanged |
StateBasedEpEnergyConsumer | inet::physicallayer::StateBasedEpEnergyConsumer::receiveSignal | transmissionStateChanged |
StateBasedEpEnergyConsumer | inet::physicallayer::StateBasedEpEnergyConsumer::receiveSignal | transmittedSignalPartChanged |
UnitDiskRadio | inet::physicallayer::UnitDiskRadio::setRadioMode | setRadioMode |
UnitDiskRadioMedium | inet::physicallayer::RadioMedium::addRadio | addRadio |
UnitDiskRadioMedium | inet::physicallayer::RadioMedium::listenOnMedium | listenOnMedium |
UnitDiskRadioMedium | inet::physicallayer::RadioMedium::receivePacket | receivePacket |
UnitDiskRadioMedium | inet::physicallayer::RadioMedium::transmitPacket | transmitPacket |
Called methods (observed)
function | info | call from |
---|---|---|
inet::physicallayer::UnitDiskRadio::handleOperationStage | handleOperationStage | ScenarioManager |
inet::physicallayer::UnitDiskRadio::setRadioMode | setRadioMode | AckingMac, BMac, CsmaCaMac, Ieee80211Mac, Ieee802154Mac, LMac, XMac, UnitDiskRadio |
Incoming messages (observed)
Outgoing messages (observed)
gate | msg | kind | ctrl | destModule | tags |
---|---|---|---|---|---|
upperLayerOut | Packet | 0 | AckingMac | ErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd | |
upperLayerOut | Packet | 0 | BMac | ErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd | |
upperLayerOut | Packet | 0 | CsmaCaMac | ErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd | |
upperLayerOut | Packet | 0 | Ieee80211Mac | ErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd | |
upperLayerOut | Packet | 0 | Ieee802154Mac | ErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd | |
upperLayerOut | Packet | 0 | LMac | ErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd | |
upperLayerOut | Packet | 0 | XMac | ErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd | |
upperLayerOut | Packet | 192 | XMac | ErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd |
Packet operations (observed)
chunkType | packetAction |
---|---|
UnitDiskPhyHeader | insertAtFront, popAtFront |
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
clearTags | |
ErrorRateInd | findTag |
PacketProtocolTag | addTag, addTagIfAbsent, getTag |
SnirInd | findTag |
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