Sync. w. JSBSim cvs
This commit is contained in:
parent
7283e506b2
commit
82364aa4da
105 changed files with 860 additions and 692 deletions
|
@ -66,6 +66,9 @@ INCLUDES
|
|||
|
||||
#include <iostream>
|
||||
#include <iterator>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -713,13 +716,13 @@ void FGFDMExec::BuildPropertyCatalog(struct PropertyCatalogStructure* pcs)
|
|||
{
|
||||
struct PropertyCatalogStructure* pcsNew = new struct PropertyCatalogStructure;
|
||||
int node_idx = 0;
|
||||
char int_buf[10];
|
||||
|
||||
for (int i=0; i<pcs->node->nChildren(); i++) {
|
||||
pcsNew->base_string = pcs->base_string + "/" + pcs->node->getChild(i)->getName();
|
||||
node_idx = pcs->node->getChild(i)->getIndex();
|
||||
sprintf(int_buf, "[%d]", node_idx);
|
||||
if (node_idx != 0) pcsNew->base_string += string(int_buf);
|
||||
if (node_idx != 0) {
|
||||
pcsNew->base_string = CreateIndexedPropertyName(pcsNew->base_string, node_idx);
|
||||
}
|
||||
if (pcs->node->getChild(i)->nChildren() == 0) {
|
||||
if (pcsNew->base_string.substr(0,11) == string("/fdm/jsbsim")) {
|
||||
pcsNew->base_string = pcsNew->base_string.erase(0,12);
|
||||
|
|
|
@ -39,6 +39,8 @@ INCLUDES
|
|||
|
||||
#include "FGJSBBase.h"
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <cstdlib>
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -240,5 +242,43 @@ void FGJSBBase::disableHighLighting(void) {
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGJSBBase::CreateIndexedPropertyName(const string& Property, int index)
|
||||
{
|
||||
std::ostringstream buf;
|
||||
buf << Property << '[' << index << ']';
|
||||
return buf.str();
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
double FGJSBBase::GaussianRandomNumber(void)
|
||||
{
|
||||
static double V1, V2, S;
|
||||
static int phase = 0;
|
||||
double X;
|
||||
|
||||
if (phase == 0) {
|
||||
V1 = V2 = S = X = 0.0;
|
||||
|
||||
do {
|
||||
double U1 = (double)rand() / RAND_MAX;
|
||||
double U2 = (double)rand() / RAND_MAX;
|
||||
|
||||
V1 = 2 * U1 - 1;
|
||||
V2 = 2 * U2 - 1;
|
||||
S = V1 * V1 + V2 * V2;
|
||||
} while(S >= 1 || S == 0);
|
||||
|
||||
X = V1 * sqrt(-2 * log(S) / S);
|
||||
} else
|
||||
X = V2 * sqrt(-2 * log(S) / S);
|
||||
|
||||
phase = 1 - phase;
|
||||
|
||||
return X;
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
} // namespace JSBSim
|
||||
|
||||
|
|
|
@ -41,21 +41,22 @@ INCLUDES
|
|||
#include <float.h>
|
||||
#include <queue>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <cmath>
|
||||
#include <cstdlib>
|
||||
|
||||
#include "input_output/string_utilities.h"
|
||||
|
||||
using std::fabs;
|
||||
using std::string;
|
||||
|
||||
#ifndef M_PI
|
||||
# define M_PI 3.14159265358979323846
|
||||
#endif
|
||||
|
||||
#if !defined(WIN32) || defined(__GNUC__) || (defined(_MSC_VER) && (_MSC_VER >= 1300))
|
||||
using std::max;
|
||||
#if defined(_MSC_VER) && (_MSC_VER < 1300)
|
||||
namespace std
|
||||
{
|
||||
template <class T> inline T max(const T& a, const T& b)
|
||||
{
|
||||
return (a > b) ? a : b;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -98,8 +99,8 @@ public:
|
|||
public:
|
||||
unsigned int fdmId;
|
||||
unsigned int messageId;
|
||||
string text;
|
||||
string subsystem;
|
||||
std::string text;
|
||||
std::string subsystem;
|
||||
enum mType {eText, eInteger, eDouble, eBool} type;
|
||||
bool bVal;
|
||||
int iVal;
|
||||
|
@ -162,22 +163,22 @@ public:
|
|||
/** Creates a message with the given text and places it on the queue.
|
||||
@param text message text
|
||||
@return pointer to a Message structure */
|
||||
void PutMessage(const string& text);
|
||||
void PutMessage(const std::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 */
|
||||
void PutMessage(const string& text, bool bVal);
|
||||
void PutMessage(const std::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 */
|
||||
void PutMessage(const string& text, int iVal);
|
||||
void PutMessage(const std::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 */
|
||||
void PutMessage(const string& text, double dVal);
|
||||
void PutMessage(const std::string& text, double dVal);
|
||||
/** Reads the message on the queue (but does not delete it).
|
||||
@return 1 if some messages */
|
||||
int SomeMessages(void);
|
||||
|
@ -192,7 +193,7 @@ public:
|
|||
|
||||
/** Returns the version number of JSBSim.
|
||||
* @return The version number of JSBSim. */
|
||||
string GetVersion(void) {return JSBSim_version;}
|
||||
std::string GetVersion(void) {return JSBSim_version;}
|
||||
|
||||
/// Disables highlighting in the console output.
|
||||
void disableHighLighting(void);
|
||||
|
@ -268,7 +269,7 @@ public:
|
|||
@return if the two values can be considered equal up to roundoff */
|
||||
static bool EqualToRoundoff(double a, double b) {
|
||||
double eps = 2.0*DBL_EPSILON;
|
||||
return fabs(a - b) <= eps*max(fabs(a), fabs(b));
|
||||
return std::fabs(a - b) <= eps*std::max(std::fabs(a), std::fabs(b));
|
||||
}
|
||||
|
||||
/** Finite precision comparison.
|
||||
|
@ -277,7 +278,7 @@ public:
|
|||
@return if the two values can be considered equal up to roundoff */
|
||||
static bool EqualToRoundoff(float a, float b) {
|
||||
float eps = 2.0*FLT_EPSILON;
|
||||
return fabs(a - b) <= eps*max(fabs(a), fabs(b));
|
||||
return std::fabs(a - b) <= eps*std::max(std::fabs(a), std::fabs(b));
|
||||
}
|
||||
|
||||
/** Finite precision comparison.
|
||||
|
@ -331,44 +332,12 @@ protected:
|
|||
static const double slugtolb;
|
||||
static const double kgtolb;
|
||||
static const double kgtoslug;
|
||||
static const string needed_cfg_version;
|
||||
static const string JSBSim_version;
|
||||
static const std::string needed_cfg_version;
|
||||
static const std::string JSBSim_version;
|
||||
|
||||
static string CreateIndexedPropertyName(string Property, int index)
|
||||
{
|
||||
std::stringstream str;
|
||||
str << index;
|
||||
string tmp;
|
||||
str >> tmp;
|
||||
return Property + "[" + tmp + "]";
|
||||
}
|
||||
static std::string CreateIndexedPropertyName(const std::string& Property, int index);
|
||||
|
||||
static double GaussianRandomNumber(void)
|
||||
{
|
||||
static double V1, V2, S;
|
||||
static int phase = 0;
|
||||
double X;
|
||||
|
||||
if (phase == 0) {
|
||||
V1 = V2 = S = X = 0.0;
|
||||
|
||||
do {
|
||||
double U1 = (double)rand() / RAND_MAX;
|
||||
double U2 = (double)rand() / RAND_MAX;
|
||||
|
||||
V1 = 2 * U1 - 1;
|
||||
V2 = 2 * U2 - 1;
|
||||
S = V1 * V1 + V2 * V2;
|
||||
} while(S >= 1 || S == 0);
|
||||
|
||||
X = V1 * sqrt(-2 * log(S) / S);
|
||||
} else
|
||||
X = V2 * sqrt(-2 * log(S) / S);
|
||||
|
||||
phase = 1 - phase;
|
||||
|
||||
return X;
|
||||
}
|
||||
static double GaussianRandomNumber(void);
|
||||
|
||||
public:
|
||||
/// Moments L, M, N
|
||||
|
|
|
@ -37,9 +37,12 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <cmath>
|
||||
#include <iostream>
|
||||
|
||||
#include "FGState.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
static const char *IdSrc = "$Id$";
|
||||
|
|
|
@ -755,9 +755,7 @@ bool FGJSBsim::copy_from_JSBsim()
|
|||
// Copy the engine values from JSBSim.
|
||||
for ( i=0; i < Propulsion->GetNumEngines(); i++ ) {
|
||||
SGPropertyNode * node = fgGetNode("engines/engine", i, true);
|
||||
char buf[30];
|
||||
sprintf(buf, "engines/engine[%d]/thruster", i);
|
||||
SGPropertyNode * tnode = fgGetNode(buf, true);
|
||||
SGPropertyNode * tnode = node->getChild("thruster", 0, true);
|
||||
FGThruster * thruster = Propulsion->GetEngine(i)->GetThruster();
|
||||
|
||||
switch (Propulsion->GetEngine(i)->GetType()) {
|
||||
|
|
|
@ -49,10 +49,15 @@ INCLUDES
|
|||
#include "models/FGAerodynamics.h"
|
||||
#include "models/FGPropagate.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include "models/FGPropulsion.h"
|
||||
#include "input_output/FGXMLParse.h"
|
||||
#include "math/FGQuaternion.h"
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -57,6 +57,8 @@ INCLUDES
|
|||
#pragma warning (disable : 4786 4788)
|
||||
#endif
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
static const char *IdSrc = "$Id$";
|
||||
|
|
|
@ -38,6 +38,7 @@ INCLUDES
|
|||
|
||||
#include <string>
|
||||
#include <cstdlib>
|
||||
#include <iomanip>
|
||||
#include "FGFDMExec.h"
|
||||
#include "models/FGAtmosphere.h"
|
||||
#include "FGInitialCondition.h"
|
||||
|
@ -45,6 +46,12 @@ INCLUDES
|
|||
#include "models/FGAircraft.h"
|
||||
#include "models/FGPropulsion.h"
|
||||
#include "models/FGAerodynamics.h"
|
||||
#include "models/FGFCS.h"
|
||||
#include "models/propulsion/FGEngine.h"
|
||||
#include "models/FGAuxiliary.h"
|
||||
#include "models/FGGroundReactions.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -427,13 +434,11 @@ void FGTrimAxis::setThrottlesPct(void) {
|
|||
/*****************************************************************************/
|
||||
|
||||
void FGTrimAxis::AxisReport(void) {
|
||||
|
||||
char out[80];
|
||||
|
||||
sprintf(out," %20s: %6.2f %5s: %9.2e Tolerance: %3.0e",
|
||||
GetControlName().c_str(), GetControl()*control_convert,
|
||||
GetStateName().c_str(), GetState()+state_target, GetTolerance());
|
||||
cout << out;
|
||||
cout << " " << setw(20) << GetControlName() << ": ";
|
||||
cout << setw(6) << setprecision(2) << GetControl()*control_convert << ' ';
|
||||
cout << setw(5) << GetStateName() << ": ";
|
||||
cout << setw(9) << setprecision(2) << scientific << GetState()+state_target;
|
||||
cout << " Tolerance: " << setw(3) << setprecision(0) << scientific << GetTolerance();
|
||||
|
||||
if( fabs(GetState()+state_target) < fabs(GetTolerance()) )
|
||||
cout << " Passed" << endl;
|
||||
|
|
|
@ -42,7 +42,6 @@ INCLUDES
|
|||
#endif
|
||||
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include "simgear/props/props.hxx"
|
||||
#if !PROPS_STANDALONE
|
||||
# include "simgear/math/SGMath.hxx"
|
||||
|
@ -60,8 +59,6 @@ DEFINITIONS
|
|||
FORWARD DECLARATIONS
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -93,7 +90,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* NOTE: this function changes its argument and thus relies
|
||||
* on pass by value
|
||||
*/
|
||||
string mkPropertyName(string name, bool lowercase);
|
||||
std::string mkPropertyName(std::string name, bool lowercase);
|
||||
|
||||
/**
|
||||
* Get a property node.
|
||||
|
@ -103,10 +100,10 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* @return The node, or 0 if none exists and none was created.
|
||||
*/
|
||||
FGPropertyManager*
|
||||
GetNode (const string &path, bool create = false);
|
||||
GetNode (const std::string &path, bool create = false);
|
||||
|
||||
FGPropertyManager*
|
||||
GetNode (const string &relpath, int index, bool create = false);
|
||||
GetNode (const std::string &relpath, int index, bool create = false);
|
||||
|
||||
/**
|
||||
* Test whether a given node exists.
|
||||
|
@ -114,23 +111,23 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* @param path The path of the node, relative to root.
|
||||
* @return true if the node exists, false otherwise.
|
||||
*/
|
||||
bool HasNode (const string &path);
|
||||
bool HasNode (const std::string &path);
|
||||
|
||||
/**
|
||||
* Get the name of a node
|
||||
*/
|
||||
string GetName( void );
|
||||
std::string GetName( void );
|
||||
|
||||
/**
|
||||
* Get the name of a node without underscores, etc.
|
||||
*/
|
||||
string GetPrintableName( void );
|
||||
std::string GetPrintableName( void );
|
||||
|
||||
/**
|
||||
* Get the fully qualified name of a node
|
||||
* This function is very slow, so is probably useful for debugging only.
|
||||
*/
|
||||
string GetFullyQualifiedName(void);
|
||||
std::string GetFullyQualifiedName(void);
|
||||
|
||||
/**
|
||||
* Get a bool value for a property.
|
||||
|
@ -146,7 +143,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* does not exist.
|
||||
* @return The property's value as a bool, or the default value provided.
|
||||
*/
|
||||
bool GetBool (const string &name, bool defaultValue = false);
|
||||
bool GetBool (const std::string &name, bool defaultValue = false);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -163,7 +160,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* does not exist.
|
||||
* @return The property's value as an int, or the default value provided.
|
||||
*/
|
||||
int GetInt (const string &name, int defaultValue = 0);
|
||||
int GetInt (const std::string &name, int defaultValue = 0);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -180,7 +177,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* does not exist.
|
||||
* @return The property's value as a long, or the default value provided.
|
||||
*/
|
||||
int GetLong (const string &name, long defaultValue = 0L);
|
||||
int GetLong (const std::string &name, long defaultValue = 0L);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -197,7 +194,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* does not exist.
|
||||
* @return The property's value as a float, or the default value provided.
|
||||
*/
|
||||
float GetFloat (const string &name, float defaultValue = 0.0);
|
||||
float GetFloat (const std::string &name, float defaultValue = 0.0);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -214,7 +211,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* does not exist.
|
||||
* @return The property's value as a double, or the default value provided.
|
||||
*/
|
||||
double GetDouble (const string &name, double defaultValue = 0.0);
|
||||
double GetDouble (const std::string &name, double defaultValue = 0.0);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -231,7 +228,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* does not exist.
|
||||
* @return The property's value as a string, or the default value provided.
|
||||
*/
|
||||
string GetString (const string &name, string defaultValue = "");
|
||||
std::string GetString (const std::string &name, std::string defaultValue = "");
|
||||
|
||||
|
||||
/**
|
||||
|
@ -247,7 +244,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* @param val The new value for the property.
|
||||
* @return true if the assignment succeeded, false otherwise.
|
||||
*/
|
||||
bool SetBool (const string &name, bool val);
|
||||
bool SetBool (const std::string &name, bool val);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -263,7 +260,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* @param val The new value for the property.
|
||||
* @return true if the assignment succeeded, false otherwise.
|
||||
*/
|
||||
bool SetInt (const string &name, int val);
|
||||
bool SetInt (const std::string &name, int val);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -279,7 +276,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* @param val The new value for the property.
|
||||
* @return true if the assignment succeeded, false otherwise.
|
||||
*/
|
||||
bool SetLong (const string &name, long val);
|
||||
bool SetLong (const std::string &name, long val);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -295,7 +292,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* @param val The new value for the property.
|
||||
* @return true if the assignment succeeded, false otherwise.
|
||||
*/
|
||||
bool SetFloat (const string &name, float val);
|
||||
bool SetFloat (const std::string &name, float val);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -311,7 +308,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* @param val The new value for the property.
|
||||
* @return true if the assignment succeeded, false otherwise.
|
||||
*/
|
||||
bool SetDouble (const string &name, double val);
|
||||
bool SetDouble (const std::string &name, double val);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -327,7 +324,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* @param val The new value for the property.
|
||||
* @return true if the assignment succeeded, false otherwise.
|
||||
*/
|
||||
bool SetString (const string &name, const string &val);
|
||||
bool SetString (const std::string &name, const std::string &val);
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
@ -347,7 +344,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* @param name The property name.
|
||||
* @param state The state of the archive attribute (defaults to true).
|
||||
*/
|
||||
void SetArchivable (const string &name, bool state = true);
|
||||
void SetArchivable (const std::string &name, bool state = true);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -362,7 +359,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* @param name The property name.
|
||||
* @param state The state of the read attribute (defaults to true).
|
||||
*/
|
||||
void SetReadable (const string &name, bool state = true);
|
||||
void SetReadable (const std::string &name, bool state = true);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -377,7 +374,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* @param name The property name.
|
||||
* @param state The state of the write attribute (defaults to true).
|
||||
*/
|
||||
void SetWritable (const string &name, bool state = true);
|
||||
void SetWritable (const std::string &name, bool state = true);
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
@ -391,7 +388,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* Classes should use this function to release control of any
|
||||
* properties they are managing.
|
||||
*/
|
||||
void Untie (const string &name);
|
||||
void Untie (const std::string &name);
|
||||
|
||||
|
||||
// Templates cause ambiguity here
|
||||
|
@ -409,7 +406,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* be modified; defaults to true.
|
||||
*/
|
||||
void
|
||||
Tie (const string &name, bool *pointer, bool useDefault = true);
|
||||
Tie (const std::string &name, bool *pointer, bool useDefault = true);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -425,7 +422,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* be modified; defaults to true.
|
||||
*/
|
||||
void
|
||||
Tie (const string &name, int *pointer, bool useDefault = true);
|
||||
Tie (const std::string &name, int *pointer, bool useDefault = true);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -441,7 +438,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* be modified; defaults to true.
|
||||
*/
|
||||
void
|
||||
Tie (const string &name, long *pointer, bool useDefault = true);
|
||||
Tie (const std::string &name, long *pointer, bool useDefault = true);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -457,7 +454,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* be modified; defaults to true.
|
||||
*/
|
||||
void
|
||||
Tie (const string &name, float *pointer, bool useDefault = true);
|
||||
Tie (const std::string &name, float *pointer, bool useDefault = true);
|
||||
|
||||
/**
|
||||
* Tie a property to an external double variable.
|
||||
|
@ -472,7 +469,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* be modified; defaults to true.
|
||||
*/
|
||||
void
|
||||
Tie (const string &name, double *pointer, bool useDefault = true);
|
||||
Tie (const std::string &name, double *pointer, bool useDefault = true);
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
|
@ -482,19 +479,19 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
//============================================================================
|
||||
|
||||
/* template <class V> void
|
||||
Tie (const string &name, V (*getter)(), void (*setter)(V) = 0,
|
||||
Tie (const std::string &name, V (*getter)(), void (*setter)(V) = 0,
|
||||
bool useDefault = true);
|
||||
|
||||
template <class V> void
|
||||
Tie (const string &name, int index, V (*getter)(int),
|
||||
Tie (const std::string &name, int index, V (*getter)(int),
|
||||
void (*setter)(int, V) = 0, bool useDefault = true);
|
||||
|
||||
template <class T, class V> void
|
||||
Tie (const string &name, T * obj, V (T::*getter)() const,
|
||||
Tie (const std::string &name, T * obj, V (T::*getter)() const,
|
||||
void (T::*setter)(V) = 0, bool useDefault = true);
|
||||
|
||||
template <class T, class V> void
|
||||
Tie (const string &name, T * obj, int index,
|
||||
Tie (const std::string &name, T * obj, int index,
|
||||
V (T::*getter)(int) const, void (T::*setter)(int, V) = 0,
|
||||
bool useDefault = true); */
|
||||
|
||||
|
@ -516,12 +513,12 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
*/
|
||||
|
||||
template <class V> inline void
|
||||
Tie (const string &name, V (*getter)(), void (*setter)(V) = 0, bool useDefault = true)
|
||||
Tie (const std::string &name, V (*getter)(), void (*setter)(V) = 0, bool useDefault = true)
|
||||
{
|
||||
if (!tie(name.c_str(), SGRawValueFunctions<V>(getter, setter), useDefault))
|
||||
cout << "Failed to tie property " << name << " to functions" << endl;
|
||||
std::cout << "Failed to tie property " << name << " to functions" << std::endl;
|
||||
else if (debug_lvl & 0x20)
|
||||
cout << name << endl;
|
||||
std::cout << name << std::endl;
|
||||
}
|
||||
|
||||
|
||||
|
@ -543,13 +540,13 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* property value should there be one; false if the old value should be
|
||||
* discarded; defaults to true.
|
||||
*/
|
||||
template <class V> inline void Tie (const string &name, int index, V (*getter)(int),
|
||||
template <class V> inline void Tie (const std::string &name, int index, V (*getter)(int),
|
||||
void (*setter)(int, V) = 0, bool useDefault = true)
|
||||
{
|
||||
if (!tie(name.c_str(), SGRawValueFunctionsIndexed<V>(index, getter, setter), useDefault))
|
||||
cout << "Failed to tie property " << name << " to indexed functions" << endl;
|
||||
std::cout << "Failed to tie property " << name << " to indexed functions" << std::endl;
|
||||
else if (debug_lvl & 0x20)
|
||||
cout << name << endl;
|
||||
std::cout << name << std::endl;
|
||||
}
|
||||
|
||||
|
||||
|
@ -573,13 +570,13 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* discarded; defaults to true.
|
||||
*/
|
||||
template <class T, class V> inline void
|
||||
Tie (const string &name, T * obj, V (T::*getter)() const,
|
||||
Tie (const std::string &name, T * obj, V (T::*getter)() const,
|
||||
void (T::*setter)(V) = 0, bool useDefault = true)
|
||||
{
|
||||
if (!tie(name.c_str(), SGRawValueMethods<T,V>(*obj, getter, setter), useDefault))
|
||||
cout << "Failed to tie property " << name << " to object methods" << endl;
|
||||
std::cout << "Failed to tie property " << name << " to object methods" << std::endl;
|
||||
else if (debug_lvl & 0x20)
|
||||
cout << name << endl;
|
||||
std::cout << name << std::endl;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -602,13 +599,13 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase
|
|||
* discarded; defaults to true.
|
||||
*/
|
||||
template <class T, class V> inline void
|
||||
Tie (const string &name, T * obj, int index, V (T::*getter)(int) const,
|
||||
Tie (const std::string &name, T * obj, int index, V (T::*getter)(int) const,
|
||||
void (T::*setter)(int, V) = 0, bool useDefault = true)
|
||||
{
|
||||
if (!tie(name.c_str(), SGRawValueMethodsIndexed<T,V>(*obj, index, getter, setter), useDefault))
|
||||
cout << "Failed to tie property " << name << " to indexed object methods" << endl;
|
||||
std::cout << "Failed to tie property " << name << " to indexed object methods" << std::endl;
|
||||
else if (debug_lvl & 0x20)
|
||||
cout << name << endl;
|
||||
std::cout << name << std::endl;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -46,6 +46,9 @@ INCLUDES
|
|||
#include "initialization/FGTrim.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -32,6 +32,9 @@ INCLUDES
|
|||
|
||||
#include <cmath>
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
FORWARD DECLARATIONS
|
||||
|
@ -49,7 +52,7 @@ map <string, map <string, double> > Element::convert;
|
|||
CLASS IMPLEMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
Element::Element(string nm)
|
||||
Element::Element(const string& nm)
|
||||
{
|
||||
name = nm;
|
||||
parent = 0L;
|
||||
|
@ -221,7 +224,7 @@ Element::~Element(void)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string Element::GetAttributeValue(string attr)
|
||||
string Element::GetAttributeValue(const string& attr)
|
||||
{
|
||||
int select=-1;
|
||||
for (unsigned int i=0; i<attribute_key.size(); i++) {
|
||||
|
@ -233,7 +236,7 @@ string Element::GetAttributeValue(string attr)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
double Element::GetAttributeValueAsNumber(string attr)
|
||||
double Element::GetAttributeValueAsNumber(const string& attr)
|
||||
{
|
||||
string attribute = GetAttributeValue(attr);
|
||||
|
||||
|
@ -292,7 +295,7 @@ double Element::GetDataAsNumber(void)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
unsigned int Element::GetNumElements(string element_name)
|
||||
unsigned int Element::GetNumElements(const string& element_name)
|
||||
{
|
||||
unsigned int number_of_elements=0;
|
||||
Element* el=FindElement(element_name);
|
||||
|
@ -305,7 +308,7 @@ unsigned int Element::GetNumElements(string element_name)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
Element* Element::FindElement(string el)
|
||||
Element* Element::FindElement(const string& el)
|
||||
{
|
||||
if (el.empty() && children.size() >= 1) {
|
||||
element_index = 1;
|
||||
|
@ -323,7 +326,7 @@ Element* Element::FindElement(string el)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
Element* Element::FindNextElement(string el)
|
||||
Element* Element::FindNextElement(const string& el)
|
||||
{
|
||||
if (el.empty()) {
|
||||
if (element_index < children.size()) {
|
||||
|
@ -345,7 +348,7 @@ Element* Element::FindNextElement(string el)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
double Element::FindElementValueAsNumber(string el)
|
||||
double Element::FindElementValueAsNumber(const string& el)
|
||||
{
|
||||
Element* element = FindElement(el);
|
||||
if (element) {
|
||||
|
@ -358,7 +361,7 @@ double Element::FindElementValueAsNumber(string el)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string Element::FindElementValue(string el)
|
||||
string Element::FindElementValue(const string& el)
|
||||
{
|
||||
Element* element = FindElement(el);
|
||||
if (element) {
|
||||
|
@ -370,7 +373,7 @@ string Element::FindElementValue(string el)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
double Element::FindElementValueAsNumberConvertTo(string el, string target_units)
|
||||
double Element::FindElementValueAsNumberConvertTo(const string& el, const string& target_units)
|
||||
{
|
||||
Element* element = FindElement(el);
|
||||
|
||||
|
@ -404,9 +407,9 @@ double Element::FindElementValueAsNumberConvertTo(string el, string target_units
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
double Element::FindElementValueAsNumberConvertFromTo( string el,
|
||||
string supplied_units,
|
||||
string target_units)
|
||||
double Element::FindElementValueAsNumberConvertFromTo( const string& el,
|
||||
const string& supplied_units,
|
||||
const string& target_units)
|
||||
{
|
||||
Element* element = FindElement(el);
|
||||
|
||||
|
@ -438,7 +441,7 @@ double Element::FindElementValueAsNumberConvertFromTo( string el,
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
FGColumnVector3 Element::FindElementTripletConvertTo( string target_units)
|
||||
FGColumnVector3 Element::FindElementTripletConvertTo( const string& target_units)
|
||||
{
|
||||
FGColumnVector3 triplet;
|
||||
Element* item;
|
||||
|
@ -518,7 +521,7 @@ void Element::Print(unsigned int level)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
void Element::AddAttribute(string name, string value)
|
||||
void Element::AddAttribute(const string& name, const string& value)
|
||||
{
|
||||
attribute_key.push_back(name);
|
||||
attributes[name] = value;
|
||||
|
@ -528,8 +531,8 @@ void Element::AddAttribute(string name, string value)
|
|||
|
||||
void Element::AddData(string d)
|
||||
{
|
||||
unsigned int string_start = (unsigned int)d.find_first_not_of(" \t");
|
||||
if (string_start > 0) {
|
||||
string::size_type string_start = d.find_first_not_of(" \t");
|
||||
if (string_start != string::npos && string_start > 0) {
|
||||
d.erase(0,string_start);
|
||||
}
|
||||
data_lines.push_back(d);
|
||||
|
|
|
@ -36,15 +36,8 @@ INCLUDES
|
|||
|
||||
#include <string>
|
||||
#include <map>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
using std::string;
|
||||
using std::map;
|
||||
using std::vector;
|
||||
using std::cout;
|
||||
using std::endl;
|
||||
|
||||
#include "math/FGColumnVector3.h"
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -155,7 +148,7 @@ public:
|
|||
/** Constructor
|
||||
@param nm the name of this element (if given)
|
||||
*/
|
||||
Element(string nm);
|
||||
Element(const std::string& nm);
|
||||
/// Destructor
|
||||
~Element(void);
|
||||
|
||||
|
@ -163,23 +156,23 @@ public:
|
|||
@param key specifies the attribute key to retrieve the value of.
|
||||
@return the key value (as a string), or the empty string if no such
|
||||
attribute exists. */
|
||||
string GetAttributeValue(string key);
|
||||
std::string GetAttributeValue(const std::string& key);
|
||||
|
||||
/** Retrieves an attribute value as a double precision real number.
|
||||
@param key specifies the attribute key to retrieve the value of.
|
||||
@return the key value (as a number), or the HUGE_VAL if no such
|
||||
attribute exists. */
|
||||
double GetAttributeValueAsNumber(string key);
|
||||
double GetAttributeValueAsNumber(const std::string& key);
|
||||
|
||||
/** Retrieves the element name.
|
||||
@return the element name, or the empty string if no name has been set.*/
|
||||
string GetName(void) {return name;}
|
||||
const std::string& GetName(void) const {return name;}
|
||||
|
||||
/** Gets a line of data belonging to an element.
|
||||
@param i the index of the data line to return (0 by default).
|
||||
@return a string representing the data line requested, or the empty string
|
||||
if none exists.*/
|
||||
string GetDataLine(unsigned int i=0);
|
||||
std::string GetDataLine(unsigned int i=0);
|
||||
|
||||
/// Returns the number of lines of data stored
|
||||
unsigned int GetNumDataLines(void) {return (unsigned int)data_lines.size();}
|
||||
|
@ -188,7 +181,7 @@ public:
|
|||
unsigned int GetNumElements(void) {return (unsigned int)children.size();}
|
||||
|
||||
/// Returns the number of named child elements for this element.
|
||||
unsigned int GetNumElements(string);
|
||||
unsigned int GetNumElements(const std::string& element_name);
|
||||
|
||||
/** Converts the element data to a number.
|
||||
This function attempts to convert the first (and presumably only) line of
|
||||
|
@ -226,7 +219,7 @@ public:
|
|||
element counter to the first element.
|
||||
@param el the search string (empty string by default).
|
||||
@return a pointer to the first element that matches the supplied search string. */
|
||||
Element* FindElement(string el="");
|
||||
Element* FindElement(const std::string& el="");
|
||||
|
||||
/** Searches for the next element as specified.
|
||||
This function would be called after FindElement() is first called (in order to
|
||||
|
@ -237,7 +230,7 @@ public:
|
|||
@param el the name of the next element to find.
|
||||
@return the pointer to the found element, or 0 if no appropriate element us
|
||||
found.*/
|
||||
Element* FindNextElement(string el="");
|
||||
Element* FindNextElement(const std::string& el="");
|
||||
|
||||
/** Searches for the named element and returns the string data belonging to it.
|
||||
This function allows the data belonging to a named element to be returned
|
||||
|
@ -247,7 +240,7 @@ public:
|
|||
default)
|
||||
@return the data value for the named element as a string, or the empty
|
||||
string if the element cannot be found. */
|
||||
string FindElementValue(string el="");
|
||||
std::string FindElementValue(const std::string& el="");
|
||||
|
||||
/** Searches for the named element and returns the data belonging to it as a number.
|
||||
This function allows the data belonging to a named element to be returned
|
||||
|
@ -257,7 +250,7 @@ public:
|
|||
default)
|
||||
@return the data value for the named element as a double, or HUGE_VAL if the
|
||||
data is missing. */
|
||||
double FindElementValueAsNumber(string el="");
|
||||
double FindElementValueAsNumber(const std::string& el="");
|
||||
|
||||
/** Searches for the named element and converts and returns the data belonging to it.
|
||||
This function allows the data belonging to a named element to be returned
|
||||
|
@ -274,7 +267,7 @@ public:
|
|||
to which the value returned will be converted.
|
||||
@return the unit-converted data value for the named element as a double,
|
||||
or HUGE_VAL if the data is missing. */
|
||||
double FindElementValueAsNumberConvertTo(string el, string target_units);
|
||||
double FindElementValueAsNumberConvertTo(const std::string& el, const std::string& target_units);
|
||||
|
||||
/** Searches for the named element and converts and returns the data belonging to it.
|
||||
This function allows the data belonging to a named element to be returned
|
||||
|
@ -293,9 +286,9 @@ public:
|
|||
to which the value returned will be converted.
|
||||
@return the unit-converted data value for the named element as a double,
|
||||
or HUGE_VAL if the data is missing. */
|
||||
double FindElementValueAsNumberConvertFromTo( string el,
|
||||
string supplied_units,
|
||||
string target_units);
|
||||
double FindElementValueAsNumberConvertFromTo( const std::string& el,
|
||||
const std::string& supplied_units,
|
||||
const std::string& target_units);
|
||||
|
||||
/** Composes a 3-element column vector for the supplied location or orientation.
|
||||
This function processes a LOCATION or ORIENTATION construct, returning a
|
||||
|
@ -306,7 +299,7 @@ public:
|
|||
@param target_units the string representing the native units used by JSBSim
|
||||
to which the value returned will be converted.
|
||||
@return a column vector object built from the LOCATION or ORIENT components. */
|
||||
FGColumnVector3 FindElementTripletConvertTo( string target_units);
|
||||
FGColumnVector3 FindElementTripletConvertTo( const std::string& target_units);
|
||||
|
||||
/** This function sets the value of the parent class attribute to the supplied
|
||||
Element pointer.
|
||||
|
@ -320,11 +313,11 @@ public:
|
|||
/** Stores an attribute belonging to this element.
|
||||
* @param name The string name of the attribute.
|
||||
* @param value The string value of the attribute. */
|
||||
void AddAttribute(string name, string value);
|
||||
void AddAttribute(const std::string& name, const std::string& value);
|
||||
|
||||
/** Stores data belonging to this element.
|
||||
* @param d the data to store. */
|
||||
void AddData(string d);
|
||||
void AddData(std::string d);
|
||||
|
||||
/** Prints the element.
|
||||
* Prints this element and calls the Print routine for child elements.
|
||||
|
@ -332,14 +325,14 @@ public:
|
|||
void Print(unsigned int level=0);
|
||||
|
||||
private:
|
||||
string name;
|
||||
map <string, string> attributes;
|
||||
vector <string> data_lines;
|
||||
vector <Element*> children;
|
||||
vector <string> attribute_key;
|
||||
std::string name;
|
||||
std::map <std::string, std::string> attributes;
|
||||
std::vector <std::string> data_lines;
|
||||
std::vector <Element*> children;
|
||||
std::vector <std::string> attribute_key;
|
||||
Element *parent;
|
||||
unsigned int element_index;
|
||||
typedef map <string, map <string, double> > tMapConvert;
|
||||
typedef std::map <std::string, std::map <std::string, double> > tMapConvert;
|
||||
static tMapConvert convert;
|
||||
static bool converterIsInitialized;
|
||||
};
|
||||
|
|
|
@ -36,6 +36,8 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "input_output/FGXMLParse.h"
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
|
@ -56,19 +58,19 @@ public:
|
|||
|
||||
protected:
|
||||
Element* document;
|
||||
Element* LoadXMLDocument(string XML_filename)
|
||||
Element* LoadXMLDocument(std::string XML_filename)
|
||||
{
|
||||
ifstream infile;
|
||||
std::ifstream infile;
|
||||
|
||||
if ( !XML_filename.empty() ) {
|
||||
if (XML_filename.find(".xml") == string::npos) XML_filename += ".xml";
|
||||
if (XML_filename.find(".xml") == std::string::npos) XML_filename += ".xml";
|
||||
infile.open(XML_filename.c_str());
|
||||
if ( !infile.is_open()) {
|
||||
cerr << "Could not open file: " << XML_filename << endl;
|
||||
std::cerr << "Could not open file: " << XML_filename << std::endl;
|
||||
return 0L;
|
||||
}
|
||||
} else {
|
||||
cerr << "No filename given." << endl;
|
||||
std::cerr << "No filename given." << std::endl;
|
||||
return 0L;
|
||||
}
|
||||
|
||||
|
|
|
@ -30,9 +30,14 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGXMLParse.h"
|
||||
#include "FGXMLElement.h"
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
#include "input_output/string_utilities.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
static const char *IdSrc = "$Id$";
|
||||
|
|
|
@ -34,15 +34,6 @@ SENTRY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
|
||||
using std::string;
|
||||
using std::cout;
|
||||
using std::cerr;
|
||||
using std::endl;
|
||||
|
||||
#include "FGXMLElement.h"
|
||||
#include "simgear/xml/easyxml.hxx"
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -58,6 +49,8 @@ FORWARD DECLARATIONS
|
|||
|
||||
namespace JSBSim {
|
||||
|
||||
class Element;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
|
|
@ -38,8 +38,16 @@ HISTORY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGfdmSocket.h"
|
||||
#include <iostream>
|
||||
#include <iomanip>
|
||||
#include <cstring>
|
||||
#include "FGfdmSocket.h"
|
||||
#include "string_utilities.h"
|
||||
|
||||
using std::cout;
|
||||
using std::cerr;
|
||||
using std::endl;
|
||||
using std::string;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -50,9 +58,9 @@ static const char *IdHdr = ID_FDMSOCKET;
|
|||
CLASS IMPLEMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
FGfdmSocket::FGfdmSocket(string address, int port, int protocol)
|
||||
FGfdmSocket::FGfdmSocket(const string& address, int port, int protocol)
|
||||
{
|
||||
sckt = sckt_in = size = 0;
|
||||
sckt = sckt_in = 0;
|
||||
connected = false;
|
||||
|
||||
#if defined(_MSC_VER) || defined(__MINGW32__)
|
||||
|
@ -104,9 +112,9 @@ FGfdmSocket::FGfdmSocket(string address, int port, int protocol)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
FGfdmSocket::FGfdmSocket(string address, int port)
|
||||
FGfdmSocket::FGfdmSocket(const string& address, int port)
|
||||
{
|
||||
sckt = sckt_in = size = 0;
|
||||
sckt = sckt_in = 0;
|
||||
connected = false;
|
||||
|
||||
#if defined(_MSC_VER) || defined(__MINGW32__)
|
||||
|
@ -158,7 +166,6 @@ FGfdmSocket::FGfdmSocket(string address, int port)
|
|||
|
||||
FGfdmSocket::FGfdmSocket(int port)
|
||||
{
|
||||
size = 0;
|
||||
connected = false;
|
||||
unsigned long NoBlock = true;
|
||||
|
||||
|
@ -217,9 +224,8 @@ string FGfdmSocket::Receive(void)
|
|||
char buf[1024];
|
||||
int len = sizeof(struct sockaddr_in);
|
||||
int num_chars=0;
|
||||
int total_chars = 0;
|
||||
unsigned long NoBlock = true;
|
||||
string data = ""; // todo: should allocate this with a standard size as a
|
||||
string data; // todo: should allocate this with a standard size as a
|
||||
// class attribute and pass as a reference?
|
||||
|
||||
if (sckt_in <= 0) {
|
||||
|
@ -239,9 +245,8 @@ string FGfdmSocket::Receive(void)
|
|||
}
|
||||
|
||||
if (sckt_in > 0) {
|
||||
while ((num_chars = recv(sckt_in, buf, 1024, 0)) > 0) {
|
||||
data += string(buf).substr(0,num_chars);
|
||||
total_chars += num_chars;
|
||||
while ((num_chars = recv(sckt_in, buf, sizeof buf, 0)) > 0) {
|
||||
data.append(buf, num_chars);
|
||||
}
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
|
@ -258,12 +263,12 @@ string FGfdmSocket::Receive(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
return data.substr(0, total_chars);
|
||||
return data;
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
int FGfdmSocket::Reply(string text)
|
||||
int FGfdmSocket::Reply(const string& text)
|
||||
{
|
||||
int num_chars_sent=0;
|
||||
|
||||
|
@ -288,71 +293,58 @@ void FGfdmSocket::Close(void)
|
|||
|
||||
void FGfdmSocket::Clear(void)
|
||||
{
|
||||
buffer = "";
|
||||
size = 0;
|
||||
buffer.str(string());
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
void FGfdmSocket::Clear(string s)
|
||||
void FGfdmSocket::Clear(const string& s)
|
||||
{
|
||||
buffer = s + " ";
|
||||
size = buffer.size();
|
||||
Clear();
|
||||
buffer << s << ' ';
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
void FGfdmSocket::Append(const char* item)
|
||||
{
|
||||
if (size == 0) buffer += string(item);
|
||||
else buffer += string(",") + string(item);
|
||||
size++;
|
||||
if (buffer.tellp() > 0) buffer << ',';
|
||||
buffer << item;
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
void FGfdmSocket::Append(double item)
|
||||
{
|
||||
char s[25];
|
||||
|
||||
sprintf(s,"%12.7f",item);
|
||||
|
||||
if (size == 0) buffer += string(s);
|
||||
else buffer += string(",") + string(s);
|
||||
size++;
|
||||
if (buffer.tellp() > 0) buffer << ',';
|
||||
buffer << std::setw(12) << std::setprecision(7) << item;
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
void FGfdmSocket::Append(long item)
|
||||
{
|
||||
char s[25];
|
||||
|
||||
sprintf(s,"%12ld",item);
|
||||
|
||||
if (size == 0) buffer += string(s);
|
||||
else buffer += string(",") + string(s);
|
||||
size++;
|
||||
if (buffer.tellp() > 0) buffer << ',';
|
||||
buffer << std::setw(12) << item;
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
void FGfdmSocket::Send(void)
|
||||
{
|
||||
buffer += string("\n");
|
||||
if ((send(sckt,buffer.c_str(),buffer.size(),0)) <= 0) {
|
||||
buffer << '\n';
|
||||
string str = buffer.str();
|
||||
if ((send(sckt,str.c_str(),str.size(),0)) <= 0) {
|
||||
perror("send");
|
||||
} else {
|
||||
}
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
void FGfdmSocket::Send(char *data, int length)
|
||||
void FGfdmSocket::Send(const char *data, int length)
|
||||
{
|
||||
if ((send(sckt,data,length,0)) <= 0) {
|
||||
perror("send");
|
||||
} else {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -39,16 +39,11 @@ SENTRY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <cstdio>
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
#include <sys/types.h>
|
||||
#include "FGJSBBase.h"
|
||||
|
||||
using std::cout;
|
||||
using std::endl;
|
||||
|
||||
#if defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#include <winsock.h>
|
||||
#include <io.h>
|
||||
|
@ -90,27 +85,24 @@ CLASS DOCUMENTATION
|
|||
CLASS DECLARATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
using std::string;
|
||||
using std::cerr;
|
||||
|
||||
class FGfdmSocket : public FGJSBBase
|
||||
{
|
||||
public:
|
||||
FGfdmSocket(string, int);
|
||||
FGfdmSocket(string, int, int);
|
||||
FGfdmSocket(const std::string&, int);
|
||||
FGfdmSocket(const std::string&, int, int);
|
||||
FGfdmSocket(int);
|
||||
~FGfdmSocket();
|
||||
void Send(void);
|
||||
void Send(char *data, int length);
|
||||
void Send(const char *data, int length);
|
||||
|
||||
string Receive(void);
|
||||
int Reply(string text);
|
||||
void Append(const string s) {Append(s.c_str());}
|
||||
std::string Receive(void);
|
||||
int Reply(const std::string& text);
|
||||
void Append(const std::string& s) {Append(s.c_str());}
|
||||
void Append(const char*);
|
||||
void Append(double);
|
||||
void Append(long);
|
||||
void Clear(void);
|
||||
void Clear(string s);
|
||||
void Clear(const std::string& s);
|
||||
void Close(void);
|
||||
bool GetConnectStatus(void) {return connected;}
|
||||
|
||||
|
@ -119,10 +111,9 @@ public:
|
|||
private:
|
||||
int sckt;
|
||||
int sckt_in;
|
||||
int size;
|
||||
struct sockaddr_in scktName;
|
||||
struct hostent *host;
|
||||
string buffer;
|
||||
std::ostringstream buffer;
|
||||
bool connected;
|
||||
void Debug(int from);
|
||||
};
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
Author: Jon S. Berndt
|
||||
Date started: 06/01/09
|
||||
|
||||
------------- Copyright (C) 2009 Jon S. Berndt (jsb@hal-pc.org) -------------
|
||||
------------- Copyright (C) 2009 Jon S. Berndt (jon@jsbsim.org) -------------
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by the Free Software
|
||||
|
@ -38,8 +38,8 @@ SENTRY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <ctype.h>
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
|
@ -51,8 +51,6 @@ DEFINITIONS
|
|||
FORWARD DECLARATIONS
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
using namespace std;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -63,29 +61,30 @@ CLASS DECLARATION
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#if !defined(BASE)
|
||||
extern string& trim_left(string& str);
|
||||
extern string& trim_right(string& str);
|
||||
extern string& trim(string& str);
|
||||
extern string& to_upper(string& str);
|
||||
extern string& to_lower(string& str);
|
||||
extern bool is_number(string& str);
|
||||
vector <string> split(string str, char d);
|
||||
extern std::string& trim_left(std::string& str);
|
||||
extern std::string& trim_right(std::string& str);
|
||||
extern std::string& trim(std::string& str);
|
||||
extern std::string& to_upper(std::string& str);
|
||||
extern std::string& to_lower(std::string& str);
|
||||
extern bool is_number(const std::string& str);
|
||||
std::vector <std::string> split(std::string str, char d);
|
||||
#else
|
||||
#include <ctype.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
string& trim_left(string& str)
|
||||
{
|
||||
while ( !isgraph(str[0]) ) {
|
||||
while (str.size() && !isgraph(str[0])) {
|
||||
str = str.erase(0,1);
|
||||
if (str.size() == 0) break;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
string& trim_right(string& str)
|
||||
{
|
||||
while (!isgraph(str[str.size()-1])) {
|
||||
while (str.size() && !isgraph(str[str.size()-1])) {
|
||||
str = str.erase(str.size()-1,1);
|
||||
if (str.size() == 0) break;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
@ -99,17 +98,17 @@ CLASS DECLARATION
|
|||
|
||||
string& to_upper(string& str)
|
||||
{
|
||||
for (int i=0; i<str.size(); i++) str[i] = toupper(str[i]);
|
||||
for (size_t i=0; i<str.size(); i++) str[i] = toupper(str[i]);
|
||||
return str;
|
||||
}
|
||||
|
||||
string& to_lower(string& str)
|
||||
{
|
||||
for (int i=0; i<str.size(); i++) str[i] = tolower(str[i]);
|
||||
for (size_t i=0; i<str.size(); i++) str[i] = tolower(str[i]);
|
||||
return str;
|
||||
}
|
||||
|
||||
bool is_number(string& str)
|
||||
bool is_number(const string& str)
|
||||
{
|
||||
return (str.find_first_not_of("+-.0123456789Ee") == string::npos);
|
||||
}
|
||||
|
@ -117,7 +116,7 @@ CLASS DECLARATION
|
|||
vector <string> split(string str, char d)
|
||||
{
|
||||
vector <string> str_array;
|
||||
int index=0;
|
||||
size_t index=0;
|
||||
string temp = "";
|
||||
|
||||
trim(str);
|
||||
|
@ -142,3 +141,4 @@ CLASS DECLARATION
|
|||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -38,7 +38,12 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGColumnVector3.h"
|
||||
#include <cstdio>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <iomanip>
|
||||
#include <cmath>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -57,11 +62,13 @@ FGColumnVector3::FGColumnVector3(void)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGColumnVector3::Dump(string delimeter) const
|
||||
string FGColumnVector3::Dump(const string& delimiter) const
|
||||
{
|
||||
char buffer[256];
|
||||
sprintf(buffer, "%18.16f%s%18.16f%s%18.16f", Entry(1), delimeter.c_str(), Entry(2), delimeter.c_str(), Entry(3));
|
||||
return string(buffer);
|
||||
ostringstream buffer;
|
||||
buffer << std::setw(18) << std::setprecision(16) << Entry(1) << delimiter;
|
||||
buffer << std::setw(18) << std::setprecision(16) << Entry(2) << delimiter;
|
||||
buffer << std::setw(18) << std::setprecision(16) << Entry(3);
|
||||
return buffer.str();
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
|
|
@ -39,20 +39,8 @@ SENTRY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <cstdlib>
|
||||
#include <iosfwd>
|
||||
#include <string>
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <cmath>
|
||||
|
||||
using std::ostream;
|
||||
using std::istream;
|
||||
using std::cerr;
|
||||
using std::cout;
|
||||
using std::endl;
|
||||
using std::sqrt;
|
||||
using std::string;
|
||||
|
||||
#include "FGJSBBase.h"
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -149,7 +137,7 @@ public:
|
|||
/** Prints the contents of the vector
|
||||
@param delimeter the item separator (tab or comma)
|
||||
@return a string with the delimeter-separated contents of the vector */
|
||||
string Dump(string delimeter) const;
|
||||
std::string Dump(const std::string& delimeter) const;
|
||||
|
||||
/** Assignment operator.
|
||||
@param b source vector.
|
||||
|
@ -291,7 +279,7 @@ inline FGColumnVector3 operator*(double scalar, const FGColumnVector3& A) {
|
|||
@param os Stream to write to.
|
||||
@param M Matrix to write.
|
||||
Write the matrix to a stream.*/
|
||||
ostream& operator<<(ostream& os, const FGColumnVector3& col);
|
||||
std::ostream& operator<<(std::ostream& os, const FGColumnVector3& col);
|
||||
|
||||
} // namespace JSBSim
|
||||
|
||||
|
|
|
@ -35,7 +35,12 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGCondition.h"
|
||||
#include <vector>
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -91,7 +96,7 @@ FGCondition::FGCondition(Element* element, FGPropertyManager* PropertyManager) :
|
|||
// This constructor is called when there are no nested test groups inside the
|
||||
// condition
|
||||
|
||||
FGCondition::FGCondition(string test, FGPropertyManager* PropertyManager) :
|
||||
FGCondition::FGCondition(const string& test, FGPropertyManager* PropertyManager) :
|
||||
PropertyManager(PropertyManager), isGroup(false)
|
||||
{
|
||||
string property1, property2, compare_string;
|
||||
|
|
|
@ -39,8 +39,6 @@ INCLUDES
|
|||
|
||||
#include <map>
|
||||
#include "FGJSBBase.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
|
@ -54,6 +52,9 @@ FORWARD DECLARATIONS
|
|||
|
||||
namespace JSBSim {
|
||||
|
||||
class FGPropertyManager;
|
||||
class Element;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -69,7 +70,7 @@ class FGCondition : public FGJSBBase
|
|||
{
|
||||
public:
|
||||
FGCondition(Element* element, FGPropertyManager* PropertyManager);
|
||||
FGCondition(string test, FGPropertyManager* PropertyManager);
|
||||
FGCondition(const std::string& test, FGPropertyManager* PropertyManager);
|
||||
~FGCondition(void);
|
||||
|
||||
bool Evaluate(void);
|
||||
|
@ -78,18 +79,18 @@ public:
|
|||
private:
|
||||
enum eComparison {ecUndef=0, eEQ, eNE, eGT, eGE, eLT, eLE};
|
||||
enum eLogic {elUndef=0, eAND, eOR};
|
||||
map <string, eComparison> mComparison;
|
||||
std::map <std::string, eComparison> mComparison;
|
||||
eLogic Logic;
|
||||
|
||||
FGPropertyManager *TestParam1, *TestParam2, *PropertyManager;
|
||||
double TestValue;
|
||||
eComparison Comparison;
|
||||
bool isGroup;
|
||||
string conditional;
|
||||
std::string conditional;
|
||||
|
||||
static string indent;
|
||||
static std::string indent;
|
||||
|
||||
vector <FGCondition*> conditions;
|
||||
std::vector <FGCondition*> conditions;
|
||||
void InitializeConditionals(void);
|
||||
|
||||
void Debug(int from);
|
||||
|
|
|
@ -28,12 +28,17 @@ Purpose: Stores various parameter types for functions
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <sstream>
|
||||
#include <iomanip>
|
||||
#include <cstdlib>
|
||||
#include "FGFunction.h"
|
||||
#include "FGTable.h"
|
||||
#include "FGPropertyValue.h"
|
||||
#include "FGRealValue.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -44,7 +49,7 @@ static const char *IdHdr = ID_FUNCTION;
|
|||
CLASS IMPLEMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
FGFunction::FGFunction(FGPropertyManager* propMan, Element* el, string prefix)
|
||||
FGFunction::FGFunction(FGPropertyManager* propMan, Element* el, const string& prefix)
|
||||
: PropertyManager(propMan), Prefix(prefix)
|
||||
{
|
||||
Element* element;
|
||||
|
@ -319,12 +324,10 @@ double FGFunction::GetValue(void) const
|
|||
|
||||
string FGFunction::GetValueAsString(void) const
|
||||
{
|
||||
char buffer[20];
|
||||
string value;
|
||||
ostringstream buffer;
|
||||
|
||||
sprintf(buffer,"%9.6f",GetValue());
|
||||
value = string(buffer);
|
||||
return value;
|
||||
buffer << setw(9) << setprecision(6) << GetValue();
|
||||
return buffer.str();
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
|
|
@ -37,8 +37,6 @@ INCLUDES
|
|||
#include <vector>
|
||||
#include <string>
|
||||
#include "FGParameter.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
|
@ -52,6 +50,9 @@ FORWARD DECLARATIONS
|
|||
|
||||
namespace JSBSim {
|
||||
|
||||
class FGPropertyManager;
|
||||
class Element;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -165,7 +166,7 @@ public:
|
|||
@param prefix an optional prefix to prepend to the name given to the property
|
||||
that represents this function (if given).
|
||||
*/
|
||||
FGFunction(FGPropertyManager* PropertyManager, Element* element, string prefix="");
|
||||
FGFunction(FGPropertyManager* PropertyManager, Element* element, const std::string& prefix="");
|
||||
/// Destructor.
|
||||
virtual ~FGFunction();
|
||||
|
||||
|
@ -175,10 +176,10 @@ public:
|
|||
|
||||
/** The value that the function evaluates to, as a string.
|
||||
@return the value of the function as a string. */
|
||||
string GetValueAsString(void) const;
|
||||
std::string GetValueAsString(void) const;
|
||||
|
||||
/// Retrieves the name of the function.
|
||||
string GetName(void) const {return Name;}
|
||||
std::string GetName(void) const {return Name;}
|
||||
|
||||
/** Specifies whether to cache the value of the function, so it is calculated only
|
||||
once per frame.
|
||||
|
@ -189,44 +190,44 @@ public:
|
|||
void cacheValue(bool shouldCache);
|
||||
|
||||
private:
|
||||
vector <FGParameter*> Parameters;
|
||||
std::vector <FGParameter*> Parameters;
|
||||
FGPropertyManager* const PropertyManager;
|
||||
bool cached;
|
||||
string Prefix;
|
||||
string description_string;
|
||||
string property_string;
|
||||
string value_string;
|
||||
string table_string;
|
||||
string p_string;
|
||||
string v_string;
|
||||
string t_string;
|
||||
string function_string;
|
||||
string sum_string;
|
||||
string difference_string;
|
||||
string product_string;
|
||||
string quotient_string;
|
||||
string pow_string;
|
||||
string exp_string;
|
||||
string abs_string;
|
||||
string sin_string;
|
||||
string cos_string;
|
||||
string tan_string;
|
||||
string asin_string;
|
||||
string acos_string;
|
||||
string atan_string;
|
||||
string atan2_string;
|
||||
string min_string;
|
||||
string max_string;
|
||||
string avg_string;
|
||||
string fraction_string;
|
||||
string mod_string;
|
||||
string random_string;
|
||||
string integer_string;
|
||||
std::string Prefix;
|
||||
std::string description_string;
|
||||
std::string property_string;
|
||||
std::string value_string;
|
||||
std::string table_string;
|
||||
std::string p_string;
|
||||
std::string v_string;
|
||||
std::string t_string;
|
||||
std::string function_string;
|
||||
std::string sum_string;
|
||||
std::string difference_string;
|
||||
std::string product_string;
|
||||
std::string quotient_string;
|
||||
std::string pow_string;
|
||||
std::string exp_string;
|
||||
std::string abs_string;
|
||||
std::string sin_string;
|
||||
std::string cos_string;
|
||||
std::string tan_string;
|
||||
std::string asin_string;
|
||||
std::string acos_string;
|
||||
std::string atan_string;
|
||||
std::string atan2_string;
|
||||
std::string min_string;
|
||||
std::string max_string;
|
||||
std::string avg_string;
|
||||
std::string fraction_string;
|
||||
std::string mod_string;
|
||||
std::string random_string;
|
||||
std::string integer_string;
|
||||
double cachedValue;
|
||||
enum functionType {eTopLevel=0, eProduct, eDifference, eSum, eQuotient, ePow,
|
||||
eExp, eAbs, eSin, eCos, eTan, eASin, eACos, eATan, eATan2,
|
||||
eMin, eMax, eAvg, eFrac, eInteger, eMod, eRandom} Type;
|
||||
string Name;
|
||||
std::string Name;
|
||||
void bind(void);
|
||||
void Debug(int from);
|
||||
};
|
||||
|
|
|
@ -40,6 +40,10 @@ INCLUDES
|
|||
#include "FGMatrix33.h"
|
||||
#include "FGColumnVector3.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
static const char *IdSrc = "$Id$";
|
||||
|
|
|
@ -40,18 +40,8 @@ SENTRY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <cstdlib>
|
||||
#include <string>
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <cmath>
|
||||
|
||||
using std::ostream;
|
||||
using std::istream;
|
||||
using std::cerr;
|
||||
using std::cout;
|
||||
using std::endl;
|
||||
using std::string;
|
||||
#include <iosfwd>
|
||||
|
||||
#include "FGColumnVector3.h"
|
||||
#include "FGJSBBase.h"
|
||||
|
@ -84,7 +74,7 @@ DECLARATION: MatrixException
|
|||
class MatrixException : public FGJSBBase
|
||||
{
|
||||
public:
|
||||
string Message;
|
||||
std::string Message;
|
||||
};
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -450,7 +440,7 @@ inline FGMatrix33 operator*(double scalar, const FGMatrix33& A) {
|
|||
|
||||
Write the matrix to a stream.
|
||||
*/
|
||||
ostream& operator<<(ostream& os, const FGMatrix33& M);
|
||||
std::ostream& operator<<(std::ostream& os, const FGMatrix33& M);
|
||||
|
||||
/** Read matrix from a stream.
|
||||
|
||||
|
@ -459,7 +449,7 @@ ostream& operator<<(ostream& os, const FGMatrix33& M);
|
|||
|
||||
Read matrix from a stream.
|
||||
*/
|
||||
istream& operator>>(istream& is, FGMatrix33& M);
|
||||
std::istream& operator>>(std::istream& is, FGMatrix33& M);
|
||||
|
||||
} // namespace JSBSim
|
||||
|
||||
|
|
|
@ -37,7 +37,11 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGTable.h"
|
||||
#include <iomanip>
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
@ -307,7 +311,7 @@ FGTable::~FGTable()
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
unsigned int FGTable::FindNumColumns(string test_line)
|
||||
unsigned int FGTable::FindNumColumns(const string& test_line)
|
||||
{
|
||||
// determine number of data columns in table (first column is row lookup - don't count)
|
||||
size_t position=0;
|
||||
|
@ -466,7 +470,7 @@ double FGTable::GetValue(double rowKey, double colKey, double tableKey) const
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
void FGTable::operator<<(stringstream& in_stream)
|
||||
void FGTable::operator<<(istream& in_stream)
|
||||
{
|
||||
int startRow=0;
|
||||
int startCol=0;
|
||||
|
|
|
@ -38,11 +38,10 @@ SENTRY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include "FGParameter.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include <sstream>
|
||||
#include <iosfwd>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
|
@ -54,11 +53,11 @@ DEFINITIONS
|
|||
FORWARD DECLARATIONS
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
using std::vector;
|
||||
using std::stringstream;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
class FGPropertyManager;
|
||||
class Element;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -280,7 +279,7 @@ public:
|
|||
</pre>
|
||||
*/
|
||||
|
||||
void operator<<(stringstream&);
|
||||
void operator<<(std::istream&);
|
||||
FGTable& operator<<(const double n);
|
||||
FGTable& operator<<(const int n);
|
||||
|
||||
|
@ -298,16 +297,16 @@ private:
|
|||
bool internal;
|
||||
FGPropertyManager *lookupProperty[3];
|
||||
double** Data;
|
||||
vector <FGTable*> Tables;
|
||||
unsigned int FindNumColumns(string);
|
||||
std::vector <FGTable*> Tables;
|
||||
unsigned int nRows, nCols, nTables, dimension;
|
||||
int colCounter, rowCounter, tableCounter;
|
||||
mutable int lastRowIndex, lastColumnIndex, lastTableIndex;
|
||||
double** Allocate(void);
|
||||
FGPropertyManager* const PropertyManager;
|
||||
string Name;
|
||||
std::string Name;
|
||||
void bind(void);
|
||||
|
||||
unsigned int FindNumColumns(const std::string&);
|
||||
void Debug(int from);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -36,6 +36,10 @@ HISTORY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <iomanip>
|
||||
#include <cstdlib>
|
||||
#include <FGFDMExec.h>
|
||||
#include "FGAerodynamics.h"
|
||||
#include "FGPropagate.h"
|
||||
|
@ -44,6 +48,8 @@ INCLUDES
|
|||
#include "FGMassBalance.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
static const char *IdSrc = "$Id$";
|
||||
|
@ -415,7 +421,7 @@ void FGAerodynamics::DetermineAxisSystem()
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGAerodynamics::GetCoefficientStrings(string delimeter)
|
||||
string FGAerodynamics::GetCoefficientStrings(const string& delimeter) const
|
||||
{
|
||||
string CoeffStrings = "";
|
||||
bool firstime = true;
|
||||
|
@ -445,33 +451,24 @@ string FGAerodynamics::GetCoefficientStrings(string delimeter)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGAerodynamics::GetCoefficientValues(string delimeter)
|
||||
string FGAerodynamics::GetCoefficientValues(const string& delimeter) const
|
||||
{
|
||||
string SDValues = "";
|
||||
bool firstime = true;
|
||||
unsigned int sd;
|
||||
ostringstream buf;
|
||||
|
||||
for (sd = 0; sd < variables.size(); sd++) {
|
||||
if (firstime) {
|
||||
firstime = false;
|
||||
} else {
|
||||
SDValues += delimeter;
|
||||
}
|
||||
SDValues += variables[sd]->GetValueAsString();
|
||||
buf.precision(6);
|
||||
for (unsigned int sd = 0; sd < variables.size(); sd++) {
|
||||
if (buf.tellp() > 0) buf << delimeter;
|
||||
buf << setw(9) << variables[sd]->GetValue();
|
||||
}
|
||||
|
||||
for (unsigned int axis = 0; axis < 6; axis++) {
|
||||
for (unsigned int sd = 0; sd < Coeff[axis].size(); sd++) {
|
||||
if (firstime) {
|
||||
firstime = false;
|
||||
} else {
|
||||
SDValues += delimeter;
|
||||
}
|
||||
SDValues += Coeff[axis][sd]->GetValueAsString();
|
||||
if (buf.tellp() > 0) buf << delimeter;
|
||||
buf << setw(9) << Coeff[axis][sd]->GetValue();
|
||||
}
|
||||
}
|
||||
|
||||
return SDValues;
|
||||
return buf.str();
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
|
|
@ -38,6 +38,7 @@ SENTRY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
|
||||
|
@ -188,13 +189,13 @@ public:
|
|||
/** Gets the strings for the current set of coefficients.
|
||||
@param delimeter either a tab or comma string depending on output type
|
||||
@return a string containing the descriptive names for all coefficients */
|
||||
string GetCoefficientStrings(string delimeter);
|
||||
std::string GetCoefficientStrings(const std::string& delimeter) const;
|
||||
|
||||
/** Gets the coefficient values.
|
||||
@param delimeter either a tab or comma string depending on output type
|
||||
@return a string containing the numeric values for the current set of
|
||||
coefficients */
|
||||
string GetCoefficientValues(string delimeter);
|
||||
std::string GetCoefficientValues(const std::string& delimeter) const;
|
||||
|
||||
/** Calculates and returns the wind-to-body axis transformation matrix.
|
||||
@return a reference to the wind-to-body transformation matrix.
|
||||
|
@ -206,14 +207,14 @@ public:
|
|||
*/
|
||||
FGMatrix33& GetTb2w(void);
|
||||
|
||||
vector <FGFunction*> * GetCoeff(void) const { return Coeff; }
|
||||
std::vector <FGFunction*> * GetCoeff(void) const { return Coeff; }
|
||||
|
||||
private:
|
||||
enum eAxisType {atNone, atLiftDrag, atAxialNormal, atBodyXYZ} axisType;
|
||||
typedef map<string,int> AxisIndex;
|
||||
typedef std::map<std::string,int> AxisIndex;
|
||||
AxisIndex AxisIdx;
|
||||
FGFunction* AeroRPShift;
|
||||
vector <FGFunction*> variables;
|
||||
std::vector <FGFunction*> variables;
|
||||
typedef vector <FGFunction*> CoeffArray;
|
||||
CoeffArray* Coeff;
|
||||
FGColumnVector3 vFnative;
|
||||
|
|
|
@ -52,7 +52,11 @@ INCLUDES
|
|||
#include "FGAerodynamics.h"
|
||||
#include "FGFDMExec.h"
|
||||
#include "FGPropagate.h"
|
||||
#include "FGPropulsion.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -38,6 +38,7 @@ SENTRY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "FGModel.h"
|
||||
|
@ -131,7 +132,7 @@ public:
|
|||
|
||||
/** Gets the aircraft name
|
||||
@return the name of the aircraft as a string type */
|
||||
inline string GetAircraftName(void) { return AircraftName; }
|
||||
const std::string& GetAircraftName(void) const { return AircraftName; }
|
||||
|
||||
/// Gets the wing area
|
||||
double GetWingArea(void) const { return WingArea; }
|
||||
|
@ -163,7 +164,7 @@ public:
|
|||
inline double GetXYZrp(int idx) const { return vXYZrp(idx); }
|
||||
inline double GetXYZvrp(int idx) const { return vXYZvrp(idx); }
|
||||
inline double GetXYZep(int idx) const { return vXYZep(idx); }
|
||||
inline void SetAircraftName(string name) {AircraftName = name;}
|
||||
inline void SetAircraftName(const std::string& name) {AircraftName = name;}
|
||||
inline void SetHoldDown(int hd) {HoldDown = hd;}
|
||||
inline int GetHoldDown(void) const {return HoldDown;}
|
||||
|
||||
|
@ -193,7 +194,7 @@ private:
|
|||
double HTailArea, VTailArea, HTailArm, VTailArm;
|
||||
double lbarh,lbarv,vbarh,vbarv;
|
||||
int HoldDown;
|
||||
string AircraftName;
|
||||
std::string AircraftName;
|
||||
|
||||
void Debug(int from);
|
||||
};
|
||||
|
|
|
@ -54,6 +54,10 @@ INCLUDES
|
|||
#include "FGPropagate.h"
|
||||
#include "FGInertial.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -51,7 +51,11 @@ INCLUDES
|
|||
#include "FGBuoyantForces.h"
|
||||
#include "FGGroundReactions.h"
|
||||
#include "FGPropulsion.h"
|
||||
#include "FGMassBalance.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -392,6 +396,13 @@ void FGAuxiliary::CalculateRelativePosition(void)
|
|||
relative_position = sqrt(lat_relative_position*lat_relative_position + lon_relative_position*lon_relative_position);
|
||||
};
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
double FGAuxiliary::BadUnits(void) const
|
||||
{
|
||||
cerr << "Bad units" << endl; return 0.0;
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
// The bitmasked value choices are as follows:
|
||||
// unset: In this case (the default) JSBSim would only print
|
||||
|
|
|
@ -40,7 +40,6 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGModel.h"
|
||||
#include "FGFDMExec.h"
|
||||
#include "math/FGColumnVector3.h"
|
||||
#include "math/FGLocation.h"
|
||||
#include "FGPropagate.h"
|
||||
|
@ -172,15 +171,15 @@ public:
|
|||
double GetMagBeta (void) const { return fabs(beta); }
|
||||
|
||||
double Getalpha (int unit) const { if (unit == inDegrees) return alpha*radtodeg;
|
||||
else cerr << "Bad units" << endl; return 0.0;}
|
||||
else return BadUnits(); }
|
||||
double Getbeta (int unit) const { if (unit == inDegrees) return beta*radtodeg;
|
||||
else cerr << "Bad units" << endl; return 0.0;}
|
||||
else return BadUnits(); }
|
||||
double Getadot (int unit) const { if (unit == inDegrees) return adot*radtodeg;
|
||||
else cerr << "Bad units" << endl; return 0.0;}
|
||||
else return BadUnits(); }
|
||||
double Getbdot (int unit) const { if (unit == inDegrees) return bdot*radtodeg;
|
||||
else cerr << "Bad units" << endl; return 0.0;}
|
||||
else return BadUnits(); }
|
||||
double GetMagBeta (int unit) const { if (unit == inDegrees) return fabs(beta)*radtodeg;
|
||||
else cerr << "Bad units" << endl; return 0.0;}
|
||||
else return BadUnits(); }
|
||||
|
||||
double Getqbar (void) const { return qbar; }
|
||||
double GetqbarUW (void) const { return qbarUW; }
|
||||
|
@ -281,6 +280,7 @@ private:
|
|||
void CalculateRelativePosition(void);
|
||||
|
||||
void bind(void);
|
||||
double BadUnits(void) const;
|
||||
void Debug(int from);
|
||||
};
|
||||
|
||||
|
|
|
@ -39,6 +39,9 @@ INCLUDES
|
|||
#include "FGBuoyantForces.h"
|
||||
#include "FGMassBalance.h"
|
||||
#include "input_output/FGPropertyManager.h" // Need?
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -53,6 +53,10 @@
|
|||
*/
|
||||
|
||||
#include "FGExternalForce.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -37,8 +37,12 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGExternalReactions.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
|
|
@ -40,7 +40,7 @@ INCLUDES
|
|||
|
||||
#include "FGModel.h"
|
||||
#include "FGExternalForce.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <vector>
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
|
@ -54,6 +54,8 @@ FORWARD DECLARATIONS
|
|||
|
||||
namespace JSBSim {
|
||||
|
||||
class Element;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -154,7 +156,7 @@ public:
|
|||
|
||||
private:
|
||||
|
||||
vector <FGExternalForce*> Forces;
|
||||
std::vector <FGExternalForce*> Forces;
|
||||
unsigned int numForces;
|
||||
FGColumnVector3 vTotalForces;
|
||||
FGColumnVector3 vTotalMoments;
|
||||
|
|
|
@ -39,6 +39,7 @@ INCLUDES
|
|||
|
||||
#include "FGFCS.h"
|
||||
#include "FGFDMExec.h"
|
||||
#include "FGGroundReactions.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
|
@ -58,6 +59,8 @@ INCLUDES
|
|||
#include "models/flight_control/FGMagnetometer.h"
|
||||
#include "models/flight_control/FGGyro.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
static const char *IdSrc = "$Id$";
|
||||
|
@ -685,7 +688,7 @@ double FGFCS::GetBrake(FGLGear::BrakeGroup bg)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGFCS::FindSystemFullPathname(string system_filename)
|
||||
string FGFCS::FindSystemFullPathname(const string& system_filename)
|
||||
{
|
||||
string fullpath, localpath;
|
||||
string systemPath = FDMExec->GetSystemsPath();
|
||||
|
@ -713,7 +716,7 @@ string FGFCS::FindSystemFullPathname(string system_filename)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
ifstream* FGFCS::FindSystemFile(string system_filename)
|
||||
ifstream* FGFCS::FindSystemFile(const string& system_filename)
|
||||
{
|
||||
string fullpath, localpath;
|
||||
string systemPath = FDMExec->GetSystemsPath();
|
||||
|
@ -738,7 +741,7 @@ ifstream* FGFCS::FindSystemFile(string system_filename)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGFCS::GetComponentStrings(string delimeter)
|
||||
string FGFCS::GetComponentStrings(const string& delimiter)
|
||||
{
|
||||
unsigned int comp;
|
||||
string CompStrings = "";
|
||||
|
@ -747,7 +750,7 @@ string FGFCS::GetComponentStrings(string delimeter)
|
|||
|
||||
for (unsigned int i=0; i<Systems.size(); i++) {
|
||||
if (firstime) firstime = false;
|
||||
else CompStrings += delimeter;
|
||||
else CompStrings += delimiter;
|
||||
|
||||
CompStrings += Systems[i]->GetName();
|
||||
total_count++;
|
||||
|
@ -756,7 +759,7 @@ string FGFCS::GetComponentStrings(string delimeter)
|
|||
for (comp = 0; comp < APComponents.size(); comp++)
|
||||
{
|
||||
if (firstime) firstime = false;
|
||||
else CompStrings += delimeter;
|
||||
else CompStrings += delimiter;
|
||||
|
||||
CompStrings += APComponents[comp]->GetName();
|
||||
total_count++;
|
||||
|
@ -764,7 +767,7 @@ string FGFCS::GetComponentStrings(string delimeter)
|
|||
|
||||
for (comp = 0; comp < FCSComponents.size(); comp++) {
|
||||
if (firstime) firstime = false;
|
||||
else CompStrings += delimeter;
|
||||
else CompStrings += delimiter;
|
||||
|
||||
CompStrings += FCSComponents[comp]->GetName();
|
||||
total_count++;
|
||||
|
@ -775,7 +778,7 @@ string FGFCS::GetComponentStrings(string delimeter)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGFCS::GetComponentValues(string delimeter)
|
||||
string FGFCS::GetComponentValues(const string& delimiter)
|
||||
{
|
||||
std::ostringstream buf;
|
||||
|
||||
|
@ -785,7 +788,7 @@ string FGFCS::GetComponentValues(string delimeter)
|
|||
|
||||
for (unsigned int i=0; i<Systems.size(); i++) {
|
||||
if (firstime) firstime = false;
|
||||
else buf << delimeter;
|
||||
else buf << delimiter;
|
||||
|
||||
buf << setprecision(9) << Systems[i]->GetOutput();
|
||||
total_count++;
|
||||
|
@ -793,7 +796,7 @@ string FGFCS::GetComponentValues(string delimeter)
|
|||
|
||||
for (comp = 0; comp < APComponents.size(); comp++) {
|
||||
if (firstime) firstime = false;
|
||||
else buf << delimeter;
|
||||
else buf << delimiter;
|
||||
|
||||
buf << setprecision(9) << APComponents[comp]->GetOutput();
|
||||
total_count++;
|
||||
|
@ -801,7 +804,7 @@ string FGFCS::GetComponentValues(string delimeter)
|
|||
|
||||
for (comp = 0; comp < FCSComponents.size(); comp++) {
|
||||
if (firstime) firstime = false;
|
||||
else buf << delimeter;
|
||||
else buf << delimiter;
|
||||
|
||||
buf << setprecision(9) << FCSComponents[comp]->GetOutput();
|
||||
total_count++;
|
||||
|
|
|
@ -38,6 +38,7 @@ SENTRY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <iosfwd>
|
||||
#include <vector>
|
||||
|
||||
#include <string>
|
||||
|
@ -352,15 +353,15 @@ public:
|
|||
FGState* GetState(void) { return State; }
|
||||
|
||||
/** Retrieves all component names for inclusion in output stream
|
||||
@param delimeter either a tab or comma string depending on output type
|
||||
@param delimiter either a tab or comma string depending on output type
|
||||
@return a string containing the descriptive names for all components */
|
||||
string GetComponentStrings(string delimeter);
|
||||
std::string GetComponentStrings(const std::string& delimiter);
|
||||
|
||||
/** Retrieves all component outputs for inclusion in output stream
|
||||
@param delimeter either a tab or comma string depending on output type
|
||||
@param delimiter either a tab or comma string depending on output type
|
||||
@return a string containing the numeric values for the current set of
|
||||
component outputs */
|
||||
string GetComponentValues(string delimeter);
|
||||
std::string GetComponentValues(const std::string& delimiter);
|
||||
|
||||
/// @name Pilot input command setting
|
||||
//@{
|
||||
|
@ -537,8 +538,8 @@ public:
|
|||
@return true if succesful */
|
||||
bool Load(Element* el, SystemType systype);
|
||||
|
||||
ifstream* FindSystemFile(string system_filename);
|
||||
string FindSystemFullPathname(string system_filename);
|
||||
std::ifstream* FindSystemFile(const std::string& system_filename);
|
||||
std::string FindSystemFullPathname(const std::string& system_filename);
|
||||
|
||||
void AddThrottle(void);
|
||||
void AddGear(void);
|
||||
|
@ -551,20 +552,20 @@ private:
|
|||
double DePos[NForms], DaLPos[NForms], DaRPos[NForms], DrPos[NForms];
|
||||
double DfPos[NForms], DsbPos[NForms], DspPos[NForms];
|
||||
double PTrimCmd, YTrimCmd, RTrimCmd;
|
||||
vector <double> ThrottleCmd;
|
||||
vector <double> ThrottlePos;
|
||||
vector <double> MixtureCmd;
|
||||
vector <double> MixturePos;
|
||||
vector <double> PropAdvanceCmd;
|
||||
vector <double> PropAdvance;
|
||||
vector <bool> PropFeatherCmd;
|
||||
vector <bool> PropFeather;
|
||||
vector <double> SteerPosDeg;
|
||||
std::vector <double> ThrottleCmd;
|
||||
std::vector <double> ThrottlePos;
|
||||
std::vector <double> MixtureCmd;
|
||||
std::vector <double> MixturePos;
|
||||
std::vector <double> PropAdvanceCmd;
|
||||
std::vector <double> PropAdvance;
|
||||
std::vector <bool> PropFeatherCmd;
|
||||
std::vector <bool> PropFeather;
|
||||
std::vector <double> SteerPosDeg;
|
||||
double LeftBrake, RightBrake, CenterBrake; // Brake settings
|
||||
double GearCmd,GearPos;
|
||||
double TailhookPos, WingFoldPos;
|
||||
|
||||
typedef vector <FGFCSComponent*> FCSCompVec;
|
||||
typedef std::vector <FGFCSComponent*> FCSCompVec;
|
||||
FCSCompVec Systems;
|
||||
FCSCompVec FCSComponents;
|
||||
FCSCompVec APComponents;
|
||||
|
|
|
@ -41,10 +41,15 @@ INCLUDES
|
|||
#include "models/FGInertial.h"
|
||||
#include "models/FGMassBalance.h"
|
||||
#include "FGGasCell.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
using std::cerr;
|
||||
using std::endl;
|
||||
using std::cout;
|
||||
using std::string;
|
||||
using std::max;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -40,16 +40,11 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGJSBBase.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include "math/FGColumnVector3.h"
|
||||
#include "models/propulsion/FGForce.h"
|
||||
#include "math/FGFunction.h"
|
||||
|
||||
#include <string>
|
||||
using std::string;
|
||||
using std::cerr;
|
||||
using std::endl;
|
||||
using std::cout;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
|
@ -64,6 +59,7 @@ FORWARD DECLARATIONS
|
|||
namespace JSBSim {
|
||||
|
||||
class FGBallonet;
|
||||
class Element;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
|
@ -230,7 +226,7 @@ private:
|
|||
enum GasType {ttUNKNOWN, ttHYDROGEN, ttHELIUM, ttAIR};
|
||||
|
||||
GasType Type;
|
||||
string type;
|
||||
std::string type;
|
||||
int CellNum;
|
||||
// Structural constants
|
||||
double MaxVolume; // [ft<66>]
|
||||
|
|
|
@ -39,8 +39,11 @@ INCLUDES
|
|||
#include <iomanip>
|
||||
|
||||
#include "FGGroundReactions.h"
|
||||
#include "FGFCS.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
static const char *IdSrc = "$Id$";
|
||||
|
|
|
@ -40,6 +40,9 @@ INCLUDES
|
|||
#include "FGPropagate.h"
|
||||
#include "FGState.h"
|
||||
#include "FGMassBalance.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -42,8 +42,14 @@ INCLUDES
|
|||
#include "FGState.h"
|
||||
#include "FGFDMExec.h"
|
||||
|
||||
#include <fstream>
|
||||
#include "input_output/FGfdmSocket.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
|
||||
#include <sstream>
|
||||
#include <iomanip>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -89,9 +95,8 @@ bool FGInput::InitModel(void)
|
|||
|
||||
bool FGInput::Run(void)
|
||||
{
|
||||
string line, token, info_string;
|
||||
string line, token;
|
||||
size_t start=0, string_start=0, string_end=0;
|
||||
char buf[100];
|
||||
double value=0;
|
||||
FGPropertyManager* node=0;
|
||||
|
||||
|
@ -157,8 +162,9 @@ bool FGInput::Run(void)
|
|||
socket->Reply("Must be in HOLD to search properties\n");
|
||||
}
|
||||
} else if (node > 0) {
|
||||
sprintf(buf, "%s = %12.6f\n", argument.c_str(), node->getDoubleValue());
|
||||
socket->Reply(buf);
|
||||
ostringstream buf;
|
||||
buf << argument << " = " << setw(12) << setprecision(6) << node->getDoubleValue() << endl;
|
||||
socket->Reply(buf.str());
|
||||
}
|
||||
|
||||
} else if (command == "hold") { // PAUSE
|
||||
|
@ -180,12 +186,12 @@ bool FGInput::Run(void)
|
|||
} else if (command == "info") { // INFO
|
||||
|
||||
// get info about the sim run and/or aircraft, etc.
|
||||
sprintf(buf, "%8.3f", State->Getsim_time());
|
||||
info_string = "JSBSim version: " + JSBSim_version + "\n";
|
||||
info_string += "Config File version: " + needed_cfg_version + "\n";
|
||||
info_string += "Aircraft simulated: " + Aircraft->GetAircraftName() + "\n";
|
||||
info_string += "Simulation time: " + string(buf) + "\n";
|
||||
socket->Reply(info_string);
|
||||
ostringstream info;
|
||||
info << "JSBSim version: " << JSBSim_version << endl;
|
||||
info << "Config File version: " << needed_cfg_version << endl;
|
||||
info << "Aircraft simulated: " << Aircraft->GetAircraftName() << endl;
|
||||
info << "Simulation time: " << setw(8) << setprecision(3) << State->Getsim_time() << endl;
|
||||
socket->Reply(info.str());
|
||||
|
||||
} else if (command == "help") { // HELP
|
||||
|
||||
|
|
|
@ -40,11 +40,7 @@ INCLUDES
|
|||
|
||||
#include "FGModel.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
#include "input_output/FGfdmSocket.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <string>
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
|
@ -58,6 +54,10 @@ FORWARD DECLARATIONS
|
|||
|
||||
namespace JSBSim {
|
||||
|
||||
class FGFDMExec;
|
||||
class Element;
|
||||
class FGfdmSocket;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -78,7 +78,6 @@ public:
|
|||
bool InitModel(void);
|
||||
bool Run(void);
|
||||
|
||||
void SetType(string);
|
||||
inline void Enable(void) { enabled = true; }
|
||||
inline void Disable(void) { enabled = false; }
|
||||
inline bool Toggle(void) {enabled = !enabled; return enabled;}
|
||||
|
@ -88,7 +87,7 @@ private:
|
|||
bool sFirstPass, dFirstPass, enabled;
|
||||
unsigned int port;
|
||||
FGfdmSocket* socket;
|
||||
string data;
|
||||
std::string data;
|
||||
void Debug(int from);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -41,6 +41,16 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGLGear.h"
|
||||
#include "FGState.h"
|
||||
#include "FGGroundReactions.h"
|
||||
#include "FGFCS.h"
|
||||
#include "FGAuxiliary.h"
|
||||
#include "FGAtmosphere.h"
|
||||
#include "FGMassBalance.h"
|
||||
#include "math/FGTable.h"
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -38,11 +38,8 @@ SENTRY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGFDMExec.h"
|
||||
#include "models/propulsion/FGForce.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include "math/FGColumnVector3.h"
|
||||
#include "math/FGTable.h"
|
||||
#include <string>
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -63,6 +60,8 @@ class FGFCS;
|
|||
class FGState;
|
||||
class FGMassBalance;
|
||||
class FGAuxiliary;
|
||||
class FGTable;
|
||||
class Element;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
|
@ -333,11 +332,11 @@ private:
|
|||
bool isRetractable;
|
||||
bool GearUp, GearDown;
|
||||
bool Servicable;
|
||||
string name;
|
||||
string sSteerType;
|
||||
string sBrakeGroup;
|
||||
string sRetractable;
|
||||
string sContactType;
|
||||
std::string name;
|
||||
std::string sSteerType;
|
||||
std::string sBrakeGroup;
|
||||
std::string sRetractable;
|
||||
std::string sContactType;
|
||||
|
||||
BrakeGroup eBrakeGrp;
|
||||
ContactType eContactType;
|
||||
|
@ -377,12 +376,6 @@ private:
|
|||
void Debug(int from);
|
||||
};
|
||||
}
|
||||
#include "FGAircraft.h"
|
||||
#include "FGPropagate.h"
|
||||
#include "FGAuxiliary.h"
|
||||
#include "FGFCS.h"
|
||||
#include "FGMassBalance.h"
|
||||
#include "FGState.h"
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
|
|
|
@ -42,6 +42,10 @@ INCLUDES
|
|||
#include "FGPropulsion.h"
|
||||
#include "FGBuoyantForces.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -338,6 +342,24 @@ void FGMassBalance::bind(void)
|
|||
(PMF)&FGMassBalance::GetXYZcg);
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
void FGMassBalance::PointMass::bind(FGPropertyManager* PropertyManager, int num) {
|
||||
string tmp = CreateIndexedPropertyName("inertia/pointmass-weight-lbs", num);
|
||||
PropertyManager->Tie( tmp.c_str(), this, &PointMass::GetPointMassWeight,
|
||||
&PointMass::SetPointMassWeight);
|
||||
|
||||
tmp = CreateIndexedPropertyName("inertia/pointmass-location-X-inches", num);
|
||||
PropertyManager->Tie( tmp.c_str(), this, eX, &PointMass::GetPointMassLocation,
|
||||
&PointMass::SetPointMassLocation);
|
||||
tmp = CreateIndexedPropertyName("inertia/pointmass-location-Y-inches", num);
|
||||
PropertyManager->Tie( tmp.c_str(), this, eY, &PointMass::GetPointMassLocation,
|
||||
&PointMass::SetPointMassLocation);
|
||||
tmp = CreateIndexedPropertyName("inertia/pointmass-location-Z-inches", num);
|
||||
PropertyManager->Tie( tmp.c_str(), this, eZ, &PointMass::GetPointMassLocation,
|
||||
&PointMass::SetPointMassLocation);
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
// The bitmasked value choices are as follows:
|
||||
// unset: In this case (the default) JSBSim would only print
|
||||
|
|
|
@ -189,24 +189,10 @@ private:
|
|||
void SetPointMassWeight(double wt) {Weight = wt;}
|
||||
double GetPointMassWeight(void) const {return Weight;}
|
||||
|
||||
void bind(FGPropertyManager* PropertyManager, int num) {
|
||||
string tmp = CreateIndexedPropertyName("inertia/pointmass-weight-lbs", num);
|
||||
PropertyManager->Tie( tmp.c_str(), this, &PointMass::GetPointMassWeight,
|
||||
&PointMass::SetPointMassWeight);
|
||||
|
||||
tmp = CreateIndexedPropertyName("inertia/pointmass-location-X-inches", num);
|
||||
PropertyManager->Tie( tmp.c_str(), this, eX, &PointMass::GetPointMassLocation,
|
||||
&PointMass::SetPointMassLocation);
|
||||
tmp = CreateIndexedPropertyName("inertia/pointmass-location-Y-inches", num);
|
||||
PropertyManager->Tie( tmp.c_str(), this, eY, &PointMass::GetPointMassLocation,
|
||||
&PointMass::SetPointMassLocation);
|
||||
tmp = CreateIndexedPropertyName("inertia/pointmass-location-Z-inches", num);
|
||||
PropertyManager->Tie( tmp.c_str(), this, eZ, &PointMass::GetPointMassLocation,
|
||||
&PointMass::SetPointMassLocation);
|
||||
}
|
||||
void bind(FGPropertyManager* PropertyManager, int num);
|
||||
};
|
||||
|
||||
vector <struct PointMass*> PointMasses;
|
||||
std::vector <struct PointMass*> PointMasses;
|
||||
|
||||
void bind(void);
|
||||
void Debug(int from);
|
||||
|
|
|
@ -52,6 +52,9 @@ INCLUDES
|
|||
#include "FGAircraft.h"
|
||||
#include "FGPropagate.h"
|
||||
#include "FGAuxiliary.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -39,10 +39,7 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGJSBBase.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
|
@ -52,8 +49,6 @@ DEFINITIONS
|
|||
|
||||
#define ID_MODEL "$Id$"
|
||||
|
||||
using namespace std;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
FORWARD DECLARATIONS
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -74,6 +69,8 @@ class FGBuoyantForces;
|
|||
class FGAircraft;
|
||||
class FGPropagate;
|
||||
class FGAuxiliary;
|
||||
class Element;
|
||||
class FGPropertyManager;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
|
@ -102,7 +99,7 @@ public:
|
|||
virtual bool Load(Element* el);
|
||||
|
||||
FGModel* NextModel;
|
||||
string Name;
|
||||
std::string Name;
|
||||
|
||||
/** Runs the model; called by the Executive
|
||||
@see JSBSim.cpp documentation
|
||||
|
@ -137,7 +134,7 @@ protected:
|
|||
FGAuxiliary* Auxiliary;
|
||||
FGPropertyManager* PropertyManager;
|
||||
|
||||
vector <double*> interface_properties;
|
||||
std::vector <double*> interface_properties;
|
||||
};
|
||||
}
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
|
|
@ -53,13 +53,16 @@ INCLUDES
|
|||
#include "FGPropagate.h"
|
||||
#include "FGAuxiliary.h"
|
||||
#include "FGInertial.h"
|
||||
#include "FGPropulsion.h" //access to FGEngine, FGTank
|
||||
#include "models/propulsion/FGEngine.h"
|
||||
#include "models/propulsion/FGTank.h"
|
||||
#include "models/propulsion/FGPiston.h"
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
#include <iomanip>
|
||||
#include <cstring>
|
||||
#include <cstdlib>
|
||||
|
||||
#include "input_output/net_fdm.hxx"
|
||||
#include "input_output/FGfdmSocket.h"
|
||||
|
||||
#if defined(WIN32) && !defined(__CYGWIN__)
|
||||
# include <windows.h>
|
||||
|
@ -70,6 +73,8 @@ INCLUDES
|
|||
static const int endianTest = 1;
|
||||
#define isLittleEndian (*((char *) &endianTest ) != 0)
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
static const char *IdSrc = "$Id$";
|
||||
|
@ -157,20 +162,17 @@ FGOutput::~FGOutput()
|
|||
|
||||
bool FGOutput::InitModel(void)
|
||||
{
|
||||
char fname[1000] = "";
|
||||
|
||||
if (!FGModel::InitModel()) return false;
|
||||
|
||||
if (Filename.size() > 0 && StartNewFile) {
|
||||
size_t idx = BaseFilename.find_last_of(".");
|
||||
size_t len = BaseFilename.length();
|
||||
string extension = "";
|
||||
if (idx != string::npos) {
|
||||
extension = BaseFilename.substr(idx, len-idx);
|
||||
len -= extension.length();
|
||||
ostringstream buf;
|
||||
string::size_type dot = BaseFilename.find_last_of('.');
|
||||
if (dot != string::npos) {
|
||||
buf << BaseFilename.substr(0, dot) << '_' << runID_postfix++ << BaseFilename.substr(dot);
|
||||
} else {
|
||||
buf << BaseFilename << '_' << runID_postfix++;
|
||||
}
|
||||
sprintf(fname, "%s_%d%s", BaseFilename.substr(0,len).c_str(), runID_postfix++, extension.c_str());
|
||||
Filename = string(fname);
|
||||
Filename = buf.str();
|
||||
datafile.close();
|
||||
StartNewFile = false;
|
||||
dFirstPass = true;
|
||||
|
@ -205,7 +207,7 @@ bool FGOutput::Run(void)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
void FGOutput::SetType(string type)
|
||||
void FGOutput::SetType(const string& type)
|
||||
{
|
||||
if (type == "CSV") {
|
||||
Type = otCSV;
|
||||
|
@ -227,7 +229,7 @@ void FGOutput::SetType(string type)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
void FGOutput::DelimitedOutput(string fname)
|
||||
void FGOutput::DelimitedOutput(const string& fname)
|
||||
{
|
||||
streambuf* buffer;
|
||||
string scratch = "";
|
||||
|
@ -918,7 +920,7 @@ void FGOutput::SocketOutput(void)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
void FGOutput::SocketStatusOutput(string out_str)
|
||||
void FGOutput::SocketStatusOutput(const string& out_str)
|
||||
{
|
||||
string asciiData;
|
||||
|
||||
|
|
|
@ -41,14 +41,11 @@ INCLUDES
|
|||
|
||||
#include "FGModel.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
#include "input_output/FGfdmSocket.h"
|
||||
#include "input_output/FGXMLFileRead.h"
|
||||
#include "input_output/net_fdm.hxx"
|
||||
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -61,6 +58,8 @@ FORWARD DECLARATIONS
|
|||
|
||||
namespace JSBSim {
|
||||
|
||||
class FGfdmSocket;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -140,22 +139,22 @@ public:
|
|||
bool InitModel(void);
|
||||
bool Run(void);
|
||||
|
||||
void DelimitedOutput(string);
|
||||
void DelimitedOutput(const std::string&);
|
||||
void SocketOutput(void);
|
||||
void FlightGearSocketOutput(void);
|
||||
void SocketStatusOutput(string);
|
||||
void SocketStatusOutput(const std::string&);
|
||||
void SocketDataFill(FGNetFDM* net);
|
||||
|
||||
|
||||
void SetType(string);
|
||||
void SetType(const std::string& type);
|
||||
void SetStartNewFile(bool tt) {StartNewFile = tt;}
|
||||
void SetSubsystems(int tt) {SubSystems = tt;}
|
||||
void Enable(void) { enabled = true; }
|
||||
void Disable(void) { enabled = false; }
|
||||
bool Toggle(void) {enabled = !enabled; return enabled;}
|
||||
bool Load(Element* el);
|
||||
void SetOutputFileName(string fname) {Filename = fname;}
|
||||
void SetDirectivesFile(string fname) {DirectivesFile = fname;}
|
||||
void SetOutputFileName(const std::string& fname) {Filename = fname;}
|
||||
void SetDirectivesFile(const std::string& fname) {DirectivesFile = fname;}
|
||||
void SetRate(int rt);
|
||||
string GetOutputFileName(void) const {return Filename;}
|
||||
|
||||
|
@ -185,11 +184,11 @@ private:
|
|||
int SubSystems;
|
||||
int runID_postfix;
|
||||
bool StartNewFile;
|
||||
string output_file_name, delimeter, BaseFilename, Filename, DirectivesFile;
|
||||
ofstream datafile;
|
||||
std::string output_file_name, delimeter, BaseFilename, Filename, DirectivesFile;
|
||||
std::ofstream datafile;
|
||||
FGfdmSocket* socket;
|
||||
FGfdmSocket* flightGearSocket;
|
||||
vector <FGPropertyManager*> OutputProperties;
|
||||
std::vector <FGPropertyManager*> OutputProperties;
|
||||
|
||||
void Debug(int from);
|
||||
};
|
||||
|
|
|
@ -54,7 +54,8 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <cmath>
|
||||
#include <iomanip>
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
|
||||
#include "FGPropagate.h"
|
||||
#include "FGFDMExec.h"
|
||||
|
@ -64,6 +65,8 @@ INCLUDES
|
|||
#include "FGInertial.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
static const char *IdSrc = "$Id$";
|
||||
|
|
|
@ -45,15 +45,24 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGPropulsion.h"
|
||||
#include "FGState.h"
|
||||
#include "models/FGFCS.h"
|
||||
#include "models/FGMassBalance.h"
|
||||
#include "models/propulsion/FGThruster.h"
|
||||
#include "models/propulsion/FGRocket.h"
|
||||
#include "models/propulsion/FGTurbine.h"
|
||||
#include "models/propulsion/FGPiston.h"
|
||||
#include "models/propulsion/FGElectric.h"
|
||||
#include "models/propulsion/FGTurboProp.h"
|
||||
#include "models/propulsion/FGTank.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include "input_output/FGXMLParse.h"
|
||||
#include "math/FGColumnVector3.h"
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -330,7 +339,7 @@ bool FGPropulsion::Load(Element* el)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGPropulsion::FindEngineFullPathname(string engine_filename)
|
||||
string FGPropulsion::FindEngineFullPathname(const string& engine_filename)
|
||||
{
|
||||
string fullpath, localpath;
|
||||
string enginePath = FDMExec->GetEnginePath();
|
||||
|
@ -358,7 +367,7 @@ string FGPropulsion::FindEngineFullPathname(string engine_filename)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
ifstream* FGPropulsion::FindEngineFile(string engine_filename)
|
||||
ifstream* FGPropulsion::FindEngineFile(const string& engine_filename)
|
||||
{
|
||||
string fullpath, localpath;
|
||||
string enginePath = FDMExec->GetEnginePath();
|
||||
|
@ -383,7 +392,7 @@ ifstream* FGPropulsion::FindEngineFile(string engine_filename)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGPropulsion::GetPropulsionStrings(string delimeter)
|
||||
string FGPropulsion::GetPropulsionStrings(const string& delimiter)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
|
@ -393,13 +402,13 @@ string FGPropulsion::GetPropulsionStrings(string delimeter)
|
|||
|
||||
for (i=0; i<Engines.size(); i++) {
|
||||
if (firstime) firstime = false;
|
||||
else PropulsionStrings += delimeter;
|
||||
else PropulsionStrings += delimiter;
|
||||
|
||||
PropulsionStrings += Engines[i]->GetEngineLabels(delimeter);
|
||||
PropulsionStrings += Engines[i]->GetEngineLabels(delimiter);
|
||||
}
|
||||
for (i=0; i<Tanks.size(); i++) {
|
||||
if (Tanks[i]->GetType() == FGTank::ttFUEL) buf << delimeter << "Fuel Tank " << i;
|
||||
else if (Tanks[i]->GetType() == FGTank::ttOXIDIZER) buf << delimeter << "Oxidizer Tank " << i;
|
||||
if (Tanks[i]->GetType() == FGTank::ttFUEL) buf << delimiter << "Fuel Tank " << i;
|
||||
else if (Tanks[i]->GetType() == FGTank::ttOXIDIZER) buf << delimiter << "Oxidizer Tank " << i;
|
||||
}
|
||||
|
||||
return PropulsionStrings;
|
||||
|
@ -407,7 +416,7 @@ string FGPropulsion::GetPropulsionStrings(string delimeter)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGPropulsion::GetPropulsionValues(string delimeter)
|
||||
string FGPropulsion::GetPropulsionValues(const string& delimiter)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
|
@ -417,12 +426,12 @@ string FGPropulsion::GetPropulsionValues(string delimeter)
|
|||
|
||||
for (i=0; i<Engines.size(); i++) {
|
||||
if (firstime) firstime = false;
|
||||
else PropulsionValues += delimeter;
|
||||
else PropulsionValues += delimiter;
|
||||
|
||||
PropulsionValues += Engines[i]->GetEngineValues(delimeter);
|
||||
PropulsionValues += Engines[i]->GetEngineValues(delimiter);
|
||||
}
|
||||
for (i=0; i<Tanks.size(); i++) {
|
||||
buf << delimeter;
|
||||
buf << delimiter;
|
||||
buf << Tanks[i]->GetContents();
|
||||
}
|
||||
|
||||
|
|
|
@ -39,11 +39,9 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <vector>
|
||||
#include <fstream>
|
||||
#include <iosfwd>
|
||||
|
||||
#include "FGModel.h"
|
||||
#include "models/propulsion/FGEngine.h"
|
||||
#include "models/propulsion/FGTank.h"
|
||||
#include "math/FGMatrix33.h"
|
||||
#include "input_output/FGXMLFileRead.h"
|
||||
|
||||
|
@ -59,6 +57,9 @@ FORWARD DECLARATIONS
|
|||
|
||||
namespace JSBSim {
|
||||
|
||||
class FGTank;
|
||||
class FGEngine;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -157,8 +158,8 @@ public:
|
|||
/** Sets up the engines as running */
|
||||
void InitRunning(int n);
|
||||
|
||||
string GetPropulsionStrings(string delimeter);
|
||||
string GetPropulsionValues(string delimeter);
|
||||
std::string GetPropulsionStrings(const std::string& delimiter);
|
||||
std::string GetPropulsionValues(const std::string& delimiter);
|
||||
|
||||
inline FGColumnVector3& GetForces(void) {return vForces; }
|
||||
inline double GetForces(int n) const { return vForces(n);}
|
||||
|
@ -176,8 +177,8 @@ public:
|
|||
FGColumnVector3& GetTanksMoment(void);
|
||||
double GetTanksWeight(void);
|
||||
|
||||
ifstream* FindEngineFile(string filename);
|
||||
string FindEngineFullPathname(string engine_filename);
|
||||
std::ifstream* FindEngineFile(const std::string& filename);
|
||||
std::string FindEngineFullPathname(const std::string& engine_filename);
|
||||
inline int GetActiveEngine(void) const {return ActiveEngine;}
|
||||
inline bool GetFuelFreeze(void) {return fuel_freeze;}
|
||||
double GetTotalFuelQuantity(void) const {return TotalFuelQuantity;}
|
||||
|
@ -190,8 +191,8 @@ public:
|
|||
FGMatrix33& CalculateTankInertias(void);
|
||||
|
||||
private:
|
||||
vector <FGEngine*> Engines;
|
||||
vector <FGTank*> Tanks;
|
||||
std::vector <FGEngine*> Engines;
|
||||
std::vector <FGTank*> Tanks;
|
||||
unsigned int numSelectedFuelTanks;
|
||||
unsigned int numSelectedOxiTanks;
|
||||
unsigned int numFuelTanks;
|
||||
|
|
|
@ -59,11 +59,11 @@ INCLUDES
|
|||
|
||||
#include "FGMSIS.h"
|
||||
#include "FGState.h"
|
||||
#include <math.h> /* maths functions */
|
||||
#include <stdlib.h> /* for malloc/free */
|
||||
#include <stdio.h> /* for printf */
|
||||
#include <cmath> /* maths functions */
|
||||
#include <iostream> // for cout, endl
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
static const char *IdSrc = "$Id$";
|
||||
|
@ -322,7 +322,7 @@ double MSIS::dnet (double dd, double dm, double zhm, double xmm, double xm)
|
|||
double ylog;
|
||||
a = zhm / (xmm-xm);
|
||||
if (!((dm>0) && (dd>0))) {
|
||||
printf("dnet log error %e %e %e\n",dm,dd,xm);
|
||||
cerr << "dnet log error " << dm << ' ' << dd << ' ' << xm << ' ' << endl;
|
||||
if ((dd==0) && (dm==0))
|
||||
dd=1;
|
||||
if (dm==0)
|
||||
|
@ -400,7 +400,7 @@ void MSIS::splint (double *xa, double *ya, double *y2a, int n, double x, double
|
|||
}
|
||||
h = xa[khi] - xa[klo];
|
||||
if (h==0.0)
|
||||
printf("bad XA input to splint");
|
||||
cerr << "bad XA input to splint" << endl;
|
||||
a = (xa[khi] - x)/h;
|
||||
b = (x - xa[klo])/h;
|
||||
yi = a * ya[klo] + b * ya[khi] + ((a*a*a - a) * y2a[klo] + (b*b*b - b) * y2a[khi]) * h * h/6.0;
|
||||
|
@ -422,9 +422,9 @@ void MSIS::spline (double *x, double *y, int n, double yp1, double ypn, double *
|
|||
double *u;
|
||||
double sig, p, qn, un;
|
||||
int i, k;
|
||||
u=(double*)malloc(sizeof(double)*n);
|
||||
u=new double[n];
|
||||
if (u==NULL) {
|
||||
printf("Out Of Memory in spline - ERROR");
|
||||
cerr << "Out Of Memory in spline - ERROR" << endl;
|
||||
return;
|
||||
}
|
||||
if (yp1>0.99E30) {
|
||||
|
@ -451,7 +451,7 @@ void MSIS::spline (double *x, double *y, int n, double yp1, double ypn, double *
|
|||
for (k=n-2;k>=0;k--)
|
||||
y2[k] = y2[k] * y2[k+1] + u[k];
|
||||
|
||||
free(u);
|
||||
delete u;
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -964,7 +964,7 @@ double MSIS::glob7s(double *p, struct nrlmsise_input *input,
|
|||
if (p[99]==0)
|
||||
p[99]=pset;
|
||||
if (p[99]!=pset) {
|
||||
printf("Wrong parameter set for glob7s\n");
|
||||
cerr << "Wrong parameter set for glob7s" << endl;
|
||||
return -1;
|
||||
}
|
||||
for (j=0;j<14;j++)
|
||||
|
@ -1247,7 +1247,7 @@ void MSIS::ghp7(struct nrlmsise_input *input, struct nrlmsise_flags *flags,
|
|||
if (sqrt(diff*diff)<test)
|
||||
return;
|
||||
if (l==ltest) {
|
||||
printf("ERROR: ghp7 not converging for press %e, diff %e",press,diff);
|
||||
cerr << "ERROR: ghp7 not converging for press " << press << ", diff " << diff << endl;
|
||||
return;
|
||||
}
|
||||
xm = output->d[5] / xn / 1.66E-24;
|
||||
|
|
|
@ -43,6 +43,9 @@ INCLUDES
|
|||
|
||||
#include "FGMars.h"
|
||||
#include "FGState.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -38,6 +38,10 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGAccelerometer.h"
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -39,6 +39,8 @@ INCLUDES
|
|||
|
||||
#include "FGActuator.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
static const char *IdSrc = "$Id$";
|
||||
|
|
|
@ -38,6 +38,11 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGDeadBand.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -38,7 +38,6 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGFCSComponent.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
|
@ -53,6 +52,8 @@ FORWARD DECLARATIONS
|
|||
namespace JSBSim {
|
||||
|
||||
class FGFCS;
|
||||
class Element;
|
||||
class FGPropertyManager;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
|
|
|
@ -38,6 +38,12 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGFCSComponent.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -147,6 +153,8 @@ FGFCSComponent::FGFCSComponent(FGFCS* _fcs, Element* element) : fcs(_fcs)
|
|||
if (delayType.length() > 0) {
|
||||
if (delayType == "time") {
|
||||
delay = (int)(delay / dt);
|
||||
} else if (delayType == "frames") {
|
||||
// no op. the delay type of "frames" is assumed and is the default.
|
||||
} else {
|
||||
cerr << "Unallowed delay type" << endl;
|
||||
}
|
||||
|
|
|
@ -38,8 +38,6 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGJSBBase.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
|
@ -49,9 +47,6 @@ DEFINITIONS
|
|||
|
||||
#define ID_FCSCOMPONENT "$Id$"
|
||||
|
||||
using std::string;
|
||||
using std::vector;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
FORWARD DECLARATIONS
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -59,6 +54,8 @@ FORWARD DECLARATIONS
|
|||
namespace JSBSim {
|
||||
|
||||
class FGFCS;
|
||||
class FGPropertyManager;
|
||||
class Element;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
|
@ -102,22 +99,22 @@ public:
|
|||
virtual bool Run(void);
|
||||
virtual void SetOutput(void);
|
||||
double GetOutput (void) const {return Output;}
|
||||
string GetName(void) const {return Name;}
|
||||
string GetType(void) const { return Type; }
|
||||
std::string GetName(void) const {return Name;}
|
||||
std::string GetType(void) const { return Type; }
|
||||
virtual double GetOutputPct(void) const { return 0; }
|
||||
|
||||
protected:
|
||||
FGFCS* fcs;
|
||||
FGPropertyManager* PropertyManager;
|
||||
FGPropertyManager* treenode;
|
||||
vector <FGPropertyManager*> OutputNodes;
|
||||
std::vector <FGPropertyManager*> OutputNodes;
|
||||
FGPropertyManager* ClipMinPropertyNode;
|
||||
FGPropertyManager* ClipMaxPropertyNode;
|
||||
vector <FGPropertyManager*> InputNodes;
|
||||
vector <float> InputSigns;
|
||||
vector <double> output_array;
|
||||
string Type;
|
||||
string Name;
|
||||
std::vector <FGPropertyManager*> InputNodes;
|
||||
std::vector <float> InputSigns;
|
||||
std::vector <double> output_array;
|
||||
std::string Type;
|
||||
std::string Name;
|
||||
double Input;
|
||||
double Output;
|
||||
double clipmax, clipmin;
|
||||
|
|
|
@ -38,6 +38,10 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGFCSFunction.h"
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -38,6 +38,13 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGFilter.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -54,9 +61,10 @@ FGFilter::FGFilter(FGFCS* fcs, Element* element) : FGFCSComponent(fcs, element)
|
|||
DynamicFilter = false;
|
||||
|
||||
C[1] = C[2] = C[3] = C[4] = C[5] = C[6] = 0.0;
|
||||
for (int i=0; i<7; i++) {
|
||||
for (int i=1; i<7; i++) {
|
||||
PropertySign[i] = 1.0;
|
||||
PropertyNode[i] = 0L;
|
||||
ReadFilterCoefficients(element, i);
|
||||
}
|
||||
|
||||
if (Type == "LAG_FILTER") FilterType = eLag ;
|
||||
|
@ -66,13 +74,6 @@ FGFilter::FGFilter(FGFCS* fcs, Element* element) : FGFCSComponent(fcs, element)
|
|||
else if (Type == "INTEGRATOR") FilterType = eIntegrator ;
|
||||
else FilterType = eUnknown ;
|
||||
|
||||
ReadFilterCoefficients(element, 1);
|
||||
ReadFilterCoefficients(element, 2);
|
||||
ReadFilterCoefficients(element, 3);
|
||||
ReadFilterCoefficients(element, 4);
|
||||
ReadFilterCoefficients(element, 5);
|
||||
ReadFilterCoefficients(element, 6);
|
||||
|
||||
if (element->FindElement("trigger")) {
|
||||
Trigger = PropertyManager->GetNode(element->FindElementValue("trigger"));
|
||||
}
|
||||
|
@ -97,13 +98,13 @@ FGFilter::~FGFilter()
|
|||
|
||||
void FGFilter::ReadFilterCoefficients(Element* element, int index)
|
||||
{
|
||||
char buf[3];
|
||||
sprintf(buf, "c%d", index);
|
||||
string coefficient = string(buf);
|
||||
string property_string="";
|
||||
|
||||
// index is known to be 1-7.
|
||||
// A stringstream would be overkill, but also trying to avoid sprintf
|
||||
string coefficient = "c0";
|
||||
coefficient[1] += index;
|
||||
|
||||
if ( element->FindElement(coefficient) ) {
|
||||
property_string = element->FindElementValue(coefficient);
|
||||
string property_string = element->FindElementValue(coefficient);
|
||||
if (!is_number(property_string)) { // property
|
||||
if (property_string[0] == '-') {
|
||||
PropertySign[index] = -1.0;
|
||||
|
|
|
@ -38,7 +38,6 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGFCSComponent.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
|
@ -52,6 +51,10 @@ FORWARD DECLARATIONS
|
|||
|
||||
namespace JSBSim {
|
||||
|
||||
class Element;
|
||||
class FGPropertyManager;
|
||||
class FGFCS;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
|
|
@ -38,6 +38,12 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGGain.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -38,12 +38,8 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGFCSComponent.h"
|
||||
#include <string>
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include "math/FGTable.h"
|
||||
|
||||
using std::string;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -57,6 +53,7 @@ FORWARD DECLARATIONS
|
|||
namespace JSBSim {
|
||||
|
||||
class FGFCS;
|
||||
class Element;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
|
|
|
@ -38,6 +38,9 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGGradient.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -38,6 +38,9 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGGyro.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -38,8 +38,11 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGKinemat.h"
|
||||
#include <math.h>
|
||||
#include <float.h>
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -38,12 +38,7 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGFCSComponent.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
using std::vector;
|
||||
using std::string;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
|
@ -134,8 +129,8 @@ public:
|
|||
bool Run (void);
|
||||
|
||||
private:
|
||||
vector<double> Detents;
|
||||
vector<double> TransitionTimes;
|
||||
std::vector<double> Detents;
|
||||
std::vector<double> TransitionTimes;
|
||||
int NumDetents;
|
||||
double OutputPct;
|
||||
bool DoScale;
|
||||
|
|
|
@ -40,6 +40,10 @@ INCLUDES
|
|||
#include "FGMagnetometer.h"
|
||||
#include "simgear/magvar/coremag.hxx"
|
||||
#include <ctime>
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -36,6 +36,11 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGPID.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -39,8 +39,6 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGFCSComponent.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <string>
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
|
@ -48,10 +46,6 @@ DEFINITIONS
|
|||
|
||||
#define ID_PID "$Id$"
|
||||
|
||||
using std::string;
|
||||
|
||||
using std::string;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
FORWARD DECLARATIONS
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -59,6 +53,7 @@ FORWARD DECLARATIONS
|
|||
namespace JSBSim {
|
||||
|
||||
class FGFCS;
|
||||
class Element;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
|
|
|
@ -38,6 +38,11 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGSensor.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -38,8 +38,7 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGFCSComponent.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
|
@ -53,8 +52,8 @@ FORWARD DECLARATIONS
|
|||
|
||||
namespace JSBSim {
|
||||
|
||||
using std::vector;
|
||||
class FGFCS;
|
||||
class Element;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
|
@ -155,7 +154,7 @@ protected:
|
|||
bool fail_low;
|
||||
bool fail_high;
|
||||
bool fail_stuck;
|
||||
string quant_property;
|
||||
std::string quant_property;
|
||||
|
||||
void ProcessSensorSignal(void);
|
||||
void Noise(void);
|
||||
|
|
|
@ -42,6 +42,8 @@ INCLUDES
|
|||
#include "math/FGColumnVector3.h"
|
||||
#include "math/FGMatrix33.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -77,7 +79,7 @@ public:
|
|||
{
|
||||
Element* orient_element = element->FindElement("orientation");
|
||||
if (orient_element) vOrient = orient_element->FindElementTripletConvertTo("RAD");
|
||||
else {cerr << "No orientation given for this sensor. " << endl;}
|
||||
else { std::cerr << "No orientation given for this sensor. " << std::endl;}
|
||||
|
||||
Element* axis_element = element->FindElement("axis");
|
||||
if (axis_element) {
|
||||
|
@ -89,7 +91,7 @@ public:
|
|||
} else if (sAxis == "Z" || sAxis == "z") {
|
||||
axis = 3;
|
||||
} else {
|
||||
cerr << " Incorrect/no axis specified for this sensor; assuming X axis" << endl;
|
||||
std::cerr << " Incorrect/no axis specified for this sensor; assuming X axis" << std::endl;
|
||||
axis = 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,6 +38,10 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGSummer.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -38,9 +38,6 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGFCSComponent.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
|
@ -48,18 +45,14 @@ DEFINITIONS
|
|||
|
||||
#define ID_SUMMER "$Id$"
|
||||
|
||||
using std::vector;
|
||||
using std::string;
|
||||
|
||||
using std::vector;
|
||||
using std::string;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
FORWARD DECLARATIONS
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
class Element;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
|
|
@ -62,6 +62,10 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGSwitch.h"
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -40,7 +40,14 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGElectric.h"
|
||||
#include "FGState.h"
|
||||
#include "models/FGPropulsion.h"
|
||||
#include "models/propulsion/FGThruster.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -92,24 +99,24 @@ double FGElectric::Calculate(void)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGElectric::GetEngineLabels(string delimeter)
|
||||
string FGElectric::GetEngineLabels(const string& delimiter)
|
||||
{
|
||||
std::ostringstream buf;
|
||||
|
||||
buf << Name << " HP (engine " << EngineNumber << ")" << delimeter
|
||||
<< Thruster->GetThrusterLabels(EngineNumber, delimeter);
|
||||
buf << Name << " HP (engine " << EngineNumber << ")" << delimiter
|
||||
<< Thruster->GetThrusterLabels(EngineNumber, delimiter);
|
||||
|
||||
return buf.str();
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGElectric::GetEngineValues(string delimeter)
|
||||
string FGElectric::GetEngineValues(const string& delimiter)
|
||||
{
|
||||
std::ostringstream buf;
|
||||
|
||||
buf << HP << delimeter
|
||||
<< Thruster->GetThrusterValues(EngineNumber, delimeter);
|
||||
buf << HP << delimiter
|
||||
<< Thruster->GetThrusterValues(EngineNumber, delimiter);
|
||||
|
||||
return buf.str();
|
||||
}
|
||||
|
|
|
@ -83,8 +83,8 @@ public:
|
|||
double Calculate(void);
|
||||
double GetPowerAvailable(void) {return PowerAvailable;}
|
||||
double getRPM(void) {return RPM;}
|
||||
string GetEngineLabels(string delimeter);
|
||||
string GetEngineValues(string delimeter);
|
||||
std::string GetEngineLabels(const std::string& delimiter);
|
||||
std::string GetEngineValues(const std::string& delimiter);
|
||||
|
||||
private:
|
||||
|
||||
|
|
|
@ -41,9 +41,16 @@ INCLUDES
|
|||
#include "FGTank.h"
|
||||
#include "FGPropeller.h"
|
||||
#include "FGNozzle.h"
|
||||
#include "FGState.h"
|
||||
#include "models/FGPropulsion.h"
|
||||
#include "input_output/FGXMLParse.h"
|
||||
#include "math/FGColumnVector3.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -44,9 +44,8 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGJSBBase.h"
|
||||
#include "FGThruster.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include "input_output/FGXMLFileRead.h"
|
||||
#include "math/FGColumnVector3.h"
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
|
@ -56,9 +55,6 @@ DEFINITIONS
|
|||
|
||||
#define ID_ENGINE "$Id$"
|
||||
|
||||
using std::string;
|
||||
using std::vector;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
FORWARD DECLARATIONS
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -75,6 +71,7 @@ class FGPropulsion;
|
|||
class FGAuxiliary;
|
||||
class FGThruster;
|
||||
class Element;
|
||||
class FGPropertyManager;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
|
@ -187,8 +184,8 @@ public:
|
|||
bool LoadThruster(Element *el);
|
||||
FGThruster* GetThruster(void) {return Thruster;}
|
||||
|
||||
virtual string GetEngineLabels(string delimeter) = 0;
|
||||
virtual string GetEngineValues(string delimeter) = 0;
|
||||
virtual std::string GetEngineLabels(const std::string& delimiter) = 0;
|
||||
virtual std::string GetEngineValues(const std::string& delimiter) = 0;
|
||||
|
||||
protected:
|
||||
/** Reduces the fuel in the active tanks by the amount required.
|
||||
|
@ -205,7 +202,7 @@ protected:
|
|||
virtual double CalcFuelNeed(void);
|
||||
|
||||
FGPropertyManager* PropertyManager;
|
||||
string Name;
|
||||
std::string Name;
|
||||
const int EngineNumber;
|
||||
EngineType Type;
|
||||
double X, Y, Z;
|
||||
|
@ -240,20 +237,10 @@ protected:
|
|||
FGAuxiliary* Auxiliary;
|
||||
FGThruster* Thruster;
|
||||
|
||||
vector <int> SourceTanks;
|
||||
std::vector <int> SourceTanks;
|
||||
void Debug(int from);
|
||||
};
|
||||
}
|
||||
#include "FGState.h"
|
||||
#include "FGFDMExec.h"
|
||||
#include "models/FGAtmosphere.h"
|
||||
#include "models/FGFCS.h"
|
||||
#include "models/FGAircraft.h"
|
||||
#include "models/FGPropagate.h"
|
||||
#include "models/FGPropulsion.h"
|
||||
#include "models/FGAuxiliary.h"
|
||||
#include "models/propulsion/FGThruster.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
#endif
|
||||
|
|
|
@ -46,6 +46,10 @@ and the cg.
|
|||
#include "models/FGPropagate.h"
|
||||
#include "models/FGMassBalance.h"
|
||||
#include "models/FGAerodynamics.h"
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -35,10 +35,15 @@ HISTORY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <cstdlib>
|
||||
|
||||
#include "FGNozzle.h"
|
||||
#include "models/FGAtmosphere.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -59,14 +64,14 @@ FGNozzle::FGNozzle(FGFDMExec* FDMExec, Element* nozzle_element, int num)
|
|||
cerr << "Fatal Error: Nozzle exit area must be given in nozzle config file." << endl;
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
/*
|
||||
if (nozzle_element->FindElement("pe"))
|
||||
PE = nozzle_element->FindElementValueAsNumberConvertTo("pe", "PSF");
|
||||
else {
|
||||
cerr << "Fatal Error: Nozzle exit pressure must be given in nozzle config file." << endl;
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
*/
|
||||
Thrust = 0;
|
||||
Type = ttNozzle;
|
||||
|
||||
|
|
|
@ -95,7 +95,7 @@ public:
|
|||
string GetThrusterValues(int id, string delimeter);
|
||||
|
||||
private:
|
||||
double PE;
|
||||
// double PE;
|
||||
double Area;
|
||||
void Debug(int from);
|
||||
};
|
||||
|
|
|
@ -43,8 +43,13 @@ INCLUDES
|
|||
#include <sstream>
|
||||
|
||||
#include "FGPiston.h"
|
||||
#include "FGState.h"
|
||||
#include "models/FGAtmosphere.h"
|
||||
#include "models/FGPropulsion.h"
|
||||
#include "FGPropeller.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -838,28 +843,28 @@ void FGPiston::doOilPressure(void)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGPiston::GetEngineLabels(string delimeter)
|
||||
string FGPiston::GetEngineLabels(const string& delimiter)
|
||||
{
|
||||
std::ostringstream buf;
|
||||
|
||||
buf << Name << " Power Available (engine " << EngineNumber << " in HP)" << delimeter
|
||||
<< Name << " HP (engine " << EngineNumber << ")" << delimeter
|
||||
<< Name << " equivalent ratio (engine " << EngineNumber << ")" << delimeter
|
||||
<< Name << " MAP (engine " << EngineNumber << " in inHg)" << delimeter
|
||||
<< Thruster->GetThrusterLabels(EngineNumber, delimeter);
|
||||
buf << Name << " Power Available (engine " << EngineNumber << " in HP)" << delimiter
|
||||
<< Name << " HP (engine " << EngineNumber << ")" << delimiter
|
||||
<< Name << " equivalent ratio (engine " << EngineNumber << ")" << delimiter
|
||||
<< Name << " MAP (engine " << EngineNumber << " in inHg)" << delimiter
|
||||
<< Thruster->GetThrusterLabels(EngineNumber, delimiter);
|
||||
|
||||
return buf.str();
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGPiston::GetEngineValues(string delimeter)
|
||||
string FGPiston::GetEngineValues(const string& delimiter)
|
||||
{
|
||||
std::ostringstream buf;
|
||||
|
||||
buf << PowerAvailable << delimeter << HP << delimeter
|
||||
<< equivalence_ratio << delimeter << ManifoldPressure_inHg << delimeter
|
||||
<< Thruster->GetThrusterValues(EngineNumber, delimeter);
|
||||
buf << PowerAvailable << delimiter << HP << delimiter
|
||||
<< equivalence_ratio << delimiter << ManifoldPressure_inHg << delimiter
|
||||
<< Thruster->GetThrusterValues(EngineNumber, delimiter);
|
||||
|
||||
return buf.str();
|
||||
}
|
||||
|
|
|
@ -195,8 +195,8 @@ public:
|
|||
/// Destructor
|
||||
~FGPiston();
|
||||
|
||||
string GetEngineLabels(string delimeter);
|
||||
string GetEngineValues(string delimeter);
|
||||
std::string GetEngineLabels(const std::string& delimiter);
|
||||
std::string GetEngineValues(const std::string& delimiter);
|
||||
|
||||
double Calculate(void);
|
||||
double GetPowerAvailable(void) {return PowerAvailable;}
|
||||
|
|
|
@ -35,12 +35,16 @@ HISTORY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
#include "FGPropeller.h"
|
||||
#include "models/FGPropagate.h"
|
||||
#include "models/FGAtmosphere.h"
|
||||
#include "models/FGAuxiliary.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -38,9 +38,15 @@ HISTORY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
#include "FGRocket.h"
|
||||
#include "FGState.h"
|
||||
#include "models/FGPropulsion.h"
|
||||
#include "FGThruster.h"
|
||||
#include "FGTank.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
@ -114,25 +120,23 @@ double FGRocket::Calculate(void)
|
|||
PropellantFlowRate = (FuelExpended + OxidizerExpended)/dT;
|
||||
Throttle = FCS->GetThrottlePos(EngineNumber);
|
||||
|
||||
// If there is a thrust table, it is a function of propellant remaining. The
|
||||
// If there is a thrust table, it is a function of propellant burned. The
|
||||
// engine is started when the throttle is advanced to 1.0. After that, it
|
||||
// burns without regard to throttle setting. The table returns a value between
|
||||
// zero and one, representing the percentage of maximum vacuum thrust being
|
||||
// applied.
|
||||
// burns without regard to throttle setting.
|
||||
|
||||
if (ThrustTable != 0L) { // Thrust table given -> Solid fuel used
|
||||
|
||||
if ((Throttle == 1 || BurnTime > 0.0 ) && !Starved) {
|
||||
BurnTime += State->Getdt();
|
||||
double TotalEngineFuelAvailable=0.0;
|
||||
double TotalEngineFuelBurned=0.0;
|
||||
for (int i=0; i<(int)SourceTanks.size(); i++) {
|
||||
FGTank* tank = Propulsion->GetTank(i);
|
||||
if (SourceTanks[i] == 1) {
|
||||
TotalEngineFuelAvailable += tank->GetContents();
|
||||
TotalEngineFuelBurned += tank->GetCapacity() - tank->GetContents();
|
||||
}
|
||||
}
|
||||
|
||||
VacThrust = ThrustTable->GetValue(TotalEngineFuelAvailable);
|
||||
VacThrust = ThrustTable->GetValue(TotalEngineFuelBurned);
|
||||
} else {
|
||||
VacThrust = 0.0;
|
||||
}
|
||||
|
@ -252,23 +256,23 @@ double FGRocket::CalcOxidizerNeed(void)
|
|||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGRocket::GetEngineLabels(string delimeter)
|
||||
string FGRocket::GetEngineLabels(const string& delimiter)
|
||||
{
|
||||
std::ostringstream buf;
|
||||
|
||||
buf << Name << " Total Impulse (engine " << EngineNumber << " in psf)" << delimeter
|
||||
<< Thruster->GetThrusterLabels(EngineNumber, delimeter);
|
||||
buf << Name << " Total Impulse (engine " << EngineNumber << " in psf)" << delimiter
|
||||
<< Thruster->GetThrusterLabels(EngineNumber, delimiter);
|
||||
|
||||
return buf.str();
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
string FGRocket::GetEngineValues(string delimeter)
|
||||
string FGRocket::GetEngineValues(const string& delimiter)
|
||||
{
|
||||
std::ostringstream buf;
|
||||
|
||||
buf << It << delimeter << Thruster->GetThrusterValues(EngineNumber, delimeter);
|
||||
buf << It << delimiter << Thruster->GetThrusterValues(EngineNumber, delimiter);
|
||||
|
||||
return buf.str();
|
||||
}
|
||||
|
|
|
@ -159,8 +159,8 @@ public:
|
|||
|
||||
double GetOxiFlowRate(void) const {return OxidizerFlowRate;}
|
||||
|
||||
string GetEngineLabels(string delimeter);
|
||||
string GetEngineValues(string delimeter);
|
||||
std::string GetEngineLabels(const std::string& delimiter);
|
||||
std::string GetEngineValues(const std::string& delimiter);
|
||||
|
||||
private:
|
||||
/** Reduces the fuel in the active tanks by the amount required.
|
||||
|
|
|
@ -36,6 +36,9 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGRotor.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -37,11 +37,14 @@ INCLUDES
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGTank.h"
|
||||
#include "FGFDMExec.h"
|
||||
#include "models/FGAuxiliary.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include "input_output/FGPropertyManager.h"
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
using std::cerr;
|
||||
using std::endl;
|
||||
using std::cout;
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
|
@ -44,17 +44,10 @@ SENTRY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include "FGFDMExec.h"
|
||||
#include "FGJSBBase.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
#include "math/FGColumnVector3.h"
|
||||
#include <string>
|
||||
|
||||
using std::string;
|
||||
using std::cerr;
|
||||
using std::endl;
|
||||
using std::cout;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
DEFINITIONS
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -67,6 +60,10 @@ FORWARD DECLARATIONS
|
|||
|
||||
namespace JSBSim {
|
||||
|
||||
class Element;
|
||||
class FGPropertyManager;
|
||||
class FGFDMExec;
|
||||
|
||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
CLASS DOCUMENTATION
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
@ -281,8 +278,8 @@ private:
|
|||
TankType Type;
|
||||
GrainType grainType;
|
||||
int TankNumber;
|
||||
string type;
|
||||
string strGType;
|
||||
std::string type;
|
||||
std::string strGType;
|
||||
FGColumnVector3 vXYZ;
|
||||
FGColumnVector3 vXYZ_drain;
|
||||
double Capacity;
|
||||
|
|
|
@ -35,9 +35,13 @@ HISTORY
|
|||
INCLUDES
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
#include "FGThruster.h"
|
||||
#include "input_output/FGXMLElement.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace JSBSim {
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue