]> git.mxchange.org Git - flightgear.git/blobdiff - src/Instrumentation/navradio.hxx
Refactor morse and beacon as singleton
[flightgear.git] / src / Instrumentation / navradio.hxx
index 5cc368f1b47f3119540eab5b75a62a23de132c53..4b2e16918dde9ec5a08db85c84bc202713424646 100644 (file)
@@ -26,7 +26,6 @@
 
 
 #include <Main/fg_props.hxx>
-#include "Sound/morse.hxx"
 
 #include <simgear/compiler.h>
 #include <simgear/structure/subsystem_mgr.hxx>
@@ -41,8 +40,6 @@ typedef SGSharedPtr<FGNavRecord> FGNavRecordPtr;
 
 class FGNavRadio : public SGSubsystem, public SGPropertyChangeListener
 {
-    FGMorse morse;
-
     SGInterpTable *term_tbl;
     SGInterpTable *low_tbl;
     SGInterpTable *high_tbl;
@@ -102,6 +99,7 @@ class FGNavRadio : public SGSubsystem, public SGPropertyChangeListener
     SGPropertyNode_ptr gs_deflection_node;
     SGPropertyNode_ptr gs_deflection_deg_node;
     SGPropertyNode_ptr gs_deflection_norm_node;
+    SGPropertyNode_ptr gs_direct_node;
     SGPropertyNode_ptr gs_rate_of_climb_node;
     SGPropertyNode_ptr gs_rate_of_climb_fpm_node;
     SGPropertyNode_ptr gs_dist_node;
@@ -137,14 +135,11 @@ class FGNavRadio : public SGSubsystem, public SGPropertyChangeListener
     string dme_fx_name;
 
     double target_radial;
-    SGTimeStamp prev_time;
-    SGTimeStamp curr_time;
     double effective_range;
     double target_gs;
     double twist;
     double horiz_vel;
     double last_x;
-    double last_loc_dist;
     double last_xtrack_error;
     double xrate_ms;
     double _localizerWidth; // cached localizer width in degrees
@@ -155,7 +150,7 @@ class FGNavRadio : public SGSubsystem, public SGPropertyChangeListener
     // internal periodic station search timer
     double _time_before_search_sec;
 
-    SGVec3d _gsCart, _gsAxis, _gsVertical;
+    SGVec3d _gsCart, _gsAxis, _gsVertical, _gsBaseline;
 
     FGNavRecordPtr _dme;
     bool _dmeInRange;
@@ -166,6 +161,7 @@ class FGNavRadio : public SGSubsystem, public SGPropertyChangeListener
     double _cdiCrossTrackErrorM;
     double _gsNeedleDeflection;
     double _gsNeedleDeflectionNorm;
+    double _gsDirect;
     
     SGSharedPtr<SGSampleGroup> _sgr;
     std::vector<SGPropertyNode_ptr> _tiedNodes;
@@ -191,11 +187,6 @@ class FGNavRadio : public SGSubsystem, public SGPropertyChangeListener
     
     void clearOutputs();
 
-    /**
-     * Compute the localizer width in degrees - see implementation for 
-     * more information on the relevant standards and formulae.
-     */
-    double localizerWidth(FGNavRecord* aLOC);
     FGNavRecord* findPrimaryNavaid(const SGGeod& aPos, double aFreqMHz);
     
     /// accessor for tied, read-only 'operable' property