]> git.mxchange.org Git - flightgear.git/blob - src/FDM/UIUCModel/uiuc_recorder.cpp
UIUC flight model contribution. This is based on LaRCsim, but can read
[flightgear.git] / src / FDM / UIUCModel / uiuc_recorder.cpp
1 /**********************************************************************
2  
3  FILENAME:     uiuc_recorder.cpp
4
5 ----------------------------------------------------------------------
6
7  DESCRIPTION:  outputs variables specified in input file to recorder 
8                file
9
10 ----------------------------------------------------------------------
11
12  STATUS:       alpha version
13
14 ----------------------------------------------------------------------
15
16  REFERENCES:   Liberty, Jesse.  "Sam's Teach Yourself C++ in 21 Days,"
17                3rd ed., 1999.
18
19 ----------------------------------------------------------------------
20
21  HISTORY:      01/31/2000   initial release
22                03/02/2000   (JS) added record options for 1D and 2D 
23                             interpolated variables
24
25 ----------------------------------------------------------------------
26
27  AUTHOR(S):    Jeff Scott         <jscott@mail.com>
28
29 ----------------------------------------------------------------------
30
31  VARIABLES:
32
33 ----------------------------------------------------------------------
34
35  INPUTS:       n/a
36
37 ----------------------------------------------------------------------
38
39  OUTPUTS:      -variables recorded in uiuc_recorder.dat
40
41 ----------------------------------------------------------------------
42
43  CALLED BY:   uiuc_wrapper.cpp 
44
45 ----------------------------------------------------------------------
46
47  CALLS TO:     none
48
49 ----------------------------------------------------------------------
50
51  COPYRIGHT:    (C) 2000 by Michael Selig
52
53  This program is free software; you can redistribute it and/or
54  modify it under the terms of the GNU General Public License
55  as published by the Free Software Foundation.
56
57  This program is distributed in the hope that it will be useful,
58  but WITHOUT ANY WARRANTY; without even the implied warranty of
59  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
60  GNU General Public License for more details.
61
62  You should have received a copy of the GNU General Public License
63  along with this program; if not, write to the Free Software
64  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
65  USA or view http://www.gnu.org/copyleft/gpl.html.
66
67 **********************************************************************/
68
69 #include "uiuc_recorder.h"
70
71 void uiuc_recorder(double dt )
72 {
73   
74   stack command_list;
75   string linetoken;
76   static int init = 0;
77   string record_variables = "# ";
78  
79   command_list = recordParts->getCommands();
80   fout << endl;
81
82   for (LIST command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
83           record_variables += recordParts->getToken(*command_line,2) + "  ";
84
85   fout << record_variables << endl; 
86   for (LIST command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
87     {
88       
89       linetoken = recordParts->getToken(*command_line, 2); 
90
91       switch(record_map[linetoken])
92         {
93         case Dx_pilot_record:
94           {
95             fout << Dx_pilot << " ";
96             break;
97           }
98         case Dy_pilot_record:
99           {
100             fout << Dy_pilot << " ";
101             break;
102           }
103         case Dz_pilot_record:
104           {
105             fout << Dz_pilot << " ";
106             break;
107           }
108         case V_north_record:
109           {
110             fout << V_north << " ";
111             break;
112           }
113         case V_east_record:
114           {
115             fout << V_east << " ";
116             break;
117           }
118         case V_down_record:
119           {
120             fout << V_down << " ";
121             break;
122           }
123         case V_rel_wind_record:
124           {
125             fout << V_rel_wind << " ";
126             break;
127           }
128         case Dynamic_pressure_record:
129           {
130             fout << Dynamic_pressure << " ";
131             break;
132           }
133         case Alpha_record:
134           {
135             fout << Alpha << " ";
136             break;
137           }
138         case Alpha_dot_record:
139           {
140             fout << Alpha_dot << " ";
141             break;
142           }
143         case Beta_record:
144           {
145             fout << Beta << " ";
146             break;
147           }
148         case Beta_dot_record:
149           {
150             fout << Beta_dot << " ";
151             break;
152           }
153         case Gamma_record:
154           {
155             // fout << Gamma << " ";
156             break;
157           }
158         case P_body_record:
159           {
160             fout << P_body << " ";
161             break;
162           }
163         case Q_body_record:
164           {
165             fout << Q_body << " ";
166             break;
167           }
168         case R_body_record:
169           {
170             fout << R_body << " ";
171             break;
172           }
173         case Phi_record:
174           {
175             fout << Phi << " ";
176             break;
177           }
178         case Theta_record:
179           {
180             fout << Theta << " ";
181             break;
182           }
183         case Psi_record:
184           {
185             fout << Psi << " ";
186             break;
187           }
188         case Theta_dot_record:
189           {
190             fout << Theta_dot << " ";
191             break;
192           }
193         case density_record:
194           {
195             fout << Density << " ";
196             break;
197           }
198         case Mass_record:
199           {
200             fout << Mass << " ";
201             break;
202           }
203         case Simtime_record:
204           {
205             fout << Simtime << " ";
206             break;
207           }
208         case dt_record:
209         {
210             fout << dt << " ";
211           break;
212         }
213         case elevator_record:
214           {
215             fout << elevator << " ";
216             break;
217           }
218         case aileron_record:
219           {
220             fout << aileron << " ";
221             break;
222           }
223         case rudder_record:
224           {
225             fout << rudder << " ";
226             break;
227           }
228         case CD_record:
229           {
230             fout << CD << " ";
231             break;
232           }
233         case CDfaI_record:
234           {
235             fout << CDfaI << " ";
236             break;
237           }
238         case CDfadeI_record:
239           {
240             fout << CDfadeI << " ";
241             break;
242           }
243         case CL_record:
244           {
245             fout << CL << " ";
246             break;
247           }
248         case CLfaI_record:
249           {
250             fout << CLfaI << " ";
251             break;
252           }
253         case CLfadeI_record:
254           {
255             fout << CLfadeI << " ";
256             break;
257           }
258         case Cm_record:
259           {
260             fout << Cm << " ";
261             break;
262           }
263         case CmfadeI_record:
264           {
265             fout << CmfadeI << " ";
266             break;
267           }
268         case CY_record:
269           {
270             fout << CY  << " ";
271             break;
272           }
273         case CYfadaI_record:
274           {
275             fout << CYfadaI << " ";
276             break;
277           }
278         case CYfbetadrI_record:
279           {
280             fout << CYfbetadrI << " ";
281             break;
282           }
283         case Cl_record:
284           {
285             fout << Cl << " ";
286             break;
287           }
288         case ClfadaI_record:
289           {
290             fout << ClfadaI << " ";
291             break;
292           }
293         case ClfbetadrI_record:
294           {
295             fout << ClfbetadrI << " ";
296             break;
297           }
298         case Cn_record:
299           {
300             fout << Cn << " ";
301             break;
302           }
303         case CnfadaI_record:
304           {
305             fout << CnfadaI << " ";
306             break;
307           }
308         case CnfbetadrI_record:
309           {
310             fout << CnfbetadrI << " ";
311             break;
312           }
313         case F_X_wind_record:
314           {
315             fout << F_X_wind << " ";
316             break;
317           }
318         case F_Y_wind_record:
319           {
320             fout << F_Y_wind << " ";
321             break;
322           }
323         case F_Z_wind_record:
324           {
325             fout << F_Z_wind << " ";
326             break;
327           }
328         case F_X_aero_record:
329           {
330             fout << F_X_aero << " ";
331             break;
332           }
333         case F_Y_aero_record:
334           {
335             fout << F_Y_aero << " ";
336             break;
337           }
338         case F_Z_aero_record:
339           {
340             fout << F_Z_aero << " ";
341             break;
342           }
343         case F_X_engine_record:
344           {
345             fout << F_X_engine << " ";
346             break;
347           }
348         case F_Y_engine_record:
349           {
350             fout << F_Y_engine << " ";
351             break;
352           }
353         case F_Z_engine_record:
354           {
355             fout << F_Z_engine << " ";
356             break;
357           }
358         case F_X_gear_record:
359           {
360             fout << F_X_gear << " ";
361             break;
362           }
363         case F_Y_gear_record:
364           {
365             fout << F_Y_gear << " ";
366             break;
367           }
368         case F_Z_gear_record:
369           {
370             fout << F_Z_gear << " ";
371             break;
372           }
373         case F_X_record:
374           {
375             fout << F_X << " ";
376             break;
377           }
378         case F_Y_record:
379           {
380             fout << F_Y << " ";
381             break;
382           }
383         case F_Z_record:
384           {
385             fout << F_Z << " ";
386             break;
387           }
388         case M_l_aero_record:
389           {
390             fout << M_l_aero << " ";
391             break;
392           }
393         case M_m_aero_record:
394           {
395             fout << M_m_aero << " ";
396             break;
397           }
398         case M_n_aero_record:
399           {
400             fout << M_n_aero << " ";
401             break;
402           }
403         case M_l_engine_record:
404           {
405             fout << M_l_engine << " ";
406             break;
407           }
408         case M_m_engine_record:
409           {
410             fout << M_m_engine << " ";
411             break;
412           }
413         case M_n_engine_record:
414           {
415             fout << M_n_engine << " ";
416             break;
417           }
418         case M_l_gear_record:
419           {
420             fout << M_l_gear << " ";
421             break;
422           }
423         case M_m_gear_record:
424           {
425             fout << M_m_gear << " ";
426             break;
427           }
428         case M_n_gear_record:
429           {
430             fout << M_n_gear << " ";
431             break;
432           }
433         case M_l_rp_record:
434           {
435             fout << M_l_rp << " ";
436             break;
437           }
438         case M_m_rp_record:
439           {
440             fout << M_m_rp << " ";
441             break;
442           }
443         case M_n_rp_record:
444           {
445             fout << M_n_rp << " ";
446             break;
447           }
448         };
449     } // end record map
450 }
451
452 // end uiuc_recorder.cpp