1
/**************************************************************************
2
* ls_interface.c -- the FG interface to the LaRCsim routines
3
* This is a heavily modified version of LaRCsim.c
4
* As a result there is much old baggage left in this file.
6
* Originally Written 921230 by Bruce Jackson
7
* Modified by Curtis Olson, started May 1997.
9
* This program is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU General Public License as
11
* published by the Free Software Foundation; either version 2 of the
12
* License, or (at your option) any later version.
14
* This program is distributed in the hope that it will be useful, but
15
* WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
* General Public License for more details.
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, write to the Free Software
21
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23
* $Id: ls_interface.c,v 1.6 2002/01/30 15:17:27 david Exp $
24
* (Log is kept at end of this file)
25
**************************************************************************/
27
/* Original headers follow: */
29
/***************************************************************************
33
----------------------------------------------------------------------------
35
FUNCTION: Top level routine for LaRCSIM. Includes
36
global variable declarations.
38
----------------------------------------------------------------------------
40
MODULE STATUS: Developmental
42
----------------------------------------------------------------------------
44
GENEALOGY: Written 921230 by Bruce Jackson
46
----------------------------------------------------------------------------
54
----------------------------------------------------------------------------
60
930111 Added "progname" variable to keep name of invoking command.
62
931012 Removed altitude < 0. test to support gear development. EBJ
63
931214 Added various pressures (Impact, Dynamic, Static, etc.) EBJ
64
931215 Adopted new generic variable structure. EBJ
65
931218 Added command line options decoding. EBJ
66
940110 Changed file type of matrix file to ".m" EBJ
67
940513 Renamed this routine "LaRCsim.c" from "ls_main.c" EBJ
68
940513 Added time_stamp routine, t_stamp. EBJ
69
950225 Added options flag, 'i', to set I/O output rate. EBJ
70
950306 Added calls to ls_get_settings() and ls_put_settings() EBJ
71
950314 Options flag 'i' now reads IC file; 'o' is output rate EBJ
72
950406 Many changes: added definition of default value macros;
73
removed local variables term_update_hz, model_dt, endtime,
74
substituted sim_control_ globals for these; removed
75
initialization of sim_control_.tape_channels; moved optarg
76
to generic extern; added mod_end_time & mod_buf_size flags
77
and temporary buffer_time and data_rate locals to
78
ls_checkopts(); added additional command line switches '-s'
79
and '-b'; made psuedo-mandatory file names for data output
80
switches; considerable rewrite of logic for setting data
81
buffer length and interleave parameters; updated '-h' help
82
output message; added protection logic to calculations of
83
these parameters; added check of return value on first call
84
to ls_cockpit() so <esc> abort works from initial pause
85
state; added call to ls_unsync() immediately following
86
first ls_sync() call, if paused (to avoid alarm clock
87
timeout); moved call to ls_record() into non-paused
88
multiloop path (was filling buffer with identical data
89
during pause); put check of paused flag before calling sync
90
routine ls_pause(); and added call to exit() on termination.
93
$Header: /var/cvs/FlightGear-0.7/FlightGear/src/FDM/LaRCsim/ls_interface.c,v 1.6 2002/01/30 15:17:27 david Exp $
94
$Original log: LaRCsim.c,v $
95
* Revision 1.4.1.7 1995/04/07 01:04:37 bjax
96
* Many changes made to support storage of sim options from run to run,
97
* as well as restructuring storage buffer sizing and some loop logic
98
* changes. See the modification log for details.
100
* Revision 1.4.1.6 1995/03/29 16:12:09 bjax
101
* Added argument to -o switch; changed run loop to pass dt=0
102
* if in paused mode. EBj
104
* Revision 1.4.1.5 1995/03/15 12:30:20 bjax
105
* Set paused flag to non-zero by default; moved 'i' I/O rate flag
106
* switch to 'o'; made 'i' an initial conditions file switch; added
107
* null string to ls_get_settings() call so that default settings
108
* file will be read. EBJ
110
* Revision 1.4.1.4 1995/03/08 12:31:34 bjax
111
* Added userid retrieval and proper termination of time & date strings.
113
* Revision 1.4.1.3 1995/03/08 12:00:21 bjax
114
* Moved setting of default options to ls_setdefopts from
115
* ls_checkopts; rearranged order of ls_get_settings() call
116
* to between ls_setdefopts and ls_checkopts, so command
117
* line options will override settings file options.
120
* Revision 1.4.1.2 1995/03/06 18:48:49 bjax
121
* Added calles to ls_get_settings() and ls_put_settings(); added
122
* passing of dt and init flags in ls_model(). EBJ
124
* Revision 1.4.1.1 1995/03/03 02:23:08 bjax
125
* Beta version for LaRCsim, version 1.4
127
* Revision 1.3.2.7 1995/02/27 20:00:21 bjax
130
* Revision 1.3.2.6 1995/02/25 16:52:31 bjax
131
* Added 'i' option to set I/O iteration rate. EBJ
133
* Revision 1.3.2.5 1995/02/06 19:33:15 bjax
136
* Revision 1.3.2.4 1995/02/06 19:30:30 bjax
137
* Oops, should really compile these before checking in. Fixed capitailzation of
138
* Initialize in ls_loop parameter.
140
* Revision 1.3.2.3 1995/02/06 19:25:44 bjax
141
* Moved main simulation loop into subroutine ls_loop. EBJ
143
* Revision 1.3.2.2 1994/05/20 21:46:45 bjax
144
* A little better logic on checking for option arguments.
146
* Revision 1.3.2.1 1994/05/20 19:29:51 bjax
147
* Added options arguments to command line.
149
* Revision 1.3.1.16 1994/05/17 15:08:45 bjax
150
* Corrected so that full name to directyr and file is saved
151
* in new global variable "fullname"; this allows symbol table
152
* to be extracted when in another default directory.
154
* Revision 1.3.1.15 1994/05/17 14:50:24 bjax
157
* Revision 1.3.1.14 1994/05/17 14:50:23 bjax
160
* Revision 1.3.1.13 1994/05/17 14:50:21 bjax
163
* Revision 1.3.1.12 1994/05/17 14:50:20 bjax
166
* Revision 1.3.1.11 1994/05/17 13:56:24 bjax
169
* Revision 1.3.1.10 1994/05/17 13:23:03 bjax
172
* Revision 1.3.1.9 1994/05/17 13:20:03 bjax
175
* Revision 1.3.1.8 1994/05/17 13:19:23 bjax
178
* Revision 1.3.1.7 1994/05/17 13:18:29 bjax
181
* Revision 1.3.1.6 1994/05/17 13:16:30 bjax
184
* Revision 1.3.1.5 1994/05/17 13:03:44 bjax
187
* Revision 1.3.1.4 1994/05/17 13:03:38 bjax
190
* Revision 1.3.1.3 1994/05/17 12:49:08 bjax
193
* Revision 1.3.1.2 1994/05/17 12:48:45 bjax
194
* *** empty log message ***
196
* Revision 1.3.1.1 1994/05/13 20:39:17 bjax
199
* Revision 1.2 1994/05/13 19:51:50 bjax
203
----------------------------------------------------------------------------
207
----------------------------------------------------------------------------
211
----------------------------------------------------------------------------
215
----------------------------------------------------------------------------
219
----------------------------------------------------------------------------
223
--------------------------------------------------------------------------*/
225
/* #include <sys/types.h> */
226
/* #include <sys/stat.h> */
232
#include "ls_types.h"
233
#include "ls_constants.h"
234
#include "ls_geodesy.h"
235
#include "ls_generic.h"
236
#include "ls_sim_control.h"
237
#include "ls_cockpit.h"
238
#include "ls_interface.h"
240
#include "ls_accel.h"
242
#include "ls_model.h"
245
// #include <Flight/flight.h>
246
// #include <Aircraft/aircraft.h>
247
// #include <Debug/fg_debug.h>
250
/* global variable declarations */
254
SIM_CONTROL sim_control_;
259
#define DEFAULT_TERM_UPDATE_HZ 20
260
#define DEFAULT_MODEL_HZ 120
261
#define DEFAULT_END_TIME 3600.
262
#define DEFAULT_SAVE_SPACING 8
263
#define DEFAULT_WRITE_SPACING 1
264
#define MAX_FILE_NAME_LENGTH 80
266
/* global variables */
271
/* file variables - default simulation settings */
273
static double model_dt;
274
static double speedup;
275
static char asc1name[MAX_FILE_NAME_LENGTH] = "run.asc1";
276
static char tabname[MAX_FILE_NAME_LENGTH] = "run.dat";
277
static char fltname[MAX_FILE_NAME_LENGTH] = "run.flt";
278
static char matname[MAX_FILE_NAME_LENGTH] = "run.m";
282
void ls_stamp( void ) {
283
char rcsid[] = "$Id: ls_interface.c,v 1.6 2002/01/30 15:17:27 david Exp $";
284
char revid[] = "$Revision: 1.6 $";
285
char dateid[] = "$Date: 2002/01/30 15:17:27 $";
290
/* report version of LaRCsim*/
291
printf("\nLaRCsim %s, %s\n\n", revid, dateid);
293
nowtime_t = time( 0 );
294
nowtime = localtime( &nowtime_t ); /* set fields to correct time values */
295
date = (nowtime->tm_year)*10000
296
+ (nowtime->tm_mon + 1)*100
297
+ (nowtime->tm_mday);
298
sprintf(sim_control_.date_string, "%06ld\0", date);
299
sprintf(sim_control_.time_stamp, "%02d:%02d:%02d\0",
300
nowtime->tm_hour, nowtime->tm_min, nowtime->tm_sec);
301
#ifdef COMPILE_THIS_CODE_THIS_USELESS_CODE
302
cuserid( sim_control_.userid ); /* set up user id */
303
#endif /* COMPILE_THIS_CODE_THIS_USELESS_CODE */
307
void ls_setdefopts( void ) {
308
/* set default values for most options */
310
sim_control_.debug = 0; /* change to non-zero if in dbx! */
311
sim_control_.vision = 0;
312
sim_control_.write_av = 0; /* write Agile-Vu '.flt' file */
313
sim_control_.write_mat = 0; /* write matrix-x/matlab script */
314
sim_control_.write_tab = 0; /* write tab delim. history file */
315
sim_control_.write_asc1 = 0; /* write GetData file */
316
sim_control_.save_spacing = DEFAULT_SAVE_SPACING;
317
/* interpolation on recording */
318
sim_control_.write_spacing = DEFAULT_WRITE_SPACING;
319
/* interpolation on output */
320
sim_control_.end_time = DEFAULT_END_TIME;
321
sim_control_.model_hz = DEFAULT_MODEL_HZ;
322
sim_control_.term_update_hz = DEFAULT_TERM_UPDATE_HZ;
323
sim_control_.time_slices = (long int)(DEFAULT_END_TIME * DEFAULT_MODEL_HZ /
324
DEFAULT_SAVE_SPACING);
325
sim_control_.paused = 0;
331
/* return result codes from ls_checkopts */
336
#ifdef COMPILE_THIS_CODE_THIS_USELESS_CODE
341
int ls_checkopts(argc, argv) /* check and set options flags */
347
int mod_end_time = 0;
348
int mod_buf_size = 0;
349
float buffer_time, data_rate;
351
/* set default values */
353
buffer_time = sim_control_.time_slices * sim_control_.save_spacing /
354
sim_control_.model_hz;
355
data_rate = sim_control_.model_hz / sim_control_.save_spacing;
357
while ((c = getopt(argc, argv, "Aa:b:de:f:hi:kmo:r:s:t:x:")) != EOF)
360
if (sim_control_.sim_type == GLmouse)
362
fprintf(stderr, "Cannot specify both keyboard (k) and ACES (A) cockpits option\n");
363
fprintf(stderr, "Keyboard operation assumed.\n");
366
sim_control_.sim_type = cockpit;
369
sim_control_.write_av = 1;
372
strncpy(fltname, optarg, MAX_FILE_NAME_LENGTH);
377
buffer_time = atof(optarg);
378
if (buffer_time <= 0.) opt_err = -1;
382
sim_control_.debug = 1;
385
sim_control_.end_time = atof(optarg);
389
sim_control_.model_hz = atof(optarg);
395
/* ls_get_settings( optarg ); */
398
sim_control_.sim_type = GLmouse;
401
sim_control_.vision = 1;
404
sim_control_.term_update_hz = atof(optarg);
405
if (sim_control_.term_update_hz <= 0.) opt_err = 1;
408
sim_control_.write_mat = 1;
411
strncpy(matname, optarg, MAX_FILE_NAME_LENGTH);
416
data_rate = atof(optarg);
417
if (data_rate <= 0.) opt_err = -1;
420
sim_control_.write_tab = 1;
423
strncpy(tabname, optarg, MAX_FILE_NAME_LENGTH);
428
sim_control_.write_asc1 = 1;
431
strncpy(asc1name, optarg, MAX_FILE_NAME_LENGTH);
442
fprintf(stderr, "Usage: %s [-options]\n", progname);
443
fprintf(stderr, "\n");
444
fprintf(stderr, " where [-options] is zero or more of the following:\n");
445
fprintf(stderr, "\n");
446
fprintf(stderr, " [A|k] Run mode: [A]CES cockpit [default]\n");
447
fprintf(stderr, " or [k]eyboard\n");
448
fprintf(stderr, "\n");
449
fprintf(stderr, " [i <filename>] [i]nitial conditions filename\n");
450
fprintf(stderr, "\n");
451
fprintf(stderr, " [f <value>] Iteration rate [f]requency, Hz (default is %5.2f Hz)\n",
452
sim_control_.model_hz);
453
fprintf(stderr, "\n");
454
fprintf(stderr, " [o <value>] Display [o]utput frequency, Hz (default is %5.2f Hz)\n",
455
sim_control_.term_update_hz);
456
fprintf(stderr, "\n");
457
fprintf(stderr, " [s <value>] Data storage frequency, Hz (default is %5.2f Hz)\n",
459
fprintf(stderr, "\n");
460
fprintf(stderr, " [e <value>] [e]nd time in seconds (default %5.1f seconds)\n",
461
sim_control_.end_time);
462
fprintf(stderr, "\n");
463
fprintf(stderr, " [b <value>] circular time history storage [b]uffer size, in seconds \n");
464
fprintf(stderr, " (default %5.1f seconds) (normally same as end time)\n",
465
sim_control_.time_slices*sim_control_.save_spacing/
466
sim_control_.model_hz);
467
fprintf(stderr, "\n");
468
fprintf(stderr, " [atxr [<filename>]] Output: [a]gile-vu (default name: %s )\n", fltname);
469
fprintf(stderr, " and/or [t]ab delimited ( '' name: %s )\n", tabname);
470
fprintf(stderr, " and/or [x]plot (default name: %s)\n", asc1name);
471
fprintf(stderr, " and/or mat[r]ix script ( '' name: %s )\n", matname);
472
fprintf(stderr, "\n");
476
/* calculate additional controls */
478
sim_control_.save_spacing = (int) (0.5 + sim_control_.model_hz / data_rate);
479
if (sim_control_.save_spacing < 1) sim_control_.save_spacing = 1;
481
sim_control_.time_slices = buffer_time * sim_control_.model_hz /
482
sim_control_.save_spacing;
483
if (sim_control_.time_slices < 2) sim_control_.time_slices = 2;
487
#endif /* COMPILE_THIS_CODE_THIS_USELESS_CODE */
489
void ls_set_model_dt(double dt) {
493
void ls_loop( SCALAR dt, int initialize ) {
494
/* printf (" In ls_loop()\n"); */
495
ls_step( dt, initialize );
496
/* if (sim_control_.sim_type == cockpit ) ls_ACES(); */
498
ls_model( dt, initialize );
504
int ls_cockpit( void ) {
507
sim_control_.paused = 0;
509
// c = current_aircraft.controls;
511
// Lat_control = FG_Aileron;
512
// Long_control = FG_Elevator;
513
// Long_trim = FG_Elev_Trim;
514
// Rudder_pedal = FG_Rudder;
515
// Throttle_pct = FG_Throttle[0];
517
/* printf("Mach = %.2f ", Mach_number);
518
printf("%.4f,%.4f,%.2f ", Latitude, Longitude, Altitude);
519
printf("%.2f,%.2f,%.2f\n", Phi, Theta, Psi); */
525
/* Initialize the LaRCsim flight model, dt is the time increment for
526
each subsequent iteration through the EOM */
527
int ls_toplevel_init(double dt, char * aircraft) {
530
ls_setdefopts(); /* set default options */
532
ls_stamp(); /* ID stamp; record time and date of run */
534
if (speedup == 0.0) {
535
fprintf(stderr, "%s: Cannot run with speedup of 0.\n", progname);
539
/* printf("LS pre Init pos = %.2f\n", Latitude); */
543
/* printf("LS post Init pos = %.2f\n", Latitude); */
546
/* Initialize (get) cockpit (controls) settings */
554
/* Run an iteration of the EOM (equations of motion) */
555
int ls_update(int multiloop) {
562
for ( i = 0; i < multiloop; i++ ) {
563
ls_loop( model_dt, 0);
570
/* Set the altitude (force) */
571
int ls_ForceAltitude(double alt_feet) {
573
ls_geod_to_geoc( Latitude, Altitude, &Sea_level_radius, &Lat_geocentric);
574
Radius_to_vehicle = Altitude + Sea_level_radius;
580
/* Flight Gear Modification Log
582
* $Log: ls_interface.c,v $
583
* Revision 1.6 2002/01/30 15:17:27 david
584
* Fixes from Cameron Moore:
586
* I've attached 3 diffs against files in FlightGear to fix some printf
587
* format strings. The changes are pretty straight forward. Let me know
588
* if you have any questions. (BTW, I'm using gcc 2.95.4)
590
* Revision 1.5 2001/05/21 18:44:59 curt
594
* Revision 1.4 2001/03/24 05:03:12 curt
595
* SG-ified logstream.
597
* Revision 1.3 2000/10/23 22:34:54 curt
599
* LaRCsim c172 on-ground and in-air starts, reset: all work
600
* UIUC Cessna172 on-ground and in-air starts work as expected, reset
601
* results in an aircraft that is upside down but does not crash FG. I
602
* don't know what it was like before, so it may well be no change.
603
* JSBSim c172 and X15 in-air starts work fine, resets now work (and are
604
* trimmed), on-ground starts do not -- the c172 ends up on its back. I
605
* suspect this is no worse than before.
608
* Balloon (the weather code returns nan's for the atmosphere data --this
609
* is in the weather module and apparently is a linux only bug)
610
* ADA (don't know how)
611
* MagicCarpet (needs work yet)
612
* External (don't know how)
614
* known to be broken:
615
* LaRCsim c172 on-ground starts with a negative terrain altitude (this
616
* happens at KPAO when the scenery is not present). The FDM inits to
617
* about 50 feet AGL and the model falls to the ground. It does stay
618
* upright, however, and seems to be fine once it settles out, FWIW.
621
* --implement set_Model on the bus
622
* --bring Christian's weather data into JSBSim
623
* -- add default method to bus for updating things like the sin and cos of
624
* latitude (for Balloon, MagicCarpet)
630
* -- all data members now declared protected instead of private.
631
* -- eliminated all but a small set of 'setters', no change to getters.
632
* -- that small set is declared virtual, the default implementation
633
* provided preserves the old behavior
634
* -- all of the vector data members are now initialized.
635
* -- added busdump() method -- SG_LOG's all the bus data when called,
636
* useful for diagnostics.
639
* -- bus data members now directly assigned to
641
* src/FDM/Balloon.cxx
642
* -- bus data members now directly assigned to
643
* -- changed V_equiv_kts to V_calibrated_kts
647
* -- bus data members now directly assigned to
648
* -- implemented the FGInterface virtual setters with JSBSim specific
650
* -- changed the static FDMExec to a dynamic fdmex (needed so that the
651
* JSBSim object can be deleted when a model change is called for)
652
* -- implemented constructor and destructor, moved some of the logic
653
* formerly in init() to constructor
654
* -- added logic to bring up FGEngInterface objects and set the RPM and
657
* src/FDM/LaRCsim.cxx
658
* src/FDM/LaRCsim.hxx
659
* -- bus data members now directly assigned to
660
* -- implemented the FGInterface virtual setters with LaRCsim specific
661
* logic, uses LaRCsimIC
662
* -- implemented constructor and destructor, moved some of the logic
663
* formerly in init() to constructor
664
* -- moved default inertias to here from fg_init.cxx
665
* -- eliminated the climb rate calculation. The equivalent, climb_rate =
666
* -1*vdown, is now in copy_from_LaRCsim().
668
* src/FDM/LaRCsimIC.cxx
669
* src/FDM/LaRCsimIC.hxx
670
* -- similar to FGInitialCondition, this class has all the logic needed to
671
* turn data like Vc and Mach into the more fundamental quantities LaRCsim
672
* needs to initialize.
673
* -- put it in src/FDM since it is a class
675
* src/FDM/MagicCarpet.cxx
676
* -- bus data members now directly assigned to
678
* src/FDM/Makefile.am
679
* -- adds LaRCsimIC.hxx and cxx
681
* src/FDM/JSBSim/FGAtmosphere.h
682
* src/FDM/JSBSim/FGDefs.h
683
* src/FDM/JSBSim/FGInitialCondition.cpp
684
* src/FDM/JSBSim/FGInitialCondition.h
685
* src/FDM/JSBSim/JSBSim.cpp
686
* -- changes to accomodate the new bus
688
* src/FDM/LaRCsim/atmos_62.h
689
* src/FDM/LaRCsim/ls_geodesy.h
690
* -- surrounded prototypes with #ifdef __cplusplus ... #endif , functions
691
* here are needed in LaRCsimIC
693
* src/FDM/LaRCsim/c172_main.c
694
* src/FDM/LaRCsim/cherokee_aero.c
695
* src/FDM/LaRCsim/ls_aux.c
696
* src/FDM/LaRCsim/ls_constants.h
697
* src/FDM/LaRCsim/ls_geodesy.c
698
* src/FDM/LaRCsim/ls_geodesy.h
699
* src/FDM/LaRCsim/ls_step.c
700
* src/FDM/UIUCModel/uiuc_betaprobe.cpp
701
* -- changed PI to LS_PI, eliminates preprocessor naming conflict with
704
* src/FDM/LaRCsim/ls_interface.c
705
* src/FDM/LaRCsim/ls_interface.h
706
* -- added function ls_set_model_dt()
709
* -- eliminated calls that set the NED speeds to body components. They
710
* are no longer needed and confuse the new bus.
712
* src/Main/fg_init.cxx
713
* -- eliminated calls that just brought the bus data up-to-date (e.g.
714
* set_sin_cos_latitude). or set default values. The bus now handles the
715
* defaults and updates itself when the setters are called (for LaRCsim and
716
* JSBSim). A default method for doing this needs to be added to the bus.
717
* -- added fgVelocityInit() to set the speed the user asked for. Both
718
* JSBSim and LaRCsim can now be initialized using any of:
719
* vc,mach, NED components, UVW components.
722
* --eliminated call to fgFDMSetGroundElevation, this data is now 'pulled'
723
* onto the bus every update()
725
* src/Main/options.cxx
726
* src/Main/options.hxx
727
* -- added enum to keep track of the speed requested by the user
728
* -- eliminated calls to set NED velocity properties to body speeds, they
729
* are no longer needed.
730
* -- added options for the NED components.
732
* src/Network/garmin.cxx
733
* src/Network/nmea.cxx
734
* --eliminated calls that just brought the bus data up-to-date (e.g.
735
* set_sin_cos_latitude). The bus now updates itself when the setters are
736
* called (for LaRCsim and JSBSim). A default method for doing this needs
737
* to be added to the bus.
738
* -- changed set_V_equiv_kts to set_V_calibrated_kts. set_V_equiv_kts no
739
* longer exists ( get_V_equiv_kts still does, though)
741
* src/WeatherCM/FGLocalWeatherDatabase.cpp
742
* -- commented out the code to put the weather data on the bus, a
743
* different scheme for this is needed.
745
* Revision 1.2 2000/04/10 18:09:41 curt
746
* David Megginson made a few (mostly minor) mods to the LaRCsim files, and
747
* it's now possible to choose the LaRCsim model at runtime, as in
749
* fgfs --aircraft=c172
753
* fgfs --aircraft=uiuc --aircraft-dir=Aircraft-uiuc/Boeing747
755
* I did this so that I could play with the UIUC stuff without losing
756
* Tony's C172 with its flaps, etc. I did my best to respect the design
757
* of the LaRCsim code by staying in C, making only minimal changes, and
758
* not introducing any dependencies on the rest of FlightGear. The
759
* modified files are attached.
761
* Revision 1.1.1.1 1999/06/17 18:07:33 curt
762
* Start of 0.7.x branch
764
* Revision 1.2 1999/04/27 19:28:04 curt
765
* Changes for the MacOS port contributed by Darrell Walisser.
767
* Revision 1.1.1.1 1999/04/05 21:32:45 curt
768
* Start of 0.6.x branch.
770
* Revision 1.25 1999/01/19 20:57:02 curt
771
* MacOS portability changes contributed by "Robert Puyol" <puyol@abvent.fr>
773
* Revision 1.24 1998/12/14 13:27:47 curt
774
* Removed some old, outdated, no longer needed code.
776
* Revision 1.23 1998/10/16 23:27:44 curt
779
* Revision 1.22 1998/09/29 02:02:59 curt
780
* Added a brake + autopilot mods.
782
* Revision 1.21 1998/08/22 14:49:56 curt
783
* Attempting to iron out seg faults and crashes.
784
* Did some shuffling to fix a initialization order problem between view
785
* position, scenery elevation.
787
* Revision 1.20 1998/07/12 03:11:03 curt
788
* Removed some printf()'s.
789
* Fixed the autopilot integration so it should be able to update it's control
790
* positions every time the internal flight model loop is run, and not just
791
* once per rendered frame.
792
* Added a routine to do the necessary stuff to force an arbitrary altitude
794
* Gave the Navion engine just a tad more power.
796
* Revision 1.19 1998/05/11 18:17:28 curt
797
* Output message tweaking.
799
* Revision 1.18 1998/04/21 16:59:38 curt
800
* Integrated autopilot.
801
* Prepairing for C++ integration.
803
* Revision 1.17 1998/02/23 19:07:58 curt
804
* Incorporated Durk's Astro/ tweaks. Includes unifying the sun position
805
* calculation code between sun display, and other FG sections that use this
806
* for things like lighting.
808
* Revision 1.16 1998/02/07 15:29:38 curt
809
* Incorporated HUD changes and struct/typedef changes from Charlie Hotchkiss
810
* <chotchkiss@namg.us.anritsu.com>
812
* Revision 1.15 1998/01/22 22:03:47 curt
813
* Removed #include <sys/stat.h>
815
* Revision 1.14 1998/01/19 19:27:04 curt
816
* Merged in make system changes from Bob Kuehne <rpk@sgi.com>
817
* This should simplify things tremendously.
819
* Revision 1.13 1998/01/19 18:40:26 curt
820
* Tons of little changes to clean up the code and to remove fatal errors
821
* when building with the c++ compiler.
823
* Revision 1.12 1998/01/06 01:20:16 curt
824
* Tweaks to help building with MSVC++
826
* Revision 1.11 1998/01/05 22:19:26 curt
827
* #ifdef'd out some unused code that was problematic for MSVC++ to compile.
829
* Revision 1.10 1997/12/10 22:37:43 curt
830
* Prepended "fg" on the name of all global structures that didn't have it yet.
831
* i.e. "struct WEATHER {}" became "struct fgWEATHER {}"
833
* Revision 1.9 1997/08/27 03:30:08 curt
834
* Changed naming scheme of basic shared structures.
836
* Revision 1.8 1997/06/21 17:12:50 curt
837
* Capitalized subdirectory names.
839
* Revision 1.7 1997/05/31 19:16:28 curt
840
* Elevator trim added.
842
* Revision 1.6 1997/05/31 04:13:53 curt
845
* Continuing work on the LaRCsim flight model integration.
846
* Added some MSFS-like keyboard input handling.
848
* Revision 1.5 1997/05/30 23:26:25 curt
849
* Added elevator/aileron controls.
851
* Revision 1.4 1997/05/30 19:30:15 curt
852
* The LaRCsim flight model is starting to look like it is working.
854
* Revision 1.3 1997/05/30 03:54:12 curt
855
* Made a bit more progress towards integrating the LaRCsim flight model.
857
* Revision 1.2 1997/05/29 22:39:59 curt
858
* Working on incorporating the LaRCsim flight model.
860
* Revision 1.1 1997/05/29 00:09:57 curt
861
* Initial Flight Gear revision.