min = new FGXMLAutoInput( n );
}
+ if( (n = node->getChild( "abs" )) != NULL ) {
+ abs = n->getBoolValue();
+ }
+
SGPropertyNode *valueNode = node->getChild( "value" );
if ( valueNode != NULL ) {
value = valueNode->getDoubleValue();
value = m;
}
- return value;
+ return abs ? fabs(value) : value;
}
FGXMLAutoComponent::FGXMLAutoComponent( SGPropertyNode * node ) :
- debug(false),
- name(""),
+ _condition( NULL ),
enable_prop( NULL ),
- passive_mode( fgGetNode("/autopilot/locks/passive-mode", true) ),
enable_value( NULL ),
+ passive_mode( fgGetNode("/autopilot/locks/passive-mode", true) ),
honor_passive( false ),
- enabled( false ),
- _condition( NULL ),
- feedback_if_disabled( false )
+ name(""),
+ feedback_if_disabled( false ),
+ debug(false),
+ enabled( false )
{
int i;
SGPropertyNode *prop;
FGPredictor::FGPredictor ( SGPropertyNode *node ):
- FGXMLAutoComponent( node )
+ FGXMLAutoComponent( node ),
+ average(0.0)
{
int i;
for ( i = 0; i < node->nChildren(); ++i ) {
if ( dt > 0.0 ) {
double current = (ivalue - last_value)/dt; // calculate current error change (per second)
- double average = dt < 1.0 ? ((1.0 - dt) * average + current * dt) : current;
+ average = dt < 1.0 ? ((1.0 - dt) * average + current * dt) : current;
// calculate output with filter gain adjustment
double output = ivalue +
" details.");
exit(-1);
}
- } catch (const sg_exception& exc) {
+ } catch (const sg_exception&) {
SG_LOG( SG_ALL, SG_ALERT, "Failed to load autopilot configuration: "
<< config.str() );
}