%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
#include "FGInput.h"
-#include "FGState.h"
+#include "FGAircraft.h"
#include "FGFDMExec.h"
#include "input_output/FGfdmSocket.h"
namespace JSBSim {
-static const char *IdSrc = "$Id$";
+static const char *IdSrc = "$Id: FGInput.cpp,v 1.21 2011/05/20 03:18:36 jberndt Exp $";
static const char *IdHdr = ID_INPUT;
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bool FGInput::InitModel(void)
{
- if (!FGModel::InitModel()) return false;
-
return true;
}
// This function handles accepting input commands from the socket interface.
//
-bool FGInput::Run(void)
+bool FGInput::Run(bool Holding)
{
string line, token;
size_t start=0, string_start=0, string_end=0;
double value=0;
FGPropertyManager* node=0;
- if (FGModel::Run()) return true; // fast exit if nothing to do
+ if (FGModel::Run(Holding)) return true; // fast exit if nothing to do
if (port == 0) return false; // Do nothing here if port not defined
// return false if no error
// This model DOES execute if "Exec->Holding"
+ RunPreFunctions();
+
data = socket->Receive(); // get socket transmission if present
if (data.size() > 0) {
break;
}
if (node == 0) {
- if (FDMExec->Holding()) { // if holding can query property list
+ if (Holding) { // if holding can query property list
string query = FDMExec->QueryPropertyCatalog(argument);
socket->Reply(query);
} else {
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;
+ info << "Aircraft simulated: " << FDMExec->GetAircraft()->GetAircraftName() << endl;
+ info << "Simulation time: " << setw(8) << setprecision(3) << FDMExec->GetSimTime() << endl;
socket->Reply(info.str());
} else if (command == "help") { // HELP
}
}
+ RunPostFunctions();
+
return false;
}