]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/UIUCModel/uiuc_aircraft.h
Port over remaining Point3D usage to the more type and unit safe SG* classes.
[flightgear.git] / src / FDM / UIUCModel / uiuc_aircraft.h
index c517c47e96e6b5216e3ad1be3414aba6f7204754..1ade41da2b0fcf7938b63b19c8bcc468591eb02b 100644 (file)
               09/18/2002   (MSS) Added downwash options
                03/03/2003   (RD) Changed flap_cmd_deg to flap_cmd (rad)
                03/16/2003   (RD) Added trigger variables
+               08/20/2003   (RD) Removed old_flap_routine.  Changed spoiler
+                            variables to match flap convention.  Changed
+                            flap_pos_pct to flap_pos_norm
+               10/31/2003   (RD) Added variables and keywords for pah and alh
+                            autopilots
+               11/04/2003   (RD) Added variables and keywords for rah and hh
+                            autopilots
 
 ----------------------------------------------------------------------
 
 
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- USA or view http://www.gnu.org/copyleft/gpl.html.
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 **********************************************************************/
 
 #include <FDM/LaRCsim/ls_types.h>
 
 #include <map>
-#include STL_IOSTREAM
+#include <fstream>
 #include <cmath>
 
 #include "uiuc_parsefile.h"
 #include "uiuc_flapdata.h"
 
-SG_USING_STD(map);
-SG_USING_STD(iostream);
-SG_USING_STD(ofstream);
-
-
 typedef stack :: iterator LIST;
 
 /* Add more keywords here if required*/
@@ -196,7 +197,6 @@ enum {Dx_pilot_flag = 2000,
       ignore_unknown_keywords_flag,
       trim_case_2_flag,
       use_uiuc_network_flag,
-      old_flap_routine_flag,
       icing_demo_flag,
       outside_control_flag};
 
@@ -225,7 +225,9 @@ enum {de_flag = 4000, da_flag, dr_flag,
       rudder_stick_gain_flag,
       use_elevator_sas_type1_flag, 
       use_aileron_sas_type1_flag, 
-      use_rudder_sas_type1_flag};
+      use_rudder_sas_type1_flag,
+      ap_pah_flag, ap_alh_flag, ap_Theta_ref_flag, ap_alt_ref_flag,
+      ap_rah_flag, ap_Phi_ref_flag, ap_hh_flag, ap_Psi_ref_flag};
 
 // controlsMixer == Controls mixer
 enum {nomix_flag = 5000};
@@ -349,8 +351,11 @@ enum {iceTime_flag = 15000, transientTime_flag, eta_ice_final_flag,
       demo_eps_airspeed_max_flag, demo_eps_airspeed_min_flag,
       demo_boot_cycle_tail_flag, demo_boot_cycle_wing_left_flag,
       demo_boot_cycle_wing_right_flag, demo_eps_pitch_input_flag,
-      tactilefadef_flag, tactile_pitch_flag, demo_ap_Theta_ref_deg_flag,
-      demo_ap_pah_on_flag, demo_tactile_flag, demo_ice_tail_flag, 
+      tactilefadef_flag, tactile_pitch_flag, demo_ap_pah_on_flag,
+      demo_ap_alh_on_flag, demo_ap_rah_on_flag, demo_ap_hh_on_flag,
+      demo_ap_Theta_ref_flag, demo_ap_alt_ref_flag,
+      demo_ap_Phi_ref_flag, demo_ap_Psi_ref_flag, 
+      demo_tactile_flag, demo_ice_tail_flag, 
       demo_ice_left_flag, demo_ice_right_flag};
 
 // record ===== Record desired quantites to file
