Testing check sum support for NMEA serial output.
// Initialize the flight model parameters
-int fgFlightModelInit(int model, FGState& f, double dt) {
+int fgFDMInit(int model, FGState& f, double dt) {
double save_alt = 0.0;
FG_LOG( FG_FLIGHT ,FG_INFO, "Initializing flight model" );
// Run multiloop iterations of the flight model
-int fgFlightModelUpdate(int model, FGState& f, int multiloop, int time_offset) {
+int fgFDMUpdate(int model, FGState& f, int multiloop, int time_offset) {
double time_step, start_elev, end_elev;
// printf("Altitude = %.2f\n", FG_Altitude * 0.3048);
// Set the altitude (force)
-void fgFlightModelSetAltitude(int model, double alt_meters) {
+void fgFDMForceAltitude(int model, double alt_meters) {
double sea_level_radius_meters;
double lat_geoc;
}
+// Set the local ground elevation
+void fgFDMSetGroundElevation(int model, double ground_meters) {
+ base_fdm_state.set_Runway_altitude( ground_meters * METER_TO_FEET );
+}
+
+
// $Log$
+// Revision 1.12 1999/01/20 13:42:22 curt
+// Tweaked FDM interface.
+// Testing check sum support for NMEA serial output.
+//
// Revision 1.11 1999/01/19 17:52:06 curt
// Working on being able to extrapolate a new position and orientation
// based on a position, orientation, and time offset.
#include <Time/timestamp.hxx>
+#ifndef __cplusplus
+# error This library requires C++
+#endif
+
+
typedef double FG_VECTOR_3[3];
// General interface to the flight model routines
// Initialize the flight model parameters
-int fgFlightModelInit(int model, FGState& f, double dt);
+int fgFDMInit(int model, FGState& f, double dt);
// Run multiloop iterations of the flight model
-int fgFlightModelUpdate(int model, FGState& f, int multiloop, int jitter);
+int fgFDMUpdate(int model, FGState& f, int multiloop, int jitter);
// Set the altitude (force)
-void fgFlightModelSetAltitude(int model, double alt_meters);
+void fgFDMForceAltitude(int model, double alt_meters);
+
+// Set the local ground elevation
+void fgFDMSetGroundElevation(int model, double alt_meters);
#endif // _FLIGHT_HXX
// $Log$
+// Revision 1.12 1999/01/20 13:42:23 curt
+// Tweaked FDM interface.
+// Testing check sum support for NMEA serial output.
+//
// Revision 1.11 1999/01/19 17:52:07 curt
// Working on being able to extrapolate a new position and orientation
// based on a position, orientation, and time offset.
fgAPRun();
// printf("updating flight model x %d\n", multi_loop);
- fgFlightModelUpdate( current_options.get_flight_model(),
+ fgFDMUpdate( current_options.get_flight_model(),
cur_fdm_state, multi_loop, remainder );
} else {
- fgFlightModelUpdate( current_options.get_flight_model(),
+ fgFDMUpdate( current_options.get_flight_model(),
cur_fdm_state, 0, remainder );
}
f->get_Altitude() * FEET_TO_METER,
scenery.cur_elev + alt_adjust_m - 3.0,
scenery.cur_elev + alt_adjust_m );
- fgFlightModelSetAltitude( current_options.get_flight_model(),
- scenery.cur_elev + alt_adjust_m );
+ fgFDMForceAltitude( current_options.get_flight_model(),
+ scenery.cur_elev + alt_adjust_m );
FG_LOG( FG_ALL, FG_DEBUG,
"<*> resetting altitude to "
<< f->get_Altitude() * FEET_TO_METER << " meters" );
}
- f->set_Runway_altitude( scenery.cur_elev * METER_TO_FEET );
+ fgFDMSetGroundElevation( current_options.get_flight_model(),
+ scenery.cur_elev ); // meters
}
/* printf("Adjustment - ground = %.2f runway = %.2f alt = %.2f\n",
// $Log$
+// Revision 1.82 1999/01/20 13:42:24 curt
+// Tweaked FDM interface.
+// Testing check sum support for NMEA serial output.
+//
// Revision 1.81 1999/01/19 20:57:03 curt
// MacOS portability changes contributed by "Robert Puyol" <puyol@abvent.fr>
//
"starting altitude is = " << current_options.get_altitude() );
f->set_Altitude( current_options.get_altitude() * METER_TO_FEET );
- f->set_Runway_altitude( f->get_Altitude() - 3.758099 );
+ fgFDMSetGroundElevation( current_options.get_flight_model(),
+ (f->get_Altitude() - 3.758099) * FEET_TO_METER );
FG_LOG( FG_GENERAL, FG_INFO,
"Initial position is: ("
tmp_abs_view_pos );
FG_LOG( FG_GENERAL, FG_DEBUG,
"Altitude after update " << scenery.cur_elev );
- f->set_Runway_altitude( scenery.cur_elev * METER_TO_FEET );
+ fgFDMSetGroundElevation( current_options.get_flight_model(),
+ scenery.cur_elev );
// Reset our altitude if we are below ground
if ( f->get_Altitude() < f->get_Runway_altitude() + 3.758099) {
// Initialize the flight model subsystem data structures base on
// above values
- fgFlightModelInit( current_options.get_flight_model(), cur_fdm_state,
+ fgFDMInit( current_options.get_flight_model(), cur_fdm_state,
1.0 / DEFAULT_MODEL_HZ );
// I'm just sticking this here for now, it should probably move
// $Log$
+// Revision 1.62 1999/01/20 13:42:25 curt
+// Tweaked FDM interface.
+// Testing check sum support for NMEA serial output.
+//
// Revision 1.61 1999/01/08 03:23:57 curt
// Beginning work on compensating for sim time vs. real world time "jitter".
//
// $GPRMC,HHMMSS,A,DDMM.MMM,N,DDDMM.MMM,W,XXX.X,XXX.X,DDMMYY,XXX.X,E*XX
sprintf( rmc, "GPRMC,%s,A,%s,%s,%s,%s,%s,0.000,E",
utc, lat, lon, speed, heading, date );
- sprintf( rmc_sum, "%02X", 0 /*calc_nmea_cksum(rmc)*/ );
+ sprintf( rmc_sum, "%02X", calc_nmea_cksum(rmc) );
sprintf( gga, "GPGGA,%s,%s,%s,1,,,%s,F,,,,",
utc, lat, lon, altitude_ft );
- sprintf( gga_sum, "%02X", 0 /*calc_nmea_cksum(gga)*/ );
+ sprintf( gga_sum, "%02X", calc_nmea_cksum(gga) );
FG_LOG( FG_SERIAL, FG_DEBUG, rmc );
// $Log$
+// Revision 1.9 1999/01/20 13:42:26 curt
+// Tweaked FDM interface.
+// Testing check sum support for NMEA serial output.
+//
// Revision 1.8 1999/01/19 20:57:04 curt
// MacOS portability changes contributed by "Robert Puyol" <puyol@abvent.fr>
//