RadioPlan: Difference between revisions
(→) |
(→) |
||
| (7 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
== General == | == General == | ||
RadioPlan is the module for | RadioPlan is the module for radioplanning. Radioplanning involves to define the radio equipment, optimize positions and parameters to ensure succesful radio communication. The Radioplan module offers a set of tools to achieve this: | ||
* Radio and RadioNet coverage predictions | |||
* RadioNet connectivity predictions | |||
* Equipment templates | |||
* Antenna models | |||
* Propagation models for VHF, UHF, SHF | |||
Functionality is controlled via the interface '''IMariaRadioPlanLayer'''<syntaxhighlight lang="c#"> | |||
public interface IMariaRadioPlanLayer : IMariaLayer | public interface IMariaRadioPlanLayer : IMariaLayer | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Data model == | == Data model == | ||
[[File:RadioPlan Datamodel.png | [[File:RadioPlan Datamodel.png|frameless|RadioPlan Datamodel|center]] | ||
=== Radio === | |||
The radio is a general purpose radio. It can have different properties like frequency and technology. | |||
A radio must be attached to a Site and may also be assigned to a RadioNet. An Antenna must be connected for coverage calculation. | |||
{| class="wikitable" | |||
|+ | |||
!Property | |||
! Type | |||
!Description | |||
|- | |||
|Id | |||
|Guid | |||
|Unique identifier for the radio. | |||
|- | |||
|Name | |||
| string | |||
|Name of the radio. | |||
|- | |||
|RadioSystem | |||
|RadioSystem | |||
|Identifies the radio system used by the device. The RadioSystem property of the Radio must match the RadioSystem property of the RadioNet. | |||
|- | |||
| TxPower | |||
|SignalPower | |||
| [dBm] The transmitter output power of the radio. | |||
|- | |||
|Loss | |||
|Decibel | |||
|[dB] Total signal loss between the radio and the antenna system. | |||
This includes cable loss, connector loss, filters, and other inline components. | |||
|- | |||
|RxSensitivity | |||
|SignalPower | |||
|[dBm] The receiver sensitivity threshold. | |||
Represents the minimum signal strength the receiver can reliably detect while maintaining required performance metrics (e.g., BER or SINR). | |||
Lower (more negative) values indicate a more sensitive receiver. | |||
|- | |||
|Antenna | |||
|Antenna? | |||
|The antenna connected to the radio. An Antenna must be connected for coverage calculation. | |||
|- | |||
|Frequency | |||
|Frequency | |||
| [MHz] The operating center frequency of the radio. | |||
|- | |||
|Status | |||
|Status | |||
|The current operational status of the radio. | |||
|- | |||
|Site | |||
|Site | |||
|The site where the radio is installed or registered. | |||
|- | |||
|RadioNet | |||
|RadioNet? | |||
|The radio network to which this radio belongs. | |||
|} | |||
===Site=== | |||
The Site defines the geographical position for one or more radios. Radios on the same Site is considered to be collocated. | |||
{| class="wikitable" | |||
|+ | |||
! Property | |||
!Type | |||
!Description | |||
|- | |||
|Id | |||
|Guid | |||
|Unique identifier for the site. | |||
|- | |||
|Name | |||
|string | |||
|Name of the site. | |||
|- | |||
| Location | |||
| GeoPos | |||
| The geographical position of the site. | |||
|- | |||
|Radios | |||
|ImmutableArray<Radio> | |||
|The radios deployed at this site. | |||
|} | |||
===RadioNet=== | |||
The radio net holds a group of radios of same technology | |||
The radio | {| class="wikitable" | ||
|+ | |||
! Property | |||
!Type | |||
!Description | |||
< | |- | ||
|Id | |||
|Guid | |||
|Unique identifier for the radio net. | |||
|- | |||
|Name | |||
|string | |||
|Name of the radio net. | |||
|- | |||
|NetworkType | |||
|NetworkType | |||
|Defines the type of network the radios operate within. | |||
|- | |||
|RadioSystem | |||
|RadioSystem | |||
|Identifies the radio system used for this network. Available radio systems is restricted by the network type. | |||
|- | |||
|TerminalProperties | |||
|TerminalProperties? | |||
|Terminal‑specific configuration for radios that are part of this network. | |||
|- | |||
|CoverageCalculationSettings | |||
| CoverageCalculationSettings? | |||
|Configuration settings used when performing coverage calculations for this network. | |||
Overrides application settings when this is set. | |||
|- | |||
|MasterRadio | |||
|Radio? | |||
|The identifier of the designated master radio for this network. | |||
The master radio typically provides synchronization, control, or timing functions depending on the network type | |||
|- | |||
|Radios | |||
|ImmutableArray<Radio> | |||
|The collection of radios participating in this network. | |||
|- | |||
|Frequencies | |||
|ImmutableArray<Frequency> | |||
|The set of frequencies allocated to this network. | |||
Radios in the network can only use one of the allocated frequencies. | |||
|} | |||
=== | ===Antenna === | ||
A single antenna can be applied to the cell, with properties like | |||
{| class="wikitable" | |||
|+ | |||
!Property | |||
!Type | |||
!Description | |||
|- | |||
|Id | |||
|Guid | |||
|Unique identifier for the antenna. | |||
|- | |||
|AntennaTypeName | |||
|string | |||
|The name or model identifier of the antenna type. | |||
|- | |||
|Height | |||
|double | |||
|The antenna height measured in meters above ground level (AGL). | |||
This defines the elevation of the antenna relative to the local terrain surface and is a key parameter in propagation and coverage calculations. | |||
|- | |||
|Direction | |||
|Azimuth | |||
|The azimuth direction the antenna is oriented toward, expressed as a bearing in degrees (0–360). | |||
Defines the horizontal pointing direction of directional antennas. | |||
|- | |||
|ElectricalTilt | |||
|Tilt | |||
|The electrical downtilt of the antenna, defined in degrees. | |||
|- | |||
|MechanicalTilt | |||
|Tilt | |||
|The mechanical downtilt of the antenna, defined in degrees. | |||
|- | |||
|PositionOffsetDirection | |||
|Azimuth | |||
|[degrees] The horizontal direction (bearing in degrees) of the antenna’s position offset relative to the Site location. | |||
|- | |||
| PositionOffsetDistance | |||
|double | |||
|[m] The horizontal distance of the antenna’s position offset relative to the Site location. | |||
|} | |||
===TerminalProperties=== | |||
Terminal configuration for user terminals that are part of a cellular network type RadioNet. | |||
{| class="wikitable" | |||
|+ | |||
!Property | |||
!Type | |||
!Description | |||
|- | |||
|Id | |||
|Guid | |||
|Unique identifier for the terminal properties. | |||
|- | |||
|TxPower | |||
|SignalPower | |||
| [dBm] The transmitter output power of the terminal. | |||
|- | |||
|RxSensitivity | |||
|SignalPower | |||
|[dBm] The receiver sensitivity of the terminal. | |||
|- | |||
| AntennaGain | |||
|Decibel | |||
|[dB] The gain of the terminal’s antenna. | |||
|} | |||
=== AntennaType=== | |||
{| class="wikitable" | |||
|+ | |||
!Property | |||
! Type | |||
!Description | |||
|- | |||
|Id | |||
|Guid | |||
|Unique identifier for the antenna type. | |||
|- | |||
|Name | |||
|string | |||
|The name of the antenna type. | |||
|- | |||
|OmniDirectional | |||
|bool | |||
|Indicates whether the antenna is omnidirectional in azimuth. | |||
|- | |||
|AntennaPatternSpecs | |||
|ImmutableArray<AntennaPatternSpec> | |||
|The set of antenna pattern specifications associated with this antenna type. | |||
|- | |||
|MinimumFrequency | |||
|Frequency | |||
|[MHz] The lowest frequency covered by the associated pattern specifications. | |||
Returns 0 if no specs exist. | |||
|- | |||
|MaximumFrequency | |||
|Frequency | |||
|[MHz] The highest frequency covered by the associated pattern specifications. | |||
Returns 0 if no specs exist. | |||
|} | |||
Antenna type can return an antenna pattern specification valid for a specific radio frequency and electrical tilt.<syntaxhighlight lang="c#"> | |||
public AntennaPatternSpec? GetAntennaPatternSpec(Frequency frequency, Tilt electricalTilt) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
The list of available antenna types is available from the Antenna Service which are handled by the AntennaCache:<syntaxhighlight lang="c#"> | |||
The list of | |||
var antennaTypes = await RadioPlanLayer.AntennaCache.GetAsync(); | var antennaTypes = await RadioPlanLayer.AntennaCache.GetAsync(); | ||
</syntaxhighlight>From the AntennaType we get the ''string AntennaTypeName'' which is set on the Antenna object. | </syntaxhighlight>From the AntennaType we get the ''string AntennaTypeName'' which is set on the Antenna object. | ||
| Line 51: | Line 262: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Data model store == | ===AnntennaPatternSpec=== | ||
A specification describing the antenna’s radiation characteristics for a particular frequency range and electrical tilt setting. Each pattern spec typically corresponds to a manufacturer‑defined dataset for a specific band and tilt configuration. | |||
{| class="wikitable" | |||
|+ | |||
!Property | |||
!Type | |||
!Description | |||
|- | |||
|Name | |||
|string | |||
|Human‑readable name or label for this pattern specification. | |||
|- | |||
|MaxGain | |||
|double | |||
| The maximum gain (in dBi) of the antenna within this specific pattern definition. | |||
Represents the highest gain value found in the azimuth/elevation radiation pattern for this frequency range and tilt. | |||
|- | |||
|FrequencyLowerBoundary | |||
|Frequency | |||
|[MHz] The lower frequency boundary (inclusive) for which this pattern specification is valid. | |||
Frequencies below this value cannot use this pattern. | |||
|- | |||
|FrequencyUpperBoundary | |||
|Frequency | |||
|[MHz] The upper frequency boundary (inclusive) for which this pattern specification is valid. | |||
Frequencies above this value cannot use this pattern. | |||
|- | |||
| ElectricalTilt | |||
|Tilt | |||
|[degrees] The electrical downtilt (in degrees, positive values downwards) associated with this pattern specification. | |||
This indicates how the antenna’s vertical radiation pattern is shaped electronically for this dataset. | |||
|} | |||
===AntennaPattern=== | |||
Represents a full antenna radiation pattern for a specific frequency range and electrical tilt. Extends [[RadioPlan#AnntennaPatternSpec|AntennaPatternSpec]] by providing detailed horizontal and vertical gain patterns used for coverage calculations. | |||
{| class="wikitable" | |||
|+ | |||
!Property | |||
!Type | |||
! Description | |||
|- | |||
|HorizontalGains | |||
|double[] | |||
|[dB] Horizontal-plane gain values (azimuth pattern). | |||
|- | |||
|VerticalGains | |||
|double[] | |||
|[dB] Vertical-plane gain values (elevation pattern). | |||
|} | |||
==Data model store== | |||
=== Site store === | ===Site store === | ||
Sites are stored IRadioPlanSiteStore '''IMariaRadioPlanLayer'''.RadioStore | Sites are stored IRadioPlanSiteStore '''IMariaRadioPlanLayer'''.RadioStore | ||
| Line 67: | Line 328: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Radio store === | ===Radio store === | ||
Radios are stored to IRadioPlanRadioStore '''IMariaRadioPlanLayer'''.RadioStore | Radios are stored to IRadioPlanRadioStore '''IMariaRadioPlanLayer'''.RadioStore | ||
Similar to SiteStore, this interface uses AddOrUpdate, Get and Remove. | Similar to SiteStore, this interface uses AddOrUpdate, Get and Remove. | ||
=== Radio net store === | ===Radio net store=== | ||
A radio net is a collection of radios connected. | A radio net is a collection of radios connected. | ||
Similar to SiteStore, this interface uses AddOrUpdate, Get and Remove. | Similar to SiteStore, this interface uses AddOrUpdate, Get and Remove. | ||
=== Situation === | ===Situation=== | ||
The collections of site, radios and radio nets can be saved to a situation file. | The collections of site, radios and radio nets can be saved to a situation file. | ||
| Line 95: | Line 356: | ||
comment: <!-- Must DrawObjectCommonFactory be parameter on the facade for this call? --> | comment: <!-- Must DrawObjectCommonFactory be parameter on the facade for this call? --> | ||
== Coverage predictions == | ==Coverage predictions== | ||
=== Calculate coverage === | === Calculate coverage=== | ||
Coverage calculations are controlled via the interce IRadioCoverage in '''IMariaRadioPlanLayer'''.RadioCoverage | Coverage calculations are controlled via the interce IRadioCoverage in '''IMariaRadioPlanLayer'''.RadioCoverage | ||
| Line 107: | Line 368: | ||
record CoverageProperties(int Resolution, int Size, AreaShape CalculationAreaShape, string PropagationModel, RxHeight RxHeight); | record CoverageProperties(int Resolution, int Size, AreaShape CalculationAreaShape, string PropagationModel, RxHeight RxHeight); | ||
</syntaxhighlight>Coverage calculation is started with <syntaxhighlight lang="c#"> | </syntaxhighlight>Coverage calculation is started with <syntaxhighlight lang="c#"> | ||
var | var jobId = await _radioPlanLayer.RadioCoverage.StartCoverageCalculationForRadio(radio, coverageProperties); | ||
</syntaxhighlight>If successfull, | </syntaxhighlight>If successfull, jobId returns a Guid identifying the job. Else the text string return error message. | ||
Progress can be checked with subscribing on the event RadioCoverage.CovDataUpdateProgress.<syntaxhighlight lang="c#"> | |||
_radioPlanLayer.RadioCoverage.CovDataUpdateProgress += CoverageDataUpdateProgress; | |||
... | |||
private void CoverageDataUpdateProgress(object sender, CalculationJobStatus calculationJobStatus) | |||
{ | |||
if (calculationJobStatus.IsCompleted) | |||
{ | |||
ProgressValue = 0; // the clients progress indicator | |||
} | |||
else | |||
{ | |||
ProgressValue = calculationJobStatus.TotalPercentCompleted; | |||
} | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Coverage plotting === | ===Coverage plotting=== | ||
To show coverage plots in the map some setup is needed | To show coverage plots in the map some setup is needed | ||
| Line 139: | Line 414: | ||
'''''See: [[RadioPlan CoverageContours|Radio plan Coverage contours]]''''' [[RadioPlan CoverageContours|'''''page''''']] | '''''See: [[RadioPlan CoverageContours|Radio plan Coverage contours]]''''' [[RadioPlan CoverageContours|'''''page''''']] | ||
=== Connectivity Lines === | ===Connectivity Lines === | ||
Connectivity lines can be shown between radios in a radio net. | Connectivity lines can be shown between radios in a radio net. | ||
| Line 146: | Line 421: | ||
'''''See: [[RadioPlan ConnectivityLines|Radio plan Connectivity lines]]''''' '''''[[RadioPlan ConnectivityLines|page]]''''' | '''''See: [[RadioPlan ConnectivityLines|Radio plan Connectivity lines]]''''' '''''[[RadioPlan ConnectivityLines|page]]''''' | ||
== Settings == | ==Settings== | ||
=== RadioPlanSettings === | ===RadioPlanSettings=== | ||
Radio plan settings is available from '''IMariaRadioPlanLayer.Settings''' | Radio plan settings is available from '''IMariaRadioPlanLayer.Settings''' | ||
These settings is used to control: | These settings is used to control: | ||
* Setting for creating coverage predictions | *Setting for creating coverage predictions | ||
* Colour schemas for plots | *Colour schemas for plots | ||
'''''See: [[RadioPlan Settings|Radio plan Settings]] pages''''' | '''''See: [[RadioPlan Settings|Radio plan Settings]] pages''''' | ||
=== SettingsServices === | ===SettingsServices=== | ||
The radioplan module uses external services for | The radioplan module uses external services for | ||
* Antenna store | *Antenna store | ||
* Coverage calculations | *Coverage calculations | ||
[[Category:RadioPlan]] | [[Category:RadioPlan]] | ||
Latest revision as of 14:22, 9 March 2026
General
RadioPlan is the module for radioplanning. Radioplanning involves to define the radio equipment, optimize positions and parameters to ensure succesful radio communication. The Radioplan module offers a set of tools to achieve this:
- Radio and RadioNet coverage predictions
- RadioNet connectivity predictions
- Equipment templates
- Antenna models
- Propagation models for VHF, UHF, SHF
Functionality is controlled via the interface IMariaRadioPlanLayer
public interface IMariaRadioPlanLayer : IMariaLayer
Data model
Radio
The radio is a general purpose radio. It can have different properties like frequency and technology.
A radio must be attached to a Site and may also be assigned to a RadioNet. An Antenna must be connected for coverage calculation.
| Property | Type | Description |
|---|---|---|
| Id | Guid | Unique identifier for the radio. |
| Name | string | Name of the radio. |
| RadioSystem | RadioSystem | Identifies the radio system used by the device. The RadioSystem property of the Radio must match the RadioSystem property of the RadioNet. |
| TxPower | SignalPower | [dBm] The transmitter output power of the radio. |
| Loss | Decibel | [dB] Total signal loss between the radio and the antenna system.
This includes cable loss, connector loss, filters, and other inline components. |
| RxSensitivity | SignalPower | [dBm] The receiver sensitivity threshold.
Represents the minimum signal strength the receiver can reliably detect while maintaining required performance metrics (e.g., BER or SINR). Lower (more negative) values indicate a more sensitive receiver. |
| Antenna | Antenna? | The antenna connected to the radio. An Antenna must be connected for coverage calculation. |
| Frequency | Frequency | [MHz] The operating center frequency of the radio. |
| Status | Status | The current operational status of the radio. |
| Site | Site | The site where the radio is installed or registered. |
| RadioNet | RadioNet? | The radio network to which this radio belongs. |
Site
The Site defines the geographical position for one or more radios. Radios on the same Site is considered to be collocated.
| Property | Type | Description |
|---|---|---|
| Id | Guid | Unique identifier for the site. |
| Name | string | Name of the site. |
| Location | GeoPos | The geographical position of the site. |
| Radios | ImmutableArray<Radio> | The radios deployed at this site. |
RadioNet
The radio net holds a group of radios of same technology
| Property | Type | Description |
|---|---|---|
| Id | Guid | Unique identifier for the radio net. |
| Name | string | Name of the radio net. |
| NetworkType | NetworkType | Defines the type of network the radios operate within. |
| RadioSystem | RadioSystem | Identifies the radio system used for this network. Available radio systems is restricted by the network type. |
| TerminalProperties | TerminalProperties? | Terminal‑specific configuration for radios that are part of this network. |
| CoverageCalculationSettings | CoverageCalculationSettings? | Configuration settings used when performing coverage calculations for this network.
Overrides application settings when this is set. |
| MasterRadio | Radio? | The identifier of the designated master radio for this network.
The master radio typically provides synchronization, control, or timing functions depending on the network type |
| Radios | ImmutableArray<Radio> | The collection of radios participating in this network. |
| Frequencies | ImmutableArray<Frequency> | The set of frequencies allocated to this network.
Radios in the network can only use one of the allocated frequencies. |
Antenna
A single antenna can be applied to the cell, with properties like
| Property | Type | Description |
|---|---|---|
| Id | Guid | Unique identifier for the antenna. |
| AntennaTypeName | string | The name or model identifier of the antenna type. |
| Height | double | The antenna height measured in meters above ground level (AGL).
This defines the elevation of the antenna relative to the local terrain surface and is a key parameter in propagation and coverage calculations. |
| Direction | Azimuth | The azimuth direction the antenna is oriented toward, expressed as a bearing in degrees (0–360).
Defines the horizontal pointing direction of directional antennas. |
| ElectricalTilt | Tilt | The electrical downtilt of the antenna, defined in degrees. |
| MechanicalTilt | Tilt | The mechanical downtilt of the antenna, defined in degrees. |
| PositionOffsetDirection | Azimuth | [degrees] The horizontal direction (bearing in degrees) of the antenna’s position offset relative to the Site location. |
| PositionOffsetDistance | double | [m] The horizontal distance of the antenna’s position offset relative to the Site location. |
TerminalProperties
Terminal configuration for user terminals that are part of a cellular network type RadioNet.
| Property | Type | Description |
|---|---|---|
| Id | Guid | Unique identifier for the terminal properties. |
| TxPower | SignalPower | [dBm] The transmitter output power of the terminal. |
| RxSensitivity | SignalPower | [dBm] The receiver sensitivity of the terminal. |
| AntennaGain | Decibel | [dB] The gain of the terminal’s antenna. |
AntennaType
| Property | Type | Description |
|---|---|---|
| Id | Guid | Unique identifier for the antenna type. |
| Name | string | The name of the antenna type. |
| OmniDirectional | bool | Indicates whether the antenna is omnidirectional in azimuth. |
| AntennaPatternSpecs | ImmutableArray<AntennaPatternSpec> | The set of antenna pattern specifications associated with this antenna type. |
| MinimumFrequency | Frequency | [MHz] The lowest frequency covered by the associated pattern specifications.
Returns 0 if no specs exist. |
| MaximumFrequency | Frequency | [MHz] The highest frequency covered by the associated pattern specifications.
Returns 0 if no specs exist. |
Antenna type can return an antenna pattern specification valid for a specific radio frequency and electrical tilt.
public AntennaPatternSpec? GetAntennaPatternSpec(Frequency frequency, Tilt electricalTilt)
The list of available antenna types is available from the Antenna Service which are handled by the AntennaCache:
var antennaTypes = await RadioPlanLayer.AntennaCache.GetAsync();
From the AntennaType we get the string AntennaTypeName which is set on the Antenna object. Antenna cache can return antenna types valid for a specific radio frequency.
Task<IEnumerable<AntennaType>> GetAntennaTypeForFrequencyAsync(Frequency frequency);
AnntennaPatternSpec
A specification describing the antenna’s radiation characteristics for a particular frequency range and electrical tilt setting. Each pattern spec typically corresponds to a manufacturer‑defined dataset for a specific band and tilt configuration.
| Property | Type | Description |
|---|---|---|
| Name | string | Human‑readable name or label for this pattern specification. |
| MaxGain | double | The maximum gain (in dBi) of the antenna within this specific pattern definition.
Represents the highest gain value found in the azimuth/elevation radiation pattern for this frequency range and tilt. |
| FrequencyLowerBoundary | Frequency | [MHz] The lower frequency boundary (inclusive) for which this pattern specification is valid.
Frequencies below this value cannot use this pattern. |
| FrequencyUpperBoundary | Frequency | [MHz] The upper frequency boundary (inclusive) for which this pattern specification is valid.
Frequencies above this value cannot use this pattern. |
| ElectricalTilt | Tilt | [degrees] The electrical downtilt (in degrees, positive values downwards) associated with this pattern specification.
This indicates how the antenna’s vertical radiation pattern is shaped electronically for this dataset. |
AntennaPattern
Represents a full antenna radiation pattern for a specific frequency range and electrical tilt. Extends AntennaPatternSpec by providing detailed horizontal and vertical gain patterns used for coverage calculations.
| Property | Type | Description |
|---|---|---|
| HorizontalGains | double[] | [dB] Horizontal-plane gain values (azimuth pattern). |
| VerticalGains | double[] | [dB] Vertical-plane gain values (elevation pattern). |
Data model store
Site store
Sites are stored IRadioPlanSiteStore IMariaRadioPlanLayer.RadioStore
Save a new Site:
Site = new Site(Guid.NewGuid(), Name, Location);
_radioPlanLayer.SiteStore.AddOrUpdate(Site);
Get all sites:
var sites = _radioPlanLayer.SiteStore.Get();
Get a speficic site:
var site = _radioPlanLayer.SiteStore.Get(siteId);
Remove a site from store:
RadioPlanLayer.SiteStore.Remove(site);
Radio store
Radios are stored to IRadioPlanRadioStore IMariaRadioPlanLayer.RadioStore
Similar to SiteStore, this interface uses AddOrUpdate, Get and Remove.
Radio net store
A radio net is a collection of radios connected.
Similar to SiteStore, this interface uses AddOrUpdate, Get and Remove.
Situation
The collections of site, radios and radio nets can be saved to a situation file.
Situation data can be stored in to persistent storage system with help of IMariaRadioPlanLayer.Serialize
Example saving to a file:
byte[] situationBytes = _radioPlanLayer.Serialize(_parent.DrawObjectCommonFactory);
File.WriteAllBytesAsync(filePath, situationBytes);
Situation data can be restored from persistent storage system with help of IMariaRadioPlanLayer.DeSerialize Example reading from a file:
byte[] situationBytes = await System.IO.File.ReadAllBytesAsync(filePath);
_radioPlanLayer.DeSerialize(situationBytes, _parent.DrawObjectCommonFactory);
comment:
Coverage predictions
Calculate coverage
Coverage calculations are controlled via the interce IRadioCoverage in IMariaRadioPlanLayer.RadioCoverage
To create a coverage file, we need to define some parameters, the most important is the selection of propagation model.
The list of propagation models can be found like this:
_propagationModels = new ReadOnlyCollection<string>(_radioPlanLayer.RadioCoverage.RadioPropagationModelRepository.PropagationModels.Select(m => m.Name).ToList());
Properties for the Coverage calculation is stored in
record CoverageProperties(int Resolution, int Size, AreaShape CalculationAreaShape, string PropagationModel, RxHeight RxHeight);
Coverage calculation is started with
var jobId = await _radioPlanLayer.RadioCoverage.StartCoverageCalculationForRadio(radio, coverageProperties);
If successfull, jobId returns a Guid identifying the job. Else the text string return error message. Progress can be checked with subscribing on the event RadioCoverage.CovDataUpdateProgress.
_radioPlanLayer.RadioCoverage.CovDataUpdateProgress += CoverageDataUpdateProgress;
...
private void CoverageDataUpdateProgress(object sender, CalculationJobStatus calculationJobStatus)
{
if (calculationJobStatus.IsCompleted)
{
ProgressValue = 0; // the clients progress indicator
}
else
{
ProgressValue = calculationJobStatus.TotalPercentCompleted;
}
}
Coverage plotting
To show coverage plots in the map some setup is needed
For which radios coverage plot is requested is handeled with IMariaRadioPlanLayer.IRadioCoverage.Add
Example adding all radios in a radionet:
foreach (var radio in radioNet.Radios)
{
_radioPlanLayer.RadioCoverage.Add(radio);
}
Example removing a single radio from the plot:
RadioPlanLayer.RadioCoverage.Remove(radio);
IMariaRadioPlanLayer.IRadioCoverage.Visible must be set to true, to show plot
IMariaRadioPlanLayer.IRadioCoverage.PlotType controls the type of plot to be shown
See: Radio plan Coverage plots page
Coverage contours
For coverage plots, or group of coverage plots, coverage contours can be calculated and displayerd
See: Radio plan coverage contours page
See: Radio plan Coverage contours page
Connectivity Lines
Connectivity lines can be shown between radios in a radio net.
See: Radio plan connectirvity line page
See: Radio plan Connectivity lines page
Settings
RadioPlanSettings
Radio plan settings is available from IMariaRadioPlanLayer.Settings
These settings is used to control:
- Setting for creating coverage predictions
- Colour schemas for plots
See: Radio plan Settings pages
SettingsServices
The radioplan module uses external services for
- Antenna store
- Coverage calculations