X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCockpit%2Fradiostack.hxx;h=4d2255214ce2a800763f92621795d1432d8c6a54;hb=c0b4531d04215f76f9cf65afbdaed6b7c0b32634;hp=23701c5db51aa97668a1e19ab9b7eccd34752634;hpb=418279fdd4989bf37f9b302de958c58424797d8f;p=flightgear.git diff --git a/src/Cockpit/radiostack.hxx b/src/Cockpit/radiostack.hxx index 23701c5db..4d2255214 100644 --- a/src/Cockpit/radiostack.hxx +++ b/src/Cockpit/radiostack.hxx @@ -25,126 +25,53 @@ #define _FG_RADIOSTACK_HXX -#include - +#include
-class FGRadioStack { - - bool need_update; - - bool nav1_inrange; - bool nav1_loc; - double nav1_freq; - double nav1_alt_freq; - double nav1_selected_radial; - double nav1_radial; - double nav1_lon; - double nav1_lat; - double nav1_elev; - double nav1_dist; - double nav1_heading; - double nav1_target_gs; - - bool nav2_inrange; - bool nav2_loc; - double nav2_freq; - double nav2_alt_freq; - double nav2_selected_radial; - double nav2_radial; - double nav2_lon; - double nav2_lat; - double nav2_elev; - double nav2_dist; - double nav2_heading; - double nav2_target_gs; - - bool adf_inrange; - double adf_freq; - double adf_alt_freq; - double adf_rotation; - double adf_lon; - double adf_lat; - double adf_elev; - double adf_heading; +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "dme.hxx" +#include "kr_87.hxx" // ADF +#include "kt_70.hxx" // Transponder +#include "marker_beacon.hxx" +#include "navcom.hxx" + + +class FGRadioStack : public SGSubsystem +{ + FGDME dme; + FGKR_87 adf; // King KR 87 Digital ADF model + FGKT_70 xponder; // Bendix/King KT 70 Panel-Mounted Transponder + FGMarkerBeacon beacon; + FGNavCom navcom1; + FGNavCom navcom2; public: FGRadioStack(); ~FGRadioStack(); + void init (); + void bind (); + void unbind (); + void update (double dt); + // Update nav/adf radios based on current postition - void update( double lon, double lat, double elev ); - - // NAV1 Setters - inline void set_nav1_freq( double freq ) { - nav1_freq = freq; need_update = true; - } - inline void set_nav1_alt_freq( double freq ) { nav1_alt_freq = freq; } - inline void set_nav1_sel_radial( double radial ) { - nav1_selected_radial = radial; need_update = true; - } - - // NAV2 Setters - inline void set_nav2_freq( double freq ) { - nav2_freq = freq; need_update = true; - } - inline void set_nav2_alt_freq( double freq ) { nav2_alt_freq = freq; } - inline void set_nav2_sel_radial( double radial ) { - nav2_selected_radial = radial; need_update = true; - } - - // ADF Setters - inline void set_adf_freq( double freq ) { - adf_freq = freq; need_update = true; - } - inline void set_adf_alt_freq( double freq ) { adf_alt_freq = freq; } - inline void set_adf_rotation( double rot ) { adf_rotation = rot; } - - - // NAV1 Accessors - inline double get_nav1_freq () { return nav1_freq; } - inline double get_nav1_alt_freq () { return nav1_alt_freq; } - inline double get_nav1_sel_radial () { return nav1_selected_radial; } - - // NAV2 Accessors - inline double get_nav2_freq () { return nav2_freq; } - inline double get_nav2_alt_freq () { return nav2_alt_freq; } - inline double get_nav2_sel_radial () { return nav2_selected_radial; } - - // ADF Accessors - inline double get_adf_freq () { return adf_freq; } - inline double get_adf_alt_freq () { return adf_alt_freq; } - inline double get_adf_rotation () { return adf_rotation; } - - // Calculated values. - inline bool get_nav1_inrange() const { return nav1_inrange; } - inline bool get_nav1_loc() const { return nav1_loc; } - inline double get_nav1_radial() const { return nav1_radial; } - inline double get_nav1_lon() const { return nav1_lon; } - inline double get_nav1_lat() const { return nav1_lat; } - 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_target_gs() const { return nav1_target_gs; } - - inline bool get_nav2_inrange() const { return nav2_inrange; } - inline bool get_nav2_loc() const { return nav2_loc; } - inline double get_nav2_radial() const { return nav2_radial; } - inline double get_nav2_lon() const { return nav2_lon; } - inline double get_nav2_lat() const { return nav2_lat; } - 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_target_gs() const { return nav2_target_gs; } - - inline bool get_adf_inrange() const { return adf_inrange; } - inline double get_adf_lon() const { return adf_lon; } - inline double get_adf_lat() const { return adf_lat; } - inline double get_adf_heading() const { return adf_heading; } + void search (); + + inline FGDME *get_dme() { return &dme; } + inline FGNavCom *get_navcom1() { return &navcom1; } + inline FGNavCom *get_navcom2() { return &navcom2; } }; extern FGRadioStack *current_radiostack; - #endif // _FG_RADIOSTACK_HXX