GPWS: change default source to match all FDMs
Provide another built-in altitude source to hook a radio-altimeter instrument
This commit is contained in:
parent
02efa3c8ea
commit
7a2e1be5bf
2 changed files with 16 additions and 9 deletions
|
@ -187,6 +187,7 @@ MK_VIII::PropertiesHandler::init ()
|
||||||
mk_node(altitude) = fgGetNode("/position/altitude-ft", true);
|
mk_node(altitude) = fgGetNode("/position/altitude-ft", true);
|
||||||
mk_node(altitude_agl) = fgGetNode("/position/altitude-agl-ft", true);
|
mk_node(altitude_agl) = fgGetNode("/position/altitude-agl-ft", true);
|
||||||
mk_node(altitude_gear_agl) = fgGetNode("/position/gear-agl-ft", true);
|
mk_node(altitude_gear_agl) = fgGetNode("/position/gear-agl-ft", true);
|
||||||
|
mk_node(altitude_radar_agl) = fgGetNode("/instrumentation/radar-altimeter/radar-altitude-ft", true);
|
||||||
mk_node(orientation_roll) = fgGetNode("/orientation/roll-deg", true);
|
mk_node(orientation_roll) = fgGetNode("/orientation/roll-deg", true);
|
||||||
mk_node(asi_serviceable) = fgGetNode("/instrumentation/airspeed-indicator/serviceable", true);
|
mk_node(asi_serviceable) = fgGetNode("/instrumentation/airspeed-indicator/serviceable", true);
|
||||||
mk_node(asi_speed) = fgGetNode("/instrumentation/airspeed-indicator/indicated-speed-kt", true);
|
mk_node(asi_speed) = fgGetNode("/instrumentation/airspeed-indicator/indicated-speed-kt", true);
|
||||||
|
@ -719,10 +720,7 @@ MK_VIII::ConfigurationModule::read_options_select_group_1 (int value)
|
||||||
bool
|
bool
|
||||||
MK_VIII::ConfigurationModule::read_radio_altitude_input_select (int value)
|
MK_VIII::ConfigurationModule::read_radio_altitude_input_select (int value)
|
||||||
{
|
{
|
||||||
if (value >= 0 && value <= 2)
|
mk->io_handler.conf.altitude_source = value;
|
||||||
mk->io_handler.conf.use_gear_altitude = true;
|
|
||||||
else
|
|
||||||
mk->io_handler.conf.use_gear_altitude = false;
|
|
||||||
return (value >= 0 && value <= 4) || (value >= 251 && value <= 255);
|
return (value >= 0 && value <= 4) || (value >= 251 && value <= 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1167,10 +1165,18 @@ MK_VIII::IOHandler::update_inputs ()
|
||||||
if (mk_ainput_feed(radio_altitude))
|
if (mk_ainput_feed(radio_altitude))
|
||||||
{
|
{
|
||||||
double agl;
|
double agl;
|
||||||
if (conf.use_gear_altitude)
|
switch (conf.altitude_source)
|
||||||
agl = mk_node(altitude_gear_agl)->getDoubleValue();
|
{
|
||||||
else
|
case 3:
|
||||||
agl = mk_node(altitude_agl)->getDoubleValue();
|
agl = mk_node(altitude_gear_agl)->getDoubleValue();
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
agl = mk_node(altitude_radar_agl)->getDoubleValue();
|
||||||
|
break;
|
||||||
|
default: // 0,1,2 (and any currently unsupported values)
|
||||||
|
agl = mk_node(altitude_agl)->getDoubleValue();
|
||||||
|
break;
|
||||||
|
}
|
||||||
// Some flight models may return negative values when on the
|
// Some flight models may return negative values when on the
|
||||||
// ground or after a crash; do not allow them.
|
// ground or after a crash; do not allow them.
|
||||||
mk_ainput(radio_altitude).set(SG_MAX2(0.0, agl));
|
mk_ainput(radio_altitude).set(SG_MAX2(0.0, agl));
|
||||||
|
|
|
@ -201,6 +201,7 @@ class MK_VIII : public SGSubsystem
|
||||||
SGPropertyNode_ptr altitude;
|
SGPropertyNode_ptr altitude;
|
||||||
SGPropertyNode_ptr altitude_agl;
|
SGPropertyNode_ptr altitude_agl;
|
||||||
SGPropertyNode_ptr altitude_gear_agl;
|
SGPropertyNode_ptr altitude_gear_agl;
|
||||||
|
SGPropertyNode_ptr altitude_radar_agl;
|
||||||
SGPropertyNode_ptr orientation_roll;
|
SGPropertyNode_ptr orientation_roll;
|
||||||
SGPropertyNode_ptr asi_serviceable;
|
SGPropertyNode_ptr asi_serviceable;
|
||||||
SGPropertyNode_ptr asi_speed;
|
SGPropertyNode_ptr asi_speed;
|
||||||
|
@ -481,7 +482,7 @@ public:
|
||||||
bool alternate_steep_approach;
|
bool alternate_steep_approach;
|
||||||
bool use_internal_gps;
|
bool use_internal_gps;
|
||||||
bool localizer_enabled;
|
bool localizer_enabled;
|
||||||
bool use_gear_altitude;
|
int altitude_source;
|
||||||
bool use_attitude_indicator;
|
bool use_attitude_indicator;
|
||||||
} conf;
|
} conf;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue