#include "altimeter.hxx"
#include <Main/fg_props.hxx>
+#include <Main/util.hxx>
// Altitude based on pressure difference from sea level.
if (_serviceable_node->getBoolValue()) {
double pressure = _pressure_node->getDoubleValue();
double setting = _setting_node->getDoubleValue();
- _altitude_node
- ->setDoubleValue(_altitude_table->interpolate(setting-pressure));
+ double altitude =
+ fgGetLowPass(_altitude_node->getDoubleValue(),
+ _altitude_table->interpolate(setting - pressure),
+ dt * 10);
+ _altitude_node->setDoubleValue(altitude);
}
}
private:
- double _spin;
-
SGPropertyNode_ptr _serviceable_node;
SGPropertyNode_ptr _setting_node;
SGPropertyNode_ptr _pressure_node;
#include "static.hxx"
#include <Main/fg_props.hxx>
+#include <Main/util.hxx>
StaticSystem::StaticSystem ()
StaticSystem::update (double dt)
{
if (_serviceable_node->getBoolValue()) {
+
double target = _pressure_in_node->getDoubleValue();
double current = _pressure_out_node->getDoubleValue();
double delta = target - current;
- current += delta * dt;
- _pressure_out_node->setDoubleValue(current);
+ _pressure_out_node->setDoubleValue(fgGetLowPass(current, target, dt));
}
}