X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2Fmodels%2FFGInput.cpp;h=65ab24db22b1c338b0b3a2e8ee19bebbabf86645;hb=53e8fbfcbb3ddac0dc261043fea7bd24dfa6e62d;hp=4715ad05a4f10660ee0d0ed6532473de3830182e;hpb=0f0f25512d4b5a4c1b56de2ad975abc7285c9bf5;p=flightgear.git diff --git a/src/FDM/JSBSim/models/FGInput.cpp b/src/FDM/JSBSim/models/FGInput.cpp index 4715ad05a..65ab24db2 100755 --- a/src/FDM/JSBSim/models/FGInput.cpp +++ b/src/FDM/JSBSim/models/FGInput.cpp @@ -39,15 +39,21 @@ INCLUDES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ #include "FGInput.h" -#include "FGState.h" +#include "FGAircraft.h" #include "FGFDMExec.h" -#include +#include "input_output/FGfdmSocket.h" +#include "input_output/FGXMLElement.h" + +#include #include +#include + +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; /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -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; @@ -100,6 +105,8 @@ bool FGInput::Run(void) // 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) { @@ -157,8 +164,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 +188,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) << FDMExec->GetSimTime() << endl; + socket->Reply(info.str()); } else if (command == "help") { // HELP @@ -207,6 +215,8 @@ bool FGInput::Run(void) } } + RunPostFunctions(); + return false; }