12#ifndef WSFRIGIDBODYSIXDOFFLIGHTCONTROLSYSTEM_HPP
13#define WSFRIGIDBODYSIXDOFFLIGHTCONTROLSYSTEM_HPP
15#include "wsf_six_dof_export.h"
21#include "UtCloneablePtr.hpp"
59 void Update(int64_t aSimTime_nanosec);
76 size_t GetControlSurfaceHandle(
const std::string& aControlSurfaceName)
const;
81 size_t GetControlSurfaceHandleContainingString(
const std::string& aString)
const;
86 size_t GetControlSurfaceHandleContainingTwoStrings(
const std::string& aString1,
const std::string& aString2)
const;
89 std::string GetControlSurfaceName(
size_t aControlSurfaceHandle)
const;
92 double GetControlSurfaceAngle_deg(
size_t aControlSurfaceHandle)
const;
95 double GetControlSurfaceMinAngle_deg(
size_t aControlSurfaceHandle)
const;
98 double GetControlSurfaceMaxAngle_deg(
size_t aControlSurfaceHandle)
const;
101 double GetControlSurfaceValueNormalized(
size_t aControlSurfaceHandle)
const;
106 void SetControlSurfaceAngle_deg(
size_t aControlSurfaceHandle,
double aAngle_deg);
112 size_t GetControlValueHandle(
const std::string& aControlValueName)
const;
115 std::string GetControlValueName(
size_t aControlValueHandle)
const;
118 double GetControlValue(
size_t aControlValueHandle)
const;
124 size_t GetBooleanControlHandle(
const std::string& aControlBooleanName)
const;
127 std::string GetBooleanControlName(
size_t aControlBooleanHandle)
const;
130 bool GetControlBoolean(
size_t aControlBooleanHandle)
const;
133 bool GetControlBooleanLastValue(
size_t aControlBooleanHandle)
const;
138 void ClearAllControlData();
141 size_t NumFlightControlInputs()
const;
147 size_t NumFlightControlSurfaces()
const;
194 UtCloneablePtr<UtTable::Table>
table{
nullptr};
195 UtCloneablePtr<UtTable::Curve>
curve{
nullptr};
217 UtCloneablePtr<RigidBodyControlActuator>
actuator{
nullptr};
257 std::vector<double>& aActuatorAngles_deg)
const;
262 const std::vector<double>& aActuatorAngles_deg);
aObjectPtr Update(simTime)
bool AddControlBooleanToList(std::unique_ptr< ControlBooleanElement > aControlBoolean)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:2014
std::vector< std::unique_ptr< ControlSurfaceElement > > mControlSurfaceList
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:320
ControlInputValue * GetControlInputByName(const std::string &aControlInputName) const
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:331
std::vector< std::unique_ptr< ControlInputValue > > mControlInputList
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:318
~RigidBodyFlightControlSystem()=default
void SetControlValuesBasedOnControlInputs()
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:1500
bool AddControlSurfaceToList(std::unique_ptr< ControlSurfaceElement > aControlSurface)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:1980
bool ProcessInput(UtInput &aInput)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:357
bool GetControlSurfacesUsingInput(std::vector< ControlSurfaceElement * > &list, unsigned int aInputHandle)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:1286
RigidBodyFlightControlSystem & operator=(const RigidBodyFlightControlSystem &other)=delete
void SetAllControlSurfaceAndActuatorsAngles(const std::vector< double > &aControlSurfaceAngles_deg, const std::vector< double > &aActuatorAngles_deg)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:1337
ControlSignalModifierType
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:164
@ AltGainTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:176
@ QGainTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:177
@ SASChannel
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:168
@ SignalMappingTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:187
@ ScalarGain
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:166
@ Undefined
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:165
@ MachGainTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:169
@ GyLoadMappingTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:183
@ AlphaGainTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:171
@ GzLoadMappingTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:184
@ GyLoadGainTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:174
@ QMappingTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:186
@ BetaGainTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:172
@ MachMappingTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:178
@ AlphaMappingTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:180
@ ClampGain
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:167
@ GzLoadGainTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:175
@ KTASGainTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:170
@ GxLoadMappingTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:182
@ BetaMappingTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:181
@ AltMappingTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:185
@ KTASMappingTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:179
@ GxLoadGainTable
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:173
void SetControlSurfacesBasedOnControlInputs(int64_t aSimTime_nanosec)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:1378
void SetControlBooleansBasedOnControlInputs()
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:1599
void ConnectInputsWithOutputs()
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:152
bool Initialize(int64_t aSimTime_nanosec)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:1268
bool ProcessInputSet(UtInput &aInput, ControlSurfaceElement *aActiveControlSurfaceElement)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:1034
bool ProcessControlValueInput(UtInput &aInput)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:883
RigidBodyPilotObject * mRigidBodySixDOF_PilotObjectPtr
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:315
void GetControlSurfaceNames(std::vector< std::string > &list)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:1310
void SetLastUpdateSimTime(int64_t aLastUpdateSimTime_nanosec)
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:61
ControlSignalModifier * GetControlSignalModifierByName(const std::string &aSignalModifierName) const
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:345
bool ProcessControlInputs(UtInput &aInput, ControlSurfaceElement *aActiveControlSurfaceElement)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:1118
int64_t mLastUpdateSimTime_nanosec
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:313
std::vector< std::unique_ptr< ControlValueElement > > mControlValueList
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:321
std::vector< std::unique_ptr< ControlSignalModifier > > mControlSignalModifiersList
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:319
bool ProcessSignalModifierTable(UtInput &aInput)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:415
std::vector< std::unique_ptr< ControlBooleanElement > > mControlBooleanList
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:322
RigidBodyFlightControlSystem()=default
bool ProcessControlBooleanInput(UtInput &aInput)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:970
void GetAllControlSurfaceAndActuatorsAngles(std::vector< double > &aControlSurfaceAngles_deg, std::vector< double > &aActuatorAngles_deg) const
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:1320
bool ProcessControlSurfaceInput(UtInput &aInput)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:732
bool AddControlValueToList(std::unique_ptr< ControlValueElement > aControlValue)
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:1997
RigidBodyPilotManager * mRigidBodySixDOF_PilotManager
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:316
RigidBodyFlightControlSystem * Clone() const
Definition WsfRigidBodySixDOF_FlightControlSystem.cpp:147
Definition WsfRigidBodySixDOF_PilotManager.hpp:31
Definition WsfRigidBodySixDOF_PilotObject.hpp:25
Simple
Definition WsfSixDOF_VehicleData.hpp:28
@ Float
Definition WsfSixDOF_VehicleData.hpp:29
Definition WsfSA_Processor.hpp:35
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Definition WsfRigidBodySixDOF_VehicleData.hpp:23
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:237
double thresholdValue
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:240
std::vector< std::unique_ptr< ControlInputGainStream > > controlInputList
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:239
std::string controlValueName
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:238
bool currentValue
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:241
bool lastValue
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:242
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:202
std::vector< std::string > modifierNameList
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:205
std::string controlInputName
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:203
ControlInputValue * controlInput
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:204
std::vector< ControlSignalModifier * > modifierList
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:206
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:155
double normalizedValue
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:158
bool boolData
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:160
DataType::Simple typeData
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:159
size_t handle
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:157
std::string name
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:156
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:191
std::string name
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:192
double scalarGain
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:196
ControlSignalModifierType type
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:193
UtCloneablePtr< UtTable::Curve > curve
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:195
UtCloneablePtr< UtTable::Table > table
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:194
double maxClamp
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:198
double minClamp
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:197
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:212
UtCloneablePtr< UtTable::Curve > angleMappingAuto
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:215
UtCloneablePtr< RigidBodyControlActuator > actuator
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:217
double currentAngle_deg
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:218
double maxAngle_deg
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:220
UtCloneablePtr< UtTable::Curve > angleMappingManual
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:216
std::string controlSurfaceName
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:213
std::vector< std::unique_ptr< ControlInputGainStream > > controlInputList
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:214
double minAngle_deg
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:219
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:226
std::string controlValueName
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:227
double currentValue
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:229
double minValue
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:230
std::vector< std::unique_ptr< ControlInputGainStream > > controlInputList
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:228
double maxValue
Definition WsfRigidBodySixDOF_FlightControlSystem.hpp:231