From 6fec83155e4df8ebfcdf23e4643f6e91095bc41b Mon Sep 17 00:00:00 2001
From: ehofman <ehofman>
Date: Fri, 16 Oct 2009 08:05:50 +0000
Subject: [PATCH] James Turner: Add autobrake functionality

---
 src/FDM/JSBSim/JSBSim.cxx | 18 ++++++++++++++++--
 src/FDM/JSBSim/JSBSim.hxx |  4 ++++
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/FDM/JSBSim/JSBSim.cxx b/src/FDM/JSBSim/JSBSim.cxx
index abab0414d..cc7232fc0 100644
--- a/src/FDM/JSBSim/JSBSim.cxx
+++ b/src/FDM/JSBSim/JSBSim.cxx
@@ -258,6 +258,10 @@ FGJSBsim::FGJSBsim( double dt )
     speedbrake_pos_pct->setDoubleValue(0);
     spoilers_pos_pct->setDoubleValue(0);
 
+    ab_brake_engaged = fgGetNode("/autopilot/autobrake/engaged", true);
+    ab_brake_left_pct = fgGetNode("/autopilot/autobrake/brake-left-output", true);
+    ab_brake_right_pct = fgGetNode("/autopilot/autobrake/brake-right-output", true);
+    
     temperature = fgGetNode("/environment/temperature-degc",true);
     pressure = fgGetNode("/environment/pressure-inhg",true);
     density = fgGetNode("/environment/density-slugft3",true);
@@ -542,8 +546,18 @@ bool FGJSBsim::copy_to_JSBsim()
         // Parking brake sets minimum braking
         // level for mains.
     double parking_brake = globals->get_controls()->get_brake_parking();
-    FCS->SetLBrake(FMAX(globals->get_controls()->get_brake_left(), parking_brake));
-    FCS->SetRBrake(FMAX(globals->get_controls()->get_brake_right(), parking_brake));
+    double left_brake = globals->get_controls()->get_brake_left();
+    double right_brake = globals->get_controls()->get_brake_right();
+    
+    if (ab_brake_engaged->getBoolValue()) {
+      left_brake = ab_brake_left_pct->getDoubleValue();
+      right_brake = ab_brake_right_pct->getDoubleValue(); 
+    }
+    
+    FCS->SetLBrake(FMAX(left_brake, parking_brake));
+    FCS->SetRBrake(FMAX(right_brake, parking_brake));
+    
+    
     FCS->SetCBrake( 0.0 );
     // FCS->SetCBrake( globals->get_controls()->get_brake(2) );
 
diff --git a/src/FDM/JSBSim/JSBSim.hxx b/src/FDM/JSBSim/JSBSim.hxx
index 084d53d4c..d6f5f1b8c 100644
--- a/src/FDM/JSBSim/JSBSim.hxx
+++ b/src/FDM/JSBSim/JSBSim.hxx
@@ -254,6 +254,10 @@ private:
     SGPropertyNode_ptr speedbrake_pos_pct;
     SGPropertyNode_ptr spoilers_pos_pct;
 
+    SGPropertyNode_ptr ab_brake_engaged;
+    SGPropertyNode_ptr ab_brake_left_pct;
+    SGPropertyNode_ptr ab_brake_right_pct;
+    
     SGPropertyNode_ptr gear_pos_pct;
     SGPropertyNode_ptr wing_fold_pos_pct;
     SGPropertyNode_ptr tailhook_pos_pct;