Package: inet.visualizer.canvas.physicallayer
MediumCanvasVisualizer
simple moduleVisualizes a medium on a 2D canvas. It displays communication ranges and interference ranges as circles around network nodes. It displays an image at network nodes which are currently transmitting, and a different image at other network nodes which are currently receiving. It also displays radio signals as a 2D ring or a 3D sphere as they propagate through the medium.
<b>See also:</b> ~MediumCanvasVisualizer, ~MediumVisualizer, ~MediumVisualizerBase, ~IMediumVisualizer
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Extends
| Name | Type | Description |
|---|---|---|
| MediumVisualizerBase | simple module |
Base module for medium visualizer simple modules. It keeps track of ongoing signal departures, ongoing signal arrivals, and propagating signals. |
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 |
| visualizationTargetModule | string | "^" |
Module path relative to the visualizer which determines where the visualization should appear in the user interface, parent module by default |
| visualizationSubjectModule | string | "^" |
Module path relative to the visualizer which determines what part of the simulation model the visualizer displays in the user interface, parent module by default |
| tags | string | "" |
Tag added to each visualization for disambiguation in the runtime environment |
| mediumModule | string | "radioMedium" |
The medium module that is displayed, refers to a top-level submodule by default |
| networkNodeVisualizerModule | string | "^.networkNodeVisualizer" |
The network node visualizer module, refers to a sibling submodule by default |
| nodeFilter | string | "*" |
Which nodes are considered, matches all nodes by default |
| interfaceFilter | string | "*" |
Which interfaces are considered, matches all interfaces by default |
| packetFilter | object | "*" |
Which packets are considered, matches all packets by default |
| displaySignals | bool | false |
Display signals propagating through the medium, disabled by default |
| signalColor | string | "dark" |
Signal color is a list of colors or a color group name (e.g., dark, light), a set of dark colors by default |
| signalPropagationAnimationSpeed | double | nan |
Animation speed while the very beginning or end of a signal is propagating on the medium, value must be in the range (0, +inf) or NaN, the latter means automatic setting |
| signalPropagationAnimationTime | double | 1s |
Signal propagation animation duration when signalPropagationAnimationSpeed is unspecified |
| signalPropagationAdditionalTime | double | 0s |
Additional simulation time to animate signal propagation after leaving the last receiver |
| signalTransmissionAnimationSpeed | double | nan |
Animation speed while a signal is being transmitted on the medium, value must be in the range (0, +inf) or NaN, the latter means automatic setting |
| signalTransmissionAnimationTime | double | 1s |
Signal transmission animation duration when signalTransmissionAnimationSpeed is unspecified |
| signalAnimationSpeedChangeTimeMode | string | "realTime" |
Specifies the time mode for animation speed changes between propagation and transmission animation |
| signalAnimationSpeedChangeTime | double | 1s |
Animation speed changes smoothly from propagationAnimationSpeed to transmissionAnimationSpeed in the specified real time |
| displaySignalDepartures | bool | false |
Display an image where a signal departure is currently in progress, disabled by default |
| signalDepartureImage | string | "misc/signal_departure.png" |
Image for ongoing signal departures |
| signalDeparturePlacementHint | string | "topCenter" |
Annotation placement hint, space-separated list of any, top, bottom, left, right, topLeft, topCenter, topRight, etc. |
| signalDeparturePlacementPriority | double | 1 |
Determines the order of annotation positioning |
| displaySignalArrivals | bool | false |
Display an image where a signal arrival is currently in progress, disabled by default |
| signalArrivalImage | string | "misc/signal_arrival.png" |
Image for ongoing signal arrivals |
| signalArrivalPlacementHint | string | "topCenter" |
Annotation placement hint, space-separated list of any, top, bottom, left, right, topLeft, topCenter, topRight, etc. |
| signalArrivalPlacementPriority | double | -1 |
Determines the order of annotation positioning |
| displayCommunicationRanges | bool | false |
Display communication ranges as circles around radios, enabled by default |
| communicationRangeLineColor | string | "blue" |
Communication range circle line color, blue by default |
| communicationRangeLineStyle | string | "solid" |
Communication range circle line style, solid by default |
| communicationRangeLineWidth | double | 1 |
Communication range circle line width, 1 by default |
| displayInterferenceRanges | bool | false |
Display interference ranges as circles around radios, disabled by default |
| interferenceRangeLineColor | string | "gray" |
Interference range circle color, gray by default |
| interferenceRangeLineStyle | string | "solid" |
Interference range circle line style, solid by default |
| interferenceRangeLineWidth | double | 1 |
Interference range circle line width, 1 by default |
| autoPowerAxis | bool | true |
parameters shared between power density maps, spectrums, and spectrograms |
| signalMinPower | double | inf dBmW |
Minimum signal power if the axis is not automatic |
| signalMaxPower | double | 0 dBmW |
Maximum signal power if the axis is not automatic |
| signalMinPowerDensity | double | inf dBmWpMHz |
Minimum signal power density if the axis is not automatic |
| signalMaxPowerDensity | double | -inf dBmWpMHz |
Maximum signal power density if the axis is not automatic |
| autoTimeAxis | bool | true |
Enables automatic time axis configuration |
| signalMinTime | double | 0 s |
Relative to the current simulation time |
| signalMaxTime | double | 0 s |
Relative to the current simulation time |
| autoFrequencyAxis | bool | true |
Enables automatic frequency axis configuration |
| signalMinFrequency | double | inf Hz |
Minimum signal frequency if the axis is not automatic |
| signalMaxFrequency | double | -inf Hz |
Maximum signal frequency if the axis is not automatic |
| displayMainPowerDensityMap | bool | false |
parameters for the main power density map |
| mainPowerDensityMapPixmapDensity | double | 1 |
Pixmap relative resolution |
| mainPowerDensityMapMinX | double | 0 |
Minimum X coordinate |
| mainPowerDensityMapMaxX | double | nan |
Maximum X coordinate, compound module size by default |
| mainPowerDensityMapMinY | double | 0 |
Minimum Y coordinate |
| mainPowerDensityMapMaxY | double | nan |
Maximum Y coordinate, compound module size by default |
| mainPowerDensityMapZ | double | 0 |
Z coordinate |
| mainPowerDensityMapFigureXTickCount | int | 3 |
Number of ticks along the X-axis |
| mainPowerDensityMapFigureYTickCount | int | 3 |
Number of ticks along the Y-axis |
| displayPowerDensityMaps | bool | false |
parameters for power density maps |
| powerDensityMapMode | string | "auto" |
Total means total transmission medium, signal means transmitted or received signal, auto means total or signal and noise if transmission or reception is in progress |
| powerDensityMapPixelMode | string | "mean" |
Specifies the method used to determine the color of each pixel, the sample method is the least accurate but the fastest (sample < partition < mean) |
| powerDensityMapApproximationSize | int | 10 |
Medium power density function approximation along the X and Y axes |
| powerDensityMapCenterFrequency | double | nan Hz |
Center frequency of medium power density sampling or integration |
| powerDensityMapBandwidth | double | 0 Hz |
Bandwidth of medium power density integration, 0 means sampling, inf means total integrated power |
| powerDensityMapFigureWidth | double | 200 |
Plot figure width in pixels |
| powerDensityMapFigureHeight | double | 120 |
Plot figure height in pixels |
| powerDensityMapPixmapWidth | double | powerDensityMapFigureWidth |
Pixmap resolution width |
| powerDensityMapPixmapHeight | double | powerDensityMapFigureHeight |
Pixmap resolution height |
| powerDensityMapZ | double | 0 |
Z coordinate |
| powerDensityMapFigureXTickCount | int | 3 |
Number of ticks along the X-axis |
| powerDensityMapFigureYTickCount | int | 3 |
Number of ticks along the Y-axis |
| displaySpectrums | bool | false |
parameters for spectrum figures |
| spectrumMode | string | "auto" |
Total means total transmission medium, signal means transmitted or received signal, auto means total or signal and noise if transmission or reception is in progress |
| spectrumFigureWidth | double | 200 |
Plot figure width in pixels |
| spectrumFigureHeight | double | 120 |
Plot figure height in pixels |
| spectrumFigureXTickCount | int | 3 |
Number of ticks along the X-axis |
| spectrumFigureYTickCount | int | 5 |
Number of ticks along the Y-axis |
| spectrumFigureInterpolationSize | double | 5 |
Power spectrum density interpolation distance along the frequency axis |
| spectrumPlacementHint | string | "bottomCenter" |
Annotation placement hint, space-separated list of any, top, bottom, left, right, topLeft, topCenter, topRight, etc. |
| spectrumPlacementPriority | double | -1 |
Determines the order of annotation positioning |
| displaySpectrograms | bool | false |
parameters for the spectrogram figures |
| spectrogramMode | string | "auto" |
Total means total transmission medium, signal means transmitted or received signal, auto means total or signal and noise if transmission or reception is in progress |
| spectrogramPixelMode | string | "mean" |
Specifies the method used to determine the color of each pixel, sample method is the least accurate but the fastest (sample < partition < mean) |
| spectrogramFigureWidth | double | 200 |
Plot figure width in pixels |
| spectrogramFigureHeight | double | 120 |
Plot figure height in pixels |
| spectrogramPixmapWidth | double | spectrogramFigureWidth |
Pixmap resolution width |
| spectrogramPixmapHeight | double | spectrogramFigureHeight |
Pixmap resolution height |
| spectrogramFigureXTickCount | int | 3 |
Number of ticks along the X-axis |
| spectrogramFigureYTickCount | int | 5 |
Number of ticks along the Y-axis |
| spectrogramPlacementHint | string | "bottomCenter" |
Annotation placement hint, space-separated list of any, top, bottom, left, right, topLeft, topCenter, topRight, etc. |
| spectrogramPlacementPriority | double | -1 |
Determines the order of annotation positioning |
| zIndex | double | 0 |
Determines the drawing order of figures relative to other visualizers |
| signalShape | string | "ring" |
Shape for displaying signals |
| signalOpacity | double | 0.5 |
Signal opacity, value must be in the range [0, 1] |
| signalRingCount | int | 20 |
Number of stationary rings around the transmitter, value must be in the range [0, +inf) |
| signalRingSize | double | 50m |
Width of stationary rings, value must be in the range (0, +inf) |
| signalFadingDistance | double | 50m |
Distance parameter for exponential opacity decreasing, value must be in the range (0, +inf) |
| signalFadingFactor | double | 1.2 |
Factor parameter for exponential opacity decreasing, value must be in the range (1, +inf) |
| signalWaveCount | int | 20 |
Number of moving circles representing waves around the transmitter, value must be in the range [0, +inf) |
| signalWaveLength | double | 50m |
Distance between moving circles representing waves, value must be in the range (0, +inf) |
| signalWaveWidth | double | 10m |
Width of moving circles representing waves, value must be in the range (0, +inf) |
| signalWaveFadingAnimationSpeedFactor | double | 1 |
Value must be in the range [0, 1] |
| displayCommunicationHeat | bool | false |
When enabled the radio medium displays recent successful receptions as a heat map overlay |
Properties
| Name | Value | Description |
|---|---|---|
| class | MediumCanvasVisualizer | |
| display | i=block/app |
Source code
// // Visualizes a medium on a 2D canvas. It displays communication // ranges and interference ranges as circles around network nodes. It displays // an image at network nodes which are currently transmitting, and a different // image at other network nodes which are currently receiving. It also displays // radio signals as a 2D ring or a 3D sphere as they propagate through the // medium. // // @see ~MediumCanvasVisualizer, ~MediumVisualizer, ~MediumVisualizerBase, ~IMediumVisualizer // simple MediumCanvasVisualizer extends MediumVisualizerBase like IMediumVisualizer { parameters: double zIndex = default(0); // Determines the drawing order of figures relative to other visualizers string signalShape @enum("ring","sphere") = default("ring"); // Shape for displaying signals double signalOpacity = default(0.5); // Signal opacity, value must be in the range [0, 1] int signalRingCount = default(20); // Number of stationary rings around the transmitter, value must be in the range [0, +inf) double signalRingSize @unit(m) = default(50m); // Width of stationary rings, value must be in the range (0, +inf) double signalFadingDistance @unit(m) = default(50m); // Distance parameter for exponential opacity decreasing, value must be in the range (0, +inf) double signalFadingFactor = default(1.2); // Factor parameter for exponential opacity decreasing, value must be in the range (1, +inf) int signalWaveCount = default(20); // Number of moving circles representing waves around the transmitter, value must be in the range [0, +inf) double signalWaveLength @unit(m) = default(50m); // Distance between moving circles representing waves, value must be in the range (0, +inf) double signalWaveWidth @unit(m) = default(10m); // Width of moving circles representing waves, value must be in the range (0, +inf) double signalWaveFadingAnimationSpeedFactor = default(1); // Value must be in the range [0, 1] bool displayCommunicationHeat = default(false); // When enabled the radio medium displays recent successful receptions as a heat map overlay @class(MediumCanvasVisualizer); }File: src/inet/visualizer/canvas/physicallayer/MediumCanvasVisualizer.ned