RadioPlan: Difference between revisions

From Maria GDK Wiki
Jump to navigation Jump to search
mNo edit summary
()
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:


== General ==
== General ==
RadioPlan is the module for handling radios and radioplanning. Functionality is controlled via the interface '''IMariaRadioPlanLayer'''<syntaxhighlight lang="c#">
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|frameless|RadioPlan Datamodel|center]]
=== Radio ===
=== Radio ===
The radio is a general purpose radio. It can have different properties like frequency and technology.  
The radio is a general purpose radio. It can have different properties like frequency and technology.  


Radio is attached to a Site and a RadioNet<syntaxhighlight lang="c#">
A radio must be attached to a Site and may also be assigned to a RadioNet. An Antenna must be connected for coverage calculation.
public Radio(Guid id, string name, Site site, RadioSystem radioSystem, SignalPower txPower, double loss, SignalPower rxSensitivity, Frequency frequency)
{| 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.
|}


</syntaxhighlight>
===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
{| 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 ===


=== Site ===
A single antenna can be applied to the cell, with properties like
The site holds the position for one or more radios.<syntaxhighlight lang="c#">
{| class="wikitable"
public Site(Guid id, string name, GeoPos location)
|+
</syntaxhighlight>
!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).


=== RadioNet ===
Defines the horizontal pointing direction of directional antennas.
The radio net holds a group of radios of same technology<syntaxhighlight lang="c#">
|-
public RadioNet(Guid id, string name, NetworkType networkType, RadioSystem radioSystem)
|ElectricalTilt
</syntaxhighlight>
|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.
|}


=== Antenna ===
===TerminalProperties===
A single antenna can be applied to the cell, with properties like <syntaxhighlight lang="c#">
Terminal configuration for user terminals that are part of a cellular network type RadioNet.
public string AntennaTypeName { get; }
{| class="wikitable"
public double Height { get; }
|+
!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.
|}


public Azimuth Direction { get; set; }
=== AntennaType===
public Tilt ElectricalTilt { get; set; }
{| class="wikitable"
public Tilt MechanicalTilt { get; set; }
|+
!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>
The list of available antenna types is available from the Antenna Service which are handled by the AntennaCache:<syntaxhighlight lang="c#">
var antennaTypes = await RadioPlanLayer.AntennaCache.GetAsync();
</syntaxhighlight>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.<syntaxhighlight lang="c#">
Task<IEnumerable<AntennaType>> GetAntennaTypeForFrequencyAsync(Frequency frequency);
</syntaxhighlight>
</syntaxhighlight>


=== AntennaType ===
===AnntennaPatternSpec===
The list of availble antenna types is available from the Antenna Service which are handeled by the AntennaCache:<syntaxhighlight lang="c#">
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.
var antennaTypeCache = new AntennaTypeCache(new AntennaTypeService(radioPlanConfiguration.AntennaServiceSettings.Uri, LoggerFactory.CreateLogger<AntennaTypeService>()));
{| 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.
|}


var antennaTypes = await antennaTypeCache.GetAsync();
===AntennaPattern===
</syntaxhighlight>From the AntennType we get the ''string AntennaTypeName'' which is set on the Antenna object.
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 ==
==Data model store==


=== Site store ===
===Site store ===
Sites are stored IRadioPlanSiteStore '''IMariaRadioPlanLayer'''.RadioStore
Sites are stored IRadioPlanSiteStore '''IMariaRadioPlanLayer'''.RadioStore


Line 59: 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 87: 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 calculations ===
=== 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 98: 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 jobIdString = await _radioPlanLayer.RadioCoverage.StartCoverageCalculationForRadio(radio, coverageProperties);
var jobId = await _radioPlanLayer.RadioCoverage.StartCoverageCalculationForRadio(radio, coverageProperties);
</syntaxhighlight>If successfull, jobIdString returns a Guid as string for the job. Else the text string return error message.
</syntaxhighlight>If successfull, jobId returns a Guid identifying the job. Else the text string return error message.


Progress can be checked with RequestCalculationJobStatus.<syntaxhighlight lang="c#">
Progress can be checked with subscribing on the event RadioCoverage.CovDataUpdateProgress.<syntaxhighlight lang="c#">
CalculationJobStatus status = await _radioPlanLayer.RadioCoverage.RequestCalculationJobStatus(jobId);
_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 121: Line 405:
'''IMariaRadioPlanLayer.IRadioCoverage.PlotType''' controls the type of plot to be shown
'''IMariaRadioPlanLayer.IRadioCoverage.PlotType''' controls the type of plot to be shown


 
'''''See: [[RadioPlan CoveragePlots|Radio plan Coverage plots]] page'''''
 
See: [[RadioPlan CoveragePlots|Radio plan Coverage plots]] page


=== Coverage contours ===
=== Coverage contours ===
For coverage plots, or group of coverage plots, coverage contours can be calculated and displayerd  
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 ===
'''''See: [[RadioPlan CoverageContours|Radio plan Coverage contours]]''''' [[RadioPlan CoverageContours|'''''page''''']]   
 
===Connectivity Lines ===
Connectivity lines can be shown between radios in a radio net.  
Connectivity lines can be shown between radios in a radio net.  


See: Radio plan connectirvity line page  
See: Radio plan connectirvity line page  


=== SettingsServices ===
'''''See: [[RadioPlan ConnectivityLines|Radio plan Connectivity lines]]''''' '''''[[RadioPlan ConnectivityLines|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: [[RadioPlan Settings|Radio plan Settings]] pages'''''
 
===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

RadioPlan Datamodel

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