Base class for all scheduled JSBSim models.
Each model binds simulation/models/<Name>/enabled (default true), where Name is the name passed to the constructor. Setting that property false skips the model's Run(): its last state and its property bindings are preserved, which is the property-tree mechanism by which an external system can replace a model, for example a host physics engine owning FGGroundReactions. The binding is made at construction, so a model that renames itself while loading does not move its enable property.
- Author
- Jon S. Berndt
Definition at line 78 of file FGModel.h.
|
| enum | { eL = 1
, eM
, eN
} |
| | Moments L, M, N. More...
|
| |
| enum | { eP = 1
, eQ
, eR
} |
| | Rates P, Q, R. More...
|
| |
| enum | { eU = 1
, eV
, eW
} |
| | Velocities U, V, W. More...
|
| |
| enum | { eX = 1
, eY
, eZ
} |
| | Positions X, Y, Z. More...
|
| |
| enum | { ePhi = 1
, eTht
, ePsi
} |
| | Euler angles Phi, Theta, Psi. More...
|
| |
| enum | { eDrag = 1
, eSide
, eLift
} |
| | Stability axis forces, Drag, Side force, Lift. More...
|
| |
| enum | { eRoll = 1
, ePitch
, eYaw
} |
| | Local frame orientation Roll, Pitch, Yaw. More...
|
| |
| enum | { eNorth = 1
, eEast
, eDown
} |
| | Local frame position North, East, Down. More...
|
| |
| enum | { eLat = 1
, eLong
, eRad
} |
| | Locations Radius, Latitude, Longitude. More...
|
| |
| enum | {
inNone = 0
, inDegrees
, inRadians
, inMeters
,
inFeet
} |
| | Conversion specifiers. More...
|
| |
| static constexpr double | CelsiusToFahrenheit (double celsius) |
| | Converts from degrees Celsius to degrees Fahrenheit.
|
| |
| static constexpr double | CelsiusToKelvin (double celsius) |
| | Converts from degrees Celsius to degrees Kelvin.
|
| |
| static constexpr double | CelsiusToRankine (double celsius) |
| | Converts from degrees Celsius to degrees Rankine.
|
| |
| static constexpr double | Constrain (double min, double value, double max) |
| | Constrain a value between a minimum and a maximum value.
|
| |
| static bool | EqualToRoundoff (double a, double b) |
| | Finite precision comparison.
|
| |
| static bool | EqualToRoundoff (double a, float b) |
| | Finite precision comparison.
|
| |
| static bool | EqualToRoundoff (float a, double b) |
| | Finite precision comparison.
|
| |
| static bool | EqualToRoundoff (float a, float b) |
| | Finite precision comparison.
|
| |
| static constexpr double | FahrenheitToCelsius (double fahrenheit) |
| | Converts from degrees Fahrenheit to degrees Celsius.
|
| |
| static constexpr double | FeetToMeters (double measure) |
| | Converts from feet to meters.
|
| |
| static const std::string & | GetVersion (void) |
| | Returns the version number of JSBSim.
|
| |
| static constexpr double | KelvinToCelsius (double kelvin) |
| | Converts from degrees Kelvin to degrees Celsius.
|
| |
| static constexpr double | KelvinToFahrenheit (double kelvin) |
| | Converts from degrees Kelvin to degrees Fahrenheit.
|
| |
| static constexpr double | KelvinToRankine (double kelvin) |
| | Converts from degrees Kelvin to degrees Rankine.
|
| |
| static constexpr double | RankineToCelsius (double rankine) |
| | Converts from degrees Rankine to degrees Celsius.
|
| |
| static constexpr double | RankineToKelvin (double rankine) |
| | Converts from degrees Rankine to degrees Kelvin.
|
| |
| static constexpr double | sign (double num) |
| |
| static short | debug_lvl = 1 |
| |
| static std::string | CreateIndexedPropertyName (const std::string &Property, int index) |
| |
| static constexpr double | degtorad = M_PI / 180. |
| |
| static constexpr double | fpstokts = 1.0 / ktstofps |
| |
| static constexpr double | fttom = 0.3048 |
| |
| static constexpr double | hptoftlbssec = 550.0 |
| |
| static constexpr double | in3tom3 = inchtoft*inchtoft*inchtoft/m3toft3 |
| |
| static constexpr double | inchtoft = 1.0/12.0 |
| |
| static constexpr double | inhgtopa = 3386.38 |
| |
| static const std::string | JSBSim_version = JSBSIM_VERSION " " __DATE__ " " __TIME__ |
| |
| static constexpr double | kgtolb = 2.20462 |
| |
| static constexpr double | kgtoslug = 0.06852168 |
| |
| static constexpr double | ktstofps = 1852./(3600*fttom) |
| |
| static constexpr double | lbtoslug = 1.0/slugtolb |
| |
| static constexpr double | m3toft3 = 1.0/(fttom*fttom*fttom) |
| |
| static const std::string | needed_cfg_version = "2.0" |
| |
| static constexpr double | psftoinhg = 0.014138 |
| |
| static constexpr double | psftopa = 47.88 |
| |
| static constexpr double | radtodeg = 180. / M_PI |
| |
| static constexpr double | slugtolb = 32.174049 |
| | Note that definition of lbtoslug by the inverse of slugtolb and not to a different constant you can also get from some tables will make lbtoslug*slugtolb == 1 up to the magnitude of roundoff.
|
| |
Runs the model; called by the Executive.
Can pass in a value indicating if the executive is directing the simulation to Hold.
- Parameters
-
| Holding | if true, the executive has been directed to hold the sim from advancing time. Some models may ignore this flag, such as the Input model, which may need to be active to listen on a socket for the "Resume" command to be given. The Holding flag is not used in the base FGModel class. |
- See also
- JSBSim.cpp documentation
- Returns
- false if no error
Reimplemented in FGPropagate, FGInputType, FGOutputType, FGWinds, FGAccelerations, FGAerodynamics, FGAircraft, FGAtmosphere, FGAuxiliary, FGBuoyantForces, FGExternalReactions, FGFCS, FGGroundReactions, FGInertial, FGInput, FGMassBalance, FGOutput, and FGPropulsion.
Definition at line 101 of file FGModel.cpp.
102{
103 FGModel::Debug(2);
104
105 if (rate == 1) return !enabled;
106
107 if (exe_ctr >= rate) exe_ctr = 0;
108
109 if (exe_ctr++ == 1) return !enabled;
110
111 return true;
112}