#include "radiostack.hxx"
+FGRadioStack *current_radiostack;
+
+
// Constructor
FGRadioStack::FGRadioStack() {
need_update = true;
void FGRadioStack::update( double lon, double lat, double elev ) {
need_update = false;
- FGNav n;
-
// nav1
- if ( current_navlist->query( lon, lat, elev, nav1_freq,
- &n, &nav1_heading, &nav1_dist) ) {
+ FGILS ils;
+ if ( current_ilslist->query( lon, lat, elev, nav1_freq,
+ &ils, &nav1_heading, &nav1_dist) ) {
nav1_inrange = true;
- nav1_lon = n.get_lon();
- nav1_lat = n.get_lat();
- nav1_elev = n.get_elev();
+ nav1_lon = ils.get_loclon();
+ nav1_lat = ils.get_loclat();
+ nav1_elev = ils.get_gselev();
cout << "Found a vor station in range" << endl;
- cout << " id = " << n.get_ident() << endl;
+ cout << " id = " << ils.get_locident() << endl;
cout << " heading = " << nav1_heading
<< " dist = " << nav1_dist << endl;
} else {
}
// nav1
+ FGNav nav;
if ( current_navlist->query( lon, lat, elev, nav2_freq,
- &n, &nav2_heading, &nav2_dist) ) {
+ &nav, &nav2_heading, &nav2_dist) ) {
nav2_inrange = true;
- nav2_lon = n.get_lon();
- nav2_lat = n.get_lat();
- nav2_elev = n.get_elev();
+ nav2_lon = nav.get_lon();
+ nav2_lat = nav.get_lat();
+ nav2_elev = nav.get_elev();
cout << "Found a vor station in range" << endl;
- cout << " id = " << n.get_ident() << endl;
+ cout << " id = " << nav.get_ident() << endl;
cout << " heading = " << nav2_heading
<< " dist = " << nav2_dist << endl;
} else {
// adf
double junk;
if ( current_navlist->query( lon, lat, elev, adf_freq,
- &n, &adf_heading, &junk) ) {
+ &nav, &adf_heading, &junk) ) {
adf_inrange = true;
- adf_lon = n.get_lon();
- adf_lat = n.get_lat();
- adf_elev = n.get_elev();
+ adf_lon = nav.get_lon();
+ adf_lat = nav.get_lat();
+ adf_elev = nav.get_elev();
cout << "Found an adf station in range" << endl;
- cout << " id = " << n.get_ident() << endl;
+ cout << " id = " << nav.get_ident() << endl;
cout << " heading = " << adf_heading
<< " dist = " << junk << endl;
} else {
#include <Airports/simple.hxx>
#include <Autopilot/autopilot.hxx>
#include <Cockpit/cockpit.hxx>
+#include <Cockpit/radiostack.hxx>
#include <FDM/Balloon.h>
#include <FDM/External.hxx>
#include <FDM/JSBsim.hxx>
p_fix.append( "Navaids/default.fix" );
current_fixlist->init( p_fix );
+ // Initialize the underlying radio stack model
+ current_radiostack = new FGRadioStack;
+
+ current_radiostack->set_nav1_freq( 111.70 );
+ current_radiostack->set_nav1_radial( 280.0 );
+
+ current_radiostack->set_nav2_freq( 117.80 );
+ current_radiostack->set_nav2_radial( 068.0 );
+
+ current_radiostack->set_adf_freq( 210.0 );
+
+ current_radiostack->update( cur_fdm_state->get_Longitude(),
+ cur_fdm_state->get_Latitude(),
+ cur_fdm_state->get_Altitude() * FEET_TO_METER );
+
// Initialize the Cockpit subsystem
if( fgCockpitInit( ¤t_aircraft )) {
// Cockpit initialized ok.
#include <Autopilot/autopilot.hxx>
#include <Cockpit/cockpit.hxx>
+#include <Cockpit/radiostack.hxx>
#include <Cockpit/steam.hxx>
#include <FDM/UIUCModel/uiuc_aircraft.h>
#include <FDM/UIUCModel/uiuc_aircraftdir.h>
// Update solar system
ephem->update( t, cur_fdm_state->get_Latitude() );
+
+ // Update radio stack model
+ current_radiostack->update( cur_fdm_state->get_Longitude(),
+ cur_fdm_state->get_Latitude(),
+ cur_fdm_state->get_Altitude() * FEET_TO_METER );
}