1 /**********************************************************************
3 FILENAME: uiuc_recorder.cpp
5 ----------------------------------------------------------------------
7 DESCRIPTION: outputs variables specified in input file to recorder
10 ----------------------------------------------------------------------
14 ----------------------------------------------------------------------
16 REFERENCES: Liberty, Jesse. "Sam's Teach Yourself C++ in 21 Days,"
19 ----------------------------------------------------------------------
21 HISTORY: 01/31/2000 initial release
22 03/02/2000 (JS) added record options for 1D and 2D
23 interpolated variables
24 04/01/2000 (JS) added throttle, longitudinal, lateral,
25 and rudder inputs to record map
26 04/24/2000 (JS) added rest of variables in
28 07/06/2001 (RD) changed Flap handle output
29 07/20/2001 (RD) fixed Lat_control and Rudder_pedal
30 10/25/2001 (RD) Added new variables needed for the non-
31 linear Twin Otter model at zero flaps
33 11/12/2001 (RD) Added new variables needed for the non-
34 linear Twin Otter model at zero flaps
35 (CxfxxfI). Removed zero flap variables.
36 Added flap_pos and flap_cmd_deg.
37 02/13/2002 (RD) Added variables so linear aero model
38 values can be recorded
39 03/03/2003 (RD) Added flap_cmd_record
40 03/16/2003 (RD) Added trigger record variables
42 ----------------------------------------------------------------------
44 AUTHOR(S): Jeff Scott http://www.jeffscott.net/
45 Robert Deters <rdeters@uiuc.edu>
46 Michael Selig <m-selig@uiuc.edu>
47 ----------------------------------------------------------------------
51 ----------------------------------------------------------------------
55 ----------------------------------------------------------------------
57 OUTPUTS: -variables recorded in uiuc_recorder.dat
59 ----------------------------------------------------------------------
61 CALLED BY: uiuc_wrapper.cpp
63 ----------------------------------------------------------------------
67 ----------------------------------------------------------------------
69 COPYRIGHT: (C) 2000 by Michael Selig
71 This program is free software; you can redistribute it and/or
72 modify it under the terms of the GNU General Public License
73 as published by the Free Software Foundation.
75 This program is distributed in the hope that it will be useful,
76 but WITHOUT ANY WARRANTY; without even the implied warranty of
77 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
78 GNU General Public License for more details.
80 You should have received a copy of the GNU General Public License
81 along with this program; if not, write to the Free Software
82 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
83 USA or view http://www.gnu.org/copyleft/gpl.html.
85 **********************************************************************/
87 #include <simgear/compiler.h>
88 #include <simgear/misc/sg_path.hxx>
89 #include <Aircraft/aircraft.hxx>
90 #include <Main/fg_props.hxx>
92 #include "uiuc_recorder.h"
94 SG_USING_STD(endl); // -dw
96 void uiuc_recorder( double dt )
101 static int recordStep = 0;
102 string record_variables = "# ";
104 int modulus = recordStep % recordRate;
106 if ((recordStep % recordRate) == 0)
108 command_list = recordParts->getCommands();
112 for (command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
113 record_variables += recordParts->getToken(*command_line,2) + " ";
115 fout << record_variables << endl;
116 for (command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
118 linetoken = recordParts->getToken(*command_line, 2);
120 switch(record_map[linetoken])
122 /************************* Time ************************/
125 fout << Simtime << " ";
134 /************************* Mass ************************/
137 fout << Weight << " ";
166 /*********************** Geometry **********************/
167 case Dx_pilot_record:
169 fout << Dx_pilot << " ";
172 case Dy_pilot_record:
174 fout << Dy_pilot << " ";
177 case Dz_pilot_record:
179 fout << Dz_pilot << " ";
184 fout << Dx_cg << " ";
189 fout << Dy_cg << " ";
194 fout << Dz_cg << " ";
198 /********************** Positions **********************/
199 case Lat_geocentric_record:
201 fout << Lat_geocentric << " ";
204 case Lon_geocentric_record:
206 fout << Lon_geocentric << " ";
209 case Radius_to_vehicle_record:
211 fout << Radius_to_vehicle << " ";
214 case Latitude_record:
216 fout << Latitude << " ";
219 case Longitude_record:
221 fout << Longitude << " ";
224 case Altitude_record:
226 fout << Altitude << " ";
236 fout << Theta << " ";
245 /******************** Accelerations ********************/
246 case V_dot_north_record:
248 fout << V_dot_north << " ";
251 case V_dot_east_record:
253 fout << V_dot_east << " ";
256 case V_dot_down_record:
258 fout << V_dot_down << " ";
261 case U_dot_body_record:
263 fout << U_dot_body << " ";
266 case V_dot_body_record:
268 fout << V_dot_body << " ";
271 case W_dot_body_record:
273 fout << W_dot_body << " ";
276 case A_X_pilot_record:
278 fout << A_X_pilot << " ";
281 case A_Y_pilot_record:
283 fout << A_Y_pilot << " ";
286 case A_Z_pilot_record:
288 fout << A_Z_pilot << " ";
293 fout << A_X_cg << " ";
298 fout << A_Y_cg << " ";
303 fout << A_Z_cg << " ";
306 case N_X_pilot_record:
308 fout << N_X_pilot << " ";
311 case N_Y_pilot_record:
313 fout << N_Y_pilot << " ";
316 case N_Z_pilot_record:
318 fout << N_Z_pilot << " ";
323 fout << N_X_cg << " ";
328 fout << N_Y_cg << " ";
333 fout << N_Z_cg << " ";
336 case P_dot_body_record:
338 fout << P_dot_body << " ";
341 case Q_dot_body_record:
343 fout << Q_dot_body << " ";
346 case R_dot_body_record:
348 fout << R_dot_body << " ";
352 /********************** Velocities *********************/
355 fout << V_north << " ";
360 fout << V_east << " ";
365 fout << V_down << " ";
368 case V_north_rel_ground_record:
370 fout << V_north_rel_ground << " ";
373 case V_east_rel_ground_record:
375 fout << V_east_rel_ground << " ";
378 case V_down_rel_ground_record:
380 fout << V_down_rel_ground << " ";
383 case V_north_airmass_record:
385 fout << V_north_airmass << " ";
388 case V_east_airmass_record:
390 fout << V_east_airmass << " ";
393 case V_down_airmass_record:
395 fout << V_down_airmass << " ";
398 case V_north_rel_airmass_record:
400 fout << V_north_rel_airmass << " ";
403 case V_east_rel_airmass_record:
405 fout << V_east_rel_airmass << " ";
408 case V_down_rel_airmass_record:
410 fout << V_down_rel_airmass << " ";
415 fout << U_gust << " ";
420 fout << V_gust << " ";
425 fout << W_gust << " ";
430 fout << U_body << " ";
435 fout << V_body << " ";
440 fout << W_body << " ";
443 case V_rel_wind_record:
445 fout << V_rel_wind << " ";
448 case V_true_kts_record:
450 fout << V_true_kts << " ";
453 case V_rel_ground_record:
455 fout << V_rel_ground << " ";
458 case V_inertial_record:
460 fout << V_inertial << " ";
463 case V_ground_speed_record:
465 fout << V_ground_speed << " ";
470 fout << V_equiv << " ";
473 case V_equiv_kts_record:
475 fout << V_equiv_kts << " ";
478 case V_calibrated_record:
480 fout << V_calibrated << " ";
483 case V_calibrated_kts_record:
485 fout << V_calibrated_kts << " ";
490 fout << P_local << " ";
495 fout << Q_local << " ";
500 fout << R_local << " ";
505 fout << P_body << " ";
510 fout << Q_body << " ";
515 fout << R_body << " ";
520 fout << P_total << " ";
525 fout << Q_total << " ";
530 fout << R_total << " ";
535 fout << Phi_dot << " ";
538 case Theta_dot_record:
540 fout << Theta_dot << " ";
545 fout << Psi_dot << " ";
548 case Latitude_dot_record:
550 fout << Latitude_dot << " ";
553 case Longitude_dot_record:
555 fout << Longitude_dot << " ";
558 case Radius_dot_record:
560 fout << Radius_dot << " ";
564 /************************ Angles ***********************/
567 fout << Std_Alpha << " ";
570 case Alpha_deg_record:
572 fout << Std_Alpha * RAD_TO_DEG << " ";
575 case Alpha_dot_record:
577 fout << Std_Alpha_dot << " ";
580 case Alpha_dot_deg_record:
582 fout << Std_Alpha_dot * RAD_TO_DEG << " ";
587 fout << Std_Beta << " ";
590 case Beta_deg_record:
592 fout << Std_Beta * RAD_TO_DEG << " ";
595 case Beta_dot_record:
597 fout << Std_Beta_dot << " ";
600 case Beta_dot_deg_record:
602 fout << Std_Beta_dot * RAD_TO_DEG << " ";
605 case Gamma_vert_record:
607 fout << Gamma_vert_rad << " ";
610 case Gamma_vert_deg_record:
612 fout << Gamma_vert_rad * RAD_TO_DEG << " ";
615 case Gamma_horiz_record:
617 fout << Gamma_horiz_rad << " ";
620 case Gamma_horiz_deg_record:
622 fout << Gamma_horiz_rad * RAD_TO_DEG << " ";
626 /**************** Atmospheric Properties ***************/
629 fout << Density << " ";
634 fout << V_sound << " ";
637 case Mach_number_record:
639 fout << Mach_number << " ";
642 case Static_pressure_record:
644 fout << Static_pressure << " ";
647 case Total_pressure_record:
649 fout << Total_pressure << " ";
652 case Impact_pressure_record:
654 fout << Impact_pressure << " ";
657 case Dynamic_pressure_record:
659 fout << Dynamic_pressure << " ";
662 case Static_temperature_record:
664 fout << Static_temperature << " ";
667 case Total_temperature_record:
669 fout << Total_temperature << " ";
673 /******************** Earth Properties *****************/
676 fout << Gravity << " ";
679 case Sea_level_radius_record:
681 fout << Sea_level_radius << " ";
684 case Earth_position_angle_record:
686 fout << Earth_position_angle << " ";
689 case Runway_altitude_record:
691 fout << Runway_altitude << " ";
694 case Runway_latitude_record:
696 fout << Runway_latitude << " ";
699 case Runway_longitude_record:
701 fout << Runway_longitude << " ";
704 case Runway_heading_record:
706 fout << Runway_heading << " ";
709 case Radius_to_rwy_record:
711 fout << Radius_to_rwy << " ";
714 case D_pilot_north_of_rwy_record:
716 fout << D_pilot_north_of_rwy << " ";
719 case D_pilot_east_of_rwy_record:
721 fout << D_pilot_east_of_rwy << " ";
724 case D_pilot_above_rwy_record:
726 fout << D_pilot_above_rwy << " ";
729 case X_pilot_rwy_record:
731 fout << X_pilot_rwy << " ";
734 case Y_pilot_rwy_record:
736 fout << Y_pilot_rwy << " ";
739 case H_pilot_rwy_record:
741 fout << H_pilot_rwy << " ";
744 case D_cg_north_of_rwy_record:
746 fout << D_cg_north_of_rwy << " ";
749 case D_cg_east_of_rwy_record:
751 fout << D_cg_east_of_rwy << " ";
754 case D_cg_above_rwy_record:
756 fout << D_cg_above_rwy << " ";
759 case X_cg_rwy_record:
761 fout << X_cg_rwy << " ";
764 case Y_cg_rwy_record:
766 fout << Y_cg_rwy << " ";
769 case H_cg_rwy_record:
771 fout << H_cg_rwy << " ";
775 /********************* Engine Inputs *******************/
776 case Throttle_3_record:
778 fout << Throttle[3] << " ";
781 case Throttle_pct_record:
783 fout << Throttle_pct << " ";
787 /************************ Controls ***********************/
788 case Long_control_record:
790 fout << Long_control << " ";
793 case Long_trim_record:
795 fout << Long_trim << " ";
798 case Long_trim_deg_record:
800 fout << Long_trim * RAD_TO_DEG << " ";
803 case elevator_record:
805 fout << elevator << " ";
808 case elevator_deg_record:
810 fout << elevator * RAD_TO_DEG << " ";
813 case Lat_control_record:
815 fout << Lat_control << " ";
820 fout << aileron << " ";
823 case aileron_deg_record:
825 fout << aileron * RAD_TO_DEG << " ";
828 case Rudder_pedal_record:
830 fout << Rudder_pedal << " ";
835 fout << rudder << " ";
838 case rudder_deg_record:
840 fout << rudder * RAD_TO_DEG << " ";
843 case Flap_handle_record:
845 fout << Flap_handle << " ";
853 case flap_cmd_record:
855 fout << flap_cmd << " ";
858 case flap_cmd_deg_record:
860 fout << flap_cmd * RAD_TO_DEG << " ";
863 case flap_pos_record:
865 fout << flap_pos << " ";
868 case flap_pos_deg_record:
870 fout << flap_pos * RAD_TO_DEG << " ";
873 case Spoiler_handle_record:
875 fout << Spoiler_handle << " ";
878 case spoiler_cmd_deg_record:
880 fout << spoiler_cmd_deg << " ";
883 case spoiler_pos_deg_record:
885 fout << spoiler_pos_deg << " ";
888 case spoiler_pos_norm_record:
890 fout << spoiler_pos_norm << " ";
893 case spoiler_pos_record:
895 fout << spoiler_pos << " ";
899 /****************** Aero Coefficients ******************/
907 fout << CDfaI << " ";
912 fout << CDfCLI << " ";
917 fout << CDfadeI << " ";
922 fout << CDfdfI << " ";
927 fout << CDfadfI << " ";
935 case CXfabetafI_record:
937 fout << CXfabetafI << " ";
940 case CXfadefI_record:
942 fout << CXfadefI << " ";
947 fout << CXfaqfI << " ";
950 case CDo_save_record:
952 fout << CDo_save << " ";
955 case CDK_save_record:
957 fout << CDK_save << " ";
960 case CLK_save_record:
962 fout << CLK_save << " ";
965 case CD_a_save_record:
967 fout << CD_a_save << " ";
970 case CD_adot_save_record:
972 fout << CD_adot_save << " ";
975 case CD_q_save_record:
977 fout << CD_q_save << " ";
980 case CD_ih_save_record:
982 fout << CD_ih_save << " ";
985 case CD_de_save_record:
987 fout << CD_de_save << " ";
990 case CD_dr_save_record:
992 fout << CD_dr_save << " ";
995 case CD_da_save_record:
997 fout << CD_da_save << " ";
1000 case CD_beta_save_record:
1002 fout << CD_beta_save << " ";
1005 case CD_df_save_record:
1007 fout << CD_df_save << " ";
1010 case CD_ds_save_record:
1012 fout << CD_ds_save << " ";
1015 case CD_dg_save_record:
1017 fout << CD_dg_save << " ";
1020 case CXo_save_record:
1022 fout << CXo_save << " ";
1025 case CXK_save_record:
1027 fout << CXK_save << " ";
1030 case CX_a_save_record:
1032 fout << CX_a_save << " ";
1035 case CX_a2_save_record:
1037 fout << CX_a2_save << " ";
1040 case CX_a3_save_record:
1042 fout << CX_a3_save << " ";
1045 case CX_adot_save_record:
1047 fout << CX_adot_save << " ";
1050 case CX_q_save_record:
1052 fout << CX_q_save << " ";
1055 case CX_de_save_record:
1057 fout << CX_de_save << " ";
1060 case CX_dr_save_record:
1062 fout << CX_dr_save << " ";
1065 case CX_df_save_record:
1067 fout << CX_df_save << " ";
1070 case CX_adf_save_record:
1072 fout << CX_adf_save << " ";
1082 fout << CLfaI << " ";
1085 case CLfadeI_record:
1087 fout << CLfadeI << " ";
1092 fout << CLfdfI << " ";
1095 case CLfadfI_record:
1097 fout << CLfadfI << " ";
1107 fout << CZfaI << " ";
1110 case CZfabetafI_record:
1112 fout << CZfabetafI << " ";
1115 case CZfadefI_record:
1117 fout << CZfadefI << " ";
1120 case CZfaqfI_record:
1122 fout << CZfaqfI << " ";
1125 case CLo_save_record:
1127 fout << CLo_save << " ";
1130 case CL_a_save_record:
1132 fout << CL_a_save << " ";
1135 case CL_adot_save_record:
1137 fout << CL_adot_save << " ";
1140 case CL_q_save_record:
1142 fout << CL_q_save << " ";
1145 case CL_ih_save_record:
1147 fout << CL_ih_save << " ";
1150 case CL_de_save_record:
1152 fout << CL_de_save << " ";
1155 case CL_df_save_record:
1157 fout << CL_df_save << " ";
1160 case CL_ds_save_record:
1162 fout << CL_ds_save << " ";
1165 case CL_dg_save_record:
1167 fout << CL_dg_save << " ";
1170 case CZo_save_record:
1172 fout << CZo_save << " ";
1175 case CZ_a_save_record:
1177 fout << CZ_a_save << " ";
1180 case CZ_a2_save_record:
1182 fout << CZ_a2_save << " ";
1185 case CZ_a3_save_record:
1187 fout << CZ_a3_save << " ";
1190 case CZ_adot_save_record:
1192 fout << CZ_adot_save << " ";
1195 case CZ_q_save_record:
1197 fout << CZ_q_save << " ";
1200 case CZ_de_save_record:
1202 fout << CZ_de_save << " ";
1205 case CZ_deb2_save_record:
1207 fout << CZ_deb2_save << " ";
1210 case CZ_df_save_record:
1212 fout << CZ_df_save << " ";
1215 case CZ_adf_save_record:
1217 fout << CZ_adf_save << " ";
1227 fout << CmfaI << " ";
1230 case CmfadeI_record:
1232 fout << CmfadeI << " ";
1237 fout << CmfdfI << " ";
1240 case CmfadfI_record:
1242 fout << CmfadfI << " ";
1245 case CmfabetafI_record:
1247 fout << CmfabetafI << " ";
1250 case CmfadefI_record:
1252 fout << CmfadefI << " ";
1255 case CmfaqfI_record:
1257 fout << CmfaqfI << " ";
1260 case Cmo_save_record:
1262 fout << Cmo_save << " ";
1265 case Cm_a_save_record:
1267 fout << Cm_a_save << " ";
1270 case Cm_a2_save_record:
1272 fout << Cm_a2_save << " ";
1275 case Cm_adot_save_record:
1277 fout << Cm_adot_save << " ";
1280 case Cm_q_save_record:
1282 fout << Cm_q_save << " ";
1285 case Cm_ih_save_record:
1287 fout << Cm_ih_save << " ";
1290 case Cm_de_save_record:
1292 fout << Cm_de_save << " ";
1295 case Cm_b2_save_record:
1297 fout << Cm_b2_save << " ";
1300 case Cm_r_save_record:
1302 fout << Cm_r_save << " ";
1305 case Cm_df_save_record:
1307 fout << Cm_df_save << " ";
1310 case Cm_ds_save_record:
1312 fout << Cm_ds_save << " ";
1315 case Cm_dg_save_record:
1317 fout << Cm_dg_save << " ";
1325 case CYfadaI_record:
1327 fout << CYfadaI << " ";
1330 case CYfbetadrI_record:
1332 fout << CYfbetadrI << " ";
1335 case CYfabetafI_record:
1337 fout << CYfabetafI << " ";
1340 case CYfadafI_record:
1342 fout << CYfadafI << " ";
1345 case CYfadrfI_record:
1347 fout << CYfadrfI << " ";
1350 case CYfapfI_record:
1352 fout << CYfapfI << " ";
1355 case CYfarfI_record:
1357 fout << CYfarfI << " ";
1360 case CYo_save_record:
1362 fout << CYo_save << " ";
1365 case CY_beta_save_record:
1367 fout << CY_beta_save << " ";
1370 case CY_p_save_record:
1372 fout << CY_p_save << " ";
1375 case CY_r_save_record:
1377 fout << CY_r_save << " ";
1380 case CY_da_save_record:
1382 fout << CY_da_save << " ";
1385 case CY_dr_save_record:
1387 fout << CY_dr_save << " ";
1390 case CY_dra_save_record:
1392 fout << CY_dra_save << " ";
1395 case CY_bdot_save_record:
1397 fout << CY_bdot_save << " ";
1405 case ClfadaI_record:
1407 fout << ClfadaI << " ";
1410 case ClfbetadrI_record:
1412 fout << ClfbetadrI << " ";
1415 case ClfabetafI_record:
1417 fout << ClfabetafI << " ";
1420 case ClfadafI_record:
1422 fout << ClfadafI << " ";
1425 case ClfadrfI_record:
1427 fout << ClfadrfI << " ";
1430 case ClfapfI_record:
1432 fout << ClfapfI << " ";
1435 case ClfarfI_record:
1437 fout << ClfarfI << " ";
1440 case Clo_save_record:
1442 fout << Clo_save << " ";
1445 case Cl_beta_save_record:
1447 fout << Cl_beta_save << " ";
1450 case Cl_p_save_record:
1452 fout << Cl_p_save << " ";
1455 case Cl_r_save_record:
1457 fout << Cl_r_save << " ";
1460 case Cl_da_save_record:
1462 fout << Cl_da_save << " ";
1465 case Cl_dr_save_record:
1467 fout << Cl_dr_save << " ";
1470 case Cl_daa_save_record:
1472 fout << Cl_daa_save << " ";
1480 case CnfadaI_record:
1482 fout << CnfadaI << " ";
1485 case CnfbetadrI_record:
1487 fout << CnfbetadrI << " ";
1490 case CnfabetafI_record:
1492 fout << CnfabetafI << " ";
1495 case CnfadafI_record:
1497 fout << CnfadafI << " ";
1500 case CnfadrfI_record:
1502 fout << CnfadrfI << " ";
1505 case CnfapfI_record:
1507 fout << CnfapfI << " ";
1510 case CnfarfI_record:
1512 fout << CnfarfI << " ";
1515 case Cno_save_record:
1517 fout << Cno_save << " ";
1520 case Cn_beta_save_record:
1522 fout << Cn_beta_save << " ";
1525 case Cn_p_save_record:
1527 fout << Cn_p_save << " ";
1530 case Cn_r_save_record:
1532 fout << Cn_r_save << " ";
1535 case Cn_da_save_record:
1537 fout << Cn_da_save << " ";
1540 case Cn_dr_save_record:
1542 fout << Cn_dr_save << " ";
1545 case Cn_q_save_record:
1547 fout << Cn_q_save << " ";
1550 case Cn_b3_save_record:
1552 fout << Cn_b3_save << " ";
1556 /******************** Ice Detection ********************/
1557 case CL_clean_record:
1559 fout << CL_clean << " ";
1562 case CL_iced_record:
1564 fout << CL_iced << " ";
1567 case CD_clean_record:
1569 fout << CD_clean << " ";
1572 case CD_iced_record:
1574 fout << CD_iced << " ";
1577 case Cm_clean_record:
1579 fout << Cm_clean << " ";
1582 case Cm_iced_record:
1584 fout << Cm_iced << " ";
1587 case Ch_clean_record:
1589 fout << Ch_clean << " ";
1592 case Ch_iced_record:
1594 fout << Ch_iced << " ";
1597 case Cl_clean_record:
1599 fout << Cl_clean << " ";
1602 case Cl_iced_record:
1604 fout << Cl_iced << " ";
1607 case CLclean_wing_record:
1609 fout << CLclean_wing << " ";
1612 case CLiced_wing_record:
1614 fout << CLiced_wing << " ";
1617 case CLclean_tail_record:
1619 fout << CLclean_tail << " ";
1622 case CLiced_tail_record:
1624 fout << CLiced_tail << " ";
1627 case Lift_clean_wing_record:
1629 fout << Lift_clean_wing << " ";
1632 case Lift_iced_wing_record:
1634 fout << Lift_iced_wing << " ";
1637 case Lift_clean_tail_record:
1639 fout << Lift_clean_tail << " ";
1642 case Lift_iced_tail_record:
1644 fout << Lift_iced_tail << " ";
1647 case Gamma_clean_wing_record:
1649 fout << Gamma_clean_wing << " ";
1652 case Gamma_iced_wing_record:
1654 fout << Gamma_iced_wing << " ";
1657 case Gamma_clean_tail_record:
1659 fout << Gamma_clean_tail << " ";
1662 case Gamma_iced_tail_record:
1664 fout << Gamma_iced_tail << " ";
1667 case w_clean_wing_record:
1669 fout << w_clean_wing << " ";
1672 case w_iced_wing_record:
1674 fout << w_iced_wing << " ";
1677 case w_clean_tail_record:
1679 fout << w_clean_tail << " ";
1682 case w_iced_tail_record:
1684 fout << w_iced_tail << " ";
1687 case V_total_clean_wing_record:
1689 fout << V_total_clean_wing << " ";
1692 case V_total_iced_wing_record:
1694 fout << V_total_iced_wing << " ";
1697 case V_total_clean_tail_record:
1699 fout << V_total_clean_tail << " ";
1702 case V_total_iced_tail_record:
1704 fout << V_total_iced_tail << " ";
1707 case beta_flow_clean_wing_record:
1709 fout << beta_flow_clean_wing << " ";
1712 case beta_flow_clean_wing_deg_record:
1714 fout << beta_flow_clean_wing * RAD_TO_DEG << " ";
1717 case beta_flow_iced_wing_record:
1719 fout << beta_flow_iced_wing << " ";
1722 case beta_flow_iced_wing_deg_record:
1724 fout << beta_flow_iced_wing * RAD_TO_DEG << " ";
1727 case beta_flow_clean_tail_record:
1729 fout << beta_flow_clean_tail << " ";
1732 case beta_flow_clean_tail_deg_record:
1734 fout << beta_flow_clean_tail * RAD_TO_DEG << " ";
1737 case beta_flow_iced_tail_record:
1739 fout << beta_flow_iced_tail << " ";
1742 case beta_flow_iced_tail_deg_record:
1744 fout << beta_flow_iced_tail * RAD_TO_DEG << " ";
1747 case Dbeta_flow_wing_record:
1749 fout << Dbeta_flow_wing << " ";
1752 case Dbeta_flow_wing_deg_record:
1754 fout << Dbeta_flow_wing * RAD_TO_DEG << " ";
1757 case Dbeta_flow_tail_record:
1759 fout << Dbeta_flow_tail << " ";
1762 case Dbeta_flow_tail_deg_record:
1764 fout << Dbeta_flow_tail * RAD_TO_DEG << " ";
1767 case pct_beta_flow_wing_record:
1769 fout << pct_beta_flow_wing << " ";
1772 case pct_beta_flow_tail_record:
1774 fout << pct_beta_flow_tail << " ";
1777 case eta_ice_record:
1779 fout << eta_ice << " ";
1782 case eta_wing_left_record:
1784 fout << eta_wing_left << " ";
1787 case eta_wing_right_record:
1789 fout << eta_wing_right << " ";
1792 case eta_tail_record:
1794 fout << eta_tail << " ";
1797 case delta_CL_record:
1799 fout << delta_CL << " ";
1802 case delta_CD_record:
1804 fout << delta_CD << " ";
1807 case delta_Cm_record:
1809 fout << delta_Cm << " ";
1812 case delta_Cl_record:
1814 fout << delta_Cl << " ";
1817 case delta_Cn_record:
1819 fout << delta_Cn << " ";
1822 case boot_cycle_tail_record:
1824 fout << boot_cycle_tail << " ";
1827 case boot_cycle_wing_left_record:
1829 fout << boot_cycle_wing_left << " ";
1832 case boot_cycle_wing_right_record:
1834 fout << boot_cycle_wing_right << " ";
1837 case autoIPS_tail_record:
1839 fout << autoIPS_tail << " ";
1842 case autoIPS_wing_left_record:
1844 fout << autoIPS_wing_left << " ";
1847 case autoIPS_wing_right_record:
1849 fout << autoIPS_wing_right << " ";
1852 case eps_pitch_input_record:
1854 fout << eps_pitch_input << " ";
1857 case eps_alpha_max_record:
1859 fout << eps_alpha_max << " ";
1862 case eps_pitch_max_record:
1864 fout << eps_pitch_max << " ";
1867 case eps_pitch_min_record:
1869 fout << eps_pitch_min << " ";
1872 case eps_roll_max_record:
1874 fout << eps_roll_max << " ";
1877 case eps_thrust_min_record:
1879 fout << eps_thrust_min << " ";
1882 case eps_flap_max_record:
1884 fout << eps_flap_max << " ";
1887 case eps_airspeed_max_record:
1889 fout << eps_airspeed_max << " ";
1892 case eps_airspeed_min_record:
1894 fout << eps_airspeed_min << " ";
1897 case tactilefadefI_record:
1899 fout << tactilefadefI << " ";
1903 /*******************Autopilot***************************/
1904 case ap_Theta_ref_deg_record:
1906 fout << ap_Theta_ref_deg << " ";
1909 case ap_pah_on_record:
1911 fout << ap_pah_on << " ";
1915 /************************ Forces ***********************/
1916 case F_X_wind_record:
1918 fout << F_X_wind << " ";
1921 case F_Y_wind_record:
1923 fout << F_Y_wind << " ";
1926 case F_Z_wind_record:
1928 fout << F_Z_wind << " ";
1931 case F_X_aero_record:
1933 fout << F_X_aero << " ";
1936 case F_Y_aero_record:
1938 fout << F_Y_aero << " ";
1941 case F_Z_aero_record:
1943 fout << F_Z_aero << " ";
1946 case F_X_engine_record:
1948 fout << F_X_engine << " ";
1951 case F_Y_engine_record:
1953 fout << F_Y_engine << " ";
1956 case F_Z_engine_record:
1958 fout << F_Z_engine << " ";
1961 case F_X_gear_record:
1963 fout << F_X_gear << " ";
1966 case F_Y_gear_record:
1968 fout << F_Y_gear << " ";
1971 case F_Z_gear_record:
1973 fout << F_Z_gear << " ";
1991 case F_north_record:
1993 fout << F_north << " ";
1998 fout << F_east << " ";
2003 fout << F_down << " ";
2007 /*********************** Moments ***********************/
2008 case M_l_aero_record:
2010 fout << M_l_aero << " ";
2013 case M_m_aero_record:
2015 fout << M_m_aero << " ";
2018 case M_n_aero_record:
2020 fout << M_n_aero << " ";
2023 case M_l_engine_record:
2025 fout << M_l_engine << " ";
2028 case M_m_engine_record:
2030 fout << M_m_engine << " ";
2033 case M_n_engine_record:
2035 fout << M_n_engine << " ";
2038 case M_l_gear_record:
2040 fout << M_l_gear << " ";
2043 case M_m_gear_record:
2045 fout << M_m_gear << " ";
2048 case M_n_gear_record:
2050 fout << M_n_gear << " ";
2055 fout << M_l_rp << " ";
2060 fout << M_m_rp << " ";
2065 fout << M_n_rp << " ";
2069 /********************* flapper variables *********************/
2070 case flapper_freq_record:
2072 fout << flapper_freq << " ";
2075 case flapper_phi_record:
2077 fout << flapper_phi << " ";
2080 case flapper_phi_deg_record:
2082 fout << flapper_phi*RAD_TO_DEG << " ";
2085 case flapper_Lift_record:
2087 fout << flapper_Lift << " ";
2090 case flapper_Thrust_record:
2092 fout << flapper_Thrust << " ";
2095 case flapper_Inertia_record:
2097 fout << flapper_Inertia << " ";
2100 case flapper_Moment_record:
2102 fout << flapper_Moment << " ";
2105 /********* MSS debug and other data *******************/
2106 /* debug variables for use in probing data */
2107 /* comment out old lines, and add new */
2108 /* only remove code that you have written */
2112 // fout << eta_q_Cm_q_fac << " ";
2113 // fout << eta_q_Cm_adot_fac << " ";
2114 // fout << eta_q_Cmfade_fac << " ";
2115 // fout << eta_q_Cl_dr_fac << " ";
2116 // fout << eta_q_Cm_de_fac << " ";
2118 // fout << eta_q << " ";
2120 // fout << engineOmega * 60 / (2 * LS_PI)<< " ";
2121 // vertical climb rate in fpm
2122 fout << V_down * 60 << " ";
2123 // vertical climb rate in fps
2124 // fout << V_down << " ";
2125 // w_induced downwash at tail due to wing
2126 // fout << gammaWing << " ";
2127 //fout << outside_control << " ";
2132 // Lift to drag ratio
2133 // fout << V_ground_speed/V_down_rel_ground << " ";
2134 // g's through the c.g. of the aircraft
2135 fout << (-A_Z_cg/32.174) << " ";
2136 // L/D via forces (used in 201 class for L/D)
2137 // fout << (F_Z_wind/F_X_wind) << " ";
2138 // gyroscopic moment (see uiuc_wrapper.cpp)
2139 // fout << (polarInertia * engineOmega * Q_body) << " ";
2140 // downwashAngle at tail
2141 // fout << downwashAngle * 57.29 << " ";
2142 // w_induced from engine
2143 // fout << w_induced << " ";
2148 // die off function for eta_q
2149 // fout << (Cos_alpha * Cos_alpha) << " ";
2150 // gyroscopic moment (see uiuc_wrapper.cpp)
2151 // fout << (-polarInertia * engineOmega * R_body) << " ";
2153 // fout << eta_q << " ";
2154 // flapper cycle percentage
2155 fout << (sin(flapper_phi - 3 * LS_PI / 2)) << " ";
2158 /********* RD debug and other data *******************/
2159 /* debug variables for use in probing data */
2160 /* comment out old lines, and add new */
2161 /* only remove code that you have written */
2164 // flapper F_X_aero_flapper
2165 fout << F_X_aero_flapper << " ";
2170 // flapper F_Z_aero_flapper
2171 //fout << F_Z_aero_flapper << " ";
2173 fout << gear_rate << " ";
2179 fout << gear_max << " ";
2182 case V_down_fpm_record:
2184 fout << V_down * 60 << " ";
2189 fout << eta_q << " ";
2194 fout << (engineOmega * 60 / (2 * LS_PI)) << " ";
2197 case elevator_sas_deg_record:
2199 fout << elevator_sas * RAD_TO_DEG << " ";
2202 case aileron_sas_deg_record:
2204 fout << aileron_sas * RAD_TO_DEG << " ";
2207 case rudder_sas_deg_record:
2209 fout << rudder_sas * RAD_TO_DEG << " ";
2212 case w_induced_record:
2214 fout << w_induced << " ";
2217 case downwashAngle_deg_record:
2219 fout << downwashAngle * RAD_TO_DEG << " ";
2222 case alphaTail_deg_record:
2224 fout << alphaTail * RAD_TO_DEG << " ";
2227 case gammaWing_record:
2229 fout << gammaWing << " ";
2234 fout << V_ground_speed/V_down_rel_ground << " ";
2239 fout << -A_Z_cg/32.174 << " ";
2242 case gyroMomentQ_record:
2244 fout << polarInertia * engineOmega * Q_body << " ";
2247 case gyroMomentR_record:
2249 fout << -polarInertia * engineOmega * R_body << " ";
2252 case Gear_handle_record:
2254 fout << Gear_handle << " ";
2257 case gear_cmd_norm_record:
2259 fout << gear_cmd_norm << " ";
2262 case gear_pos_norm_record:
2264 fout << gear_pos_norm << " ";
2267 /****************Trigger Variables*******************/
2268 case trigger_on_record:
2270 fout << trigger_on << " ";
2273 case trigger_num_record:
2275 fout << trigger_num << " ";
2278 case trigger_toggle_record:
2280 fout << trigger_toggle << " ";
2283 case trigger_counter_record:
2285 fout << trigger_counter << " ";
2294 // end uiuc_recorder.cpp