WSF
WsfPointMassSixDOF_CommonController.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 WSFPOINTMASSSIXDOFCOMMONCONTROLLER_HPP
13#define WSFPOINTMASSSIXDOFCOMMONCONTROLLER_HPP
14
15#include <vector>
16
20
21namespace wsf
22{
23namespace six_dof
24{
25class WSF_SIX_DOF_EXPORT PointMassCommonController : public CommonController
26{
27public:
29 explicit PointMassCommonController(UtInput& aInput, const std::string& aCommand);
30 virtual ~PointMassCommonController() = default;
31
33
35
36 void ReadSupportFile(const std::string& aFilename);
37
38 void Update(sAutopilotControls& aControls, int64_t aDT) override;
39
40 void SetParentVehicle(Mover* aVehicle) override { mParentVehiclePtr = utils::CastToPointMass(aVehicle); }
41
42protected:
44
45 void LoadConfigFile(const std::string& aFilename);
46 void ProcessInputCommand(UtInput& aInput, const std::string& aCommand) override;
47
48 void ProcessLaternalNavChannelsBankToTurn(double aSimTime) override;
49 void ProcessVerticalNavChannelBankToTurn(double aSimTime) override;
50 void ProcessSpeedChannelBankToTurn(double aSimTime) override;
51
52 void ProcessLaternalNavChannelsYawToTurn(double aSimTime) override;
53 void ProcessVerticalNavChannelYawToTurn(double aSimTime) override;
54 void ProcessSpeedChannelYawToTurn(double aSimTime) override;
55
56 void ProcessStandardVerticalNavMode_Alpha(double aCommandedAlpha_deg, double aSimTime) override;
57 void ProcessStandardLateralNavMode_Beta(double aCommandedBeta_deg, double aSimTime) override;
58 void ProcessStandardLateralNavMode_RollRate(double aCommandedRollRate_dps, double aSimTime) override;
59
60 void ProcessLateralNavMode_DeltaRoll(double aSimTime) override;
61 void ProcessVerticalNavMode_DeltaPitch(double aSimTime) override;
62
63 PID* GetPID_ByType(Pid::Type aTableType) override;
64
65 void SetControllingValueForAllPIDs(double aControllingValue);
66
67private:
68 Mover* GetParentVehicle() override;
69
70 PointMassMover* mParentVehiclePtr = nullptr;
71};
72} // namespace six_dof
73} // namespace wsf
74
75#endif // MRMCOMMONCONTROLLER_H
aObjectPtr Update(simTime)
This is a base class for detailed air movers. This umbrella can cover RB6 or PM6 models.
Definition WsfSixDOF_Mover.hpp:58
Definition WsfSixDOF_PID.hpp:42
Definition WsfPointMassSixDOF_CommonController.hpp:26
void SetParentVehicle(Mover *aVehicle) override
Definition WsfPointMassSixDOF_CommonController.hpp:40
void ReadSupportFile(const std::string &aFilename)
Definition WsfPointMassSixDOF_CommonController.cpp:648
PointMassCommonController & operator=(const PointMassCommonController &other)=delete
PointMassCommonController * Clone() const
Definition WsfPointMassSixDOF_CommonController.cpp:38
Definition WsfPointMassSixDOF_Mover.hpp:33
Type
Definition WsfSixDOF_VehicleData.hpp:112
WSF_SIX_DOF_EXPORT PointMassMover * CastToPointMass(Mover *aVehicle)
Definition WsfPointMassSixDOF_Utils.cpp:42
Definition WsfSA_Processor.hpp:35
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Definition WsfSixDOF_CommonController.hpp:41
Copyrights Multiple, All Rights Reserved