Table of Contents

Class OpticalTransmitter

Namespace
NominalSystems.Classes
Assembly
NominalSystems.Classes.dll

[Nominal] The optical transmitter is a form of a transmitter that is able to use optical communication to transmit data to a receiver. This is similar to a laser link and can communicate via light.


public class OpticalTransmitter : Transmitter
Inheritance
OpticalTransmitter

Constructors

OpticalTransmitter()

Default constructor

protected OpticalTransmitter()

Fields

AlignmentError

[deg] The aligment error due to any error models that may exist in the system.

[Unit(UnitType.DEGREE)]
[ReadOnly]
[Metadata(IsAdvanced = true)]
public double AlignmentError

Field Value

double

BeamDivergence

The beam divergence angle

[Unit(UnitType.DEGREE)]
[Range(0, 360)]
public double BeamDivergence

Field Value

double

ComplexLineOfSight

A flag for if a complex Unreal ray-cast should be created for more accurate transmission line of sights.

[Metadata(IsAdvanced = true)]
public bool ComplexLineOfSight

Field Value

bool

In_DeviceStatusMsg

The Device status message for the physical component whether the device is available.

public DeviceStatusMessage? In_DeviceStatusMsg

Field Value

DeviceStatusMessage

Range

The maximum range (in m) that the laser can shoot in. If 0, it will shoot for a maximum range.

[Unit(UnitType.METRE)]
[Range(0, 1.7976931348623157E+308)]
public double Range

Field Value

double

Methods

BlockLineOfSight()

Blocks all line of sight for all transmitters that are optical transmitters

public void BlockLineOfSight()

OnCreate()

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

protected override void OnCreate()

OnLoad(double)

Called after all of the data has been loaded from a save state on this object. This enables any post-load operations to be performed and extra data to be loaded from the metadata.

protected override void OnLoad(double time)

Parameters

time double

[s] The current clock time of the simulation

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

UpdateLineOfSight(bool, Receiver)

Updates the line of sight flag for a particular connection with another receiver.

public bool UpdateLineOfSight(bool los, Receiver receiver)

Parameters

los bool

[-] Whether line of sight is reached

receiver Receiver

The receiver that is being connected

Returns

bool

A successful update of the line of sight