X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FInstrumentation%2Fturn_indicator.cxx;h=973b4054aad99d6f46df5edf915ace15cf5f8536;hb=bb2b03c7e392e107aeaf7dbc4eecc59064b28512;hp=be03a8879beadb07fe2cc294ec788c604831da82;hpb=e9b70e3ab8ab098a5a59f5ea2c13bed9e8c5695c;p=flightgear.git diff --git a/src/Instrumentation/turn_indicator.cxx b/src/Instrumentation/turn_indicator.cxx index be03a8879..973b4054a 100644 --- a/src/Instrumentation/turn_indicator.cxx +++ b/src/Instrumentation/turn_indicator.cxx @@ -4,8 +4,8 @@ // This file is in the Public Domain and comes with no warranty. #include -#include STL_IOSTREAM -#include STL_STRING +#include +#include #include #include "turn_indicator.hxx" @@ -20,29 +20,8 @@ TurnIndicator::TurnIndicator ( SGPropertyNode *node) : _last_rate(0), - name("turn-indicator"), - num(0) -{ - int i; - for ( i = 0; i < node->nChildren(); ++i ) { - SGPropertyNode *child = node->getChild(i); - string cname = child->getName(); - string cval = child->getStringValue(); - if ( cname == "name" ) { - name = cval; - } else if ( cname == "number" ) { - num = child->getIntValue(); - } else { - SG_LOG( SG_INSTR, SG_WARN, "Error in turn-indicator config logic" ); - if ( name.length() ) { - SG_LOG( SG_INSTR, SG_WARN, "Section = " << name ); - } - } - } -} - -TurnIndicator::TurnIndicator () : - _last_rate(0) + _name(node->getStringValue("name", "turn-indicator")), + _num(node->getIntValue("number", 0)) { } @@ -54,9 +33,9 @@ void TurnIndicator::init () { string branch; - branch = "/instrumentation/" + name; + branch = "/instrumentation/" + _name; - SGPropertyNode *node = fgGetNode(branch.c_str(), num, true ); + SGPropertyNode *node = fgGetNode(branch.c_str(), _num, true ); _roll_rate_node = fgGetNode("/orientation/roll-rate-degps", true); _yaw_rate_node = fgGetNode("/orientation/yaw-rate-degps", true); _electric_current_node = @@ -69,8 +48,8 @@ TurnIndicator::bind () { std::ostringstream temp; string branch; - temp << num; - branch = "/instrumentation/" + name + "[" + temp.str() + "]"; + temp << _num; + branch = "/instrumentation/" + _name + "[" + temp.str() + "]"; fgTie((branch + "/serviceable").c_str(), &_gyro, &Gyro::is_serviceable, &Gyro::set_serviceable); @@ -83,8 +62,8 @@ TurnIndicator::unbind () { std::ostringstream temp; string branch; - temp << num; - branch = "/instrumentation/" + name + "[" + temp.str() + "]"; + temp << _num; + branch = "/instrumentation/" + _name + "[" + temp.str() + "]"; fgUntie((branch + "/serviceable").c_str()); fgUntie((branch + "/serviceable").c_str()); @@ -94,7 +73,8 @@ void TurnIndicator::update (double dt) { // Get the spin from the gyro - _gyro.set_power_norm(_electric_current_node->getDoubleValue()/60.0); + double power = _electric_current_node->getDoubleValue() / 12.0; + _gyro.set_power_norm(power); _gyro.update(dt); double spin = _gyro.get_spin_norm();