Altimeter node tweaks.
Fix the default name based on whether a regular altimeter or encoder was requested, and delay creating the node until bind(), ctor is too early.
This commit is contained in:
parent
06dd219a83
commit
915626afa7
3 changed files with 11 additions and 9 deletions
|
@ -30,12 +30,9 @@
|
|||
|
||||
#include "altimeter.hxx"
|
||||
|
||||
Altimeter::Altimeter ( SGPropertyNode *node, double quantum )
|
||||
: _rootNode(
|
||||
fgGetNode("/instrumentation",true)->
|
||||
getChild( node->getStringValue("name", "altimeter"),
|
||||
node->getIntValue("number", 0),
|
||||
true)),
|
||||
Altimeter::Altimeter ( SGPropertyNode *node, const std::string& aDefaultName, double quantum ) :
|
||||
_name(node->getStringValue("name", aDefaultName.c_str())),
|
||||
_num(node->getIntValue("number", 0)),
|
||||
_static_pressure(node->getStringValue("static-pressure", "/systems/static/pressure-inhg")),
|
||||
_tau(node->getDoubleValue("tau", 0.1)),
|
||||
_quantum(node->getDoubleValue("quantum", quantum)),
|
||||
|
@ -106,6 +103,9 @@ Altimeter::reinit ()
|
|||
void
|
||||
Altimeter::bind()
|
||||
{
|
||||
_rootNode = fgGetNode("/instrumentation/" + _name, _num, true );
|
||||
_tiedProperties.setRoot(_rootNode);
|
||||
|
||||
_tiedProperties.Tie("setting-inhg", this, &Altimeter::getSettingInHg, &Altimeter::setSettingInHg );
|
||||
_tiedProperties.Tie("setting-hpa", this, &Altimeter::getSettingHPa, &Altimeter::setSettingHPa );
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ class Altimeter : public SGSubsystem
|
|||
|
||||
public:
|
||||
|
||||
Altimeter (SGPropertyNode *node, double quantum = 0);
|
||||
Altimeter (SGPropertyNode *node, const std::string& aDefaultName, double quantum = 0);
|
||||
virtual ~Altimeter ();
|
||||
|
||||
virtual void init ();
|
||||
|
@ -47,6 +47,8 @@ public:
|
|||
void setSettingHPa( double value );
|
||||
|
||||
private:
|
||||
std::string _name;
|
||||
int _num;
|
||||
SGPropertyNode_ptr _rootNode;
|
||||
string _static_pressure;
|
||||
double _tau;
|
||||
|
|
|
@ -127,7 +127,7 @@ bool FGInstrumentMgr::build (SGPropertyNode* config_props)
|
|||
set_subsystem( id, new AirspeedIndicator( node ) );
|
||||
|
||||
} else if ( name == "altimeter" ) {
|
||||
set_subsystem( id, new Altimeter( node ) );
|
||||
set_subsystem( id, new Altimeter( node, "altimeter" ) );
|
||||
|
||||
} else if ( name == "attitude-indicator" ) {
|
||||
set_subsystem( id, new AttitudeIndicator( node ) );
|
||||
|
@ -139,7 +139,7 @@ bool FGInstrumentMgr::build (SGPropertyNode* config_props)
|
|||
set_subsystem( id, new DME( node ), 1.0 );
|
||||
|
||||
} else if ( name == "encoder" ) {
|
||||
set_subsystem( id, new Altimeter( node ), 0.15 );
|
||||
set_subsystem( id, new Altimeter( node, "encoder" ), 0.15 );
|
||||
|
||||
} else if ( name == "gps" ) {
|
||||
set_subsystem( id, new GPS( node ) );
|
||||
|
|
Loading…
Add table
Reference in a new issue