X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCockpit%2Fradiostack.hxx;h=4d2255214ce2a800763f92621795d1432d8c6a54;hb=c0b4531d04215f76f9cf65afbdaed6b7c0b32634;hp=d236a9ed0a507dc48f403a7e23bbf5fb8d10a8be;hpb=6bc7ed9ba2de059b276dc00e0e1fe8aa340b191c;p=flightgear.git diff --git a/src/Cockpit/radiostack.hxx b/src/Cockpit/radiostack.hxx index d236a9ed0..4d2255214 100644 --- a/src/Cockpit/radiostack.hxx +++ b/src/Cockpit/radiostack.hxx @@ -25,152 +25,53 @@ #define _FG_RADIOSTACK_HXX +#include
+ #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 { - - bool need_update; - - bool nav1_valid; - bool nav1_inrange; - 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_elev; - double nav1_effective_range; - double nav1_dist; - double nav1_heading; - double nav1_target_gs; - double nav1_x; - double nav1_y; - double nav1_z; - - bool nav2_valid; - bool nav2_inrange; - 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_elev; - double nav2_effective_range; - double nav2_dist; - double nav2_heading; - double nav2_target_gs; - double nav2_x; - double nav2_y; - double nav2_z; - - bool adf_valid; - bool adf_inrange; - double adf_freq; - double adf_alt_freq; - double adf_rotation; - double adf_lon; - double adf_lat; - double adf_elev; - double adf_effective_range; - double adf_dist; - double adf_heading; - double adf_x; - double adf_y; - double adf_z; +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(); - // Update nav/adf radios based on current postition - void search( double lon, double lat, double elev ); + 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_sel_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_sel_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 () const { return nav1_freq; } - inline double get_nav1_alt_freq () const { return nav1_alt_freq; } - inline double get_nav1_sel_radial() const { return nav1_sel_radial; } - - // NAV2 Accessors - inline double get_nav2_freq () const { return nav2_freq; } - inline double get_nav2_alt_freq () const { return nav2_alt_freq; } - inline double get_nav2_sel_radial() const { return nav2_sel_radial; } - - // ADF Accessors - inline double get_adf_freq () const { return adf_freq; } - inline double get_adf_alt_freq () const { return adf_alt_freq; } - inline double get_adf_rotation () const { 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_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_radial() const { return nav1_radial; } - 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_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_radial() const { return nav2_radial; } - 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; - -// periodic radio station search wrapper -void fgRadioSearch( void ); - - #endif // _FG_RADIOSTACK_HXX