Editor: Ground Station Access
Description
Ground stations are a specialized type of Ground Object
that can communicate with spacecraft. Although the actual communication is handled through the TT&C system, which is performed by the antennae components that are attached to the objects, the ground station has a tracking component that can compute the access between a spacecraft and a ground station. This is done with a rough mathematical calculation and uses the known position of the spacecraft and the angle above the horizon. An example of this in action can be found in the demo Ground Station/Demo_GroundStationAccess
.
Ground Station Properties
Regardless of the ground station asset that is being spawned into the level, some consistent properties can be configured for all ground stations. These properties do not apply to TT&C parameters for data transfer.
Minimum Elevation
: This is the minimum angle above the horizon (in degrees) at which a spacecraft can be detected. If the spacecraft is below this angle or the horizon, it can not be accessed.Maximum Range
: This is the maximum distance (in meters) in which a spacecraft can be detected. If the spacecraft is further away from this number, then it can not be accessed. However, if the range is set to0
, then the range is infinite and has no cap.
In both cases below (the first being the standard ground station used with the complex model and the second being the base empty ground station class), the core parameters are the same and can be changed when added into the world.
Tracking a Spacecraft
To begin tracking a spacecraft, the Track Spacecraft
function can be called on the ground station. This will require a reference to the spacecraft that should be tracked and the ground station will handle the message connections.
Note
Simply tracking a spacecraft will make the ground station do anything visually, it is just able to compute its new information about the access.
The Track Spacecraft
function returns a reference to the access message associated with the tracking of that particular spacecraft. This message can be stored as a Mono Object
and referenced later. To do that, it can be stored as a Mono Object Ref
.
Note
As mentioned in the Editor: Using Messages document, messages that should be referenced later must be stored as an object reference to ensure the garbage collector system does not delete the reference that was previously calculated to the message.
Reading the Access
Once the access is calculated, which occurs every simulation tick, the access between the spacecraft and the particular ground station can be read by using the Read Access Message
function on the message that is being stored.
This message has four outputs:
Has Access
: A boolean flag that defines whether the spacecraft is currently within the range and angle above the horizon that can be detected by the ground station.Slant Range
: The distance between the ground station and spacecraft in meters.Elevation
: The angle above the horizon in degrees that it is relative to the ground station.Azimuth
: The angle relative to the ground station and North vector, measured in degrees. Here, a value of 0 will state that the spacecraft is directly true north of the ground station, while 90 degrees will be east of the ground station (increasing values going clockwise about the cardinal directions).
Additionally, instead of storing a reference to the message, the Get Spacecraft Access
function can do a quick calculation of the spacecraft access regardless if the spacecraft has already been tracked or not.
Note
Ground stations can track many spacecraft at once and spacecraft can be tracked by many ground stations. Once the spacecraft is tracked, the message will be updated for the remainder of the simulation. There is no function to stop tracking spacecraft as of the current version.