WSF
WsfPointMassSixDOF_ControlActuator.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2020 Infoscitex, a DCS Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFPOINTMASSSIXDOFCONTROLACTUATOR_HPP
13#define WSFPOINTMASSSIXDOFCONTROLACTUATOR_HPP
14
15#include <cinttypes>
16
17class UtInputBlock;
18
19namespace wsf
20{
21namespace six_dof
22{
24
26{
27public:
28 explicit PointMassControlActuator(PointMassFlightControlSystem* aFlightControlsParent);
29
31 PointMassFlightControlSystem* aFlightControlsParent);
32
35
36 PointMassControlActuator* Clone(PointMassFlightControlSystem* aFlightControlsParent) const;
37
38 // ProcessInput reads initialization data
39 bool ProcessInput(UtInputBlock& aInputBlock);
40 bool Initialize(int64_t aSimTime_nanosec);
41
42 // This performs an update
43 void Update(int64_t aSimTime_nanosec, double aCommandedAngle_deg);
44
45 // This performs an update and returns the setting after the update
46 double UpdateAndGetCurrentSetting(int64_t aSimTime_nanosec, double aCommandedSetting);
47
48 // This returns the current angle
49 double GetCurrentSetting() const;
50
51 // This may be used to set the current angle. Note that this will instantaneously
52 // set the angle without concern for lags and motion rates.
53 void SetCurrentSetting(double aSetting);
54
55protected:
57
59 double mCurrentSetting = 0.0;
60 double mCommandedSetting = 0.0;
62};
63} // namespace six_dof
64} // namespace wsf
65
66
67#endif
PointMassFlightControlSystem * mFlightControlsParent
Definition WsfPointMassSixDOF_ControlActuator.hpp:56
double GetCurrentSetting() const
Definition WsfPointMassSixDOF_ControlActuator.cpp:132
void SetCurrentSetting(double aSetting)
Definition WsfPointMassSixDOF_ControlActuator.cpp:137
double UpdateAndGetCurrentSetting(int64_t aSimTime_nanosec, double aCommandedSetting)
Definition WsfPointMassSixDOF_ControlActuator.cpp:126
int64_t mLastSimTime_nanosec
Definition WsfPointMassSixDOF_ControlActuator.hpp:58
PointMassControlActuator & operator=(const PointMassControlActuator &other)=delete
PointMassControlActuator * Clone(PointMassFlightControlSystem *aFlightControlsParent) const
Definition WsfPointMassSixDOF_ControlActuator.cpp:37
PointMassControlActuator(PointMassFlightControlSystem *aFlightControlsParent)
Definition WsfPointMassSixDOF_ControlActuator.cpp:21
bool Initialize(int64_t aSimTime_nanosec)
Definition WsfPointMassSixDOF_ControlActuator.cpp:60
void Update(int64_t aSimTime_nanosec, double aCommandedAngle_deg)
Definition WsfPointMassSixDOF_ControlActuator.cpp:67
bool ProcessInput(UtInputBlock &aInputBlock)
Definition WsfPointMassSixDOF_ControlActuator.cpp:42
double mLagTimeConstant_sec
Definition WsfPointMassSixDOF_ControlActuator.hpp:61
double mCurrentSetting
Definition WsfPointMassSixDOF_ControlActuator.hpp:59
double mCommandedSetting
Definition WsfPointMassSixDOF_ControlActuator.hpp:60
Definition WsfPointMassSixDOF_FlightControlSystem.hpp:44
Definition WsfSA_Processor.hpp:35
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved