1
0
Fork 0

Renamed mini_fdm to native_gui which makes a lot more sense to me.

This commit is contained in:
curt 2003-01-15 02:09:10 +00:00
parent 2fb9a21f2d
commit ea543c1210
6 changed files with 118 additions and 39 deletions

View file

@ -46,10 +46,10 @@
# include <Network/jpg-httpd.hxx>
#endif
#include <Network/joyclient.hxx>
#include <Network/mini_fdm.hxx>
#include <Network/native.hxx>
#include <Network/native_ctrls.hxx>
#include <Network/native_fdm.hxx>
#include <Network/native_gui.hxx>
#include <Network/opengc.hxx>
#include <Network/nmea.hxx>
#include <Network/props.hxx>
@ -137,9 +137,9 @@ FGIO::parse_port_config( const string& config )
} else if ( protocol == "native_fdm" ) {
FGNativeFDM *native_fdm = new FGNativeFDM;
io = native_fdm;
} else if ( protocol == "mini_fdm" ) {
FGMiniFDM *mini_fdm = new FGMiniFDM;
io = mini_fdm;
} else if ( protocol == "native_gui" ) {
FGNativeGUI *net_gui = new FGNativeGUI;
io = net_gui;
} else if ( protocol == "nmea" ) {
FGNMEA *nmea = new FGNMEA;
io = nmea;

View file

@ -915,8 +915,8 @@ parse_option (const string& arg)
add_channel( "native_ctrls", arg.substr(15) );
} else if ( arg.find( "--native-fdm=" ) == 0 ) {
add_channel( "native_fdm", arg.substr(13) );
} else if ( arg.find( "--mini-fdm=" ) == 0 ) {
add_channel( "mini_fdm", arg.substr(11) );
} else if ( arg.find( "--native-gui=" ) == 0 ) {
add_channel( "native_gui", arg.substr(13) );
} else if ( arg.find( "--opengc=" ) == 0 ) {
// char stop;
// cout << "Adding channel for OpenGC Display" << endl; cin >> stop;

View file

@ -14,10 +14,10 @@ libNetwork_a_SOURCES = \
httpd.cxx httpd.hxx \
$(JPEG_SERVER) \
joyclient.cxx joyclient.hxx \
mini_fdm.cxx mini_fdm.hxx \
native.cxx native.hxx \
native_ctrls.cxx native_ctrls.hxx \
native_fdm.cxx native_fdm.hxx \
native_gui.cxx native_gui.hxx \
net_ctrls.hxx net_fdm.hxx net_fdm_mini.hxx \
nmea.cxx nmea.hxx \
opengc.cxx opengc.hxx opengc_data.hxx \

View file

@ -1,8 +1,8 @@
// native_fdm.cxx -- FGFS "Native" flight dynamics protocal class
// native_gui.cxx -- FGFS external gui data export class
//
// Written by Curtis Olson, started September 2001.
// Written by Curtis Olson, started January 2002.
//
// Copyright (C) 2001 Curtis L. Olson - curt@flightgear.org
// Copyright (C) 2002 Curtis L. Olson - curt@flightgear.org
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
@ -35,7 +35,7 @@
#include <Main/fg_props.hxx>
#include <Main/globals.hxx>
#include "mini_fdm.hxx"
#include "native_gui.hxx"
// FreeBSD works better with this included last ... (?)
#if defined(WIN32) && !defined(__CYGWIN__)
@ -71,15 +71,15 @@ static void htond (double &x)
}
FGMiniFDM::FGMiniFDM() {
FGNativeGUI::FGNativeGUI() {
}
FGMiniFDM::~FGMiniFDM() {
FGNativeGUI::~FGNativeGUI() {
}
// open hailing frequencies
bool FGMiniFDM::open() {
bool FGNativeGUI::open() {
if ( is_enabled() ) {
SG_LOG( SG_IO, SG_ALERT, "This shouldn't happen, but the channel "
<< "is already in use, ignoring" );
@ -100,11 +100,11 @@ bool FGMiniFDM::open() {
}
void FGProps2NetMiniFDM( FGNetMiniFDM *net ) {
void FGProps2NetGUI( FGNetGUI *net ) {
int i;
// Version sanity checking
net->version = FG_NET_FDM_MINI_VERSION;
net->version = FG_NET_GUI_VERSION;
// Aero parameters
net->longitude = cur_fdm_state->get_Longitude();
@ -119,7 +119,7 @@ void FGProps2NetMiniFDM( FGNetMiniFDM *net ) {
net->climb_rate = cur_fdm_state->get_Climb_Rate();
// Consumables
net->num_tanks = FGNetMiniFDM::FG_MAX_TANKS;
net->num_tanks = FGNetGUI::FG_MAX_TANKS;
for ( i = 0; i < net->num_tanks; ++i ) {
SGPropertyNode *node = fgGetNode("/consumables/fuel/tank", i, true);
net->fuel_quantity[i] = node->getDoubleValue("level-gal_us");
@ -151,7 +151,7 @@ void FGProps2NetMiniFDM( FGNetMiniFDM *net ) {
}
void FGNetMiniFDM2Props( FGNetMiniFDM *net ) {
void FGNetGUI2Props( FGNetGUI *net ) {
int i;
// Convert to the net buffer from network format
@ -174,7 +174,7 @@ void FGNetMiniFDM2Props( FGNetMiniFDM *net ) {
net->cur_time = ntohl(net->cur_time);
net->warp = ntohl(net->warp);
if ( net->version == FG_NET_FDM_MINI_VERSION ) {
if ( net->version == FG_NET_GUI_VERSION ) {
// cout << "pos = " << net->longitude << " " << net->latitude << endl;
// cout << "sea level rad = " << cur_fdm_state->get_Sea_level_radius()
// << endl;
@ -202,9 +202,9 @@ void FGNetMiniFDM2Props( FGNetMiniFDM *net ) {
globals->set_warp( net->warp );
} else {
SG_LOG( SG_IO, SG_ALERT,
"Error: version mismatch in FGNetMiniFDM2Props()" );
"Error: version mismatch in FGNetNativeGUI2Props()" );
SG_LOG( SG_IO, SG_ALERT,
"\tread " << net->version << " need " << FG_NET_FDM_MINI_VERSION );
"\tread " << net->version << " need " << FG_NET_GUI_VERSION );
SG_LOG( SG_IO, SG_ALERT,
"\tNeed to upgrade net_fdm.hxx and recompile." );
}
@ -212,13 +212,13 @@ void FGNetMiniFDM2Props( FGNetMiniFDM *net ) {
// process work for this port
bool FGMiniFDM::process() {
bool FGNativeGUI::process() {
SGIOChannel *io = get_io_channel();
int length = sizeof(buf);
if ( get_direction() == SG_IO_OUT ) {
// cout << "size of cur_fdm_state = " << length << endl;
FGProps2NetMiniFDM( &buf );
FGProps2NetGUI( &buf );
if ( ! io->write( (char *)(& buf), length ) ) {
SG_LOG( SG_IO, SG_ALERT, "Error writing data." );
return false;
@ -227,12 +227,12 @@ bool FGMiniFDM::process() {
if ( io->get_type() == sgFileType ) {
if ( io->read( (char *)(& buf), length ) == length ) {
SG_LOG( SG_IO, SG_DEBUG, "Success reading data." );
FGNetMiniFDM2Props( &buf );
FGNetGUI2Props( &buf );
}
} else {
while ( io->read( (char *)(& buf), length ) == length ) {
SG_LOG( SG_IO, SG_DEBUG, "Success reading data." );
FGNetMiniFDM2Props( &buf );
FGNetGUI2Props( &buf );
}
}
}
@ -242,7 +242,7 @@ bool FGMiniFDM::process() {
// close the channel
bool FGMiniFDM::close() {
bool FGNativeGUI::close() {
SGIOChannel *io = get_io_channel();
set_enabled( false );

View file

@ -1,4 +1,4 @@
// mini_fdm.hxx -- FGFS "mini" flight dynamics protocal class
// native_gui.hxx -- FGFS external gui data export class
//
// Written by Curtis Olson, started January 2002.
//
@ -21,8 +21,8 @@
// $Id$
#ifndef _FG_MINI_FDM_HXX
#define _FG_MINI_FDM_HXX
#ifndef _FG_NATIVE_GUI_HXX
#define _FG_NATIVE_GUI_HXX
#include <simgear/compiler.h>
@ -30,18 +30,18 @@
#include <FDM/flight.hxx>
#include "protocol.hxx"
#include "net_fdm_mini.hxx"
#include "net_gui.hxx"
class FGMiniFDM : public FGProtocol, public FGInterface {
class FGNativeGUI : public FGProtocol, public FGInterface {
FGNetMiniFDM buf;
FGNetGUI buf;
int length;
public:
FGMiniFDM();
~FGMiniFDM();
FGNativeGUI();
~FGNativeGUI();
// open hailing frequencies
bool open();
@ -56,13 +56,13 @@ public:
// Helper functions which may be useful outside this class
// Populate the FGNetMiniFDM structure from the property tree.
void FGProps2NetMiniFDM( FGNetMiniFDM *net );
// Populate the FGNetGUI structure from the property tree.
void FGProps2NetGUI( FGNetGUI *net );
// Update the property tree from the FGNetMiniFDM structure.
void FGNetMiniFDM2Props( FGNetMiniFDM *net );
// Update the property tree from the FGNetGUI structure.
void FGNetGUI2Props( FGNetGUI *net );
#endif // _FG_MINI_FDM_HXX
#endif // _FG_NATIVE_GUI_HXX

79
src/Network/net_gui.hxx Normal file
View file

@ -0,0 +1,79 @@
// net_gui.hxx -- defines a simple subset I/O interface to the flight
// dynamics model variables
//
// Written by Curtis Olson, started January 2002.
//
// Copyright (C) 2002 Curtis L. Olson - curt@flightgear.com
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
// published by the Free Software Foundation; either version 2 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// 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.
//
// $Id$
#ifndef _NET_GUI_HXX
#define _NET_GUI_HXX
#ifndef __cplusplus
# error This library requires C++
#endif
const int FG_NET_GUI_VERSION = 1;
// Define a structure containing the top level flight dynamics model
// parameters
class FGNetGUI {
public:
enum {
FG_MAX_ENGINES = 4,
FG_MAX_WHEELS = 3,
FG_MAX_TANKS = 4
};
int version; // increment when data values change
int pad; // keep doubles 64-bit aligned for some
// hardware platforms, such as the Sun
// SPARC, which don't like misaligned
// data
// Positions
double longitude; // geodetic (radians)
double latitude; // geodetic (radians)
double altitude; // above sea level (meters)
double agl; // above ground level (meters)
double phi; // roll (radians)
double theta; // pitch (radians)
double psi; // yaw or true heading (radians)
// Velocities
double vcas;
double climb_rate; // feet per second
// Consumables
int num_tanks; // Max number of fuel tanks
double fuel_quantity[FG_MAX_TANKS];
// Environment
time_t cur_time; // current unix time
long int warp; // offset in seconds to unix time
};
#endif // _NET_GUI_HXX