1 /***************************************************************************
5 ----------------------------------------------------------------------------
7 FUNCTION: Model loop executive
9 ----------------------------------------------------------------------------
11 MODULE STATUS: developmental
13 ----------------------------------------------------------------------------
15 GENEALOGY: Created 15 October 1992 as part of LaRCSIM project
18 ----------------------------------------------------------------------------
20 DESIGNED BY: Bruce Jackson
22 CODED BY: Bruce Jackson
24 MAINTAINED BY: maintainer
26 ----------------------------------------------------------------------------
32 950306 Added parameters to call: dt, which is the step size
33 to be taken this loop (caution: may vary from call to call)
34 and Initialize, which if non-zero, implies an initialization
37 CURRENT RCS HEADER INFO:
40 Revision 1.4 2001/09/14 18:47:27 curt
41 More changes in support of UIUCModel.
43 Revision 1.3 2000/10/28 14:30:33 curt
44 Updates by Tony working on the FDM interface bus.
46 Revision 1.2 2000/04/10 18:09:41 curt
47 David Megginson made a few (mostly minor) mods to the LaRCsim files, and
48 it's now possible to choose the LaRCsim model at runtime, as in
54 fgfs --aircraft=uiuc --aircraft-dir=Aircraft-uiuc/Boeing747
56 I did this so that I could play with the UIUC stuff without losing
57 Tony's C172 with its flaps, etc. I did my best to respect the design
58 of the LaRCsim code by staying in C, making only minimal changes, and
59 not introducing any dependencies on the rest of FlightGear. The
60 modified files are attached.
62 Revision 1.1.1.1 1999/06/17 18:07:33 curt
65 Revision 1.1.1.1 1999/04/05 21:32:45 curt
66 Start of 0.6.x branch.
68 Revision 1.3 1998/08/06 12:46:39 curt
71 Revision 1.2 1998/01/19 18:40:27 curt
72 Tons of little changes to clean up the code and to remove fatal errors
73 when building with the c++ compiler.
75 Revision 1.1 1997/05/29 00:09:58 curt
76 Initial Flight Gear revision.
78 * Revision 1.3 1995/03/06 18:49:46 bjax
79 * Added dt and initialize flag parameters to subroutine calls. This will
80 * support trim routine (to allow single throttle setting to drive
81 * all four throttle positions, for example, if initialize is TRUE).
83 * Revision 1.2 1993/03/10 06:38:09 bjax
84 * Added additional calls: inertias() and subsystems()... EBJ
86 * Revision 1.1 92/12/30 13:19:08 bjax
90 ----------------------------------------------------------------------------
94 ----------------------------------------------------------------------------
96 CALLED BY: ls_step (in initialization), ls_loop (planned)
98 ----------------------------------------------------------------------------
100 CALLS TO: aero(), engine(), gear()
102 ----------------------------------------------------------------------------
106 ----------------------------------------------------------------------------
110 --------------------------------------------------------------------------*/
111 #include "ls_types.h"
112 #include "ls_model.h"
113 #include "default_model_routines.h"
118 void ls_model( SCALAR dt, int Initialize ) {
119 switch (current_model) {
121 inertias( dt, Initialize );
122 subsystems( dt, Initialize );
123 navion_aero( dt, Initialize );
124 navion_engine( dt, Initialize );
125 navion_gear( dt, Initialize );
128 if(Initialize < 0) c172_init();
129 inertias( dt, Initialize );
130 subsystems( dt, Initialize );
131 c172_aero( dt, Initialize );
132 c172_engine( dt, Initialize );
133 c172_gear( dt, Initialize );
136 inertias( dt, Initialize );
137 subsystems( dt, Initialize );
138 cherokee_aero( dt, Initialize );
139 cherokee_engine( dt, Initialize );
140 cherokee_gear( dt, Initialize );
143 inertias( dt, Initialize );
144 subsystems( dt, Initialize );
145 uiuc_aero( dt, Initialize );
146 uiuc_engine( dt, Initialize );
147 uiuc_gear( dt, Initialize );