X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCockpit%2Fradiostack.hxx;h=c2031790322f9a2ffc9de23e89dbbd0fe9c6368d;hb=29275ce1ecf9c4ea302aacca8c5ae5d4d3319a17;hp=d236a9ed0a507dc48f403a7e23bbf5fb8d10a8be;hpb=6bc7ed9ba2de059b276dc00e0e1fe8aa340b191c;p=flightgear.git diff --git a/src/Cockpit/radiostack.hxx b/src/Cockpit/radiostack.hxx index d236a9ed0..c20317903 100644 --- a/src/Cockpit/radiostack.hxx +++ b/src/Cockpit/radiostack.hxx @@ -25,51 +25,90 @@ #define _FG_RADIOSTACK_HXX +#include
+#include
+ #include #include #include -class FGRadioStack { + +class FGRadioStack : public FGSubsystem +{ + + SGValue * latitudeVal; + SGValue * longitudeVal; + SGValue * altitudeVal; bool need_update; bool nav1_valid; bool nav1_inrange; + bool nav1_has_dme; + bool nav1_has_gs; bool nav1_loc; double nav1_freq; double nav1_alt_freq; double nav1_radial; double nav1_sel_radial; - double nav1_lon; - double nav1_lat; + double nav1_loclon; + double nav1_loclat; + double nav1_x; + double nav1_y; + double nav1_z; + double nav1_loc_dist; + double nav1_gslon; + double nav1_gslat; + double nav1_gs_x; + double nav1_gs_y; + double nav1_gs_z; + double nav1_gs_dist; + double nav1_dmelon; + double nav1_dmelat; + double nav1_dme_x; + double nav1_dme_y; + double nav1_dme_z; + double nav1_dme_dist; double nav1_elev; double nav1_effective_range; - double nav1_dist; double nav1_heading; double nav1_target_gs; - double nav1_x; - double nav1_y; - double nav1_z; + double nav1_magvar; bool nav2_valid; bool nav2_inrange; + bool nav2_has_dme; + bool nav2_has_gs; bool nav2_loc; double nav2_freq; double nav2_alt_freq; double nav2_radial; double nav2_sel_radial; - double nav2_lon; - double nav2_lat; + double nav2_loclon; + double nav2_loclat; + double nav2_x; + double nav2_y; + double nav2_z; + double nav2_loc_dist; + double nav2_gslon; + double nav2_gslat; + double nav2_gs_x; + double nav2_gs_y; + double nav2_gs_z; + double nav2_gs_dist; + double nav2_dmelon; + double nav2_dmelat; + double nav2_dme_x; + double nav2_dme_y; + double nav2_dme_z; + double nav2_dme_dist; double nav2_elev; double nav2_effective_range; - double nav2_dist; double nav2_heading; double nav2_target_gs; - double nav2_x; - double nav2_y; - double nav2_z; + double nav2_magvar; bool adf_valid; bool adf_inrange; @@ -91,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 ) { @@ -140,24 +181,56 @@ 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_lon() const { return nav1_lon; } - inline double get_nav1_lat() const { return nav1_lat; } + inline double get_nav1_loclon() const { return nav1_loclon; } + inline double get_nav1_loclat() const { return nav1_loclat; } + inline double get_nav1_loc_dist() const { return nav1_loc_dist; } + inline double get_nav1_gslon() const { return nav1_gslon; } + inline double get_nav1_gslat() const { return nav1_gslat; } + inline double get_nav1_gs_dist() const { return nav1_gs_dist; } + inline double get_nav1_dmelon() const { return nav1_dmelon; } + inline double get_nav1_dmelat() const { return nav1_dmelat; } + inline double get_nav1_dme_dist() const { return nav1_dme_dist; } inline double get_nav1_elev() const { return nav1_elev; } - inline double get_nav1_dist() const { return nav1_dist; } 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_lon() const { return nav2_lon; } - inline double get_nav2_lat() const { return nav2_lat; } + inline double get_nav2_loclon() const { return nav2_loclon; } + inline double get_nav2_loclat() const { return nav2_loclat; } + inline double get_nav2_loc_dist() const { return nav2_loc_dist; } + inline double get_nav2_gslon() const { return nav2_gslon; } + inline double get_nav2_gslat() const { return nav2_gslat; } + inline double get_nav2_gs_dist() const { return nav2_gs_dist; } + inline double get_nav2_dmelon() const { return nav2_dmelon; } + inline double get_nav2_dmelat() const { return nav2_dmelat; } + inline double get_nav2_dme_dist() const { return nav2_dme_dist; } inline double get_nav2_elev() const { return nav2_elev; } - inline double get_nav2_dist() const { return nav2_dist; } 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; } @@ -168,9 +241,4 @@ public: extern FGRadioStack *current_radiostack; - -// periodic radio station search wrapper -void fgRadioSearch( void ); - - #endif // _FG_RADIOSTACK_HXX