Package: inet.physicallayer.wireless.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.
<b>See also:</b> ~Ieee80211ScalarRadio, ~Ieee80211DimensionalRadio.
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 | (no description) |
| Ieee80211ScalarRadio | compound module | (no description) |
| Ieee80211UnitDiskRadio | compound module | (no description) |
Extends
| Name | Type | Description |
|---|---|---|
| FlatRadioBase | compound module |
Serves as a base module for flat radio models. |
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| displayStringTextFormat | string | "" |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
| 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 |
| signalAnalogRepresentation | string | "scalar" | |
| centerFrequency | double | 2.412GHz |
Center frequency of the band where the radio transmits and receives signals on the medium |
| bandwidth | double | nan MHz |
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) |
| fcsMode | string | "declared" |
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 | Description |
|---|---|---|---|
| radioChannelChanged | long |
Statistics
| Name | Title | Source | Record | Unit | Interpolation Mode | Description |
|---|---|---|---|---|---|---|
| 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 ~Ieee80211ScalarRadio, ~Ieee80211DimensionalRadio. // //# TODO check this Table 18-14—Receiver performance requirements module Ieee80211Radio extends FlatRadioBase { parameters: string opMode @enum("a","b","g(erp)","g(mixed)","n(mixed-2.4Ghz)","p","ac") = default("g(mixed)"); // Operation mode string bandName @enum("2.4 GHz","5 GHz","5 GHz (20 MHz)","5 GHz (40 MHz)","5 GHz (80 MHz)","5 GHz (160 MHz)","5.9 GHz") = default("2.4 GHz"); // Band name int channelNumber = default(0); // Initial channel number within the band (TODO this is offset by 1) string fcsMode @enum("declared","computed") = default("declared"); transmitter.typename = default("Ieee80211Transmitter"); receiver.typename = default("Ieee80211Receiver"); receiver.errorModel.typename = default(signalAnalogRepresentation != "unitDisk" ? "Ieee80211NistErrorModel" : ""); centerFrequency @unit(Hz) = default(2.412GHz); // The center frequency of the band is automatically set by the radio bandwidth @unit(Hz) = default(nan MHz); transmitter.preambleDuration = default(-1 s); transmitter.bitrate = default(11Mbps); transmitter.headerLength = default(192b); transmitter.power = default(20mW); receiver.bandwidth = default(22 MHz); // The highest value 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/wireless/ieee80211/packetlevel/Ieee80211Radio.ned