X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCockpit%2Fradiostack.hxx;h=c2031790322f9a2ffc9de23e89dbbd0fe9c6368d;hb=29275ce1ecf9c4ea302aacca8c5ae5d4d3319a17;hp=dc4472564514d8c248d34f3eaf515786ebdbde3d;hpb=66650e4148a2fcd98a3f004613266fd499a3ee13;p=flightgear.git diff --git a/src/Cockpit/radiostack.hxx b/src/Cockpit/radiostack.hxx index dc4472564..c20317903 100644 --- a/src/Cockpit/radiostack.hxx +++ b/src/Cockpit/radiostack.hxx @@ -25,13 +25,22 @@ #define _FG_RADIOSTACK_HXX +#include
+#include
+ #include #include #include -class FGRadioStack { + +class FGRadioStack : public FGSubsystem +{ + + SGValue * latitudeVal; + SGValue * longitudeVal; + SGValue * altitudeVal; bool need_update; @@ -66,7 +75,7 @@ class FGRadioStack { double nav1_effective_range; double nav1_heading; double nav1_target_gs; - int nav1_offset; + double nav1_magvar; bool nav2_valid; bool nav2_inrange; @@ -99,7 +108,7 @@ class FGRadioStack { double nav2_effective_range; double nav2_heading; double nav2_target_gs; - int nav2_offset; + double nav2_magvar; bool adf_valid; bool adf_inrange; @@ -121,11 +130,13 @@ public: FGRadioStack(); ~FGRadioStack(); - // Update nav/adf radios based on current postition - void search( double lon, double lat, double elev ); + void init (); + void bind (); + void unbind (); + void update (); // Update nav/adf radios based on current postition - void update( double lon, double lat, double elev ); + void search (); // NAV1 Setters inline void set_nav1_freq( double freq ) { @@ -170,7 +181,12 @@ public: // Calculated values. inline bool get_nav1_inrange() const { return nav1_inrange; } + bool get_nav1_to_flag () const; + bool get_nav1_from_flag () const; inline bool get_nav1_has_dme() const { return nav1_has_dme; } + inline bool get_nav1_dme_inrange () const { + return nav1_inrange && nav1_has_dme; + } inline bool get_nav1_has_gs() const { return nav1_has_gs; } inline bool get_nav1_loc() const { return nav1_loc; } inline double get_nav1_loclon() const { return nav1_loclon; } @@ -186,9 +202,17 @@ public: inline double get_nav1_heading() const { return nav1_heading; } inline double get_nav1_radial() const { return nav1_radial; } inline double get_nav1_target_gs() const { return nav1_target_gs; } + inline double get_nav1_magvar() const { return nav1_magvar; } + double get_nav1_heading_needle_deflection() const; + double get_nav1_gs_needle_deflection() const; inline bool get_nav2_inrange() const { return nav2_inrange; } + bool get_nav2_to_flag () const; + bool get_nav2_from_flag () const; inline bool get_nav2_has_dme() const { return nav2_has_dme; } + inline bool get_nav2_dme_inrange () const { + return nav2_inrange && nav2_has_dme; + } inline bool get_nav2_has_gs() const { return nav2_has_gs; } inline bool get_nav2_loc() const { return nav2_loc; } inline double get_nav2_loclon() const { return nav2_loclon; } @@ -204,6 +228,9 @@ public: inline double get_nav2_heading() const { return nav2_heading; } inline double get_nav2_radial() const { return nav2_radial; } inline double get_nav2_target_gs() const { return nav2_target_gs; } + inline double get_nav2_magvar() const { return nav2_magvar; } + double get_nav2_heading_needle_deflection() const; + double get_nav2_gs_needle_deflection() const; inline bool get_adf_inrange() const { return adf_inrange; } inline double get_adf_lon() const { return adf_lon; } @@ -214,9 +241,4 @@ public: extern FGRadioStack *current_radiostack; - -// periodic radio station search wrapper -void fgRadioSearch( void ); - - #endif // _FG_RADIOSTACK_HXX