}
FGXMLAutopilot::Autopilot * ap = new FGXMLAutopilot::Autopilot( apNode, config );
ap->set_name( name );
- set_subsystem( name, ap );
+
+ double updateInterval = config->getDoubleValue( "update-interval-secs", 0.0 );
+ set_subsystem( name, ap, updateInterval );
_autopilotNames.push_back( name );
}
double NoiseSpikeFilterImplementation::compute( double dt, double input )
{
double delta = input - _output_1;
- if( delta == 0.0 ) return input; // trivial
+ if( fabs(delta) <= SGLimitsd::min() ) return input; // trivial
double maxChange = _rateOfChangeInput.get_value() * dt;
const PeriodicalValue * periodical = _digitalFilter->getPeriodicalValue();
double PeriodicalValue::normalizeSymmetric( double value ) const
{
- value = SGMiscd::normalizePeriodic( minPeriod->get_value(), maxPeriod->get_value(), value );
- double width_2 = (maxPeriod->get_value() - minPeriod->get_value())/2;
+ double minValue = minPeriod->get_value();
+ double maxValue = maxPeriod->get_value();
+
+ value = SGMiscd::normalizePeriodic( minValue, maxValue, value );
+ double width_2 = (maxValue - minValue)/2;
return value > width_2 ? width_2 - value : value;
}