]> git.mxchange.org Git - flightgear.git/commitdiff
Initial revision.
authorcurt <curt>
Sun, 25 Nov 2001 00:32:58 +0000 (00:32 +0000)
committercurt <curt>
Sun, 25 Nov 2001 00:32:58 +0000 (00:32 +0000)
src/FDM/ExternalNet.cxx [new file with mode: 0644]
src/FDM/ExternalNet.hxx [new file with mode: 0644]

diff --git a/src/FDM/ExternalNet.cxx b/src/FDM/ExternalNet.cxx
new file mode 100644 (file)
index 0000000..4d480d4
--- /dev/null
@@ -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 <simgear/debug/logstream.hxx>
+
+#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 (file)
index 0000000..d60b7c6
--- /dev/null
@@ -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 <plib/netSocket.h>
+
+#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
+
+