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