]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim.hxx
Syncing with latest JSBSim code with retractable landing gear support.
[flightgear.git] / src / FDM / JSBSim.hxx
index 4b9cf8e2f240595c6cf979f32a56cf02f2efa8f4..6d9f66f345bdacf7e44fec89d0f969478e6311f2 100644 (file)
@@ -21,9 +21,6 @@
  along with this program; if not, write to the Free Software
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
- Further information about the GNU General Public License can also be found on
- the world wide web at http://www.gnu.org.
-
 HISTORY
 --------------------------------------------------------------------------------
 02/01/1999   CLO   Created
@@ -40,8 +37,6 @@ SENTRY
 INCLUDES
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-#include <FDM/JSBSim/FGFDMExec.h>
-#include <FDM/JSBSim/FGInitialCondition.h>
 #undef MAX_ENGINES
 #include <Aircraft/aircraft.hxx>
 
@@ -51,10 +46,32 @@ DEFINITIONS
 
 #define ID_JSBSIMXX "$Header JSBSim.hxx,v 1.4 2000/10/22 14:02:16 jsb Exp $"
 
+#define METERS_TO_FEET 3.2808398950
+#define RADTODEG 57.2957795
+
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 FORWARD DECLARATIONS
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
+#include <simgear/misc/props.hxx>
+
+#include <FDM/JSBSim/FGFDMExec.h>
+
+class FGState;
+class FGAtmosphere;
+class FGFCS;
+class FGPropulsion;
+class FGMassBalance;
+class FGAerodynamics;
+class FGInertial;
+class FGAircraft;
+class FGTranslation;
+class FGRotation;
+class FGPosition;
+class FGAuxiliary;
+class FGOutput;
+class FGInitialCondition;
+
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 COMMENTS, REFERENCES, and NOTES [use "class documentation" below for API docs]
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
@@ -63,7 +80,7 @@ COMMENTS, REFERENCES, and NOTES [use "class documentation" below for API docs]
 CLASS DOCUMENTATION
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-/** FGFS / JSBSim interface (aka "The Bus")
+/** FGFS / JSBSim interface (aka "The Bus").
     This class provides for an interface between FlightGear and its data
     structures and JSBSim and its data structures. This is the class which is
     used to command JSBSim when integrated with FlightGear. See the
@@ -82,7 +99,7 @@ class FGJSBsim: public FGInterface {
 
 public:
     /// Constructor
-    FGJSBsim::FGJSBsim(void);
+    FGJSBsim::FGJSBsim( double dt );
     /// Destructor
     FGJSBsim::~FGJSBsim();
 
@@ -93,9 +110,9 @@ public:
     bool copy_from_JSBsim();
 
     /// Reset flight params to a specific position
-    bool init( double dt );
+    void init();
 
-    /// Position Parameters
+    /// @name Position Parameter Set
     //@{
     /** Set geocentric latitude
         @param lat latitude in radians measured from the 0 meridian where
@@ -115,7 +132,7 @@ public:
 
     //void set_AltitudeAGL(double altagl); // and vice-versa
 
-    /// Velocity Parameters
+    /// @name Velocity Parameter Set
     //@{
     /** Sets calibrated airspeed
         Setting this will trigger a recalc of the other velocity terms.
@@ -142,13 +159,13 @@ public:
     void set_Velocities_Wind_Body( double u, double v, double w);
     //@}
 
-    /** Euler angle parameters
+    /** Euler Angle Parameter Set
         @param phi roll angle in radians
              @param theta pitch angle in radians
              @param psi heading angle in radians */
     void set_Euler_Angles( double phi, double theta, double psi );
 
-    /// Flight Path Parameters
+    /// @name Flight Path Parameter Set
     //@{
     /** Sets rate of climb
         @param roc Rate of climb in ft/sec */
@@ -159,7 +176,7 @@ public:
     void set_Gamma_vert_rad( double gamma);
     //@}
 
-    /// Earth Parameters
+    /// @name Earth Parameter Set
     //@{
     /** Sets the sea level radius in feet.
         @param slr Sea Level Radius in feet */
@@ -170,7 +187,7 @@ public:
     void set_Runway_altitude(double ralt);
     //@}
 
-    /// Atmospheric Parameters
+    /// @name Atmospheric Parameter Set
     //@{
     /** Sets the atmospheric static pressure
         @param p pressure in psf */
@@ -191,23 +208,51 @@ public:
     void set_Velocities_Local_Airmass (double wnorth,
                                       double weast,
                                       double wdown );
-    //@}
+    /// @name Position Parameter Update
+    //@{
+
 
     /** Update the position based on inputs, positions, velocities, etc.
         @param multiloop number of times to loop through the FDM
              @return true if successful */
     bool update( int multiloop );
+    bool ToggleDataLogging(bool state);
+    bool ToggleDataLogging(void);
+    void do_trim(void);
 
 private:
     FGFDMExec *fdmex;
     FGInitialCondition *fgic;
     bool needTrim;
 
-    bool trimmed;
+    FGState*        State;
+    FGAtmosphere*   Atmosphere;
+    FGFCS*          FCS;
+    FGPropulsion*   Propulsion;
+    FGMassBalance*  MassBalance;
+    FGAircraft*     Aircraft;
+    FGTranslation*  Translation;
+    FGRotation*     Rotation;
+    FGPosition*     Position;
+    FGAuxiliary*    Auxiliary;
+    FGAerodynamics* Aerodynamics;
+    FGGroundReactions *GroundReactions;
+
+    int runcount;
     float trim_elev;
     float trim_throttle;
     
-    void snap_shot(void);
+    SGPropertyNode *startup_trim;
+    SGPropertyNode *trimmed;
+    SGPropertyNode *pitch_trim;
+    SGPropertyNode *throttle_trim;
+    SGPropertyNode *aileron_trim;
+    SGPropertyNode *rudder_trim;
+    SGPropertyNode *stall_warning;
+    
+    void init_gear(void);
+    void update_gear(void);
+    
 };