12#ifndef WSFLASER_COMMXMTRCOMPONENT_HPP
13#define WSFLASER_COMMXMTRCOMPONENT_HPP
47 double GetDataRate()
const {
return mModulationPtr->GetDataRate(); }
50 double GetDutyCycle()
const {
return mModulationPtr->GetDutyCycle(); }
82 void SetPPM_Order(
unsigned aPPM_Order) { mPPM_Order = aPPM_Order; }
89 std::string mTypeName;
95 using TypesMap = std::map<std::string, Type>;
96 static const TypesMap sTypesMap;
102 double mPointingTransmissionFactor;
103 double mAveragePower;
104 std::unique_ptr<Modulation> mModulationPtr;
#define WSF_DECLARE_COMPONENT_ROLE_TYPE(TYPE, ROLE)
Definition WsfComponentRoles.hpp:44
@ cWSF_COMPONENT_LASER_XMTR
LASER extension for WsfEM_Xmtr.
Definition WsfMilComponentRoles.hpp:36
Definition WsfComponent.hpp:39
Definition WsfEM_Xmtr.hpp:55
Definition WsfLASER_CommXmtrComponent.hpp:53
double GetDutyCycle() const
Return the duty cycle (time the laser is on).
Definition WsfLASER_CommXmtrComponent.hpp:73
Type
Definition WsfLASER_CommXmtrComponent.hpp:56
@ cDPSK
Definition WsfLASER_CommXmtrComponent.hpp:60
@ cUNDEFINED
Definition WsfLASER_CommXmtrComponent.hpp:57
@ cOOK
Definition WsfLASER_CommXmtrComponent.hpp:58
@ cPPM
Definition WsfLASER_CommXmtrComponent.hpp:59
bool ProcessInput(UtInput &aInput)
Definition WsfLASER_CommXmtrComponent.cpp:131
Modulation()
Definition WsfLASER_CommXmtrComponent.cpp:119
const std::string & GetTypeName() const
Get the name associated with the modulation type.
Definition WsfLASER_CommXmtrComponent.hpp:85
void SetPPM_Order(unsigned aPPM_Order)
Set the PPM order (2, 4, 8, etc.) if the selected type was cPPM.
Definition WsfLASER_CommXmtrComponent.hpp:82
void SetType(Type aType)
Set type modulation type.
Definition WsfLASER_CommXmtrComponent.hpp:79
bool Initialize(WsfEM_Xmtr &aXmtr)
Definition WsfLASER_CommXmtrComponent.cpp:177
double GetSlotDuration() const
Return the slot duration (time between bit intervals).
Definition WsfLASER_CommXmtrComponent.hpp:76
double GetDataRate() const
Return the data rate associated with the modulation parameters.
Definition WsfLASER_CommXmtrComponent.hpp:70
Definition WsfLASER_CommXmtrComponent.hpp:24
double GetDataRate() const
Return the data rate of this comm device (pass-through from Modulation).
Definition WsfLASER_CommXmtrComponent.hpp:47
bool PreInitialize(double aSimTime) override
Definition WsfLASER_CommXmtrComponent.cpp:56
bool ProcessInput(UtInput &aInput) override
Definition WsfLASER_CommXmtrComponent.cpp:80
WsfLASER_CommXmtrComponent()
Definition WsfLASER_CommXmtrComponent.cpp:33
double GetDutyCycle() const
Return the duty cycle (time the laser is on; pass-through from Modulation).
Definition WsfLASER_CommXmtrComponent.hpp:50
WsfLASER_CommXmtrComponent & operator=(const WsfLASER_CommXmtrComponent &)=delete
bool Initialize(double aSimTime) override
Definition WsfLASER_CommXmtrComponent.cpp:63
Modulation & GetModulation()
Definition WsfLASER_CommXmtrComponent.hpp:99
double GetPointingTransmission() const
Definition WsfLASER_CommXmtrComponent.hpp:44
WsfComponent * CloneComponent() const override
Definition WsfLASER_CommXmtrComponent.cpp:50
WsfLASER_XmtrComponent()
Definition WsfLASER_XmtrComponent.cpp:32