net->elevator_trim = node->getDoubleValue( "elevator-trim" );
net->rudder = node->getDoubleValue( "rudder" );
net->flaps = node->getDoubleValue( "flaps" );
- node = fgGetNode("/controls", true);
net->flaps_power
- = node->getDoubleValue( "/systems/electrical/outputs/flaps",
- 1.0 ) >= 1.0;
+ = fgGetDouble( "/systems/electrical/outputs/flaps", 1.0 ) >= 1.0;
+ net->flap_motor_ok = node->getBoolValue( "flaps-serviceable" );
+
net->num_engines = FGNetCtrls::FG_MAX_ENGINES;
for ( i = 0; i < FGNetCtrls::FG_MAX_ENGINES; ++i ) {
// Controls
htond(net->rudder);
htond(net->flaps);
net->flaps_power = htonl(net->flaps_power);
+ net->flap_motor_ok = htonl(net->flap_motor_ok);
for ( i = 0; i < FGNetCtrls::FG_MAX_ENGINES; ++i ) {
net->magnetos[i] = htonl(net->magnetos[i]);
net->starter_power[i] = htonl(net->starter_power[i]);
htond(net->rudder);
htond(net->flaps);
net->flaps_power = htonl(net->flaps_power);
+ net->flap_motor_ok = htonl(net->flap_motor_ok);
net->num_engines = htonl(net->num_engines);
for ( i = 0; i < net->num_engines; ++i ) {
net->magnetos[i] = htonl(net->magnetos[i]);
node->setDoubleValue( "elevator-trim", net->elevator_trim );
node->setDoubleValue( "rudder", net->rudder );
node->setDoubleValue( "flaps", net->flaps );
-
fgSetBool( "/systems/electrical/outputs/flaps", net->flaps_power );
+ node->setBoolValue( "flaps-serviceable", net->flap_motor_ok );
for ( i = 0; i < FGNetCtrls::FG_MAX_ENGINES; ++i ) {
// Controls
# error This library requires C++
#endif
-const int FG_NET_CTRLS_VERSION = 15;
+const int FG_NET_CTRLS_VERSION = 16;
// Define a structure containing the control parameters
// Aero control faults
bool flaps_power; // true = power available
+ bool flap_motor_ok;
// Engine controls
int num_engines; // number of valid engines
= weight( ctrls1.elevator_trim, ctrls2.elevator_trim, ratio );
result.ctrls.rudder = weight( ctrls1.rudder, ctrls2.rudder, ratio );
result.ctrls.flaps = weight( ctrls1.flaps, ctrls2.flaps, ratio );
- result.ctrls.flaps_power
- = weight( ctrls1.flaps_power, ctrls2.flaps_power, ratio );
+ result.ctrls.flaps_power = ctrls1.flaps_power;
+ result.ctrls.flap_motor_ok = ctrls1.flap_motor_ok;
// Engine controls
for ( i = 0; i < ctrls1.num_engines; ++i ) {