]> git.mxchange.org Git - flightgear.git/blob - src/FDM/LaRCsim/ls_model.c
Tweaks to go along with changes in SGSocket.
[flightgear.git] / src / FDM / LaRCsim / ls_model.c
1 /***************************************************************************
2
3         TITLE:          ls_model()      
4         
5 ----------------------------------------------------------------------------
6
7         FUNCTION:       Model loop executive
8
9 ----------------------------------------------------------------------------
10
11         MODULE STATUS:  developmental
12
13 ----------------------------------------------------------------------------
14
15         GENEALOGY:      Created 15 October 1992 as part of LaRCSIM project
16                         by Bruce Jackson.
17
18 ----------------------------------------------------------------------------
19
20         DESIGNED BY:    Bruce Jackson
21         
22         CODED BY:       Bruce Jackson
23         
24         MAINTAINED BY:  maintainer
25
26 ----------------------------------------------------------------------------
27
28         MODIFICATION HISTORY:
29         
30         DATE    PURPOSE                                         BY
31
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
35                 is requested.                                   EBJ
36
37         CURRENT RCS HEADER INFO:
38 $Header$
39 $Log$
40 Revision 1.2  2000/04/10 18:09:41  curt
41 David Megginson made a few (mostly minor) mods to the LaRCsim files, and
42 it's now possible to choose the LaRCsim model at runtime, as in
43
44   fgfs --aircraft=c172
45
46 or
47
48   fgfs --aircraft=uiuc --aircraft-dir=Aircraft-uiuc/Boeing747
49
50 I did this so that I could play with the UIUC stuff without losing
51 Tony's C172 with its flaps, etc.  I did my best to respect the design
52 of the LaRCsim code by staying in C, making only minimal changes, and
53 not introducing any dependencies on the rest of FlightGear.  The
54 modified files are attached.
55
56 Revision 1.1.1.1  1999/06/17 18:07:33  curt
57 Start of 0.7.x branch
58
59 Revision 1.1.1.1  1999/04/05 21:32:45  curt
60 Start of 0.6.x branch.
61
62 Revision 1.3  1998/08/06 12:46:39  curt
63 Header change.
64
65 Revision 1.2  1998/01/19 18:40:27  curt
66 Tons of little changes to clean up the code and to remove fatal errors
67 when building with the c++ compiler.
68
69 Revision 1.1  1997/05/29 00:09:58  curt
70 Initial Flight Gear revision.
71
72  * Revision 1.3  1995/03/06  18:49:46  bjax
73  * Added dt and initialize flag parameters to subroutine calls. This will
74  * support trim routine (to allow single throttle setting to drive
75  * all four throttle positions, for example, if initialize is TRUE).
76  *
77  * Revision 1.2  1993/03/10  06:38:09  bjax
78  * Added additional calls: inertias() and subsystems()... EBJ
79  *
80  * Revision 1.1  92/12/30  13:19:08  bjax
81  * Initial revision
82  * 
83
84 ----------------------------------------------------------------------------
85
86         REFERENCES:
87
88 ----------------------------------------------------------------------------
89
90         CALLED BY:      ls_step (in initialization), ls_loop (planned)
91
92 ----------------------------------------------------------------------------
93
94         CALLS TO:       aero(), engine(), gear()
95
96 ----------------------------------------------------------------------------
97
98         INPUTS:
99
100 ----------------------------------------------------------------------------
101
102         OUTPUTS:
103
104 --------------------------------------------------------------------------*/
105 #include "ls_types.h"
106 #include "ls_model.h"
107 #include "default_model_routines.h"
108
109 Model current_model;
110
111
112 void ls_model( SCALAR dt, int Initialize ) {
113     switch (current_model) {
114     case NAVION:
115       inertias( dt, Initialize );
116       subsystems( dt, Initialize );
117       navion_aero( dt, Initialize );
118       navion_engine( dt, Initialize );
119       navion_gear( dt, Initialize );
120       break;
121     case C172:
122       inertias( dt, Initialize );
123       subsystems( dt, Initialize );
124       c172_aero( dt, Initialize );
125       c172_engine( dt, Initialize );
126       c172_gear( dt, Initialize );
127       break;
128     case CHEROKEE:
129       inertias( dt, Initialize );
130       subsystems( dt, Initialize );
131       cherokee_aero( dt, Initialize );
132       cherokee_engine( dt, Initialize );
133       cherokee_gear( dt, Initialize );
134       break;
135     case UIUC:
136       inertias( dt, Initialize );
137       subsystems( dt, Initialize );
138       uiuc_aero( dt, Initialize );
139       uiuc_engine( dt, Initialize );
140       uiuc_gear( dt, Initialize );
141       break;
142     }
143 }