CLASS IMPLEMENTATION
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
-FGPiston::FGPiston(FGFDMExec* exec, FGConfigFile* Eng_cfg) : FGEngine(exec),
+FGPiston::FGPiston(FGFDMExec* exec, FGConfigFile* Eng_cfg, int engine_number)
+ : FGEngine(exec, engine_number),
R_air(287.3),
rho_fuel(800), // estimate
calorific_value_fuel(47.3e6),
Type = etPiston;
crank_counter = 0;
- EngineNumber = 0;
OilTemp_degK = 298;
MinManifoldPressure_inHg = 6.5;
MaxManifoldPressure_inHg = 28.5;
MAP = Atmosphere->GetPressure() * 47.88; // psf to Pa
CylinderHeadTemp_degK = 0.0;
Displacement = 360;
- MaxHP = 200;
+ MaxHP = 0;
Cycles = 2;
IdleRPM = 600;
Magnetos = 0;
bTakeoffBoost = false;
TakeoffBoost = 0.0; // Default to no extra takeoff-boost
int i;
- for(i=0; i<FG_MAX_BOOST_SPEEDS; ++i) {
+ for (i=0; i<FG_MAX_BOOST_SPEEDS; i++) {
RatedBoost[i] = 0.0;
RatedPower[i] = 0.0;
RatedAltitude[i] = 0.0;
RatedRPM[i] = 2500;
TakeoffMAP[i] = 100000;
}
+ for (i=0; i<FG_MAX_BOOST_SPEEDS-1; i++) {
+ BoostSwitchAltitude[i] = 0.0;
+ BoostSwitchPressure[i] = 0.0;
+ }
// Initialisation
volumetric_efficiency = 0.8; // Actually f(speed, load) but this will get us running
PowerAvailable = (HP * hptoftlbssec) - Thruster->GetPowerRequired();
- return Thruster->Calculate(PowerAvailable);
+ return Thrust = Thruster->Calculate(PowerAvailable);
}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-string FGPiston::GetEngineLabels(void)
+string FGPiston::GetEngineLabels(string delimeter)
{
std::ostringstream buf;
- buf << Name << "_PwrAvail[" << EngineNumber << "], "
- << Thruster->GetThrusterLabels(EngineNumber);
+ buf << Name << "_PwrAvail[" << EngineNumber << "]" << delimeter
+ << Name << "_HP[" << EngineNumber << "]" << delimeter
+ << Name << "_equiv_ratio[" << EngineNumber << "]" << delimeter
+ << Name << "_MAP[" << EngineNumber << "]" << delimeter
+ << Thruster->GetThrusterLabels(EngineNumber, delimeter);
return buf.str();
}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-string FGPiston::GetEngineValues(void)
+string FGPiston::GetEngineValues(string delimeter)
{
std::ostringstream buf;
- buf << PowerAvailable << ", " << Thruster->GetThrusterValues(EngineNumber);
+ buf << PowerAvailable << delimeter << HP << delimeter
+ << equivalence_ratio << delimeter << MAP << delimeter
+ << Thruster->GetThrusterValues(EngineNumber, delimeter);
return buf.str();
}