From: curt Date: Sun, 25 Nov 2001 00:32:58 +0000 (+0000) Subject: Initial revision. X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=ffe498f33fcb6009e6ad65ef80fd7c551b0fb216;p=flightgear.git Initial revision. --- diff --git a/src/FDM/ExternalNet.cxx b/src/FDM/ExternalNet.cxx new file mode 100644 index 000000000..4d480d487 --- /dev/null +++ b/src/FDM/ExternalNet.cxx @@ -0,0 +1,72 @@ +// ExternalNet.hxx -- an net interface to an external flight dynamics model +// +// Written by Curtis Olson, started November 2001. +// +// Copyright (C) 2001 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 +// 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$ + +#include + +#include "ExternalNet.hxx" + + +FGExternalNet::FGExternalNet( double dt ) { + set_delta_t( dt ); + + valid = true; + + // client sends data + if ( ! data_client.open( false ) ) { + SG_LOG( SG_FLIGHT, SG_ALERT, "Error opening client data channel" ); + valid = false; + } + // fire and forget + data_client.setBlocking( false ); + + // server receives data + if ( ! data_server.open( false ) ) { + SG_LOG( SG_FLIGHT, SG_ALERT, "Error opening client server channel" ); + valid = false; + } + // we want to block for incoming data in order to syncronize frame + // rates. + data_server.setBlocking( true ); +} + + +FGExternalNet::~FGExternalNet() { + data_client.close(); + data_server.close(); +} + + +// Initialize the ExternalNet flight model, dt is the time increment +// for each subsequent iteration through the EOM +void FGExternalNet::init() { + // cout << "FGExternalNet::init()" << endl; +} + + +// Run an iteration of the EOM. This is a NOP here because the flight +// model values are getting filled in elsewhere (most likely from some +// external source.) +bool FGExternalNet::update( int multiloop ) { + // cout << "FGExternalNet::update()" << endl; + + return true; +} diff --git a/src/FDM/ExternalNet.hxx b/src/FDM/ExternalNet.hxx new file mode 100644 index 000000000..d60b7c6fc --- /dev/null +++ b/src/FDM/ExternalNet.hxx @@ -0,0 +1,63 @@ +// ExternalNet.hxx -- an net interface to an external flight dynamics model +// +// Written by Curtis Olson, started November 2001. +// +// Copyright (C) 2001 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 +// 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 _EXTERNAL_NET_HXX +#define _EXTERNAL_NET_HXX + +#include + +#include "flight.hxx" + + +class FGExternalNet: public FGInterface { + +private: + + int data_port; + int cmd_port; + string host; + + netSocket data_client; + netSocket data_server; + + bool valid; + +public: + + // Constructor + FGExternalNet::FGExternalNet( double dt ); + + // Destructor + FGExternalNet::~FGExternalNet(); + + // Reset flight params to a specific position + void init(); + + // update the fdm + bool update( int multiloop ); + +}; + + +#endif // _EXTERNAL_NET_HXX + +