X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FSystems%2Fstatic.cxx;h=f58d1ce3cd457a675caa914515a2eaef4bf0a4b0;hb=81cd33e2fa9b5930784d3aed920eea0e3038e7f7;hp=d3cbbbf361d7090053355cdb91603f607179bd7d;hpb=7e6bc192bad98454187ffe2b5521d28fe6b722a4;p=flightgear.git diff --git a/src/Systems/static.cxx b/src/Systems/static.cxx index d3cbbbf36..f58d1ce3c 100644 --- a/src/Systems/static.cxx +++ b/src/Systems/static.cxx @@ -3,7 +3,14 @@ // // This file is in the Public Domain and comes with no warranty. +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include "static.hxx" + +#include + #include
#include
@@ -24,13 +31,21 @@ StaticSystem::~StaticSystem () void StaticSystem::init () { - string branch; - branch = "/systems/" + _name; + std::string branch = "/systems/" + _name; SGPropertyNode *node = fgGetNode(branch.c_str(), _num, true ); _serviceable_node = node->getChild("serviceable", 0, true); _pressure_in_node = fgGetNode("/environment/pressure-inhg", true); _pressure_out_node = node->getChild("pressure-inhg", 0, true); + + reinit(); +} + +void +StaticSystem::reinit () +{ + // start with settled static pressure + _pressure_out_node->setDoubleValue(_pressure_in_node->getDoubleValue()); } void @@ -50,7 +65,6 @@ StaticSystem::update (double dt) double trat = _tau ? dt/_tau : 100; double target = _pressure_in_node->getDoubleValue(); double current = _pressure_out_node->getDoubleValue(); - // double delta = target - current; _pressure_out_node->setDoubleValue(fgGetLowPass(current, target, trat)); } }