WSF
WsfLASER_CommXmtrComponent Class Reference

#include <WsfLASER_CommXmtrComponent.hpp>

Inheritance diagram for WsfLASER_CommXmtrComponent:
Collaboration diagram for WsfLASER_CommXmtrComponent:

Classes

class  Modulation

Public Member Functions

 WsfLASER_CommXmtrComponent ()
 WsfLASER_CommXmtrComponent (const WsfLASER_CommXmtrComponent &aSrc)
WsfLASER_CommXmtrComponentoperator= (const WsfLASER_CommXmtrComponent &)=delete
Public Member Functions inherited from WsfLASER_XmtrComponent
 WsfLASER_XmtrComponent ()
 WsfLASER_XmtrComponent (const WsfLASER_XmtrComponent &aSrc)=default
WsfLASER_XmtrComponentoperator= (const WsfLASER_XmtrComponent &)=delete
void ComponentParentChanged (WsfEM_Xmtr *aXmtr) override
 The default earth radius multiplier should be 1.0 (optical).
bool Initialize (double aSimTime) override
bool ProcessInput (UtInput &aInput) override
double GetApertureDiameter () const
 Return the receiver's aperture diameter.
double GetApertureArea () const
 Get the aperture area, assumed circular.
double GetTransmitAntennaGain () const
double GetAntennaGain () const
double GetBeamwidth () const
 Return the angular width of the transmitted beam.
double GetOpticsTransmissionFactor () const
 Return the fraction of the transmitted laser light that passes through the transmitter optics.
double GetWavefrontTransmissionFactor () const
 Return the fraction of laser light that passes through a the transmitter optical path as a function of wavefront error.
WsfStringId GetComponentName () const override
WsfComponentCloneComponent () const override
const int * GetComponentRoles () const override
void * QueryInterface (int aRole) override
Public Member Functions inherited from WsfComponentT< WsfEM_Xmtr >
 WsfComponentT ()
 WsfComponentT (const WsfComponentT &) noexcept
WsfComponentToperator= (const WsfComponentT &) noexcept
 ~WsfComponentT () override=default
ParentTypeGetComponentParent () const
void SetComponentParent (ParentType *aParentPtr)
Public Member Functions inherited from WsfComponent
virtual ~WsfComponent ()=default
virtual int GetComponentInitializationOrder () const
template<typename T>
bool QueryInterfaceT (T *&aRolePtr)
bool ComponentHasRole (int aRole)
 Returns true if the component has the specified role.
virtual bool Initialize2 (double aSimTime)
virtual void PreInput ()

Framework method overrides.

bool PreInitialize (double aSimTime) override
bool Initialize (double aSimTime) override
bool ProcessInput (UtInput &aInput) override
double GetPointingTransmission () const
double GetDataRate () const
 Return the data rate of this comm device (pass-through from Modulation).
double GetDutyCycle () const
 Return the duty cycle (time the laser is on; pass-through from Modulation).
ModulationGetModulation ()

WsfComponent required methods.

WsfComponentCloneComponent () const override

Additional Inherited Members

Public Types inherited from WsfComponentT< WsfEM_Xmtr >
typedef WsfEM_Xmtr ParentType
 This is needed to support the WsfComponentList template.

Detailed Description

A LASER transmitter component specialized for comm devices. In addition to the functionality provided by WsfLASER_XmtrComponent, this component also provides comm modulation and pointing transmission loss.

Constructor & Destructor Documentation

◆ WsfLASER_CommXmtrComponent() [1/2]

WsfLASER_CommXmtrComponent::WsfLASER_CommXmtrComponent ( )

◆ WsfLASER_CommXmtrComponent() [2/2]

WsfLASER_CommXmtrComponent::WsfLASER_CommXmtrComponent ( const WsfLASER_CommXmtrComponent & aSrc)

Member Function Documentation

◆ CloneComponent()

WsfComponent * WsfLASER_CommXmtrComponent::CloneComponent ( ) const
overridevirtual

Clones a component. May return null if component does not support clone.

Implements WsfComponent.

References WsfLASER_CommXmtrComponent().

◆ GetDataRate()

double WsfLASER_CommXmtrComponent::GetDataRate ( ) const
inline

Return the data rate of this comm device (pass-through from Modulation).

◆ GetDutyCycle()

double WsfLASER_CommXmtrComponent::GetDutyCycle ( ) const
inline

Return the duty cycle (time the laser is on; pass-through from Modulation).

◆ GetModulation()

Modulation & WsfLASER_CommXmtrComponent::GetModulation ( )
inline

◆ GetPointingTransmission()

double WsfLASER_CommXmtrComponent::GetPointingTransmission ( ) const
inline

Get the pointing transmission factor (0-1) associated with slight pointing offset of the transmitter to receiver.

◆ Initialize()

bool WsfLASER_CommXmtrComponent::Initialize ( double aSimTime)
overridevirtual

Perform phase 1 initialization. This is called by WsfPlatform::Initialize() during phase 1 initialization of the platform. The component should complete validation of input data that could not be done by ProcessInput, as well as any other functions to prepare for simulation use (subject to the next paragraph).

The order in which components are initialized is defined by GetComponentInitializationOrder. In general a component implementation of this method should not be dependent on the state of another component, i.e.: it should not assume that the other components Initialize() method has been called. If such a dependency exists one should use Initialize2() if possible, or specify a value GetComponentInitializationOrder to force things to initialize in a particular order.

Parameters
aSimTimeThe current simulation time.
Returns
true if successful or false if unsuccessful (bad input data, etc.)
Note
This method should NOT add any other components to the platform. This MUST be done in PreInitialize().

Reimplemented from WsfComponent.

References WsfComponentT< WsfEM_Xmtr >::GetComponentParent(), WsfLASER_XmtrComponent::Initialize(), ok, WsfEM_Xmtr::SetDutyCycle(), and WsfEM_Xmtr::SetPower().

◆ operator=()

WsfLASER_CommXmtrComponent & WsfLASER_CommXmtrComponent::operator= ( const WsfLASER_CommXmtrComponent & )
delete

◆ PreInitialize()

bool WsfLASER_CommXmtrComponent::PreInitialize ( double aSimTime)
overridevirtual

Perform pre-initializion function. This is called by WsfPlatform::Initialize prior to actually initializing the components on a platform (i.e.: calling Initialize and Initialize2 for each component). The primary reason for this method is to allow components to add other components that will then be subsequently initialized. The component may examine the component list and add components, but it must not assume ANYTHING about the actual state of the component.

Parameters
aSimTimeThe current simulation time.
Returns
true if successful or false if unsuccessful (bad input data, etc.)

Reimplemented from WsfComponent.

References WsfComponentT< WsfEM_Xmtr >::GetComponentParent().

◆ ProcessInput()

bool WsfLASER_CommXmtrComponent::ProcessInput ( UtInput & aInput)
overridevirtual

Evaluate the current input command and determine if it is one processed by the component. The component should get the current command from the input stream and determine if it is one that it recognizes. If it does not recognize the command then it should leave the command in the input stream and return false. If it does recognize the command then it should process the command and return true. If invalid arguments are encountered then it should throw an exception.

Parameters
aInputThe input stream.
Returns
true if the current command was recognized (and processed), or false if the command was not recognized.
Exceptions
UtInput::ExceptionBaseif an invalid input was encountered.

Reimplemented from WsfComponent.

References WsfLASER_XmtrComponent::ProcessInput().


The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved