Package: inet.physicallayer.ieee80211.packetlevel
Ieee80211Radio
compound moduleThis radio model is part of the IEEE 802.11 physical layer model. It supports multiple channels, different operation modes, and preamble modes. It must be used in conjunction with the Ieee80211RadioMedium model or other derived models.
This model provides sensible default values for the radio parameters to be used in IEEE 802.11 simulations. It also supports switching channels via ConfigureRadioCommand, or with direct C++ function calls.
See also Ieee80211ScalarRadio, and Ieee80211DimensionalRadio for more details.
TODO: check this Table 18-14—Receiver performance requirements
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Known subclasses
Name | Type | Description |
---|---|---|
Ieee80211DimensionalRadio | compound module |
This radio model uses dimensional transmission power (that changes over time and/or frequency) in the analog representation. It must be used in conjunction with the Ieee80211DimensionalRadioMedium model. |
Ieee80211IdealRadio | compound module |
This radio model uses ideal analog representation. It must be used in conjunction with the IdealRadioMedium model. |
Ieee80211ScalarRadio | compound module |
This radio model uses scalar transmission power in the analog representation. It must be used in conjunction with the Ieee80211ScalarRadioMedium model. |
Extends
Name | Type | Description |
---|---|---|
FlatRadioBase | compound module |
This module servces as a base module for flat radio models. |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
antennaType | string | "IsotropicAntenna" |
NED type of the antenna model |
transmitterType | string |
NED type of the transmitter model |
|
receiverType | string |
NED type of the receiver model |
|
energyConsumerType | string | "" |
NED type of the energy consumer model |
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 |
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 |
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 |
carrierFrequency | double | 2.412GHz |
center frequency of the band where the radio transmits and receives signals on the medium |
bandwidth | double | 2MHz |
bandwidth of the band where the radio transmits and receives signals on the medium |
opMode | string | "g(mixed)" |
operation mode |
bandName | string | "2.4 GHz" |
band name |
channelNumber | int | 0 |
initial channel number within the band (TODO: this is offset by 1) |
Properties
Name | Value | Description |
---|---|---|
class | Ieee80211Radio | |
display | i=block/wrxtx |
Gates
Name | Direction | Size | Description |
---|---|---|---|
upperLayerIn | input | ||
upperLayerOut | output | ||
radioIn | input |
Signals
Name | Type | Unit |
---|---|---|
radioChannelChanged | long |
Statistics
Name | Title | Source | Record | Unit | Interpolation Mode |
---|---|---|---|---|---|
radioChannel | Radio channel | radioChannelChanged | histogram, vector | sample-hold |
Source code
// // This radio model is part of the IEEE 802.11 physical layer model. It supports // multiple channels, different operation modes, and preamble modes. It must be // used in conjunction with the ~Ieee80211RadioMedium model or other derived // models. // // This model provides sensible default values for the radio parameters to be // used in IEEE 802.11 simulations. It also supports switching channels via // ~ConfigureRadioCommand, or with direct C++ function calls. // // See also ~Ieee80211ScalarRadio, and ~Ieee80211DimensionalRadio for more // details. // // TODO: check this Table 18-14—Receiver performance requirements module Ieee80211Radio extends FlatRadioBase { parameters: string opMode @enum("a","b","g(erp)","g(mixed)","n","p") = default("g(mixed)"); // operation mode string bandName @enum("2.4 GHz","5 GHz") = default("2.4 GHz"); // band name int channelNumber = default(0); // initial channel number within the band (TODO: this is offset by 1) carrierFrequency @unit(Hz) = default(2.412GHz); // the center frequency of the band is automatically set by the radio bandwidth @unit(Hz) = default(2MHz); antennaType = default("IsotropicAntenna"); transmitter.preambleDuration = default(-1 s); transmitter.bitrate = default(11Mbps); transmitter.headerBitLength = default(192b); transmitter.power = default(20mW); receiver.sensitivity = default(-85dBm); receiver.energyDetection = default(-85dBm); receiver.snirThreshold = default(4dB); *.opMode = this.opMode; *.bandName = this.bandName; *.channelNumber = this.channelNumber; @class(Ieee80211Radio); @signal[radioChannelChanged](type=long); @statistic[radioChannel](title="Radio channel"; source=radioChannelChanged; record=histogram,vector; interpolationmode=sample-hold); }File: src/inet/physicallayer/ieee80211/packetlevel/Ieee80211Radio.ned