FORWARD DECLARATIONS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
-#include <simgear/misc/props.hxx>
+#include <simgear/props/props.hxx>
#include <FDM/JSBSim/FGFDMExec.h>
+namespace JSBSim {
class FGState;
class FGAtmosphere;
class FGFCS;
class FGAerodynamics;
class FGInertial;
class FGAircraft;
-class FGTranslation;
-class FGRotation;
-class FGPosition;
+class FGPropagate;
class FGAuxiliary;
class FGOutput;
class FGInitialCondition;
+}
-/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-COMMENTS, REFERENCES, and NOTES [use "class documentation" below for API docs]
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
+using namespace JSBSim;
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
CLASS DOCUMENTATION
@author Tony Peden (Maintained and refined)
@version $Id$
@see main in file JSBSim.cpp (use main() wrapper for standalone usage)
- @see <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jsbsim/JSBSim/JSBSim.hxx?rev=HEAD&content-type=text/vnd.viewcvs-markup">
- Header File </a>
- @see <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jsbsim/JSBSim/JSBSim.cxx?rev=HEAD&content-type=text/vnd.viewcvs-markup">
- Source File </a>
*/
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//@{
/** Set geocentric latitude
@param lat latitude in radians measured from the 0 meridian where
- the westerly direction is positive and east is negative */
+ the westerly direction is positive and east is negative */
void set_Latitude(double lat); // geocentric
/** Set longitude
@param lon longitude in radians measured from the equator where
- the northerly direction is positive and south is negative */
+ the northerly direction is positive and south is negative */
void set_Longitude(double lon);
/** Set altitude
Note: this triggers a recalculation of AGL altitude
- @param alt altitude in feet */
+ @param alt altitude in feet */
void set_Altitude(double alt); // triggers re-calc of AGL altitude
//@}
//@{
/** Sets calibrated airspeed
Setting this will trigger a recalc of the other velocity terms.
- @param vc Calibrated airspeed in ft/sec */
+ @param vc Calibrated airspeed in ft/sec */
void set_V_calibrated_kts(double vc);
/** Sets Mach number.
Setting this will trigger a recalc of the other velocity terms.
- @param mach Mach number */
+ @param mach Mach number */
void set_Mach_number(double mach);
/** Sets velocity in N-E-D coordinates.
Setting this will trigger a recalc of the other velocity terms.
- @param north velocity northward in ft/sec
- @param east velocity eastward in ft/sec
- @param down velocity downward in ft/sec */
+ @param north velocity northward in ft/sec
+ @param east velocity eastward in ft/sec
+ @param down velocity downward in ft/sec */
void set_Velocities_Local( double north, double east, double down );
/** Sets aircraft velocity in stability frame.
Setting this will trigger a recalc of the other velocity terms.
- @param u X velocity in ft/sec
- @param v Y velocity in ft/sec
- @param w Z velocity in ft/sec */
+ @param u X velocity in ft/sec
+ @param v Y velocity in ft/sec
+ @param w Z velocity in ft/sec */
void set_Velocities_Wind_Body( double u, double v, double w);
//@}
/** Euler Angle Parameter Set
@param phi roll angle in radians
- @param theta pitch angle in radians
- @param psi heading 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 );
/// @name Flight Path Parameter Set
//@{
/** Sets the atmospheric static pressure
@param p pressure in psf */
- void set_Static_pressure(double p);
+// void set_Static_pressure(double p);
/** Sets the atmospheric temperature
@param T temperature in degrees rankine */
- void set_Static_temperature(double T);
+// void set_Static_temperature(double T);
/** Sets the atmospheric density.
@param rho air density slugs/cubic foot */
- void set_Density(double rho);
+// void set_Density(double rho);
/** Sets the velocity of the local airmass for wind modeling.
@param wnorth velocity north in fps
@param weast velocity east in fps
@param wdown velocity down in fps*/
- 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 */
- void update( int multiloop );
+ @param dt delta time in seconds. */
+ void update(double dt);
bool ToggleDataLogging(bool state);
bool ToggleDataLogging(void);
void do_trim(void);
void update_ic(void);
+ //** Handle a crash of the user aircraft. */
+ void crash_handler();
+
private:
FGFDMExec *fdmex;
FGInitialCondition *fgic;
FGPropulsion* Propulsion;
FGMassBalance* MassBalance;
FGAircraft* Aircraft;
- FGTranslation* Translation;
- FGRotation* Rotation;
- FGPosition* Position;
+ FGPropagate* Propagate;
FGAuxiliary* Auxiliary;
FGAerodynamics* Aerodynamics;
FGGroundReactions *GroundReactions;
int runcount;
- float trim_elev;
- float trim_throttle;
-
+ double trim_elev;
+ double trim_throttle;
+
SGPropertyNode *startup_trim;
SGPropertyNode *trimmed;
SGPropertyNode *pitch_trim;
SGPropertyNode *aileron_trim;
SGPropertyNode *rudder_trim;
SGPropertyNode *stall_warning;
-
+
/* SGPropertyNode *elevator_pos_deg;
SGPropertyNode *left_aileron_pos_deg;
SGPropertyNode *right_aileron_pos_deg;
SGPropertyNode *rudder_pos_deg;
SGPropertyNode *flap_pos_deg; */
-
+
SGPropertyNode *elevator_pos_pct;
SGPropertyNode *left_aileron_pos_pct;
SGPropertyNode *right_aileron_pos_pct;
SGPropertyNode *rudder_pos_pct;
SGPropertyNode *flap_pos_pct;
-
+ SGPropertyNode *speedbrake_pos_pct;
+ SGPropertyNode *spoilers_pos_pct;
+
SGPropertyNode *gear_pos_pct;
-
+
+ SGPropertyNode *temperature;
+ SGPropertyNode *pressure;
+ SGPropertyNode *density;
+ SGPropertyNode *turbulence_gain;
+ SGPropertyNode *turbulence_rate;
+
+ SGPropertyNode *wind_from_north;
+ SGPropertyNode *wind_from_east;
+ SGPropertyNode *wind_from_down;
+
void init_gear(void);
void update_gear(void);
-
+
+ bool reset_on_crash;
+ bool crashed;
+ string crash_message;
+
};