]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/FGTrimAxis.h
Updated to match changes in radiostack.[ch]xx
[flightgear.git] / src / FDM / JSBSim / FGTrimAxis.h
index face0e94e4e0a0b219f6e285214d5936142757c7..86537800a7adea2a0b185d6c7dd0d3be76861f7d 100644 (file)
@@ -56,7 +56,9 @@ INCLUDES
 
 #define DEFAULT_TOLERANCE 0.001
 
-const string StateNames[7]=   { "udot","vdot","wdot","qdot","pdot","rdot","hmgt" };
+const string StateNames[10]=   { "all","udot","vdot","wdot","qdot","pdot","rdot",
+                                "hmgt","nlf" 
+                              };
 const string ControlNames[14]= { "Throttle","Sideslip","Angle of Attack",
                                  "Elevator","Ailerons","Rudder",
                                  "Altitude AGL", "Pitch Angle",
@@ -69,7 +71,7 @@ const string ControlNames[14]= { "Throttle","Sideslip","Angle of Attack",
 CLASS DECLARATION
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-enum State { tUdot,tVdot,tWdot,tQdot,tPdot,tRdot,tHmgt };
+enum State { tAll,tUdot,tVdot,tWdot,tQdot,tPdot,tRdot,tHmgt,tNlf };
 enum Control { tThrottle, tBeta, tAlpha, tElevator, tAileron, tRudder, tAltAGL,
                tTheta, tPhi, tGamma, tPitchTrim, tRollTrim, tYawTrim, tHeading };
 
@@ -82,10 +84,10 @@ public:
 
   void Run(void);
  
-  float GetState(void) { getState(); return state_value; }
+  double GetState(void) { getState(); return state_value; }
   //Accels are not settable
-  inline void SetControl(float value ) { control_value=value; }
-  inline float GetControl(void) { return control_value; }
+  inline void SetControl(double value ) { control_value=value; }
+  inline double GetControl(void) { return control_value; }
 
   inline State GetStateType(void) { return state; }
   inline Control GetControlType(void) { return control; }
@@ -93,32 +95,35 @@ public:
   inline string GetStateName(void) { return StateNames[state]; }
   inline string GetControlName(void) { return ControlNames[control]; }
 
-  inline float GetControlMin(void) { return control_min; }
-  inline float GetControlMax(void) { return control_max; }
+  inline double GetControlMin(void) { return control_min; }
+  inline double GetControlMax(void) { return control_max; }
 
   inline void SetControlToMin(void) { control_value=control_min; }
   inline void SetControlToMax(void) { control_value=control_max; }
   
-  inline void SetControlLimits(float min, float max) { 
+  inline void SetControlLimits(double min, double max) { 
       control_min=min;
       control_max=max;
   }    
 
-  inline void  SetTolerance(float ff) { tolerance=ff;}
-  inline float GetTolerance(void) { return tolerance; }
+  inline void  SetTolerance(double ff) { tolerance=ff;}
+  inline double GetTolerance(void) { return tolerance; }
 
-  inline float GetSolverEps(void) { return solver_eps; }
-  inline void SetSolverEps(float ff) { solver_eps=ff; }
+  inline double GetSolverEps(void) { return solver_eps; }
+  inline void SetSolverEps(double ff) { solver_eps=ff; }
 
   inline int  GetIterationLimit(void) { return max_iterations; }
   inline void SetIterationLimit(int ii) { max_iterations=ii; }
 
   inline int GetStability(void) { return its_to_stable_value; }
   inline int GetRunCount(void) { return total_stability_iterations; }
-  float GetAvgStability( void );
+  double GetAvgStability( void );
   
-  void SetThetaOnGround(float ff);
-  void SetPhiOnGround(float ff);
+  void SetThetaOnGround(double ff);
+  void SetPhiOnGround(double ff);
+  
+  inline void SetStateTarget(float target) { state_target=target; }
+  inline float GetStateTarget(void) { return state_target; }
   
   bool initTheta(void);
   
@@ -132,19 +137,21 @@ private:
 
   State   state;
   Control control;
-
+  
+  float state_target;
+  
   float state_value;
   float control_value;
 
-  float control_min;
-  float control_max;
+  double control_min;
+  double control_max;
 
-  float tolerance;
+  double tolerance;
 
-  float solver_eps;
+  double solver_eps;
 
-  float state_convert;
-  float control_convert;
+  double state_convert;
+  double control_convert;
 
   int max_iterations;
 
@@ -158,9 +165,9 @@ private:
   void getControl(void);
   void setControl(void);
   
-  float computeHmgt(void);
+  double computeHmgt(void);
   
-  void Debug(void);
+  void Debug(int from);
 };
 
 #endif