@@ -370,7 +375,8 @@ enum {Simtime_record = 16000, dt_record,
       Dx_cg_record, Dy_cg_record, Dz_cg_record,
       Lat_geocentric_record, Lon_geocentric_record, Radius_to_vehicle_record, 
       Latitude_record, Longitude_record, Altitude_record, 
-      Phi_record, Theta_record, Psi_record, 
+      Phi_record, Theta_record, Psi_record,
+      Phi_deg_record, Theta_deg_record, Psi_deg_record, 
 
       // added to uiuc_map_record1.cpp
       V_dot_north_record, V_dot_east_record, V_dot_down_record, 
@@ -425,10 +431,11 @@ enum {Simtime_record = 16000, dt_record,
       elevator_record, elevator_deg_record, 
       Lat_control_record, aileron_record, aileron_deg_record, 
       Rudder_pedal_record, rudder_record, rudder_deg_record, 
-      Flap_handle_record, flap_record, flap_cmd_record, flap_cmd_deg_record,
-      flap_pos_record, flap_pos_deg_record,
+      Flap_handle_record, flap_cmd_record, flap_cmd_deg_record,
+      flap_pos_record, flap_pos_deg_record, flap_pos_norm_record,
       Spoiler_handle_record, spoiler_cmd_deg_record, 
       spoiler_pos_deg_record, spoiler_pos_norm_record, spoiler_pos_record,
+      spoiler_cmd_record,
 
       // added to uiuc_map_record4.cpp
       CD_record, CDfaI_record, CDfCLI_record, CDfadeI_record, CDfdfI_record, 
@@ -492,6 +499,7 @@ enum {Simtime_record = 16000, dt_record,
       M_l_engine_record, M_m_engine_record, M_n_engine_record, 
       M_l_gear_record, M_m_gear_record, M_n_gear_record, 
       M_l_rp_record, M_m_rp_record, M_n_rp_record,
+      M_l_cg_record, M_m_cg_record, M_n_cg_record,
 
       // added to uiuc_map_record5.cpp
       flapper_freq_record, flapper_phi_record,
@@ -524,6 +532,10 @@ enum {Simtime_record = 16000, dt_record,
       debug4_record, 
       debug5_record, 
       debug6_record,
+      debug7_record, 
+      debug8_record, 
+      debug9_record,
+      debug10_record,
 
       // added to uiuc_map_record6.cpp
       CL_clean_record, CL_iced_record,
@@ -563,13 +575,23 @@ enum {Simtime_record = 16000, dt_record,
       tactilefadefI_record,
 
       // added to uiuc_map_record6.cpp
-      ap_Theta_ref_deg_record, ap_pah_on_record, trigger_on_record,
-      trigger_num_record, trigger_toggle_record, trigger_counter_record};
+      ap_pah_on_record, ap_alh_on_record, ap_Theta_ref_deg_record,
+      ap_Theta_ref_rad_record, ap_alt_ref_ft_record, trigger_on_record,
+      ap_rah_on_record, ap_Phi_ref_rad_record, ap_Phi_ref_deg_record,
+      ap_hh_on_record, ap_Psi_ref_rad_record, ap_Psi_ref_deg_record,
+      trigger_num_record, trigger_toggle_record, trigger_counter_record,
+
+      // added to uiuc_map_record6.cpp
+      T_local_to_body_11_record, T_local_to_body_12_record,
+      T_local_to_body_13_record, T_local_to_body_21_record,
+      T_local_to_body_22_record, T_local_to_body_23_record,
+      T_local_to_body_31_record, T_local_to_body_32_record,
+      T_local_to_body_33_record};
 
 
 // misc ======= Miscellaneous inputs
 // added to uiuc_map_misc.cpp
-enum {simpleHingeMomentCoef_flag = 17000, dfTimefdf_flag, flapper_flag,
+enum {simpleHingeMomentCoef_flag = 17000, flapper_flag,
       flapper_phi_init_flag};
 
 //321654
@@ -608,7 +630,7 @@ struct AIRCRAFT
 #define  recordParts        aircraft_->recordParts
   
   /*= Keywords (token1) ===========================================*/
-  map <string,int>      Keyword_map;
+  std::map <string,int>      Keyword_map;
 #define      Keyword_map         aircraft_->Keyword_map       
 
   double CD, CX, CL, CZ, Cm, CY, Cl, Cn;
@@ -643,7 +665,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* init ========== Initial values for equations of motion =======*/
 
-  map <string,int> init_map;
+  std::map <string,int> init_map;
 #define      init_map          aircraft_->init_map          
 
   int recordRate;
@@ -742,8 +764,6 @@ struct AIRCRAFT
 #define use_uiuc_network       aircraft_->use_uiuc_network
 #define server_IP              aircraft_->server_IP
 #define port_num               aircraft_->port_num
-  bool old_flap_routine;
-#define old_flap_routine       aircraft_->old_flap_routine
   bool icing_demo;
 #define icing_demo             aircraft_->icing_demo
   bool outside_control;
@@ -752,7 +772,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* geometry ====== Aircraft-specific geometric quantities =======*/
   
-  map <string,int> geometry_map;
+  std::map <string,int> geometry_map;
 #define      geometry_map        aircraft_->geometry_map       
   
   double bw, cbar, Sw, ih, bh, chord_h, Sh;
@@ -768,7 +788,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* controlSurface  Control surface deflections and properties ===*/
   
-  map <string,int> controlSurface_map;
+  std::map <string,int> controlSurface_map;
 #define      controlSurface_map  aircraft_->controlSurface_map
   
   double demax, demin;
@@ -785,8 +805,8 @@ struct AIRCRAFT
 #define aileron           aircraft_->aileron
 #define elevator          aircraft_->elevator
 #define rudder            aircraft_->rudder
-  double flap;
-#define flap              aircraft_->flap
+  //  double flap;
+  //#define flap              aircraft_->flap
 
   bool set_Long_trim, zero_Long_trim;
   double Long_trim_constant;
@@ -955,7 +975,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* controlsMixer = Control mixer ================================*/
   
-  map <string,int> controlsMixer_map;
+  std::map <string,int> controlsMixer_map;
 #define      controlsMixer_map  aircraft_->controlsMixer_map
   
   double nomix;
@@ -965,7 +985,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* mass =========== Aircraft-specific mass properties ===========*/
   
-  map <string,int> mass_map;
+  std::map <string,int> mass_map;
 #define      mass_map            aircraft_->mass_map
 
   double Weight;
@@ -991,7 +1011,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* engine ======== Propulsion data ==============================*/
   
-  map <string,int> engine_map;
+  std::map <string,int> engine_map;
 #define      engine_map            aircraft_->engine_map          
   
   double simpleSingleMaxThrust;
@@ -1133,7 +1153,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* CD ============ Aerodynamic x-force quantities (longitudinal) */
   
-  map <string,int> CD_map;
+  std::map <string,int> CD_map;
 #define      CD_map              aircraft_->CD_map            
   
   double CDo, CDK, CLK, CD_a, CD_adot, CD_q, CD_ih, CD_de, CD_dr, CD_da, CD_beta;
@@ -1333,7 +1353,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* CL ============ Aerodynamic z-force quantities (longitudinal) */
   
-  map <string,int> CL_map;
+  std::map <string,int> CL_map;
 #define      CL_map              aircraft_->CL_map            
   
   double CLo, CL_a, CL_adot, CL_q, CL_ih, CL_de;
@@ -1520,7 +1540,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* Cm ============ Aerodynamic m-moment quantities (longitudinal) */
   
-  map <string,int> Cm_map;
+  std::map <string,int> Cm_map;
 #define      Cm_map              aircraft_->Cm_map            
   
   double Cmo, Cm_a, Cm_a2, Cm_adot, Cm_q;
@@ -1684,7 +1704,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* CY ============ Aerodynamic y-force quantities (lateral) =====*/
   
-  map <string,int> CY_map;
+  std::map <string,int> CY_map;
 #define      CY_map              aircraft_->CY_map            
   
   double CYo, CY_beta, CY_p, CY_r, CY_da, CY_dr, CY_dra, CY_bdot;
@@ -1859,7 +1879,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* Cl ============ Aerodynamic l-moment quantities (lateral) ====*/
   
-  map <string,int> Cl_map;
+  std::map <string,int> Cl_map;
 #define      Cl_map              aircraft_->Cl_map            
   
   double Clo, Cl_beta, Cl_p, Cl_r, Cl_da, Cl_dr, Cl_daa;
@@ -2032,7 +2052,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* Cn ============ Aerodynamic n-moment quantities (lateral) ====*/
   
-  map <string,int> Cn_map;
+  std::map <string,int> Cn_map;
 #define      Cn_map              aircraft_->Cn_map
 
   double Cno, Cn_beta, Cn_p, Cn_r, Cn_da, Cn_dr, Cn_q, Cn_b3;
@@ -2207,7 +2227,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* gear ========== Landing gear model quantities ================*/
   
-  map <string,int> gear_map;
+  std::map <string,int> gear_map;
   
 #define      gear_map              aircraft_->gear_map
 #define MAX_GEAR 16
@@ -2233,7 +2253,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* ice =========== Ice model quantities ======================== */
   
-  map <string,int> ice_map;
+  std::map <string,int> ice_map;
 #define      ice_map              aircraft_->ice_map            
 
   bool ice_model, ice_on, beta_model;
@@ -2631,18 +2651,90 @@ struct AIRCRAFT
 #define demo_ap_pah_on_daArray   aircraft_->demo_ap_pah_on_daArray
 #define demo_ap_pah_on_ntime     aircraft_->demo_ap_pah_on_ntime
 #define demo_ap_pah_on_startTime aircraft_->demo_ap_pah_on_startTime
-  bool demo_ap_Theta_ref_deg;
-  string demo_ap_Theta_ref_deg_file;
-  double demo_ap_Theta_ref_deg_timeArray[10];
-  double demo_ap_Theta_ref_deg_daArray[10];
-  int demo_ap_Theta_ref_deg_ntime;
-  double demo_ap_Theta_ref_deg_startTime;
-#define demo_ap_Theta_ref_deg           aircraft_->demo_ap_Theta_ref_deg
-#define demo_ap_Theta_ref_deg_file      aircraft_->demo_ap_Theta_ref_deg_file
-#define demo_ap_Theta_ref_deg_timeArray aircraft_->demo_ap_Theta_ref_deg_timeArray
-#define demo_ap_Theta_ref_deg_daArray   aircraft_->demo_ap_Theta_ref_deg_daArray
-#define demo_ap_Theta_ref_deg_ntime     aircraft_->demo_ap_Theta_ref_deg_ntime
-#define demo_ap_Theta_ref_deg_startTime aircraft_->demo_ap_Theta_ref_deg_startTime
+  bool demo_ap_alh_on;
+  string demo_ap_alh_on_file;
+  double demo_ap_alh_on_timeArray[10];
+  int demo_ap_alh_on_daArray[10];
+  int demo_ap_alh_on_ntime;
+  double demo_ap_alh_on_startTime;
+#define demo_ap_alh_on           aircraft_->demo_ap_alh_on
+#define demo_ap_alh_on_file      aircraft_->demo_ap_alh_on_file
+#define demo_ap_alh_on_timeArray aircraft_->demo_ap_alh_on_timeArray
+#define demo_ap_alh_on_daArray   aircraft_->demo_ap_alh_on_daArray
+#define demo_ap_alh_on_ntime     aircraft_->demo_ap_alh_on_ntime
+#define demo_ap_alh_on_startTime aircraft_->demo_ap_alh_on_startTime
+  bool demo_ap_rah_on;
+  string demo_ap_rah_on_file;
+  double demo_ap_rah_on_timeArray[10];
+  int demo_ap_rah_on_daArray[10];
+  int demo_ap_rah_on_ntime;
+  double demo_ap_rah_on_startTime;
+#define demo_ap_rah_on           aircraft_->demo_ap_rah_on
+#define demo_ap_rah_on_file      aircraft_->demo_ap_rah_on_file
+#define demo_ap_rah_on_timeArray aircraft_->demo_ap_rah_on_timeArray
+#define demo_ap_rah_on_daArray   aircraft_->demo_ap_rah_on_daArray
+#define demo_ap_rah_on_ntime     aircraft_->demo_ap_rah_on_ntime
+#define demo_ap_rah_on_startTime aircraft_->demo_ap_rah_on_startTime
+  bool demo_ap_hh_on;
+  string demo_ap_hh_on_file;
+  double demo_ap_hh_on_timeArray[10];
+  int demo_ap_hh_on_daArray[10];
+  int demo_ap_hh_on_ntime;
+  double demo_ap_hh_on_startTime;
+#define demo_ap_hh_on           aircraft_->demo_ap_hh_on
+#define demo_ap_hh_on_file      aircraft_->demo_ap_hh_on_file
+#define demo_ap_hh_on_timeArray aircraft_->demo_ap_hh_on_timeArray
+#define demo_ap_hh_on_daArray   aircraft_->demo_ap_hh_on_daArray
+#define demo_ap_hh_on_ntime     aircraft_->demo_ap_hh_on_ntime
+#define demo_ap_hh_on_startTime aircraft_->demo_ap_hh_on_startTime
+  bool demo_ap_Theta_ref;
+  string demo_ap_Theta_ref_file;
+  double demo_ap_Theta_ref_timeArray[10];
+  double demo_ap_Theta_ref_daArray[10];
+  int demo_ap_Theta_ref_ntime;
+  double demo_ap_Theta_ref_startTime;
+#define demo_ap_Theta_ref           aircraft_->demo_ap_Theta_ref
+#define demo_ap_Theta_ref_file      aircraft_->demo_ap_Theta_ref_file
+#define demo_ap_Theta_ref_timeArray aircraft_->demo_ap_Theta_ref_timeArray
+#define demo_ap_Theta_ref_daArray   aircraft_->demo_ap_Theta_ref_daArray
+#define demo_ap_Theta_ref_ntime     aircraft_->demo_ap_Theta_ref_ntime
+#define demo_ap_Theta_ref_startTime aircraft_->demo_ap_Theta_ref_startTime
+  bool demo_ap_alt_ref;
+  string demo_ap_alt_ref_file;
+  double demo_ap_alt_ref_timeArray[10];
+  double demo_ap_alt_ref_daArray[10];
+  int demo_ap_alt_ref_ntime;
+  double demo_ap_alt_ref_startTime;
+#define demo_ap_alt_ref           aircraft_->demo_ap_alt_ref
+#define demo_ap_alt_ref_file      aircraft_->demo_ap_alt_ref_file
+#define demo_ap_alt_ref_timeArray aircraft_->demo_ap_alt_ref_timeArray
+#define demo_ap_alt_ref_daArray   aircraft_->demo_ap_alt_ref_daArray
+#define demo_ap_alt_ref_ntime     aircraft_->demo_ap_alt_ref_ntime
+#define demo_ap_alt_ref_startTime aircraft_->demo_ap_alt_ref_startTime
+  bool demo_ap_Phi_ref;
+  string demo_ap_Phi_ref_file;
+  double demo_ap_Phi_ref_timeArray[10];
+  double demo_ap_Phi_ref_daArray[10];
+  int demo_ap_Phi_ref_ntime;
+  double demo_ap_Phi_ref_startTime;
+#define demo_ap_Phi_ref           aircraft_->demo_ap_Phi_ref
+#define demo_ap_Phi_ref_file      aircraft_->demo_ap_Phi_ref_file
+#define demo_ap_Phi_ref_timeArray aircraft_->demo_ap_Phi_ref_timeArray
+#define demo_ap_Phi_ref_daArray   aircraft_->demo_ap_Phi_ref_daArray
+#define demo_ap_Phi_ref_ntime     aircraft_->demo_ap_Phi_ref_ntime
+#define demo_ap_Phi_ref_startTime aircraft_->demo_ap_Phi_ref_startTime
+  bool demo_ap_Psi_ref;
+  string demo_ap_Psi_ref_file;
+  double demo_ap_Psi_ref_timeArray[10];
+  double demo_ap_Psi_ref_daArray[10];
+  int demo_ap_Psi_ref_ntime;
+  double demo_ap_Psi_ref_startTime;
+#define demo_ap_Psi_ref           aircraft_->demo_ap_Psi_ref
+#define demo_ap_Psi_ref_file      aircraft_->demo_ap_Psi_ref_file
+#define demo_ap_Psi_ref_timeArray aircraft_->demo_ap_Psi_ref_timeArray
+#define demo_ap_Psi_ref_daArray   aircraft_->demo_ap_Psi_ref_daArray
+#define demo_ap_Psi_ref_ntime     aircraft_->demo_ap_Psi_ref_ntime
+#define demo_ap_Psi_ref_startTime aircraft_->demo_ap_Psi_ref_startTime
   bool demo_tactile;
   string demo_tactile_file;
   double demo_tactile_timeArray[1500];
@@ -2696,7 +2788,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* fog =========== Fog field quantities ======================== */
 
-  map <string,int> fog_map;
+  std::map <string,int> fog_map;
 #define fog_map        aircraft_->fog_map
 
   bool fog_field;
@@ -2724,7 +2816,7 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* record ======== Record desired quantites to file =============*/
   
-  map <string,int> record_map;
+  std::map <string,int> record_map;
 #define      record_map              aircraft_->record_map
 
   /***** Angles ******/
@@ -2802,19 +2894,19 @@ struct AIRCRAFT
   /* Variables (token2) ===========================================*/
   /* misc ========== Miscellaneous input commands =================*/
 
-  map <string,int> misc_map;
+  std::map <string,int> misc_map;
 #define      misc_map        aircraft_->misc_map       
 
   double simpleHingeMomentCoef;
 #define simpleHingeMomentCoef    aircraft_->simpleHingeMomentCoef
-  string dfTimefdf;
-  double dfTimefdf_dfArray[100];
-  double dfTimefdf_TimeArray[100];
-  int dfTimefdf_ndf;
-#define dfTimefdf              aircraft_->dfTimefdf
-#define dfTimefdf_dfArray      aircraft_->dfTimefdf_dfArray
-#define dfTimefdf_TimeArray    aircraft_->dfTimefdf_TimeArray
-#define dfTimefdf_ndf          aircraft_->dfTimefdf_ndf
+  //string dfTimefdf;
+  //double dfTimefdf_dfArray[100];
+  //double dfTimefdf_TimeArray[100];
+  //int dfTimefdf_ndf;
+  //#define dfTimefdf              aircraft_->dfTimefdf
+  //#define dfTimefdf_dfArray      aircraft_->dfTimefdf_dfArray
+  //#define dfTimefdf_TimeArray    aircraft_->dfTimefdf_TimeArray
+  //#define dfTimefdf_ndf          aircraft_->dfTimefdf_ndf
 
   FlapData *flapper_data;
 #define flapper_data           aircraft_->flapper_data
@@ -2855,21 +2947,18 @@ struct AIRCRAFT
 #define dfArray   aircraft_->dfArray
 #define TimeArray aircraft_->TimeArray
 
-  double flap_percent, flap_increment_per_timestep, flap_cmd, flap_pos, flap_pos_pct;
+  double flap_percent, flap_increment_per_timestep, flap_cmd, flap_pos, flap_pos_norm;
 #define flap_percent                  aircraft_->flap_percent
 #define flap_increment_per_timestep   aircraft_->flap_increment_per_timestep
 #define flap_cmd                      aircraft_->flap_cmd
-  //#define flap_cmd_deg                  aircraft_->flap_cmd_deg
 #define flap_pos                      aircraft_->flap_pos
-  //#define flap_pos_deg                  aircraft_->flap_pos_deg
-#define flap_pos_pct                  aircraft_->flap_pos_pct
+#define flap_pos_norm                 aircraft_->flap_pos_norm
 
-  double Spoiler_handle, spoiler_increment_per_timestep, spoiler_cmd_deg;
-  double spoiler_pos_norm, spoiler_pos_deg, spoiler_pos;
+  double Spoiler_handle, spoiler_increment_per_timestep, spoiler_cmd;
+  double spoiler_pos_norm, spoiler_pos;
 #define Spoiler_handle                 aircraft_->Spoiler_handle
 #define spoiler_increment_per_timestep aircraft_->spoiler_increment_per_timestep
-#define spoiler_cmd_deg                aircraft_->spoiler_cmd_deg
-#define spoiler_pos_deg                aircraft_->spoiler_pos_deg
+#define spoiler_cmd                    aircraft_->spoiler_cmd
 #define spoiler_pos_norm               aircraft_->spoiler_pos_norm
 #define spoiler_pos                    aircraft_->spoiler_pos
 
@@ -2942,7 +3031,7 @@ struct AIRCRAFT
 #define Cn_iced          aircraft_->Cn_iced
 #define Ch_iced          aircraft_->Ch_iced
 
-  ofstream fout;
+  std::ofstream fout;
   
 #define fout aircraft_->fout
   
@@ -2951,15 +3040,31 @@ struct AIRCRAFT
   
   int ap_pah_on;
 #define ap_pah_on              aircraft_->ap_pah_on
-  double ap_Theta_ref_deg, ap_Theta_ref_rad;
-#define ap_Theta_ref_deg       aircraft_->ap_Theta_ref_deg
+  double ap_pah_start_time;
+#define ap_pah_start_time      aircraft_->ap_pah_start_time
+  double ap_Theta_ref_rad;
 #define ap_Theta_ref_rad       aircraft_->ap_Theta_ref_rad
 
   int ap_alh_on;
 #define ap_alh_on              aircraft_->ap_alh_on
-  double ap_alt_ref_ft, ap_alt_ref_m;
+  double ap_alh_start_time;
+#define ap_alh_start_time      aircraft_->ap_alh_start_time
+  double ap_alt_ref_ft;
 #define ap_alt_ref_ft          aircraft_->ap_alt_ref_ft
-#define ap_alt_ref_m           aircraft_->ap_alt_ref_m
+
+  int ap_rah_on;
+#define ap_rah_on              aircraft_->ap_rah_on
+  double ap_rah_start_time;
+#define ap_rah_start_time      aircraft_->ap_rah_start_time
+  double ap_Phi_ref_rad;
+#define ap_Phi_ref_rad         aircraft_->ap_Phi_ref_rad
+
+  int ap_hh_on;
+#define ap_hh_on              aircraft_->ap_hh_on
+  double ap_hh_start_time;
+#define ap_hh_start_time      aircraft_->ap_hh_start_time
+  double ap_Psi_ref_rad;
+#define ap_Psi_ref_rad         aircraft_->ap_Psi_ref_rad
 
   int pitch_trim_up, pitch_trim_down;
 #define pitch_trim_up          aircraft_->pitch_trim_up
@@ -2981,6 +3086,13 @@ struct AIRCRAFT
 #define trigger_num            aircraft_->trigger_num
 #define trigger_toggle         aircraft_->trigger_toggle
 #define trigger_counter        aircraft_->trigger_counter
+
+  // temp debug values
+  double debug7, debug8, debug9, debug10;
+#define debug7                 aircraft_->debug7
+#define debug8                 aircraft_->debug8
+#define debug9                 aircraft_->debug9
+#define debug10                aircraft_->debug10
 };
 
 extern AIRCRAFT *aircraft_;    // usually defined in the first program that includes uiuc_aircraft.h