]> git.mxchange.org Git - flightgear.git/blobdiff - src/Navaids/testnavs.cxx
Added static port system and a new altimeter model connected to it.
[flightgear.git] / src / Navaids / testnavs.cxx
index 920249a3aa82dc80855f0c390857eeb00d2dd6a6..a6b839f4443671553bef28568adc50288f08586e 100644 (file)
@@ -3,13 +3,19 @@
 #include "fixlist.hxx"
 #include "ilslist.hxx"
 #include "navlist.hxx"
+#include "mkrbeacons.hxx"
+
+// change this!
+const string FG_DATA_DIR("/usr/local/lib/FlightGear");
 
 int main() {
     double heading, dist;
 
     current_navlist = new FGNavList;
-    SGPath p_nav( "/home/curt/FlightGear/Navaids/default.nav" );
+    SGPath p_nav( FG_DATA_DIR + "/Navaids/default.nav" );
+
     current_navlist->init( p_nav );
+       
     FGNav n;
     if ( current_navlist->query( -93.2 * SG_DEGREES_TO_RADIANS,
                                  45.14 * SG_DEGREES_TO_RADIANS,
@@ -21,8 +27,24 @@ int main() {
        cout << "not picking up vor. :-(" << endl;
     }
 
+    FGNav dcs;
+    if (current_navlist->findByIdent("DCS", -3.3 * SG_DEGREES_TO_RADIANS,
+                                     55.9 * SG_DEGREES_TO_RADIANS, &dcs)) {
+                                               
+        cout << "Found DCS by ident" << endl;
+        if (dcs.get_freq() != 11520)
+            cout << "Frequency for DCS VOR is wrong (should be 115.20), it's " 
+                 << dcs.get_freq() << endl;
+    } else {
+        cout << "couldn't locate DCS (Dean-Cross) VOR" << endl;
+    }
+       
+    // we have to init the marker beacon storage before we parse the ILS file
+    current_beacons = new FGMarkerBeacons;
+    current_beacons->init();
+       
     current_ilslist = new FGILSList;
-    SGPath p_ils( "/home/curt/FlightGear/Navaids/default.ils" );
+    SGPath p_ils( FG_DATA_DIR + "/Navaids/default.ils" );
     current_ilslist->init( p_ils );
     FGILS i;
     if ( current_ilslist->query( -93.1 * SG_DEGREES_TO_RADIANS,
@@ -37,16 +59,21 @@ int main() {
     }
 
     current_fixlist = new FGFixList;
-    SGPath p_fix( "/home/curt/FlightGear/Navaids/default.fix" );
+    SGPath p_fix( FG_DATA_DIR + "/Navaids/default.fix" );
     current_fixlist->init( p_fix );
     FGFix fix;
-    if ( current_fixlist->query( "SHELL", -82 * SG_DEGREES_TO_RADIANS,
-                                 41 * SG_DEGREES_TO_RADIANS, 3000,
+       
+    // attempting to get the position relative to the OTR VOR; heading
+    // should be 108 degrees, distance 74nm (according to my SimCharts
+    // v1.5)
+    if ( current_fixlist->query( "DOGGA", -0.103 * SG_DEGREES_TO_RADIANS,
+                                 53.698 * SG_DEGREES_TO_RADIANS, 3000,
                                 &fix, &heading, &dist) )
     {
        cout << "Found a matching fix" << endl;
        cout << " id = " << fix.get_ident() << endl;
-       cout << " heading = " << heading << " dist = " << dist << endl;
+       cout << " heading = " << heading << " dist = " << dist * SG_METER_TO_NM
+             << endl;
     } else {
        cout << "did not find fix. :-(" << endl;
     }