]> git.mxchange.org Git - flightgear.git/commitdiff
Propogate colocated dme flag.
authorcurt <curt>
Thu, 4 May 2000 15:53:03 +0000 (15:53 +0000)
committercurt <curt>
Thu, 4 May 2000 15:53:03 +0000 (15:53 +0000)
src/Cockpit/radiostack.cxx
src/Cockpit/radiostack.hxx
src/FDM/JSBSim/filtersjb/FGGain.cpp

index 456ef8427aa5b3c903c8ed1471262e251f938f6c..d16b86f05838eeaf59154f2941f59b206069f833 100644 (file)
@@ -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();
index d236a9ed0a507dc48f403a7e23bbf5fb8d10a8be..f66529e09ef9249335f2571a982a8977e318b550 100644 (file)
@@ -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; }
index 12990064995830e6e52e6d9f21173370669c9030..f2684ac6fe851d71ff9ae7201a1cbd722667e351 100644 (file)
@@ -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;
 }