From 292c97fa430f3691b98ae624215665678f03d674 Mon Sep 17 00:00:00 2001 From: curt Date: Thu, 4 May 2000 15:53:03 +0000 Subject: [PATCH] Propogate colocated dme flag. --- src/Cockpit/radiostack.cxx | 5 ++++- src/Cockpit/radiostack.hxx | 4 ++++ src/FDM/JSBSim/filtersjb/FGGain.cpp | 8 ++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/Cockpit/radiostack.cxx b/src/Cockpit/radiostack.cxx index 456ef8427..d16b86f05 100644 --- a/src/Cockpit/radiostack.cxx +++ b/src/Cockpit/radiostack.cxx @@ -143,6 +143,7 @@ void FGRadioStack::search( double lon, double lat, double elev ) { if ( current_ilslist->query( lon, lat, elev, nav1_freq, &ils ) ) { nav1_valid = true; nav1_loc = true; + nav1_dme = true; nav1_lon = ils.get_loclon(); nav1_lat = ils.get_loclat(); @@ -160,7 +161,7 @@ void FGRadioStack::search( double lon, double lat, double elev ) { } else if ( current_navlist->query( lon, lat, elev, nav1_freq, &nav ) ) { nav1_valid = true; nav1_loc = false; - + nav1_dme = nav.get_dme(); nav1_lon = nav.get_lon(); nav1_lat = nav.get_lat(); nav1_elev = nav.get_elev(); @@ -180,6 +181,7 @@ void FGRadioStack::search( double lon, double lat, double elev ) { if ( current_ilslist->query( lon, lat, elev, nav2_freq, &ils ) ) { nav2_valid = true; nav2_loc = true; + nav2_dme = true; nav2_lon = ils.get_loclon(); nav2_lat = ils.get_loclat(); @@ -197,6 +199,7 @@ void FGRadioStack::search( double lon, double lat, double elev ) { } else if ( current_navlist->query( lon, lat, elev, nav2_freq, &nav ) ) { nav2_valid = true; nav2_loc = false; + nav2_dme = nav.get_dme(); nav2_lon = nav.get_lon(); nav2_lat = nav.get_lat(); diff --git a/src/Cockpit/radiostack.hxx b/src/Cockpit/radiostack.hxx index d236a9ed0..f66529e09 100644 --- a/src/Cockpit/radiostack.hxx +++ b/src/Cockpit/radiostack.hxx @@ -37,6 +37,7 @@ class FGRadioStack { bool nav1_valid; bool nav1_inrange; + bool nav1_dme; bool nav1_loc; double nav1_freq; double nav1_alt_freq; @@ -55,6 +56,7 @@ class FGRadioStack { bool nav2_valid; bool nav2_inrange; + bool nav2_dme; bool nav2_loc; double nav2_freq; double nav2_alt_freq; @@ -140,6 +142,7 @@ public: // Calculated values. inline bool get_nav1_inrange() const { return nav1_inrange; } + inline bool get_nav1_dme() const { return nav1_dme; } inline bool get_nav1_loc() const { return nav1_loc; } inline double get_nav1_lon() const { return nav1_lon; } inline double get_nav1_lat() const { return nav1_lat; } @@ -150,6 +153,7 @@ public: inline double get_nav1_target_gs() const { return nav1_target_gs; } inline bool get_nav2_inrange() const { return nav2_inrange; } + inline bool get_nav2_dme() const { return nav2_dme; } inline bool get_nav2_loc() const { return nav2_loc; } inline double get_nav2_lon() const { return nav2_lon; } inline double get_nav2_lat() const { return nav2_lat; } diff --git a/src/FDM/JSBSim/filtersjb/FGGain.cpp b/src/FDM/JSBSim/filtersjb/FGGain.cpp index 129900649..f2684ac6f 100644 --- a/src/FDM/JSBSim/filtersjb/FGGain.cpp +++ b/src/FDM/JSBSim/filtersjb/FGGain.cpp @@ -86,6 +86,10 @@ FGGain::FGGain(FGFCS* fcs, FGConfigFile* AC_cfg) : FGFCSComponent(fcs), *AC_cfg >> Max; } else if (token == "SCHEDULED_BY") { *AC_cfg >> ScheduledBy; + } else if (token == "OUTPUT") { + IsOutput = true; + *AC_cfg >> sOutputIdx; + OutputIdx = fcs->GetState()->GetParameterIndex(sOutputIdx); } else { AC_cfg->ResetLineIndexToZero(); lookup = new float[2]; @@ -137,8 +141,12 @@ bool FGGain::Run(void ) if (Output >= 0.0) Output = Input * Max; else Output = Input * (-Min); + + Output *= Gain; } + if (IsOutput) SetOutput(); + return true; } -- 2.39.5