//
// Written by Curtis Olson, started November 1999.
//
-// Copyright (C) 1999 Curtis L. Olson - curt@flightgear.org
+// Copyright (C) 1999 Curtis L. Olson - http://www.flightgear.org/~curt
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// $Id$
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#include <simgear/debug/logstream.hxx>
#include <simgear/math/sg_geodesy.hxx>
#include <simgear/io/iochannel.hxx>
-#include <Cockpit/radiostack.hxx>
+
+
+
#include <FDM/flight.hxx>
#include <Main/globals.hxx>
+#include <Main/fg_props.hxx>
+#include <Main/fg_init.hxx>
#include "atlas.hxx"
// cout << "generating atlas message" << endl;
static SGPropertyNode *adf_freq
- = fgGetNode("/radios/adf/frequencies/selected-khz", true);
+ = fgGetNode("/instrumentation/adf/frequencies/selected-khz", true);
+ static SGPropertyNode *nav1_freq
+ = fgGetNode("/instrumentation/nav/frequencies/selected-mhz", true);
+ static SGPropertyNode *nav1_sel_radial
+ = fgGetNode("/instrumentation/nav/radials/selected-deg", true);
+ static SGPropertyNode *nav2_freq
+ = fgGetNode("/instrumentation/nav[1]/frequencies/selected-mhz", true);
+ static SGPropertyNode *nav2_sel_radial
+ = fgGetNode("/instrumentation/nav[1]/radials/selected-deg", true);
char rmc[256], gga[256], patla[256];
char rmc_sum[10], gga_sum[10], patla_sum[10];
sprintf( gga_sum, "%02X", calc_atlas_cksum(gga) );
sprintf( patla, "PATLA,%.2f,%.1f,%.2f,%.1f,%.0f",
- current_radiostack->get_nav1_freq(),
- current_radiostack->get_nav1_sel_radial(),
- current_radiostack->get_nav2_freq(),
- current_radiostack->get_nav2_sel_radial(),
+ nav1_freq->getDoubleValue(),
+ nav1_sel_radial->getDoubleValue(),
+ nav2_freq->getDoubleValue(),
+ nav2_sel_radial->getDoubleValue(),
adf_freq->getDoubleValue() );
sprintf( patla_sum, "%02X", calc_atlas_cksum(patla) );
atlas_sentence += patla_sum;
atlas_sentence += "\n";
- cout << atlas_sentence;
+ // cout << atlas_sentence;
length = atlas_sentence.length();
strncpy( buf, atlas_sentence.c_str(), length );
string alt_units = msg.substr(begin, end - begin);
begin = end + 1;
- if ( alt_units != (string)"F" ) {
+ if ( alt_units != "F" ) {
altitude *= SG_METER_TO_FEET;
}
if ( get_direction() == SG_IO_OUT ) {
gen_message();
if ( ! io->write( buf, length ) ) {
- SG_LOG( SG_IO, SG_ALERT, "Error writing data." );
+ SG_LOG( SG_IO, SG_WARN, "Error writing data." );
return false;
}
} else if ( get_direction() == SG_IO_IN ) {
if ( (length = io->readline( buf, FG_MAX_MSG_SIZE )) > 0 ) {
parse_message();
} else {
- SG_LOG( SG_IO, SG_ALERT, "Error reading data." );
+ SG_LOG( SG_IO, SG_WARN, "Error reading data." );
return false;
}
if ( (length = io->readline( buf, FG_MAX_MSG_SIZE )) > 0 ) {
parse_message();
} else {
- SG_LOG( SG_IO, SG_ALERT, "Error reading data." );
+ SG_LOG( SG_IO, SG_WARN, "Error reading data." );
return false;
}
}
// close the channel
bool FGAtlas::close() {
+ SG_LOG( SG_IO, SG_INFO, "closing FGAtlas" );
SGIOChannel *io = get_io_channel();
set_enabled( false );