]> git.mxchange.org Git - flightgear.git/commitdiff
Initial revisions.
authorcurt <curt>
Mon, 20 Dec 1999 20:25:13 +0000 (20:25 +0000)
committercurt <curt>
Mon, 20 Dec 1999 20:25:13 +0000 (20:25 +0000)
src/FDM/JSBSim/FGLGear.cpp [new file with mode: 0644]
src/FDM/JSBSim/FGLGear.h [new file with mode: 0644]
src/FDM/JSBSim/FGfdmSocket.cpp [new file with mode: 0644]
src/FDM/JSBSim/FGfdmSocket.h [new file with mode: 0644]

diff --git a/src/FDM/JSBSim/FGLGear.cpp b/src/FDM/JSBSim/FGLGear.cpp
new file mode 100644 (file)
index 0000000..05417b0
--- /dev/null
@@ -0,0 +1,62 @@
+/*******************************************************************************
+
+ Module:       FGLGear.cpp
+ Author:       Jon S. Berndt
+ Date started: 11/18/99
+ Purpose:      Encapsulates the landing gear elements
+ Called by:    FGAircraft
+
+ ------------- Copyright (C) 1999  Jon S. Berndt (jsb@hal-pc.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., 59 Temple
+ Place - Suite 330, Boston, MA  02111-1307, USA.
+
+ Further information about the GNU General Public License can also be found on
+ the world wide web at http://www.gnu.org.
+
+FUNCTIONAL DESCRIPTION
+--------------------------------------------------------------------------------
+
+HISTORY
+--------------------------------------------------------------------------------
+11/18/99   JSB   Created
+
+********************************************************************************
+INCLUDES
+*******************************************************************************/
+
+#include "FGLGear.h"
+#include "FGState.h"
+
+/*******************************************************************************
+************************************ CODE **************************************
+*******************************************************************************/
+
+
+FGLGear::FGLGear(ifstream& acfile)
+{
+  acfile >> name >> X >> Y >> Z >> kSpring >> bDamp >> statFCoeff >> brakeCoeff;
+}
+
+
+FGLGear::~FGLGear(void)
+{
+}
+
+float FGLGear::Force(void)
+{
+  return 0.0;
+}
+
+
diff --git a/src/FDM/JSBSim/FGLGear.h b/src/FDM/JSBSim/FGLGear.h
new file mode 100644 (file)
index 0000000..2447559
--- /dev/null
@@ -0,0 +1,98 @@
+/*******************************************************************************
+
+ Header:       FGLGear.h
+ Author:       Jon S. Berndt
+ Date started: 11/18/99
+
+ ------------- Copyright (C) 1999  Jon S. Berndt (jsb@hal-pc.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., 59 Temple
+ Place - Suite 330, Boston, MA  02111-1307, USA.
+
+ Further information about the GNU General Public License can also be found on
+ the world wide web at http://www.gnu.org.
+
+HISTORY
+--------------------------------------------------------------------------------
+11/18/99   JSB   Created
+
+********************************************************************************
+SENTRY
+*******************************************************************************/
+
+#ifndef FGLGEAR_H
+#define FGLGEAR_H
+
+/*******************************************************************************
+COMMENTS, REFERENCES,  and NOTES
+********************************************************************************
+
+[1] Cooke, Zyda, Pratt, and McGhee, "NPSNET: Flight Simulation Dynamic Modeling
+        Using Quaternions", Presence, Vol. 1, No. 4, pp. 404-420  Naval Postgraduate
+        School, January 1994
+[2] D. M. Henderson, "Euler Angles, Quaternions, and Transformation Matrices",
+        JSC 12960, July 1977
+[3] Richard E. McFarland, "A Standard Kinematic Model for Flight Simulation at
+        NASA-Ames", NASA CR-2497, January 1975
+[4] Barnes W. McCormick, "Aerodynamics, Aeronautics, and Flight Mechanics",
+        Wiley & Sons, 1979 ISBN 0-471-03032-5
+[5] Bernard Etkin, "Dynamics of Flight, Stability and Control", Wiley & Sons,
+        1982 ISBN 0-471-08936-2
+
+********************************************************************************
+INCLUDES
+*******************************************************************************/
+
+#ifdef FGFS
+#  include <Include/compiler.h>
+#  include STL_STRING
+#  ifdef FG_HAVE_STD_INCLUDES
+#    include <fstream>
+#  else
+#    include <fstream.h>
+#  endif
+   FG_USING_STD(string);
+#else
+#  include <fstream>
+#  include <string>
+#endif
+
+/*******************************************************************************
+DEFINITIONS
+*******************************************************************************/
+
+using namespace std;
+
+/*******************************************************************************
+CLASS DECLARATION
+*******************************************************************************/
+
+class FGLGear
+{
+public:
+  FGLGear(ifstream&);
+  ~FGLGear(void);
+
+  float Force(void);
+private:
+  float X, Y, Z;
+  float kSpring, bDamp, compressLength;
+  float statFCoeff, rollFCoeff, skidFCoeff;
+  float frictionForce, compForce;
+  float brakePct, brakeForce, brakeCoeff;
+  string name;
+};
+
+/******************************************************************************/
+#endif
\ No newline at end of file
diff --git a/src/FDM/JSBSim/FGfdmSocket.cpp b/src/FDM/JSBSim/FGfdmSocket.cpp
new file mode 100644 (file)
index 0000000..e3b4c05
--- /dev/null
@@ -0,0 +1,142 @@
+/*******************************************************************************
+
+ Module:       FGfdmSocket.cpp
+ Author:       Jon S. Berndt
+ Date started: 11/08/99
+ Purpose:      Encapsulates a socket
+ Called by:    FGOutput, et. al.
+
+ ------------- Copyright (C) 1999  Jon S. Berndt (jsb@hal-pc.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., 59 Temple
+ Place - Suite 330, Boston, MA  02111-1307, USA.
+
+ Further information about the GNU General Public License can also be found on
+ the world wide web at http://www.gnu.org.
+
+FUNCTIONAL DESCRIPTION
+--------------------------------------------------------------------------------
+This class excapsulates a socket for simple data writing
+
+HISTORY
+--------------------------------------------------------------------------------
+11/08/99   JSB   Created
+
+********************************************************************************
+INCLUDES
+*******************************************************************************/
+
+#include "FGfdmSocket.h"
+
+/*******************************************************************************
+************************************ CODE **************************************
+*******************************************************************************/
+
+FGfdmSocket::FGfdmSocket(string address, int port)
+{
+  size = 0;
+
+  #ifdef __BORLANDC__ || _MSC_VER
+    WSADATA wsaData;
+    int PASCAL FAR wsaReturnCode;
+    wsaReturnCode = WSAStartup(MAKEWORD(1,1), &wsaData);
+    if (wsaReturnCode == 0) cout << "Winsock DLL loaded ..." << endl;
+    else cout << "Winsock DLL not initialized ..." << endl;
+  #endif
+
+  if (address.find_first_not_of("0123456789.",0) != address.npos) {
+    if ((host = gethostbyname(address.c_str())) == NULL) {
+      cout << "Could not get host net address by name..." << endl;
+    }
+  } else {
+    if ((host = gethostbyaddr(address.c_str(), address.size(), PF_INET)) == NULL) {
+      cout << "Could not get host net address by number..." << endl;
+    }
+  }
+
+  if (host != NULL) {
+    cout << "Got host net address..." << endl;
+    sckt = socket(AF_INET, SOCK_STREAM, 0);
+
+    if (sckt >= 0) {  // successful
+      memset(&scktName, 0, sizeof(struct sockaddr_in));
+      scktName.sin_family = AF_INET;
+      scktName.sin_port = htons(port);
+      memcpy(&scktName.sin_addr, host->h_addr_list[0], host->h_length);
+      int len = sizeof(struct sockaddr_in);
+      if (connect(sckt, (struct sockaddr*)&scktName, len) == 0) {   // successful
+        cout << "Successfully connected to socket ..." << endl;
+      } else {                // unsuccessful
+        cout << "Could not connect to socket ..." << endl;
+      }
+    } else {          // unsuccessful
+      cout << "Could not create socket for FDM, error = " << errno << endl;
+    }
+  }
+}
+
+FGfdmSocket::~FGfdmSocket(void)
+{
+  if (sckt) shutdown(sckt,2);
+  #ifdef __BORLANDC__
+    WSACleanup();
+  #endif
+}
+
+void FGfdmSocket::Clear(void)
+{
+  buffer = "";
+  size = 0;
+}
+
+void FGfdmSocket::Append(const char* item)
+{
+  if (size == 0) buffer += string(item);
+  else buffer += string(",") + string(item);
+  size++;
+}
+
+void FGfdmSocket::Append(float item)
+{
+  char s[25];
+
+  sprintf(s,"%12.7f\0",item);
+
+  if (size == 0) buffer += string(s);
+  else buffer += string(",") + string(s);
+  size++;
+}
+
+void FGfdmSocket::Append(long item)
+{
+  char s[25];
+
+  sprintf(s,"%12d\0",item);
+
+  if (size == 0) buffer += string(s);
+  else buffer += string(",") + string(s);
+  size++;
+}
+
+void FGfdmSocket::Send(void)
+{
+  int len;
+  
+  buffer += string("\n");
+  if ((len = send(sckt,buffer.c_str(),buffer.size(),0)) <= 0) {
+    perror("send");
+  } else {
+  }
+}
+
diff --git a/src/FDM/JSBSim/FGfdmSocket.h b/src/FDM/JSBSim/FGfdmSocket.h
new file mode 100644 (file)
index 0000000..dc05226
--- /dev/null
@@ -0,0 +1,107 @@
+/*******************************************************************************
+
+ Header:       FGfdmSocket.h
+ Author:       Jon S. Berndt
+ Date started: 11/08/99
+
+ ------------- Copyright (C) 1999  Jon S. Berndt (jsb@hal-pc.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., 59 Temple
+ Place - Suite 330, Boston, MA  02111-1307, USA.
+
+ Further information about the GNU General Public License can also be found on
+ the world wide web at http://www.gnu.org.
+
+HISTORY
+--------------------------------------------------------------------------------
+11/08/99   JSB   Created
+
+********************************************************************************
+SENTRY
+*******************************************************************************/
+
+#ifndef FGfdmSocket_H
+#define FGfdmSocket_H
+
+/*******************************************************************************
+COMMENTS, REFERENCES,  and NOTES
+*******************************************************************************/
+
+/*******************************************************************************
+INCLUDES
+*******************************************************************************/
+
+#include <stdlib.h>
+#include <stdio.h>
+
+#ifdef FGFS
+#  pragma message("FGFS defined")
+#  include <Include/compiler.h>
+#  include STL_STRING
+#  ifdef FG_HAVE_STD_INCLUDES
+#    include <fstream>
+#    include <iostream>
+#  else
+#    include <fstream.h>
+#    include <iostream.h>
+#  endif
+   FG_USING_STD(string);
+#else
+#  pragma message("FGFS not defined")
+#  include <string>
+#  include <fstream>
+#  include <iostream>
+#endif
+
+#include <sys/types.h>
+
+#if defined(__BORLANDC__) || defined(_MSC_VER)
+  #include <winsock.h>
+#else
+  #include <sys/socket.h>
+  #include <netinet/in.h>
+  #include <netdb.h>
+  #include <errno.h>
+#endif
+
+/*******************************************************************************
+DEFINITIONS
+*******************************************************************************/
+
+
+/*******************************************************************************
+CLASS DECLARATION
+*******************************************************************************/
+
+using namespace std;
+
+class FGfdmSocket {
+public:
+  FGfdmSocket(string, int);
+  ~FGfdmSocket(void);
+  void Send(void);
+  void Append(const char*);
+  void Append(float);
+  void Append(long);
+  void Clear(void);
+
+private:
+  int sckt;
+  int size;
+  struct sockaddr_in scktName;
+  struct hostent *host;
+  string buffer;
+};
+
+#endif
\ No newline at end of file