X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2Fmodels%2FFGFCS.cpp;h=477890295478671424b026873c20664dfeb362fb;hb=edd83dd7e8fd7162ae49da6113ad797c68769f20;hp=e1b7b9fb42e6a29aa2f790c9d6288bda5cf68798;hpb=48cad71a702c7db7981f893112cbccdc84428243;p=flightgear.git diff --git a/src/FDM/JSBSim/models/FGFCS.cpp b/src/FDM/JSBSim/models/FGFCS.cpp index e1b7b9fb4..477890295 100644 --- a/src/FDM/JSBSim/models/FGFCS.cpp +++ b/src/FDM/JSBSim/models/FGFCS.cpp @@ -38,24 +38,28 @@ INCLUDES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ #include "FGFCS.h" -#include -#include +#include "FGFDMExec.h" +#include "FGGroundReactions.h" +#include "input_output/FGPropertyManager.h" #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "models/flight_control/FGFilter.h" +#include "models/flight_control/FGDeadBand.h" +#include "models/flight_control/FGGain.h" +#include "models/flight_control/FGPID.h" +#include "models/flight_control/FGSwitch.h" +#include "models/flight_control/FGSummer.h" +#include "models/flight_control/FGKinemat.h" +#include "models/flight_control/FGFCSFunction.h" +#include "models/flight_control/FGSensor.h" +#include "models/flight_control/FGActuator.h" +#include "models/flight_control/FGAccelerometer.h" +#include "models/flight_control/FGMagnetometer.h" +#include "models/flight_control/FGGyro.h" + +using namespace std; namespace JSBSim { @@ -194,6 +198,8 @@ bool FGFCS::Run(void) if (FGModel::Run()) return true; // fast exit if nothing to do if (FDMExec->Holding()) return false; + RunPreFunctions(); + for (i=0; iRun(); + RunPostFunctions(); + return false; } @@ -643,6 +651,8 @@ bool FGFCS::Load(Element* el, SystemType systype) Components->push_back(new FGSensor(this, component_element)); } else if (component_element->GetName() == string("accelerometer")) { Components->push_back(new FGAccelerometer(this, component_element)); + } else if (component_element->GetName() == string("magnetometer")) { + Components->push_back(new FGMagnetometer(this, component_element)); } else if (component_element->GetName() == string("gyro")) { Components->push_back(new FGGyro(this, component_element)); } else { @@ -682,7 +692,7 @@ double FGFCS::GetBrake(FGLGear::BrakeGroup bg) //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -string FGFCS::FindSystemFullPathname(string system_filename) +string FGFCS::FindSystemFullPathname(const string& system_filename) { string fullpath, localpath; string systemPath = FDMExec->GetSystemsPath(); @@ -710,7 +720,7 @@ string FGFCS::FindSystemFullPathname(string system_filename) //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -ifstream* FGFCS::FindSystemFile(string system_filename) +ifstream* FGFCS::FindSystemFile(const string& system_filename) { string fullpath, localpath; string systemPath = FDMExec->GetSystemsPath(); @@ -735,7 +745,7 @@ ifstream* FGFCS::FindSystemFile(string system_filename) //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -string FGFCS::GetComponentStrings(string delimeter) +string FGFCS::GetComponentStrings(const string& delimiter) { unsigned int comp; string CompStrings = ""; @@ -744,7 +754,7 @@ string FGFCS::GetComponentStrings(string delimeter) for (unsigned int i=0; iGetName(); total_count++; @@ -753,7 +763,7 @@ string FGFCS::GetComponentStrings(string delimeter) for (comp = 0; comp < APComponents.size(); comp++) { if (firstime) firstime = false; - else CompStrings += delimeter; + else CompStrings += delimiter; CompStrings += APComponents[comp]->GetName(); total_count++; @@ -761,7 +771,7 @@ string FGFCS::GetComponentStrings(string delimeter) for (comp = 0; comp < FCSComponents.size(); comp++) { if (firstime) firstime = false; - else CompStrings += delimeter; + else CompStrings += delimiter; CompStrings += FCSComponents[comp]->GetName(); total_count++; @@ -772,7 +782,7 @@ string FGFCS::GetComponentStrings(string delimeter) //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -string FGFCS::GetComponentValues(string delimeter) +string FGFCS::GetComponentValues(const string& delimiter) { std::ostringstream buf; @@ -782,7 +792,7 @@ string FGFCS::GetComponentValues(string delimeter) for (unsigned int i=0; iGetOutput(); total_count++; @@ -790,7 +800,7 @@ string FGFCS::GetComponentValues(string delimeter) for (comp = 0; comp < APComponents.size(); comp++) { if (firstime) firstime = false; - else buf << delimeter; + else buf << delimiter; buf << setprecision(9) << APComponents[comp]->GetOutput(); total_count++; @@ -798,7 +808,7 @@ string FGFCS::GetComponentValues(string delimeter) for (comp = 0; comp < FCSComponents.size(); comp++) { if (firstime) firstime = false; - else buf << delimeter; + else buf << delimiter; buf << setprecision(9) << FCSComponents[comp]->GetOutput(); total_count++;