]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/ExternalNet.hxx
Solve for the elevator control input during approach. It turns out that
[flightgear.git] / src / FDM / ExternalNet.hxx
index d60b7c6fc85d78937f473e872761ee5df98ac393..2901ca0f927d3fc4581155b7a8014078bfce8b6c 100644 (file)
 #ifndef _EXTERNAL_NET_HXX
 #define _EXTERNAL_NET_HXX
 
+#include <plib/netBuffer.h>
 #include <plib/netSocket.h>
 
+#include <Network/raw_ctrls.hxx>
+#include <Network/net_fdm.hxx>
+
 #include "flight.hxx"
 
 
+class HTTPClient : public netBufferChannel
+{
+public:
+
+    HTTPClient ( cchar* host, int port, cchar* path ) {
+       open ();
+       connect (host, port);
+
+       cchar* s = netFormat ( "GET %s HTTP/1.0\r\n\r\n", path );
+       bufferSend( s, strlen(s) ) ;
+    }
+
+    virtual void handleBufferRead (netBuffer& buffer)
+    {
+       const char* s = buffer.getData();
+       while (*s)
+           fputc(*s++,stdout);
+
+       printf("done\n");
+       buffer.remove();
+       printf("after buffer.remove()\n");
+    }
+};
+
+
 class FGExternalNet: public FGInterface {
 
 private:
 
-    int data_port;
+    int data_in_port;
+    int data_out_port;
     int cmd_port;
-    string host;
+    string fdm_host;
 
     netSocket data_client;
     netSocket data_server;
 
     bool valid;
 
+    FGRawCtrls ctrls;
+    FGNetFDM fdm;
+
 public:
 
     // Constructor
-    FGExternalNet::FGExternalNet( double dt );
+    FGExternalNet::FGExternalNet( double dt,
+                                  string host, int dop, int dip, int cp );
 
     // Destructor
     FGExternalNet::~FGExternalNet();
@@ -53,11 +87,9 @@ public:
     void init();
 
     // update the fdm
-    bool update( int multiloop );
+    void update( double dt );
 
 };
 
 
 #endif // _EXTERNAL_NET_HXX
-
-