#define _FG_RADIOSTACK_HXX
-#include <Main/fgfs.hxx>
#include <Main/fg_props.hxx>
#include <simgear/compiler.h>
-
+#include <simgear/structure/subsystem_mgr.hxx>
#include <simgear/math/interpolater.hxx>
#include <simgear/timing/timestamp.hxx>
-#include <Navaids/ilslist.hxx>
#include <Navaids/navlist.hxx>
#include <Sound/beacon.hxx>
#include <Sound/morse.hxx>
-#include "kr_87.hxx" // ADF
+#include "dme.hxx"
#include "kt_70.hxx" // Transponder
+#include "marker_beacon.hxx"
#include "navcom.hxx"
-class FGRadioStack : public FGSubsystem
+
+class FGRadioStack : public SGSubsystem
{
- FGBeacon beacon;
- FGMorse morse;
-
- SGInterpTable *term_tbl;
- SGInterpTable *low_tbl;
- SGInterpTable *high_tbl;
-
- SGPropertyNode *lon_node;
- SGPropertyNode *lat_node;
- SGPropertyNode *alt_node;
-
- bool need_update;
-
- bool dme_valid;
- bool dme_inrange;
- double dme_freq;
- double dme_lon;
- double dme_lat;
- double dme_elev;
- double dme_range;
- double dme_effective_range;
- double dme_x;
- double dme_y;
- double dme_z;
- double dme_dist;
- double dme_prev_dist;
- double dme_spd;
- double dme_ete;
- SGTimeStamp dme_last_time;
-
- bool outer_marker;
- bool middle_marker;
- bool inner_marker;
-
- SGTimeStamp blink;
- bool outer_blink;
- bool middle_blink;
- bool inner_blink;
-
- FGKR_87 adf; // King KR 87 Digital ADF model
+ 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;
// Update nav/adf radios based on current postition
void search ();
+ inline FGDME *get_dme() { return &dme; }
inline FGNavCom *get_navcom1() { return &navcom1; }
inline FGNavCom *get_navcom2() { return &navcom2; }
-
- // DME Setters
- inline void set_dme_freq (double freq) {
- dme_freq = freq; need_update = true;
- }
-
-
- // DME Accessors
- inline double get_dme_freq () const { return dme_freq; }
-
- // Marker Beacon Accessors
- inline bool get_inner_blink () const { return inner_blink; }
- inline bool get_middle_blink () const { return middle_blink; }
- inline bool get_outer_blink () const { return outer_blink; }
-
- // Calculated values.
- inline bool get_dme_inrange () const { return dme_inrange; }
- inline double get_dme_dist () const { return dme_dist; }
- inline double get_dme_spd () const { return dme_spd; }
- inline double get_dme_ete () const { return dme_ete; }
};