WSF
WsfRigidBodySixDOF_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 WSFRIGIDBODYSIXDOFCONTROLACTUATOR_HPP
13#define WSFRIGIDBODYSIXDOFCONTROLACTUATOR_HPP
14
15#include <cinttypes>
16
17class UtInput;
18
19namespace wsf
20{
21namespace six_dof
22{
24
26{
27public:
28 explicit RigidBodyControlActuator(RigidBodyFlightControlSystem* aFlightControlsParent);
31
32 RigidBodyControlActuator* Clone(RigidBodyFlightControlSystem* aFlightControlsParent) const;
33
34 // ProcessInput reads initialization data
35 bool ProcessInput(UtInput& aInput);
36 bool Initialize(int64_t aSimTime_nanosec);
37
38 // This performs an update
39 void Update(int64_t aSimTime_nanosec, double aCommandedAngle_deg);
40
41 // This performs an update and returns the angle after the update
42 double UpdateAndGetCurrentAngle_deg(int64_t aSimTime_nanosec, double aCommandedAngle_deg);
43
44 // This returns the current angle
45 double GetCurrentAngle_deg() const;
46
47 // This may be used to set the current angle. Note that this will instantaneously
48 // set the angle without concern for lags and motion rates.
49 void SetCurrentAngle_deg(double aAngle_deg);
50
51protected:
53
55
58 double mMaxAngle_deg = 0.0;
59 double mMinAngle_deg = 0.0;
60 double mCurrentAngle_deg = 0.0;
61 double mCommandedAngle_deg = 0.0;
64};
65} // namespace six_dof
66} // namespace wsf
67
68
69#endif
double mMaxAngle_deg
Definition WsfRigidBodySixDOF_ControlActuator.hpp:58
RigidBodyControlActuator * Clone(RigidBodyFlightControlSystem *aFlightControlsParent) const
Definition WsfRigidBodySixDOF_ControlActuator.cpp:42
RigidBodyFlightControlSystem * mFlightControlsParent
Definition WsfRigidBodySixDOF_ControlActuator.hpp:54
double mMaxPositiveRate_dps
Definition WsfRigidBodySixDOF_ControlActuator.hpp:56
bool Initialize(int64_t aSimTime_nanosec)
Definition WsfRigidBodySixDOF_ControlActuator.cpp:126
double mCommandedAngle_deg
Definition WsfRigidBodySixDOF_ControlActuator.hpp:61
double UpdateAndGetCurrentAngle_deg(int64_t aSimTime_nanosec, double aCommandedAngle_deg)
Definition WsfRigidBodySixDOF_ControlActuator.cpp:222
bool ProcessInput(UtInput &aInput)
Definition WsfRigidBodySixDOF_ControlActuator.cpp:47
double mLagTimeConstant_sec
Definition WsfRigidBodySixDOF_ControlActuator.hpp:63
double mCurrentAngle_deg
Definition WsfRigidBodySixDOF_ControlActuator.hpp:60
double mMinAngle_deg
Definition WsfRigidBodySixDOF_ControlActuator.hpp:59
void Update(int64_t aSimTime_nanosec, double aCommandedAngle_deg)
Definition WsfRigidBodySixDOF_ControlActuator.cpp:133
int64_t mLastSimTime_nanosec
Definition WsfRigidBodySixDOF_ControlActuator.hpp:62
void SetCurrentAngle_deg(double aAngle_deg)
Definition WsfRigidBodySixDOF_ControlActuator.cpp:234
double GetCurrentAngle_deg() const
Definition WsfRigidBodySixDOF_ControlActuator.cpp:229
RigidBodyControlActuator(RigidBodyFlightControlSystem *aFlightControlsParent)
Definition WsfRigidBodySixDOF_ControlActuator.cpp:22
RigidBodyControlActuator & operator=(const RigidBodyControlActuator &other)=delete
double mMaxNegativeRate_dps
Definition WsfRigidBodySixDOF_ControlActuator.hpp:57
Definition WsfRigidBodySixDOF_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