]> git.mxchange.org Git - flightgear.git/blobdiff - src/Instrumentation/dme.cxx
ignore resets for now because every z/Z key press would trigger a call to NOAA. We...
[flightgear.git] / src / Instrumentation / dme.cxx
index afc3f1efd9ad92030aa577aa4b1dec81cd8fe7a3..2bd93b3e46480664abbfda4830a23c4f396573e1 100644 (file)
@@ -30,6 +30,8 @@ adjust_range (double transmitter_elevation_ft, double aircraft_altitude_ft,
     double range_nm = 1.23 * sqrt(delta_elevation_ft);
     if (range_nm > max_range_nm)
         range_nm = max_range_nm;
+    else if (range_nm < 20.0)
+        range_nm = 20.0;
     double rand = sg_random();
     return range_nm + (range_nm * rand * rand);
 }
@@ -54,7 +56,7 @@ DME::init ()
 {
     _longitude_node = fgGetNode("/position/longitude-deg", true);
     _latitude_node = fgGetNode("/position/latitude-deg", true);
-    _altitude_node = fgGetNode("/position/altitude-deg", true);
+    _altitude_node = fgGetNode("/position/altitude-ft", true);
     _serviceable_node = fgGetNode("/instrumentation/dme/serviceable", true);
     _electrical_node = fgGetNode("/systems/electrical/outputs/dme", true);
     _source_node = fgGetNode("/instrumentation/dme/frequencies/source", true);
@@ -93,7 +95,7 @@ DME::update (double delta_time_sec)
     double latitude_rad =
         _latitude_node->getDoubleValue() * SGD_DEGREES_TO_RADIANS;
     double altitude_m =
-        _altitude_node->getDoubleValue() * SGD_DEGREES_TO_RADIANS;
+        _altitude_node->getDoubleValue() * SG_FEET_TO_METER;
 
                                 // On timeout, scan again
     _time_before_search_sec -= delta_time_sec;
@@ -151,7 +153,7 @@ DME::search (double frequency_mhz, double longitude_rad,
                                               longitude_rad,
                                               latitude_rad,
                                               altitude_m);
-    if (ils != 0 && ils->get_has_dme()) {
+    if (ils !=0 && ils->get_has_dme()) {
         _transmitter_valid = true;
         _transmitter = Point3D(ils->get_dme_x(),
                                ils->get_dme_y(),
@@ -166,7 +168,6 @@ DME::search (double frequency_mhz, double longitude_rad,
                                               longitude_rad,
                                               latitude_rad,
                                               altitude_m);
-    if (nav != 0)
     if (nav != 0 && nav->get_has_dme()) {
         _transmitter_valid = true;
         _transmitter = Point3D(nav->get_x(),