# include STL_STRING
SG_USING_STD(string);
-SG_USING_STD(queue);
+
+# ifndef M_PI
+# include <simgear/constants.h>
+# define M_PI SG_PI
+# endif
#else
# endif
using std::string;
-using std::queue;
+
+# ifndef M_PI
+# define M_PI 3.14159265358979323846
+# endif
+
#endif
-#ifndef M_PI
-# include <simgear/constants.h>
-# define M_PI SG_PI
+#if !defined(WIN32) || defined(__GNUC__)
+using std::max;
+#endif
+
+#ifdef __FreeBSD__ // define gcvt on FreeBSD
+
+#include <stdio.h>
+
+static char *gcvt(double number, size_t ndigit, char *buf)
+{
+ sprintf(buf, "%f", number);
+ return buf;
+}
#endif
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FORWARD DECLARATIONS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
-enum eParam {
- FG_UNDEF = 0,
- FG_TIME,
- FG_QBAR,
- FG_WINGAREA,
- FG_WINGSPAN,
- FG_CBAR,
- FG_ALPHA,
- FG_ALPHADOT,
- FG_BETA,
- FG_ABETA,
- FG_BETADOT,
- FG_PHI,
- FG_THT,
- FG_PSI,
- FG_PITCHRATE,
- FG_ROLLRATE,
- FG_YAWRATE,
- FG_CL_SQRD,
- FG_MACH,
- FG_ALTITUDE,
- FG_BI2VEL,
- FG_CI2VEL,
- FG_ELEVATOR_POS,
- FG_AILERON_POS,
- FG_RUDDER_POS,
- FG_SPDBRAKE_POS,
- FG_SPOILERS_POS,
- FG_FLAPS_POS,
- FG_ELEVATOR_CMD,
- FG_AILERON_CMD,
- FG_RUDDER_CMD,
- FG_SPDBRAKE_CMD,
- FG_SPOILERS_CMD,
- FG_FLAPS_CMD,
- FG_THROTTLE_CMD,
- FG_THROTTLE_POS,
- FG_MIXTURE_CMD,
- FG_MIXTURE_POS,
- FG_MAGNETO_CMD,
- FG_STARTER_CMD,
- FG_ACTIVE_ENGINE,
- FG_HOVERB,
- FG_PITCH_TRIM_CMD,
- FG_YAW_TRIM_CMD,
- FG_ROLL_TRIM_CMD,
- FG_LEFT_BRAKE_CMD,
- FG_CENTER_BRAKE_CMD,
- FG_RIGHT_BRAKE_CMD,
- FG_SET_LOGGING,
- FG_ALPHAH,
- FG_ALPHAW,
- FG_LBARH, //normalized horizontal tail arm
- FG_LBARV, //normalized vertical tail arm
- FG_HTAILAREA,
- FG_VTAILAREA,
- FG_VBARH, //horizontal tail volume
- FG_VBARV //vertical tail volume
-};
-
-/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-COMMENTS, REFERENCES, and NOTES [use "class documentation" below for API docs]
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
+namespace JSBSim {
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
CLASS DOCUMENTATION
virtual ~FGJSBBase() {};
/// JSBSim Message structure
- struct Message {
+ typedef struct Msg {
unsigned int fdmId;
unsigned int messageId;
string text;
bool bVal;
int iVal;
double dVal;
- };
+ } Message;
///@name JSBSim Enums.
//@{
/** Places a Message structure on the Message queue.
@param msg pointer to a Message structure
@return pointer to a Message structure */
- struct Message* PutMessage(struct Message* msg);
+ Message* PutMessage(Message* msg);
/** Creates a message with the given text and places it on the queue.
@param text message text
@return pointer to a Message structure */
- struct Message* PutMessage(string text);
+ Message* PutMessage(string text);
/** Creates a message with the given text and boolean value and places it on the queue.
@param text message text
@param bVal boolean value associated with the message
@return pointer to a Message structure */
- struct Message* PutMessage(string text, bool bVal);
+ Message* PutMessage(string text, bool bVal);
/** Creates a message with the given text and integer value and places it on the queue.
@param text message text
@param iVal integer value associated with the message
@return pointer to a Message structure */
- struct Message* PutMessage(string text, int iVal);
+ Message* PutMessage(string text, int iVal);
/** Creates a message with the given text and double value and places it on the queue.
@param text message text
@param dVal double value associated with the message
@return pointer to a Message structure */
- struct Message* PutMessage(string text, double dVal);
+ Message* PutMessage(string text, double dVal);
/** Reads the message on the queue (but does not delete it).
@return pointer to a Message structure (or NULL if no mesage) */
- struct Message* ReadMessage(void);
+ Message* ReadMessage(void);
/** Reads the message on the queue and removes it from the queue.
@return pointer to a Message structure (or NULL if no mesage) */
- struct Message* ProcessMessage(void);
+ Message* ProcessMessage(void);
//@}
+ string GetVersion(void) {return JSBSim_version;}
+
+ void disableHighLighting(void);
+
+ static short debug_lvl;
+ double KelvinToFahrenheit (double kelvin) {
+ return 1.8*kelvin - 459.4;
+ }
+
+ double RankineToCelsius (double rankine) {
+ return (rankine - 491.67)/1.8;
+ }
protected:
- static struct Message localMsg;
+ static Message localMsg;
- static queue <struct Message*> Messages;
+ static std::queue <Message*> Messages;
- virtual void Debug(void) {};
+ virtual void Debug(int from) {};
- static short debug_lvl;
- static int frame;
+ static unsigned int frame;
static unsigned int messageId;
static const double radtodeg;
static const double degtorad;
static const double hptoftlbssec;
+ static const double psftoinhg;
static const double fpstokts;
static const double ktstofps;
static const double inchtoft;
- static const double Reng; // Specific Gas Constant,ft^2/(sec^2*R)
+ static const double in3tom3;
+ static double Reng; // Specific Gas Constant,ft^2/(sec^2*R)
static const double SHRatio;
static const string needed_cfg_version;
static const string JSBSim_version;
};
-
+}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#endif