%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
#include "FGInput.h"
-#include "FGState.h"
+#include "FGAircraft.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 {
-static const char *IdSrc = "$Id$";
+static const char *IdSrc = "$Id: FGInput.cpp,v 1.19 2010/02/25 05:21:36 jberndt Exp $";
static const char *IdHdr = ID_INPUT;
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bool FGInput::Run(void)
{
- string line, token, info_string;
- int start=0, string_start=0, string_end=0;
- int token_start=0, token_end=0;
- char buf[100];
+ string line, token;
+ size_t start=0, string_start=0, string_end=0;
double value=0;
FGPropertyManager* node=0;
// 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) {
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
} else if (command == "info") { // INFO
// get info about the sim run and/or aircraft, etc.
- sprintf(buf, "%8.3f\0", 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) << FDMExec->GetSimTime() << endl;
+ socket->Reply(info.str());
} else if (command == "help") { // HELP
}
}
+ RunPostFunctions();
+
return false;
}