Initial revisions.
This commit is contained in:
parent
c319dac02a
commit
9892d4f03e
4 changed files with 409 additions and 0 deletions
62
src/FDM/JSBSim/FGLGear.cpp
Normal file
62
src/FDM/JSBSim/FGLGear.cpp
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
98
src/FDM/JSBSim/FGLGear.h
Normal file
98
src/FDM/JSBSim/FGLGear.h
Normal file
|
@ -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
|
142
src/FDM/JSBSim/FGfdmSocket.cpp
Normal file
142
src/FDM/JSBSim/FGfdmSocket.cpp
Normal file
|
@ -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 {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
107
src/FDM/JSBSim/FGfdmSocket.h
Normal file
107
src/FDM/JSBSim/FGfdmSocket.h
Normal file
|
@ -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
|
Loading…
Add table
Reference in a new issue