Table of Contents

Class GroundStation

Namespace
NominalSystems.Universe
Assembly
NominalSystems.Universe.dll

[Nominal] A ground station is able to track objects in space and determine access between these objects and ground stations. Objects can include spacecraft, planets, the Sun, or other ground stations. It is also a ground body, meaning it can be placed on the world.


public class GroundStation : GroundObject
Inheritance
GroundStation
Extension Methods

Constructors

GroundStation()

Default constructor

protected GroundStation()

Fields

Out_GroundStationMsg

The Ground Station message contains all the information about the current configuration of the ground station.

public GroundStationMessage? Out_GroundStationMsg

Field Value

GroundStationMessage

TargetAccessMsgDict

The mapping of all access messages for a particular universe object and the ground station. This is used to compute the access for each object over time.

[Hidden]
public Dictionary<UniverseObject?, AccessMessage> TargetAccessMsgDict

Field Value

Dictionary<UniverseObject, AccessMessage>

Properties

MaximumRange

The maximum range that the spacecraft can be away to be accessed. If less than or equal to 0, then this is ignored.

[Unit(UnitType.METRE)]
[Range(0, 1.7976931348623157E+308)]
[Metadata(ContainedIn = "Out_GroundStationMsg")]
public double MaximumRange { get; set; }

Property Value

double

MinimumElevation

The minimum elevation a craft needs to be to be tracked above the horizon

[Unit(UnitType.DEGREE)]
[Range(0, 90)]
[Metadata(ContainedIn = "Out_GroundStationMsg")]
public double MinimumElevation { get; set; }

Property Value

double

NumTracking

The number of spacecraft that the ground station has currently started tracking.

[Unit(UnitType.NONE)]
[Metadata(ContainedIn = "Out_GroundStationMsg")]
public int NumTracking { get; }

Property Value

int

OverrideAccess

A flag that overrides the access and ignores all lines of sight for accessing the ground station and assumes the access is true.

[Metadata(ContainedIn = "Out_GroundStationMsg")]
public bool OverrideAccess { get; set; }

Property Value

bool

Methods

OnCreate()

Called when the 'Component' is created from the controller.

protected override void OnCreate()

OnFinish(double)

Called when the object is deleted from the simulation and can handle any cleanup of variables.

protected override void OnFinish(double time)

Parameters

time double

[s] The current clock time when deleted

OnSave()

Called before the object is saved into the save state. This ensures that any additional metadata can be saved on the object before it is automatically serialized.

protected override void OnSave()

OnUpdate(double, double)

Called when the object should update from the simulation tick. This will take in a time and a step, where the time is the time of the clock before updating the object.

protected override void OnUpdate(double time, double step)

Parameters

time double

[s] Current time of the simulation before the update

step double

[s] The time-step to update during this tick

StopTracking(UniverseObject)

Stops tracking a particular object and removes the access message from the system.

public void StopTracking(UniverseObject target)

Parameters

target UniverseObject

The target to stop tracking

TrackObject(UniverseObject)

Starts to track a particular object and returns the access message that is created between this ground station and the object.

public AccessMessage TrackObject(UniverseObject target)

Parameters

target UniverseObject

The target object to track

Returns

AccessMessage

The access message between the object and the ground station