]> git.mxchange.org Git - flightgear.git/blobdiff - src/Systems/electrical.cxx
Boris Koenig:
[flightgear.git] / src / Systems / electrical.cxx
index 1b6b39943bec53882559a75ebea04d0056df12d0..72dcf3917aeba31d489307cabc3c69fdf6d69812 100644 (file)
@@ -344,16 +344,23 @@ void FGElectricalSystem::update (double dt) {
 
     // impliment an extremely simplistic voltage model (assumes
     // certain naming conventions in electrical system config)
+    // FIXME: we probably want to be able to feed power from all
+    // engines if they are running and the master-alt is switched on
     double volts = 0.0;
-    if ( fgGetBool("/controls/switches/master-bat") ) {
+    if ( fgGetBool("/controls/engines/engine[0]/master-bat") ) {
         volts = 24.0;
     }
-    if ( fgGetBool("/controls/switches/master-alt") &&
-         fgGetDouble("/engines/engine[0]/rpm") > 800 )
-    {
-        double alt_contrib = 28.0;
-        if ( alt_contrib > volts ) {
-            volts = alt_contrib;
+    if ( fgGetBool("/controls/engines/engine[0]/master-alt") ) {
+        if ( fgGetDouble("/engines/engine[0]/rpm") > 800 ) {
+            double alt_contrib = 28.0;
+            if ( alt_contrib > volts ) {
+                volts = alt_contrib;
+            }
+        } else if ( fgGetDouble("/engines/engine[0]/rpm") > 200 ) {
+            double alt_contrib = 20.0;
+            if ( alt_contrib > volts ) {
+                volts = alt_contrib;
+            }
         }
     }
     _volts_out->setDoubleValue( volts );
@@ -362,8 +369,8 @@ void FGElectricalSystem::update (double dt) {
     // naming conventions in the electrical system config) ... FIXME:
     // make this more generic
     double amps = 0.0;
-    if ( fgGetBool("/controls/switches/master-bat") ) {
-        if ( fgGetBool("/controls/switches/master-alt") &&
+    if ( fgGetBool("/controls/engines/engine[0]/master-bat") ) {
+        if ( fgGetBool("/controls/engines/engine[0]/master-alt") &&
              fgGetDouble("/engines/engine[0]/rpm") > 800 )
         {
             amps += 40.0 * alt_norm;