#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)),
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 );
}
public:
- Altimeter (SGPropertyNode *node, double quantum = 0);
+ Altimeter (SGPropertyNode *node, const std::string& aDefaultName, double quantum = 0);
virtual ~Altimeter ();
virtual void init ();
void setSettingHPa( double value );
private:
+ std::string _name;
+ int _num;
SGPropertyNode_ptr _rootNode;
string _static_pressure;
double _tau;
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 ) );
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 ) );