Latest JSBSim changes.
This commit is contained in:
parent
5c3f4e999d
commit
fbccfab5ff
8 changed files with 42 additions and 30 deletions
|
@ -71,6 +71,7 @@ INCLUDES
|
|||
#include "FGAuxiliary.h"
|
||||
#include "FGOutput.h"
|
||||
#include "FGConfigFile.h"
|
||||
#include "FGInitialCondition.h"
|
||||
|
||||
static const char *IdSrc = "$Id$";
|
||||
static const char *IdHdr = ID_FDMEXEC;
|
||||
|
@ -403,8 +404,8 @@ bool FGFDMExec::LoadScript(string script)
|
|||
string token="";
|
||||
string aircraft="";
|
||||
string initialize="";
|
||||
bool result=false;
|
||||
double dt=0.0;
|
||||
bool result = false;
|
||||
double dt = 0.0;
|
||||
unsigned i;
|
||||
struct condition *newCondition;
|
||||
|
||||
|
@ -507,6 +508,12 @@ bool FGFDMExec::LoadScript(string script)
|
|||
exit(-1);
|
||||
}
|
||||
|
||||
FGInitialCondition IC(this);
|
||||
if ( ! IC.Load("aircraft", aircraft, initialize)) {
|
||||
cerr << "Initialization unsuccessful" << endl;
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ FGLGear::FGLGear(FGConfigFile* AC_cfg, FGFDMExec* fdmex) : Exec(fdmex)
|
|||
*AC_cfg >> tmp >> name >> vXYZ(1) >> vXYZ(2) >> vXYZ(3)
|
||||
>> kSpring >> bDamp>> dynamicFCoeff >> staticFCoeff
|
||||
>> rollingFCoeff >> sSteerType >> sBrakeGroup
|
||||
>> maxSteerAngle >> Retractable;
|
||||
>> maxSteerAngle >> sRetractable;
|
||||
|
||||
if (sBrakeGroup == "LEFT" ) eBrakeGrp = bgLeft;
|
||||
else if (sBrakeGroup == "RIGHT" ) eBrakeGrp = bgRight;
|
||||
|
@ -85,13 +85,14 @@ FGLGear::FGLGear(FGConfigFile* AC_cfg, FGFDMExec* fdmex) : Exec(fdmex)
|
|||
<< sSteerType << " is undefined." << endl;
|
||||
}
|
||||
|
||||
if ( Retractable == "RETRACT" ) {
|
||||
isRetractable=true;
|
||||
if ( sRetractable == "RETRACT" ) {
|
||||
isRetractable = true;
|
||||
} else {
|
||||
isRetractable=false;
|
||||
isRetractable = false;
|
||||
}
|
||||
|
||||
GearUp=false; GearDown=true;
|
||||
GearUp = false;
|
||||
GearDown = true;
|
||||
|
||||
// Add some AI here to determine if gear is located properly according to its
|
||||
// brake group type ??
|
||||
|
@ -159,6 +160,7 @@ FGLGear::FGLGear(const FGLGear& lgear)
|
|||
Reported = lgear.Reported;
|
||||
name = lgear.name;
|
||||
sSteerType = lgear.sSteerType;
|
||||
sRetractable = lgear.sRetractable;
|
||||
eSteerType = lgear.eSteerType;
|
||||
sBrakeGroup = lgear.sBrakeGroup;
|
||||
eBrakeGrp = lgear.eBrakeGrp;
|
||||
|
@ -166,8 +168,6 @@ FGLGear::FGLGear(const FGLGear& lgear)
|
|||
isRetractable = lgear.isRetractable;
|
||||
GearUp = lgear.GearUp;
|
||||
GearDown = lgear.GearDown;
|
||||
|
||||
Debug(0);
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -474,17 +474,17 @@ void FGLGear::Debug(int from)
|
|||
|
||||
if (debug_lvl & 1) { // Standard console startup message output
|
||||
if (from == 0) { // Constructor
|
||||
cout << " Name: " << name << endl;
|
||||
cout << " Location: " << vXYZ << endl;
|
||||
cout << " Spring Constant: " << kSpring << endl;
|
||||
cout << " Damping Constant: " << bDamp << endl;
|
||||
cout << " Name: " << name << endl;
|
||||
cout << " Location: " << vXYZ << endl;
|
||||
cout << " Spring Constant: " << kSpring << endl;
|
||||
cout << " Damping Constant: " << bDamp << endl;
|
||||
cout << " Dynamic Friction: " << dynamicFCoeff << endl;
|
||||
cout << " Static Friction: " << staticFCoeff << endl;
|
||||
cout << " Static Friction: " << staticFCoeff << endl;
|
||||
cout << " Rolling Friction: " << rollingFCoeff << endl;
|
||||
cout << " Steering Type: " << sSteerType << endl;
|
||||
cout << " Grouping: " << sBrakeGroup << endl;
|
||||
cout << " Steering Type: " << sSteerType << endl;
|
||||
cout << " Grouping: " << sBrakeGroup << endl;
|
||||
cout << " Max Steer Angle: " << maxSteerAngle << endl;
|
||||
cout << " Retractable: " << Retractable << endl;
|
||||
cout << " Retractable: " << sRetractable << endl;
|
||||
}
|
||||
}
|
||||
if (debug_lvl & 2 ) { // Instantiation/Destruction notification
|
||||
|
|
|
@ -268,7 +268,7 @@ private:
|
|||
string name;
|
||||
string sSteerType;
|
||||
string sBrakeGroup;
|
||||
string Retractable;
|
||||
string sRetractable;
|
||||
|
||||
BrakeGroup eBrakeGrp;
|
||||
SteerType eSteerType;
|
||||
|
|
|
@ -157,7 +157,8 @@ void FGOutput::DelimitedOutput(string fname)
|
|||
}
|
||||
if (SubSystems & ssRates) {
|
||||
outstream << ", ";
|
||||
outstream << "P, Q, R";
|
||||
outstream << "P, Q, R, ";
|
||||
outstream << "Pdot, Qdot, Rdot";
|
||||
}
|
||||
if (SubSystems & ssVelocities) {
|
||||
outstream << ", ";
|
||||
|
@ -179,7 +180,8 @@ void FGOutput::DelimitedOutput(string fname)
|
|||
}
|
||||
if (SubSystems & ssAtmosphere) {
|
||||
outstream << ", ";
|
||||
outstream << "Rho";
|
||||
outstream << "Rho, ";
|
||||
outstream << "NWind, EWind, DWind";
|
||||
}
|
||||
if (SubSystems & ssMassProps) {
|
||||
outstream << ", ";
|
||||
|
@ -232,7 +234,8 @@ void FGOutput::DelimitedOutput(string fname)
|
|||
}
|
||||
if (SubSystems & ssRates) {
|
||||
outstream << ", ";
|
||||
outstream << Rotation->GetPQR();
|
||||
outstream << Rotation->GetPQR() << ", ";
|
||||
outstream << Rotation->GetPQRdot();
|
||||
}
|
||||
if (SubSystems & ssVelocities) {
|
||||
outstream << ", ";
|
||||
|
@ -254,7 +257,8 @@ void FGOutput::DelimitedOutput(string fname)
|
|||
}
|
||||
if (SubSystems & ssAtmosphere) {
|
||||
outstream << ", ";
|
||||
outstream << Atmosphere->GetDensity();
|
||||
outstream << Atmosphere->GetDensity() << ", ";
|
||||
outstream << Atmosphere->GetWindNED();
|
||||
}
|
||||
if (SubSystems & ssMassProps) {
|
||||
outstream << ", ";
|
||||
|
|
|
@ -102,6 +102,8 @@ FGPosition::FGPosition(FGFDMExec* fdmex) : FGModel(fdmex)
|
|||
lastLongitudeDot = lastLatitudeDot = lastRadiusDot = 0.0;
|
||||
Longitude = Latitude = 0.0;
|
||||
gamma = Vt = Vground = 0.0;
|
||||
hoverbmac = hoverbcg = 0.0;
|
||||
psigt = 0.0;
|
||||
|
||||
Debug(0);
|
||||
}
|
||||
|
@ -148,17 +150,15 @@ bool FGPosition::Run(void) {
|
|||
|
||||
Vground = sqrt( vVel(eNorth)*vVel(eNorth) + vVel(eEast)*vVel(eEast) );
|
||||
psigt = atan2(vVel(eEast), vVel(eNorth));
|
||||
if(psigt < 0.0)
|
||||
if (psigt < 0.0)
|
||||
psigt += 2*M_PI;
|
||||
|
||||
invMass = 1.0 / MassBalance->GetMass();
|
||||
Radius = h + SeaLevelRadius;
|
||||
invRadius = 1.0 / Radius;
|
||||
|
||||
cosLat = cos(Latitude);
|
||||
if (cosLat != 0) LongitudeDot = vVel(eEast) / (Radius * cosLat);
|
||||
|
||||
LatitudeDot = vVel(eNorth) * invRadius;
|
||||
LatitudeDot = vVel(eNorth) / Radius;
|
||||
RadiusDot = -vVel(eDown);
|
||||
|
||||
Longitude += 0.5*dt*rate*(LongitudeDot + lastLongitudeDot);
|
||||
|
|
|
@ -123,7 +123,6 @@ private:
|
|||
FGColumnVector3 vVelDot;
|
||||
FGColumnVector3 vRunwayNormal;
|
||||
|
||||
double Vee, invMass, invRadius;
|
||||
double Radius, h;
|
||||
double LatitudeDot, LongitudeDot, RadiusDot;
|
||||
double lastLatitudeDot, lastLongitudeDot, lastRadiusDot;
|
||||
|
|
|
@ -80,7 +80,7 @@ FGRotation::FGRotation(FGFDMExec* fdmex) : FGModel(fdmex)
|
|||
Name = "FGRotation";
|
||||
cTht=cPhi=cPsi=1.0;
|
||||
sTht=sPhi=sPsi=0.0;
|
||||
|
||||
|
||||
Debug(0);
|
||||
}
|
||||
|
||||
|
|
|
@ -477,10 +477,12 @@ bool FGState::Reset(string path, string acname, string fname)
|
|||
cerr << "The reset file " << resetDef
|
||||
<< " does not appear to be a reset file" << endl;
|
||||
return false;
|
||||
} else {
|
||||
resetfile.GetNextConfigLine();
|
||||
resetfile >> token;
|
||||
cout << "Resetting using: " << token << endl << endl;
|
||||
}
|
||||
|
||||
resetfile.GetNextConfigLine();
|
||||
resetfile >> token;
|
||||
while (token != string("/initialize") && token != string("EOF")) {
|
||||
if (token == "UBODY") resetfile >> U;
|
||||
if (token == "VBODY") resetfile >> V;
|
||||
|
|
Loading…
Reference in a new issue