FGInterface::FGInterface( double dt ) {
_setup();
- delta_t = dt;
- remainder = elapsed = multi_loop = 0;
+// delta_t = dt;
+// remainder = elapsed = multi_loop = 0;
+ remainder = 0;
}
// Destructor
}
+int
+FGInterface::_calc_multiloop (double dt)
+{
+ int hz = fgGetInt("/sim/model-hz");
+ int speedup = fgGetInt("/sim/speed-up");
+
+ dt += remainder;
+ remainder = 0;
+ double ml = dt * hz;
+ int multiloop = int(floor(ml));
+ remainder = (ml - multiloop) / hz;
+ return (multiloop * speedup);
+}
+
+
/**
* Set default values for the state of the FDM.
*
set_inited( true );
- stamp();
- set_remainder( 0 );
+// stamp();
+// set_remainder( 0 );
// Set initial position
SG_LOG( SG_FLIGHT, SG_INFO, "...initializing position..." );
bound = true;
// Time management (read-only)
- fgTie("/fdm/time/delta_t", this,
- &FGInterface::get_delta_t); // read-only
- fgTie("/fdm/time/elapsed", this,
- &FGInterface::get_elapsed); // read-only
- fgTie("/fdm/time/remainder", this,
- &FGInterface::get_remainder); // read-only
- fgTie("/fdm/time/multi_loop", this,
- &FGInterface::get_multi_loop); // read-only
+// fgTie("/fdm/time/delta_t", this,
+// &FGInterface::get_delta_t); // read-only
+// fgTie("/fdm/time/elapsed", this,
+// &FGInterface::get_elapsed); // read-only
+// fgTie("/fdm/time/remainder", this,
+// &FGInterface::get_remainder); // read-only
+// fgTie("/fdm/time/multi_loop", this,
+// &FGInterface::get_multi_loop); // read-only
// Aircraft position
fgTie("/position/latitude-deg", this,
* Update the state of the FDM (i.e. run the equations of motion).
*/
void
-FGInterface::update (int dt)
+FGInterface::update (double dt)
{
SG_LOG(SG_FLIGHT, SG_ALERT, "dummy update() ... SHOULDN'T BE CALLED!");
}