]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/LaRCsim/ls_interface.c
Updates to the scenery loading infrastructure to make it more flexible,
[flightgear.git] / src / FDM / LaRCsim / ls_interface.c
index bf5bc196177255cc94a2b1f8b605b92a5e94760f..ac2469c0e5e5bf93e7dfe5db3586ed161c2f95d7 100644 (file)
@@ -295,7 +295,7 @@ void ls_stamp( void ) {
     date = (nowtime->tm_year)*10000 
         + (nowtime->tm_mon + 1)*100
         + (nowtime->tm_mday);
-    sprintf(sim_control_.date_string, "%06d\0", date);
+    sprintf(sim_control_.date_string, "%06ld\0", date);
     sprintf(sim_control_.time_stamp, "%02d:%02d:%02d\0", 
        nowtime->tm_hour, nowtime->tm_min, nowtime->tm_sec);
 #ifdef COMPILE_THIS_CODE_THIS_USELESS_CODE
@@ -486,6 +486,9 @@ int ls_checkopts(argc, argv)        /* check and set options flags */
   }
 #endif /* COMPILE_THIS_CODE_THIS_USELESS_CODE */
 
+void ls_set_model_dt(double dt) {
+  model_dt = dt;
+}  
 
 void ls_loop( SCALAR dt, int initialize ) {
     /* printf ("  In ls_loop()\n"); */
@@ -521,7 +524,7 @@ int ls_cockpit( void ) {
 
 /* Initialize the LaRCsim flight model, dt is the time increment for
    each subsequent iteration through the EOM */
-int ls_toplevel_init(double dt) {
+int ls_toplevel_init(double dt, char * aircraft) {
     model_dt = dt;
 
     ls_setdefopts();           /* set default options */
@@ -535,7 +538,7 @@ int ls_toplevel_init(double dt) {
 
     /* printf("LS pre Init pos = %.2f\n", Latitude); */
 
-    ls_init();
+    ls_init(aircraft);
 
     /* printf("LS post Init pos = %.2f\n", Latitude); */
 
@@ -569,14 +572,194 @@ int ls_ForceAltitude(double alt_feet) {
     Altitude = alt_feet;
     ls_geod_to_geoc( Latitude, Altitude, &Sea_level_radius, &Lat_geocentric);
     Radius_to_vehicle = Altitude + Sea_level_radius;
+
+    return 0;
 }
 
 
 /* Flight Gear Modification Log
  *
  * $Log$
- * Revision 1.1  1999/06/17 18:07:33  curt
- * Initial revision
+ * Revision 1.6  2002/01/30 15:17:27  david
+ * Fixes from Cameron Moore:
+ *
+ * I've attached 3 diffs against files in FlightGear to fix some printf
+ * format strings.  The changes are pretty straight forward.  Let me know
+ * if you have any questions.  (BTW, I'm using gcc 2.95.4)
+ *
+ * Revision 1.5  2001/05/21 18:44:59  curt
+ * Tile pager tweaks.
+ * MSVC++ tweaks.
+ *
+ * Revision 1.4  2001/03/24 05:03:12  curt
+ * SG-ified logstream.
+ *
+ * Revision 1.3  2000/10/23 22:34:54  curt
+ * I tested:
+ * LaRCsim c172 on-ground and in-air starts, reset: all work
+ * UIUC Cessna172 on-ground and in-air starts work as expected, reset
+ * results in an aircraft that is upside down but does not crash FG.   I
+ * don't know what it was like before, so it may well be no change.
+ * JSBSim c172 and X15 in-air starts work fine, resets now work (and are
+ * trimmed), on-ground starts do not -- the c172 ends up on its back.  I
+ * suspect this is no worse than before.
+ *
+ * I did not test:
+ * Balloon (the weather code returns nan's for the atmosphere data --this
+ * is in the weather module and apparently is a linux only bug)
+ * ADA (don't know how)
+ * MagicCarpet  (needs work yet)
+ * External (don't know how)
+ *
+ * known to be broken:
+ * LaRCsim c172 on-ground starts with a negative terrain altitude (this
+ * happens at KPAO when the scenery is not present).   The FDM inits to
+ * about 50 feet AGL and the model falls to the ground.  It does stay
+ * upright, however, and seems to be fine once it settles out, FWIW.
+ *
+ * To do:
+ * --implement set_Model on the bus
+ * --bring Christian's weather data into JSBSim
+ * -- add default method to bus for updating things like the sin and cos of
+ * latitude (for Balloon, MagicCarpet)
+ * -- lots of cleanup
+ *
+ * The files:
+ * src/FDM/flight.cxx
+ * src/FDM/flight.hxx
+ * -- all data members now declared protected instead of private.
+ * -- eliminated all but a small set of 'setters', no change to getters.
+ * -- that small set is declared virtual, the default implementation
+ * provided preserves the old behavior
+ * -- all of the vector data members are now initialized.
+ * -- added busdump() method -- SG_LOG's  all the bus data when called,
+ * useful for diagnostics.
+ *
+ * src/FDM/ADA.cxx
+ * -- bus data members now directly assigned to
+ *
+ * src/FDM/Balloon.cxx
+ * -- bus data members now directly assigned to
+ * -- changed V_equiv_kts to V_calibrated_kts
+ *
+ * src/FDM/JSBSim.cxx
+ * src/FDM/JSBSim.hxx
+ * -- bus data members now directly assigned to
+ * -- implemented the FGInterface virtual setters with JSBSim specific
+ * logic
+ * -- changed the static FDMExec to a dynamic fdmex (needed so that the
+ * JSBSim object can be deleted when a model change is called for)
+ * -- implemented constructor and destructor, moved some of the logic
+ * formerly in init() to constructor
+ * -- added logic to bring up FGEngInterface objects and set the RPM and
+ * throttle values.
+ *
+ * src/FDM/LaRCsim.cxx
+ * src/FDM/LaRCsim.hxx
+ * -- bus data members now directly assigned to
+ * -- implemented the FGInterface virtual setters with LaRCsim specific
+ * logic, uses LaRCsimIC
+ * -- implemented constructor and destructor, moved some of the logic
+ * formerly in init() to constructor
+ * -- moved default inertias to here from fg_init.cxx
+ * -- eliminated the climb rate calculation.  The equivalent, climb_rate =
+ * -1*vdown, is now in copy_from_LaRCsim().
+ *
+ * src/FDM/LaRCsimIC.cxx
+ * src/FDM/LaRCsimIC.hxx
+ * -- similar to FGInitialCondition, this class has all the logic needed to
+ * turn data like Vc and Mach into the more fundamental quantities LaRCsim
+ * needs to initialize.
+ * -- put it in src/FDM since it is a class
+ *
+ * src/FDM/MagicCarpet.cxx
+ *  -- bus data members now directly assigned to
+ *
+ * src/FDM/Makefile.am
+ * -- adds LaRCsimIC.hxx and cxx
+ *
+ * src/FDM/JSBSim/FGAtmosphere.h
+ * src/FDM/JSBSim/FGDefs.h
+ * src/FDM/JSBSim/FGInitialCondition.cpp
+ * src/FDM/JSBSim/FGInitialCondition.h
+ * src/FDM/JSBSim/JSBSim.cpp
+ * -- changes to accomodate the new bus
+ *
+ * src/FDM/LaRCsim/atmos_62.h
+ * src/FDM/LaRCsim/ls_geodesy.h
+ * -- surrounded prototypes with #ifdef __cplusplus ... #endif , functions
+ * here are needed in LaRCsimIC
+ *
+ * src/FDM/LaRCsim/c172_main.c
+ * src/FDM/LaRCsim/cherokee_aero.c
+ * src/FDM/LaRCsim/ls_aux.c
+ * src/FDM/LaRCsim/ls_constants.h
+ * src/FDM/LaRCsim/ls_geodesy.c
+ * src/FDM/LaRCsim/ls_geodesy.h
+ * src/FDM/LaRCsim/ls_step.c
+ * src/FDM/UIUCModel/uiuc_betaprobe.cpp
+ * -- changed PI to LS_PI, eliminates preprocessor naming conflict with
+ * weather module
+ *
+ * src/FDM/LaRCsim/ls_interface.c
+ * src/FDM/LaRCsim/ls_interface.h
+ * -- added function ls_set_model_dt()
+ *
+ * src/Main/bfi.cxx
+ * -- eliminated calls that set the NED speeds to body components.  They
+ * are no longer needed and confuse the new bus.
+ *
+ * src/Main/fg_init.cxx
+ * -- eliminated calls that just brought the bus data up-to-date (e.g.
+ * set_sin_cos_latitude). or set default values.   The bus now handles the
+ * defaults and updates itself when the setters are called (for LaRCsim and
+ * JSBSim).  A default method for doing this needs to be added to the bus.
+ * -- added fgVelocityInit() to set the speed the user asked for.  Both
+ * JSBSim and LaRCsim can now be initialized using any of:
+ * vc,mach, NED components, UVW components.
+ *
+ * src/Main/main.cxx
+ * --eliminated call to fgFDMSetGroundElevation, this data is now 'pulled'
+ * onto the bus every update()
+ *
+ * src/Main/options.cxx
+ * src/Main/options.hxx
+ * -- added enum to keep track of the speed requested by the user
+ * -- eliminated calls to set NED velocity properties to body speeds, they
+ * are no longer needed.
+ * -- added options for the NED components.
+ *
+ * src/Network/garmin.cxx
+ * src/Network/nmea.cxx
+ * --eliminated calls that just brought the bus data up-to-date (e.g.
+ * set_sin_cos_latitude).  The bus now updates itself when the setters are
+ * called (for LaRCsim and JSBSim).  A default method for doing this needs
+ * to be added to the bus.
+ * -- changed set_V_equiv_kts to set_V_calibrated_kts.  set_V_equiv_kts no
+ * longer exists ( get_V_equiv_kts still does, though)
+ *
+ * src/WeatherCM/FGLocalWeatherDatabase.cpp
+ * -- commented out the code to put the weather data on the bus, a
+ * different scheme for this is needed.
+ *
+ * Revision 1.2  2000/04/10 18:09:41  curt
+ * David Megginson made a few (mostly minor) mods to the LaRCsim files, and
+ * it's now possible to choose the LaRCsim model at runtime, as in
+ *
+ *   fgfs --aircraft=c172
+ *
+ * or
+ *
+ *   fgfs --aircraft=uiuc --aircraft-dir=Aircraft-uiuc/Boeing747
+ *
+ * I did this so that I could play with the UIUC stuff without losing
+ * Tony's C172 with its flaps, etc.  I did my best to respect the design
+ * of the LaRCsim code by staying in C, making only minimal changes, and
+ * not introducing any dependencies on the rest of FlightGear.  The
+ * modified files are attached.
+ *
+ * Revision 1.1.1.1  1999/06/17 18:07:33  curt
+ * Start of 0.7.x branch
  *
  * Revision 1.2  1999/04/27 19:28:04  curt
  * Changes for the MacOS port contributed by Darrell Walisser.