From: Bertrand <bco...@us...> - 2016-05-05 15:38:12
|
Update of /cvsroot/jsbsim/JSBSim/src/models In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv31149/src/models Modified Files: FGPropulsion.h FGPropulsion.cpp Log Message: Added the computation of the total oxidizer content. Also use SGPropertyObject to save the use of trivial getters and setters. Index: FGPropulsion.h =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/models/FGPropulsion.h,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -r1.35 -r1.36 *** FGPropulsion.h 7 Jan 2015 23:22:59 -0000 1.35 --- FGPropulsion.h 5 May 2016 15:38:08 -0000 1.36 *************** *** 42,45 **** --- 42,46 ---- #include <iosfwd> + #include "simgear/props/propertyObject.hxx" #include "FGModel.h" #include "propulsion/FGEngine.h" *************** *** 173,180 **** double GetMoments(int n) const {return vMoments(n);} - bool GetRefuel(void) const {return refuel;} - void SetRefuel(bool setting) {refuel = setting;} - bool GetFuelDump(void) const {return dump;} - void SetFuelDump(bool setting) {dump = setting;} double Transfer(int source, int target, double amount); void DoRefuel(double time_slice); --- 174,177 ---- *************** *** 187,191 **** inline int GetActiveEngine(void) const {return ActiveEngine;} inline bool GetFuelFreeze(void) const {return FuelFreeze;} - double GetTotalFuelQuantity(void) const {return TotalFuelQuantity;} void SetMagnetos(int setting); --- 184,187 ---- *************** *** 213,220 **** FGColumnVector3 vXYZtank_arm; FGMatrix33 tankJ; ! bool refuel; ! bool dump; bool FuelFreeze; ! double TotalFuelQuantity; double DumpRate; double RefuelRate; --- 209,217 ---- FGColumnVector3 vXYZtank_arm; FGMatrix33 tankJ; ! simgear::PropertyObject<bool> refuel; ! simgear::PropertyObject<bool> dump; bool FuelFreeze; ! simgear::PropertyObject<double> TotalFuelQuantity; ! simgear::PropertyObject<double> TotalOxidizerQuantity; double DumpRate; double RefuelRate; Index: FGPropulsion.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/models/FGPropulsion.cpp,v retrieving revision 1.86 retrieving revision 1.87 diff -C2 -r1.86 -r1.87 *** FGPropulsion.cpp 17 Jan 2016 15:26:18 -0000 1.86 --- FGPropulsion.cpp 5 May 2016 15:38:09 -0000 1.87 *************** *** 85,93 **** ActiveEngine = -1; // -1: ALL, 0: Engine 1, 1: Engine 2 ... tankJ.InitMatrix(); - refuel = dump = false; DumpRate = 0.0; RefuelRate = 6000.0; FuelFreeze = false; - TotalFuelQuantity = 0.0; IsBound = HavePistonEngine = --- 85,91 ---- *************** *** 123,126 **** --- 121,127 ---- for (unsigned int i=0; i<numTanks; i++) Tanks[i]->ResetToIC(); + TotalFuelQuantity = 0.0; + TotalOxidizerQuantity = 0.0; + refuel = dump = false; for (unsigned int i=0; i<numEngines; i++) *************** *** 152,164 **** TotalFuelQuantity = 0.0; for (i=0; i<numTanks; i++) { Tanks[i]->Calculate( in.TotalDeltaT, in.TAT_c); ! if (Tanks[i]->GetType() == FGTank::ttFUEL) { TotalFuelQuantity += Tanks[i]->GetContents(); } } ! if (refuel) DoRefuel( in.TotalDeltaT ); ! if (dump) DumpFuel( in.TotalDeltaT ); RunPostFunctions(); --- 153,173 ---- TotalFuelQuantity = 0.0; + TotalOxidizerQuantity = 0.0; for (i=0; i<numTanks; i++) { Tanks[i]->Calculate( in.TotalDeltaT, in.TAT_c); ! switch (Tanks[i]->GetType()) { ! case FGTank::ttFUEL: TotalFuelQuantity += Tanks[i]->GetContents(); + break; + case FGTank::ttOXIDIZER: + TotalOxidizerQuantity += Tanks[i]->GetContents(); + break; + default: + break; } } ! if (refuel.node() && refuel) DoRefuel( in.TotalDeltaT ); ! if (dump.node() && dump) DumpFuel( in.TotalDeltaT ); RunPostFunctions(); *************** *** 766,774 **** PropertyManager->Tie("propulsion/active_engine", this, (iPMF)&FGPropulsion::GetActiveEngine, &FGPropulsion::SetActiveEngine, true); - PropertyManager->Tie("propulsion/total-fuel-lbs", this, &FGPropulsion::GetTotalFuelQuantity); - PropertyManager->Tie("propulsion/refuel", this, &FGPropulsion::GetRefuel, - &FGPropulsion::SetRefuel, true); - PropertyManager->Tie("propulsion/fuel_dump", this, &FGPropulsion::GetFuelDump, - &FGPropulsion::SetFuelDump, true); PropertyManager->Tie("forces/fbx-prop-lbs", this, eX, (PMF)&FGPropulsion::GetForces); PropertyManager->Tie("forces/fby-prop-lbs", this, eY, (PMF)&FGPropulsion::GetForces); --- 775,778 ---- *************** *** 777,780 **** --- 781,788 ---- PropertyManager->Tie("moments/m-prop-lbsft", this, eY, (PMF)&FGPropulsion::GetMoments); PropertyManager->Tie("moments/n-prop-lbsft", this, eZ, (PMF)&FGPropulsion::GetMoments); + TotalFuelQuantity = PropertyManager->CreatePropertyObject<double>("propulsion/total-fuel-lbs"); + TotalOxidizerQuantity = PropertyManager->CreatePropertyObject<double>("propulsion/total-oxidizer-lbs"); + refuel = PropertyManager->CreatePropertyObject<bool>("propulsion/refuel"); + dump = PropertyManager->CreatePropertyObject<bool>("propulsion/fuel_dump"); } |