WSF
P6DofAutopilotAction.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 2003-2015 The Boeing 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 P6DOFAUTOPILOTACTION_H
13#define P6DOFAUTOPILOTACTION_H
14
15#include "p6dof_export.h"
16
17#include "P6DofRoute.hpp"
18
19class P6DofWaypoint;
20
21class P6DOF_EXPORT P6DofAutopilotAction
22{
23public:
27
29
30 // Waypoint info ..............................................................
31
32 // This returns the previous waypoint
34
35 // This returns the current waypoint
37
38 // This returns the next waypoint (beyond the current waypoint)
40
41 // This returns the current route segment
43
44 // This returns the next route segment
46
47 // Set the previous, current, and next waypoints needed to navigate this action,
48 // as well as the route segments between the waypoints
49 void SetNavWaypoints(const P6DofWaypoint* aPrevWpt,
50 const P6DofWaypoint* aCurrWpt,
51 const P6DofWaypoint* aNextWpt,
52 const P6DofRoute::sRouteSegment* aCurrSegment,
53 const P6DofRoute::sRouteSegment* aNextSegment);
54
55 // Lateral channel (yaw/roll) .................................................
56
57 // TODO -- We still need to support:
58 // Lateral::Taxi_Waypoint
59 // Lateral::Taxi_Heading
60 // Lateral::Point
61
62 void SetLateralChannelMode(P6DOF::Lateral::Mode aMode);
63 void SetStabilizingChannelMode(P6DOF::Lateral::Mode aMode);
64 void SetVerticalChannelMode(P6DOF::Vertical::Mode aMode);
65 void SetSpeedChannelMode(P6DOF::Speed::Mode aMode);
66
67 float GetHeading_rad() const { return mHeading_rad; }
68 void SetHeading_rad(float aHeading_rad);
69 float GetHeading_deg() const;
70 void SetHeading_deg(float aHeading_deg);
71
72 float GetBank_rad() const { return mBank_rad; }
73 void SetBank_rad(float aBank_rad);
74 float GetBank_deg() const;
75 void SetBank_deg(float aBank_deg);
76
77 float GetRollRate_dps() const { return mRollRate_dps; }
78 void SetRollRate_dps(float aRollRate_dps);
79
80 float GetRollDelta_deg() const { return mRollDelta_deg; }
81 void SetRollDelta_deg(float aRollDelta_deg);
82
83 float GetYawGLoad_g() const { return mYawGLoad_g; }
84 void SetYawGLoad_g(float aGLoad_g);
85
86 float GetYawRate_dps() const { return mYawRate_dps; }
87 void SetYawRate_dps(float aYawRate_dps);
88
89 float GetBeta_deg() const { return mBeta_deg; }
90 void SetBeta_deg(float aBeta_deg);
91
92 // Speed channel ..............................................................
93
95 void SetForwardAcceleration_g(float aAcceleration_g);
96
98 void SetCalibratedAirSpeed_KCAS(float aCalibratedAirSpeed_KCAS);
99
100 float GetTrueAirSpeed_KTAS() const { return mTrueAirSpeed_KTAS; }
101 void SetTrueAirSpeed_KTAS(float aTrueAirSpeed_KTAS);
102
103 float GetMach() const { return mMach; }
104 void SetMach(float aMach);
105
106 float GetSpeed_fps() const { return mSpeed_fps; }
107 void SetSpeed_fps(float aSpeed_fps);
108
109 void SetNoSpeedControl();
110
111 // Vertical channel (pitch) ...................................................
112
113 // TODO - We still need to support:
114 // Vertical::Point
115
116 float GetAltitudeMSL_ft() const { return mAltitudeMSL_ft; }
117 float GetAltitudeMSL_m() const;
118 void SetAltitudeMSL_ft(float aAltitudeMSL_ft);
119
120 float GetVerticalRate_fpm() const { return mVerticalRate_fpm; }
121 void SetVerticalRate_fpm(float aVerticalRate_fpm);
122
123 float GetPitchGLoad_g() const { return mPitchGLoad_g; }
124 void SetPitchGLoad_g(float aGLoad_g);
125
126 float GetPitchAngle_deg() const { return mPitchAngle_deg; }
127 void SetPitchAngle_deg(float aPitchAngle_deg);
128
129 float GetPitchRate_dps() const { return mPitchRate_dps; }
130 void SetPitchRate_dps(float aPitchRate_dps);
131
132 float GetFlightPathAngle_deg() const;
133 void SetFlightPathAngle_deg(float aVerticalAngle_deg);
134
135 float GetDeltaPitch_deg() const { return mDeltaPitch_deg; }
136 void SetDeltaPitch_deg(float aDeltaPitch_deg);
137
138 float GetAlpha_deg() const { return mAlpha_deg; }
139 void SetAlpha_deg(float aAlpha_deg);
140
141 // Mode accessors .............................................................
142
147
148 // Turn direction accessor
150
151protected:
153
154 // Data needed to navigate the route
160
161 // Lateral channel
162
163 float mHeading_rad; // -pi to pi abs, or -INF to INF for rel
165 float mBank_rad; // -pi to pi abs, or -INF to INF for rel
172
173 // Vertical channel
174
183
184 // Speed channel
185
186 float mMach;
191
193
198};
199
200#endif // P6DOFAUTOPILOTACTION_H
float mAlpha_deg
Definition P6DofAutopilotAction.hpp:182
~P6DofAutopilotAction()=default
float GetForwardAcceleration_g() const
Definition P6DofAutopilotAction.hpp:94
const P6DofRoute::sRouteSegment * mCurrSegmentPtr
Definition P6DofAutopilotAction.hpp:158
float mRollDelta_deg
Definition P6DofAutopilotAction.hpp:168
P6DOF::Lateral::Mode GetLateralChannelMode() const
Definition P6DofAutopilotAction.hpp:143
float mBank_rad
Definition P6DofAutopilotAction.hpp:165
float GetBeta_deg() const
Definition P6DofAutopilotAction.hpp:89
const P6DofRoute::sRouteSegment * GetCurrSegment() const
Definition P6DofAutopilotAction.hpp:42
float mRadiusFt
Definition P6DofAutopilotAction.hpp:166
const P6DofRoute::sRouteSegment * GetNextSegment() const
Definition P6DofAutopilotAction.hpp:45
float GetAltitudeMSL_ft() const
Definition P6DofAutopilotAction.hpp:116
float GetYawGLoad_g() const
Definition P6DofAutopilotAction.hpp:83
const P6DofWaypoint * mNextWaypointPtr
Definition P6DofAutopilotAction.hpp:157
float GetAlpha_deg() const
Definition P6DofAutopilotAction.hpp:138
P6DofAutopilotAction & operator=(const P6DofAutopilotAction &)=delete
P6DOF::Speed::Mode GetSpeedChannelMode() const
Definition P6DofAutopilotAction.hpp:146
float mPitchAngle_deg
Definition P6DofAutopilotAction.hpp:178
float GetVerticalRate_fpm() const
Definition P6DofAutopilotAction.hpp:120
float GetCalibratedAirSpeed_KCAS() const
Definition P6DofAutopilotAction.hpp:97
float GetRollRate_dps() const
Definition P6DofAutopilotAction.hpp:77
float GetRollDelta_deg() const
Definition P6DofAutopilotAction.hpp:80
P6DOF::Lateral::Mode mStabilizingChannelMode
Definition P6DofAutopilotAction.hpp:195
float GetPitchGLoad_g() const
Definition P6DofAutopilotAction.hpp:123
float mPitchGLoad_g
Definition P6DofAutopilotAction.hpp:180
const P6DofWaypoint * mCurrWaypointPtr
Definition P6DofAutopilotAction.hpp:156
const P6DofRoute::sRouteSegment * mNextSegmentPtr
Definition P6DofAutopilotAction.hpp:159
P6DOF::Lateral::Mode GetStabilizingChannelMode() const
Definition P6DofAutopilotAction.hpp:144
float GetYawRate_dps() const
Definition P6DofAutopilotAction.hpp:86
float GetDeltaPitch_deg() const
Definition P6DofAutopilotAction.hpp:135
float mCalibratedAirSpeed_KCAS
Definition P6DofAutopilotAction.hpp:188
float mRollRate_dps
Definition P6DofAutopilotAction.hpp:167
float mDeltaPitch_deg
Definition P6DofAutopilotAction.hpp:181
float GetBank_rad() const
Definition P6DofAutopilotAction.hpp:72
float mYawRate_dps
Definition P6DofAutopilotAction.hpp:170
float mTrueAirSpeed_KTAS
Definition P6DofAutopilotAction.hpp:187
float mSpeed_fps
Definition P6DofAutopilotAction.hpp:190
float mBeta_deg
Definition P6DofAutopilotAction.hpp:171
float mForwardAcceleration_g
Definition P6DofAutopilotAction.hpp:189
P6DOF::Vertical::Mode GetVerticalChannelMode() const
Definition P6DofAutopilotAction.hpp:145
float mPitchRate_dps
Definition P6DofAutopilotAction.hpp:179
float mMach
Definition P6DofAutopilotAction.hpp:186
const P6DofWaypoint * GetCurrWaypoint() const
Definition P6DofAutopilotAction.hpp:36
P6DOF::Speed::Mode mSpeedChannelMode
Definition P6DofAutopilotAction.hpp:197
const P6DofWaypoint * mPrevWaypointPtr
Definition P6DofAutopilotAction.hpp:155
P6DofCommonController::eAutopilotTurnDir GetAPTurnDir() const
Definition P6DofAutopilotAction.hpp:149
P6DofAutopilotAction(const P6DofAutopilotAction &aSrc)=default
float mFlightPathAngle_rad
Definition P6DofAutopilotAction.hpp:177
P6DofCommonController::eAutopilotTurnDir mTurnDirection
Definition P6DofAutopilotAction.hpp:192
float GetPitchRate_dps() const
Definition P6DofAutopilotAction.hpp:129
float GetTrueAirSpeed_KTAS() const
Definition P6DofAutopilotAction.hpp:100
P6DOF::Vertical::Mode mVerticalChannelMode
Definition P6DofAutopilotAction.hpp:196
float GetHeading_rad() const
Definition P6DofAutopilotAction.hpp:67
float GetPitchAngle_deg() const
Definition P6DofAutopilotAction.hpp:126
P6DofAutopilotAction()
Definition P6DofAutopilotAction.cpp:17
float mVerticalRate_fpm
Definition P6DofAutopilotAction.hpp:176
const P6DofWaypoint * GetPrevWaypoint() const
Definition P6DofAutopilotAction.hpp:33
float GetSpeed_fps() const
Definition P6DofAutopilotAction.hpp:106
float mYawGLoad_g
Definition P6DofAutopilotAction.hpp:169
float mRateOfTurn_dps
Definition P6DofAutopilotAction.hpp:164
float mHeading_rad
Definition P6DofAutopilotAction.hpp:163
const P6DofWaypoint * GetNextWaypoint() const
Definition P6DofAutopilotAction.hpp:39
float GetMach() const
Definition P6DofAutopilotAction.hpp:103
float mAltitudeMSL_ft
Definition P6DofAutopilotAction.hpp:175
P6DofAutopilotAction * Clone() const
Definition P6DofAutopilotAction.cpp:53
P6DOF::Lateral::Mode mLateralChannelMode
Definition P6DofAutopilotAction.hpp:194
eAutopilotTurnDir
Definition P6DofCommonController.hpp:55
Definition P6DofWaypoint.hpp:23
Mode
Definition P6DofVehicleData.hpp:302
Mode
Definition P6DofVehicleData.hpp:338
Mode
Definition P6DofVehicleData.hpp:319
Definition P6DofRoute.hpp:40
Copyrights Multiple, All Rights Reserved