]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/models/propulsion/FGElectric.cpp
Merge branch 'next' of git://gitorious.org/fg/flightgear into next
[flightgear.git] / src / FDM / JSBSim / models / propulsion / FGElectric.cpp
index 1138d820cceed7fe97b849229c8057af6eb1f8d9..341c02a39b05673c6eb08e33d4707b0177ce4b4d 100644 (file)
@@ -42,6 +42,7 @@ INCLUDES
 #include "FGElectric.h"
 #include "models/FGPropulsion.h"
 #include "models/propulsion/FGThruster.h"
+#include "FGPropeller.h"
 
 #include <iostream>
 #include <sstream>
@@ -50,7 +51,7 @@ using namespace std;
 
 namespace JSBSim {
 
-static const char *IdSrc = "$Id: FGElectric.cpp,v 1.9 2010/08/21 17:13:48 jberndt Exp $";
+static const char *IdSrc = "$Id: FGElectric.cpp,v 1.11 2011/06/06 22:35:08 jentron Exp $";
 static const char *IdHdr = ID_ELECTRIC;
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -71,6 +72,11 @@ FGElectric::FGElectric(FGFDMExec* exec, Element *el, int engine_number)
   if (el->FindElement("power"))
     PowerWatts = el->FindElementValueAsNumberConvertTo("power","WATTS");
 
+  string property_name, base_property_name;
+  base_property_name = CreateIndexedPropertyName("propulsion/engine", EngineNumber);
+  property_name = base_property_name + "/power-hp";
+  PropertyManager->Tie(property_name, &HP);
+
   Debug(0); // Call Debug() routine from constructor if needed
 }
 
@@ -89,15 +95,25 @@ void FGElectric::Calculate(void)
 
   Throttle = FCS->GetThrottlePos(EngineNumber);
 
+  if (Thruster->GetType() == FGThruster::ttPropeller) {
+      ((FGPropeller*)Thruster)->SetAdvance(FCS->GetPropAdvance(EngineNumber));
+      ((FGPropeller*)Thruster)->SetFeather(FCS->GetPropFeather(EngineNumber));
+  } 
+
   RPM = Thruster->GetRPM() * Thruster->GetGearRatio();
 
   HP = PowerWatts * Throttle / hptowatts;
+  
+  Thruster->Calculate(HP * hptoftlbssec);
 
-  PowerAvailable = (HP * hptoftlbssec) - Thruster->GetPowerRequired();
+  RunPostFunctions();
+}
 
-  Thruster->Calculate(PowerAvailable);
+//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-  RunPostFunctions();
+double FGElectric::CalcFuelNeed(void)
+{
+  return 0;
 }
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -174,10 +190,4 @@ void FGElectric::Debug(int from)
   }
 }
 
-double
-FGElectric::CalcFuelNeed(void)
-{
-  return 0;
-}
-
 } // namespace JSBSim