]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/JSBSim.cpp
Check return value of FDM::init().
[flightgear.git] / src / FDM / JSBSim / JSBSim.cpp
index 7e2790d790a1fdba3afaa6fe36bf39fd574928ec..43850a69c3e11bf4c36d47cacd8681c8f0824242 100644 (file)
@@ -71,8 +71,22 @@ USEUNIT("filtersjb\FGGain.cpp");
 USEUNIT("filtersjb\FGGradient.cpp");
 USEUNIT("filtersjb\FGSummer.cpp");
 USEUNIT("filtersjb\FGDeadBand.cpp");
-USEUNIT("FGTrimLong.cpp");
 USEUNIT("filtersjb\FGFlaps.cpp");
+USEFILE("JSBSim.cxx");
+USEUNIT("FGForce.cpp");
+USEUNIT("FGInertial.cpp");
+USEUNIT("FGNozzle.cpp");
+USEUNIT("FGPropeller.cpp");
+USEUNIT("FGRotor.cpp");
+USEUNIT("FGThruster.cpp");
+USEUNIT("FGMassBalance.cpp");
+USEUNIT("FGRocket.cpp");
+USEUNIT("FGTurboJet.cpp");
+USEUNIT("FGPiston.cpp");
+USEUNIT("FGTurboShaft.cpp");
+USEUNIT("FGPropulsion.cpp");
+USEUNIT("FGGroundReactions.cpp");
+USEUNIT("FGAerodynamics.cpp");
 //---------------------------------------------------------------------------
 #pragma argsused
 #endif
@@ -101,9 +115,12 @@ USEUNIT("filtersjb\FGFlaps.cpp");
 #include <ctime>
 #endif
 
+static const char *IdSrc = "$Header$";
+
 int main(int argc, char** argv)
 {
   FGFDMExec* FDMExec;
+  bool result = false;
 
   if (argc != 3) {
     cout << endl
@@ -114,7 +131,13 @@ int main(int argc, char** argv)
 
   FDMExec = new FGFDMExec();
 
-  FDMExec->GetAircraft()->LoadAircraft("aircraft", "engine", string(argv[1]));
+  result = FDMExec->LoadModel("aircraft", "engine", string(argv[1]));
+  
+  if (!result) {
+       cerr << "Aircraft file " << argv[1] << " was not found" << endl;
+         exit(-1);
+  }
+  
   if ( ! FDMExec->GetState()->Reset("aircraft", string(argv[1]), string(argv[2])))
     FDMExec->GetState()->Initialize(2000,0,0,0,0,0,0.5,0.5,40000);
 
@@ -123,24 +146,24 @@ int main(int argc, char** argv)
   while (FDMExec->GetState()->Getsim_time() <= 10.0)
   {
     // Fake an elevator ramp here after 1 second, hold for one second, ramp down
-    /*
+    
     if (FDMExec->GetState()->Getsim_time() >= 1.00 &&
         FDMExec->GetState()->Getsim_time() < 2.0)
     {
-      cmd = FDMExec->GetState()->Getsim_time() - 1.00;
+      cmd = -(FDMExec->GetState()->Getsim_time() - 1.00)/2.0;
     } else if (FDMExec->GetState()->Getsim_time() >= 2.00 &&
-        FDMExec->GetState()->Getsim_time() < 3.0)
+        FDMExec->GetState()->Getsim_time() < 6.0)
     {
-      cmd = 1.00;
-    } else if (FDMExec->GetState()->Getsim_time() >= 3.00 &&
-        FDMExec->GetState()->Getsim_time() < 4.0)
+      cmd = -1.00/2.0;
+    } else if (FDMExec->GetState()->Getsim_time() >= 6.00 &&
+        FDMExec->GetState()->Getsim_time() < 7.0)
     {
-      cmd = 4.0 - FDMExec->GetState()->Getsim_time();
+      cmd = -(7.0 - FDMExec->GetState()->Getsim_time())/2.0;
     } else {
       cmd = 0.00;
     }
     FDMExec->GetFCS()->SetDeCmd(cmd);    // input between -1 and 1
-    */
+    
     FDMExec->Run();
   }
 
@@ -149,3 +172,4 @@ int main(int argc, char** argv)
   return 0;
 }
 
+