![]() |
JSBSim Flight Dynamics Model 1.2.3 (07 Jun 2025)
An Open Source Flight Dynamics and Control Software Library in C++
|
The FGfdmSocket class enables JSBSim to communicate via sockets.
This class provides functionality for sending and receiving data over a socket connection. It can behave as both a client and/or a server, depending on the constructor used. The socket can use either UDP or TCP protocol for communication.
Definition at line 74 of file FGfdmSocket.h.
#include <FGfdmSocket.h>
Inheritance diagram for FGfdmSocket:
Collaboration diagram for FGfdmSocket:Public Types | |
| enum | ProtocolType { ptUDP , ptTCP } |
Public Types inherited from FGJSBBase | |
| enum | { eL = 1 , eM , eN } |
| Moments L, M, N. More... | |
| enum | { eP = 1 , eQ , eR } |
| Rates P, Q, R. More... | |
| enum | { eU = 1 , eV , eW } |
| Velocities U, V, W. More... | |
| enum | { eX = 1 , eY , eZ } |
| Positions X, Y, Z. More... | |
| enum | { ePhi = 1 , eTht , ePsi } |
| Euler angles Phi, Theta, Psi. More... | |
| enum | { eDrag = 1 , eSide , eLift } |
| Stability axis forces, Drag, Side force, Lift. More... | |
| enum | { eRoll = 1 , ePitch , eYaw } |
| Local frame orientation Roll, Pitch, Yaw. More... | |
| enum | { eNorth = 1 , eEast , eDown } |
| Local frame position North, East, Down. More... | |
| enum | { eLat = 1 , eLong , eRad } |
| Locations Radius, Latitude, Longitude. More... | |
| enum | { inNone = 0 , inDegrees , inRadians , inMeters , inFeet } |
| Conversion specifiers. More... | |
Public Member Functions | |
| FGfdmSocket (const std::string &address, int port, int protocol, int precision=7) | |
| Construct a client socket. | |
| FGfdmSocket (int port, int protocol, int precision=7) | |
| Construct a server socket. | |
| void | Append (const char *) |
| Append the specified C-style string to the internal buffer. | |
| void | Append (const std::string &s) |
| Append the specified string to the internal buffer. | |
| void | Append (double value) |
| Append the specified double value to the internal buffer. | |
| void | Append (long value) |
| Append the specified long value to the internal buffer. | |
| void | Clear (const std::string &s) |
| Clear the internal buffer and appends the specified string. | |
| void | Clear (void) |
| Clear the internal buffer. | |
| void | Close (void) |
| Close the socket connection if the protocol is TCP. | |
| bool | GetConnectStatus (void) |
| Return the connection status of the socket. | |
| std::string | Receive (void) |
| Receive data from the socket connection. | |
| int | Reply (const std::string &text) |
| Send a reply to the client ending by a prompt "JSBSim>". | |
| void | Send (const char *data, int length) |
| Send the specified data over the socket connection. | |
| void | Send (const std::string &data) |
| void | Send (void) |
| Send the internal buffer over the socket connection. | |
| void | WaitUntilReadable (void) |
| Wait until the TCP socket is readable. | |
Public Member Functions inherited from FGJSBBase | |
| FGJSBBase () | |
| Constructor for FGJSBBase. | |
| virtual | ~FGJSBBase () |
| Destructor for FGJSBBase. | |
| void | disableHighLighting (void) |
| Disables highlighting in the console output. | |
Additional Inherited Members | |
Static Public Member Functions inherited from FGJSBBase | |
| static const std::string & | GetVersion (void) |
| Returns the version number of JSBSim. | |
| static constexpr double | KelvinToFahrenheit (double kelvin) |
| Converts from degrees Kelvin to degrees Fahrenheit. | |
| static constexpr double | CelsiusToRankine (double celsius) |
| Converts from degrees Celsius to degrees Rankine. | |
| static constexpr double | RankineToCelsius (double rankine) |
| Converts from degrees Rankine to degrees Celsius. | |
| static constexpr double | KelvinToRankine (double kelvin) |
| Converts from degrees Kelvin to degrees Rankine. | |
| static constexpr double | RankineToKelvin (double rankine) |
| Converts from degrees Rankine to degrees Kelvin. | |
| static constexpr double | FahrenheitToCelsius (double fahrenheit) |
| Converts from degrees Fahrenheit to degrees Celsius. | |
| static constexpr double | CelsiusToFahrenheit (double celsius) |
| Converts from degrees Celsius to degrees Fahrenheit. | |
| static constexpr double | CelsiusToKelvin (double celsius) |
| Converts from degrees Celsius to degrees Kelvin. | |
| static constexpr double | KelvinToCelsius (double kelvin) |
| Converts from degrees Kelvin to degrees Celsius. | |
| static constexpr double | FeetToMeters (double measure) |
| Converts from feet to meters. | |
| static bool | EqualToRoundoff (double a, double b) |
| Finite precision comparison. | |
| static bool | EqualToRoundoff (float a, float b) |
| Finite precision comparison. | |
| static bool | EqualToRoundoff (float a, double b) |
| Finite precision comparison. | |
| static bool | EqualToRoundoff (double a, float b) |
| Finite precision comparison. | |
| static constexpr double | Constrain (double min, double value, double max) |
| Constrain a value between a minimum and a maximum value. | |
| static constexpr double | sign (double num) |
Static Public Attributes inherited from FGJSBBase | |
| static char | highint [5] = {27, '[', '1', 'm', '\0' } |
| highlights text | |
| static char | halfint [5] = {27, '[', '2', 'm', '\0' } |
| low intensity text | |
| static char | normint [6] = {27, '[', '2', '2', 'm', '\0' } |
| normal intensity text | |
| static char | reset [5] = {27, '[', '0', 'm', '\0' } |
| resets text properties | |
| static char | underon [5] = {27, '[', '4', 'm', '\0' } |
| underlines text | |
| static char | underoff [6] = {27, '[', '2', '4', 'm', '\0' } |
| underline off | |
| static char | fgblue [6] = {27, '[', '3', '4', 'm', '\0' } |
| blue text | |
| static char | fgcyan [6] = {27, '[', '3', '6', 'm', '\0' } |
| cyan text | |
| static char | fgred [6] = {27, '[', '3', '1', 'm', '\0' } |
| red text | |
| static char | fggreen [6] = {27, '[', '3', '2', 'm', '\0' } |
| green text | |
| static char | fgdef [6] = {27, '[', '3', '9', 'm', '\0' } |
| default text | |
| static short | debug_lvl = 1 |
Static Protected Member Functions inherited from FGJSBBase | |
| static std::string | CreateIndexedPropertyName (const std::string &Property, int index) |
Static Protected Attributes inherited from FGJSBBase | |
| static constexpr double | radtodeg = 180. / M_PI |
| static constexpr double | degtorad = M_PI / 180. |
| static constexpr double | hptoftlbssec = 550.0 |
| static constexpr double | psftoinhg = 0.014138 |
| static constexpr double | psftopa = 47.88 |
| static constexpr double | fttom = 0.3048 |
| static constexpr double | ktstofps = 1852./(3600*fttom) |
| static constexpr double | fpstokts = 1.0 / ktstofps |
| static constexpr double | inchtoft = 1.0/12.0 |
| static constexpr double | m3toft3 = 1.0/(fttom*fttom*fttom) |
| static constexpr double | in3tom3 = inchtoft*inchtoft*inchtoft/m3toft3 |
| static constexpr double | inhgtopa = 3386.38 |
| static constexpr double | slugtolb = 32.174049 |
| Note that definition of lbtoslug by the inverse of slugtolb and not to a different constant you can also get from some tables will make lbtoslug*slugtolb == 1 up to the magnitude of roundoff. | |
| static constexpr double | lbtoslug = 1.0/slugtolb |
| static constexpr double | kgtolb = 2.20462 |
| static constexpr double | kgtoslug = 0.06852168 |
| static const std::string | needed_cfg_version = "2.0" |
| static const std::string | JSBSim_version = JSBSIM_VERSION " " __DATE__ " " __TIME__ |
| enum ProtocolType |
Definition at line 176 of file FGfdmSocket.h.
| FGfdmSocket | ( | const std::string & | address, |
| int | port, | ||
| int | protocol, | ||
| int | precision = 7 |
||
| ) |
Construct a client socket.
| address | The IP address or hostname of the server to connect to. |
| port | The port number to connect to. |
| protocol | The protocol to use for communication (ptUDP or ptTCP). |
| precision | The precision to use for floating-point numbers (default is 7). |
Definition at line 97 of file FGfdmSocket.cpp.
| FGfdmSocket | ( | int | port, |
| int | protocol, | ||
| int | precision = 7 |
||
| ) |
Construct a server socket.
| port | The port number to listen on. |
| protocol | The protocol to use for communication (ptUDP or ptTCP). |
| precision | The precision to use for floating-point numbers (default is 7). |
Definition at line 167 of file FGfdmSocket.cpp.
| ~FGfdmSocket | ( | ) |
Definition at line 246 of file FGfdmSocket.cpp.
| void Append | ( | const char * | item | ) |
Append the specified C-style string to the internal buffer.
| s | The C-style string to append. |
Definition at line 366 of file FGfdmSocket.cpp.
|
inline |
Append the specified string to the internal buffer.
| s | The string to append. |
Definition at line 130 of file FGfdmSocket.h.
Here is the call graph for this function:
Here is the caller graph for this function:| void Append | ( | double | value | ) |
Append the specified double value to the internal buffer.
| value | The double value to append. |
Definition at line 374 of file FGfdmSocket.cpp.
| void Append | ( | long | value | ) |
Append the specified long value to the internal buffer.
| value | The long value to append. |
Definition at line 382 of file FGfdmSocket.cpp.
| void Clear | ( | const std::string & | s | ) |
Clear the internal buffer and appends the specified string.
| s | The string to append after clearing the buffer. |
Definition at line 358 of file FGfdmSocket.cpp.
Here is the call graph for this function:| void Clear | ( | void | ) |
Clear the internal buffer.
Definition at line 351 of file FGfdmSocket.cpp.
Here is the caller graph for this function:| void Close | ( | void | ) |
Close the socket connection if the protocol is TCP.
Definition at line 342 of file FGfdmSocket.cpp.
Here is the caller graph for this function:
|
inline |
Return the connection status of the socket.
Definition at line 171 of file FGfdmSocket.h.
Here is the caller graph for this function:| string Receive | ( | void | ) |
Receive data from the socket connection.
Definition at line 256 of file FGfdmSocket.cpp.
Here is the caller graph for this function:| int Reply | ( | const std::string & | text | ) |
Send a reply to the client ending by a prompt "JSBSim>".
| text | The reply text to send. |
Definition at line 324 of file FGfdmSocket.cpp.
Here is the caller graph for this function:| void Send | ( | const char * | data, |
| int | length | ||
| ) |
Send the specified data over the socket connection.
| data | The data to send. |
| length | The length of the data. |
Definition at line 399 of file FGfdmSocket.cpp.
|
inline |
Definition at line 108 of file FGfdmSocket.h.
| void Send | ( | void | ) |
Send the internal buffer over the socket connection.
Definition at line 390 of file FGfdmSocket.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:| void WaitUntilReadable | ( | void | ) |
Wait until the TCP socket is readable.
Definition at line 416 of file FGfdmSocket.cpp.
Here is the caller graph for this function: