C client style tweaks.
- Standardized C client to use tabs. - Improved consistency of indentation. - Updated copyright and description headers.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,119 +1,138 @@
|
|||||||
|
//Copyright (c) 2013-2015 United States Government as represented by the Administrator of the
|
||||||
|
//National Aeronautics and Space Administration. All Rights Reserved.
|
||||||
//
|
//
|
||||||
// xplaneConnect.h
|
//DISCLAIMERS
|
||||||
//
|
// No Warranty: THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY OF ANY KIND,
|
||||||
// Created by Chris Teubert on 12/2/13.
|
// EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY THAT
|
||||||
|
// THE SUBJECT SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF
|
||||||
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY
|
||||||
|
// THAT THE SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF PROVIDED,
|
||||||
|
// WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN ANY MANNER, CONSTITUTE AN
|
||||||
|
// ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR RECIPIENT OF ANY RESULTS, RESULTING DESIGNS,
|
||||||
|
// HARDWARE, SOFTWARE PRODUCTS OR ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT
|
||||||
|
// SOFTWARE. FURTHER, GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING
|
||||||
|
// THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES IT "AS IS."
|
||||||
//
|
//
|
||||||
|
// Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS AGAINST THE UNITED STATES
|
||||||
|
// GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT. IF
|
||||||
|
// RECIPIENT'S USE OF THE SUBJECT SOFTWARE RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES
|
||||||
|
// OR LOSSES ARISING FROM SUCH USE, INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING
|
||||||
|
// FROM, RECIPIENT'S USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY AND HOLD HARMLESS THE
|
||||||
|
// UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT,
|
||||||
|
// TO THE EXTENT PERMITTED BY LAW. RECIPIENT'S SOLE REMEDY FOR ANY SUCH MATTER SHALL BE THE
|
||||||
|
// IMMEDIATE, UNILATERAL TERMINATION OF THIS AGREEMENT.
|
||||||
|
#ifndef xplaneConnect_h
|
||||||
|
#define xplaneConnect_h
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef xplaneConnect_h
|
#include "stdlib.h"
|
||||||
#define xplaneConnect_h
|
#ifdef _WIN32 /* WIN32 SYSTEM */
|
||||||
|
#include <winsock2.h>
|
||||||
#ifdef _WIN32 /* WIN32 SYSTEM */
|
#include <ws2tcpip.h>
|
||||||
#include <winsock2.h>
|
#pragma comment(lib,"ws2_32.lib") //Winsock Library
|
||||||
#include <ws2tcpip.h>
|
#elif (__APPLE__ || __linux)
|
||||||
#pragma comment(lib,"ws2_32.lib") //Winsock Library
|
#include <sys/socket.h>
|
||||||
#elif (__APPLE__ || __linux)
|
#include <netinet/in.h>
|
||||||
#include <sys/socket.h>
|
#include <arpa/inet.h>
|
||||||
#include <netinet/in.h>
|
#include <unistd.h>
|
||||||
#include <arpa/inet.h>
|
#endif
|
||||||
#include <unistd.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct xpcSocket {
|
typedef struct
|
||||||
short open;
|
{
|
||||||
unsigned short port;
|
char open;
|
||||||
|
unsigned short port;
|
||||||
|
|
||||||
|
// X-Plane IP and Port
|
||||||
|
char xpIP[16];
|
||||||
|
unsigned short xpPort;
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
SOCKET sock;
|
||||||
|
#else
|
||||||
|
int sock;
|
||||||
|
#endif
|
||||||
|
} XPCSocket;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
float pitch;
|
||||||
|
float roll;
|
||||||
|
float yaw;
|
||||||
|
float throttle;
|
||||||
|
char gear;
|
||||||
|
float flaps;
|
||||||
|
char aircraft;
|
||||||
|
} xpcCtrl;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
double latitude;
|
||||||
|
double longitude;
|
||||||
|
double altitude;
|
||||||
|
} Waypoint;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
xpc_WYPT_ADD = 1,
|
||||||
|
xpc_WYPT_DEL = 2,
|
||||||
|
xpc_WYPT_CLR = 3
|
||||||
|
} WYPT_OP;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
WYPT_OP op;
|
||||||
|
Waypoint points[20];
|
||||||
|
size_t numPoints;
|
||||||
|
} xpcWypt;
|
||||||
|
|
||||||
// X-Plane IP and Port
|
// Basic Functions
|
||||||
char xpIP[16];
|
XPCSocket openUDP(unsigned short port, const char *xpIP, unsigned short xpPort);
|
||||||
unsigned short xpPort;
|
void closeUDP(XPCSocket sock);
|
||||||
|
int sendUDP(XPCSocket sock, char buffer[], int len);
|
||||||
#ifdef _WIN32 /* WIN32 SYSTEM */
|
int readUDP(XPCSocket sock, char buffer[], int len, struct sockaddr* recvaddr);
|
||||||
SOCKET sock;
|
|
||||||
#elif (__APPLE__ || __linux) //OS X/Linux
|
|
||||||
int sock;
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
float pitch;
|
|
||||||
float roll;
|
|
||||||
float yaw;
|
|
||||||
float throttle;
|
|
||||||
char gear;
|
|
||||||
float flaps;
|
|
||||||
char aircraft;
|
|
||||||
} xpcCtrl;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
double latitude;
|
|
||||||
double longitude;
|
|
||||||
double altitude;
|
|
||||||
} Waypoint;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
xpc_WYPT_ADD = 1,
|
|
||||||
xpc_WYPT_DEL = 2,
|
|
||||||
xpc_WYPT_CLR = 3
|
|
||||||
} WYPT_OP;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
WYPT_OP op;
|
|
||||||
Waypoint points[20];
|
|
||||||
size_t numPoints;
|
|
||||||
} xpcWypt;
|
|
||||||
|
|
||||||
// Basic Functions
|
|
||||||
struct xpcSocket openUDP(unsigned short port, const char *xpIP, unsigned short xpPort);
|
|
||||||
void closeUDP(struct xpcSocket);
|
|
||||||
short sendUDP(struct xpcSocket recfd, char my_message[], short messageLength);
|
|
||||||
short readUDP(struct xpcSocket recfd, char *dataRef, struct sockaddr *recvaddr);
|
|
||||||
|
|
||||||
// Configuration
|
// Configuration
|
||||||
short setCONN(struct xpcSocket recfd, unsigned short recPort);
|
short setCONN(XPCSocket recfd, unsigned short recPort);
|
||||||
short pauseSim(struct xpcSocket recfd, short);
|
short pauseSim(XPCSocket recfd, short);
|
||||||
|
|
||||||
// UDP DATA
|
// UDP DATA
|
||||||
short parseDATA(const char my_message[], short messageLength, float dataRef[][9]);
|
short parseDATA(const char my_message[], short messageLength, float dataRef[][9]);
|
||||||
short readDATA(struct xpcSocket recfd, float dataRef[][9]);
|
short readDATA(XPCSocket recfd, float dataRef[][9]);
|
||||||
short sendDATA(struct xpcSocket recfd, float dataRef[][9], unsigned short rows);
|
short sendDATA(XPCSocket recfd, float dataRef[][9], unsigned short rows);
|
||||||
|
|
||||||
// Position
|
// Position
|
||||||
short parsePOSI(const char my_message[], float resultArray[], int arraySize, float *gear);
|
short parsePOSI(const char my_message[], float resultArray[], int arraySize, float *gear);
|
||||||
short readPOSI(struct xpcSocket recfd, float resultArray[], int arraySize, float *gear);
|
short readPOSI(XPCSocket recfd, float resultArray[], int arraySize, float *gear);
|
||||||
short sendPOSI(struct xpcSocket recfd, short ACNum, short numArgs, float valueArray[]);
|
short sendPOSI(XPCSocket recfd, short ACNum, short numArgs, float valueArray[]);
|
||||||
|
|
||||||
// Controls
|
// Controls
|
||||||
xpcCtrl parseCTRL(const char data[]);
|
xpcCtrl parseCTRL(const char data[]);
|
||||||
xpcCtrl readCTRL(struct xpcSocket recfd);
|
xpcCtrl readCTRL(XPCSocket recfd);
|
||||||
short sendCTRL(struct xpcSocket recfd, short numArgs, float valueArray[]);
|
short sendCTRL(XPCSocket recfd, short numArgs, float valueArray[]);
|
||||||
short sendpCTRL(struct xpcSocket recfd, short numArgs, float valueArray[], char acNum);
|
short sendpCTRL(XPCSocket recfd, short numArgs, float valueArray[], char acNum);
|
||||||
|
|
||||||
// DREF Manipulation
|
// DREF Manipulation
|
||||||
short readDREF(struct xpcSocket recfd, float *resultArray[], short arraySizes[]);
|
short readDREF(XPCSocket recfd, float *resultArray[], short arraySizes[]);
|
||||||
short parseDREF(const char my_message[], char *dataRef, unsigned short *length_of_DREF, float *values, unsigned short *number_of_values);
|
short parseDREF(const char my_message[], char *dataRef, unsigned short *length_of_DREF, float *values, unsigned short *number_of_values);
|
||||||
short sendDREF(struct xpcSocket recfd, const char *dataRef, unsigned short length_of_DREF, float *values, unsigned short number_of_values);
|
short sendDREF(XPCSocket recfd, const char *dataRef, unsigned short length_of_DREF, float *values, unsigned short number_of_values);
|
||||||
short requestDREF(struct xpcSocket sendfd, struct xpcSocket recfd, char DREFArray[][100], short DREFSizes[], short listLength, float *resultArray[], short arraySizes[]);
|
short requestDREF(XPCSocket sendfd, XPCSocket recfd, char DREFArray[][100], short DREFSizes[], short listLength, float *resultArray[], short arraySizes[]);
|
||||||
int parseGETD(const char my_message[], char *DREFArray[], int DREFSizes[]);
|
int parseGETD(const char my_message[], char *DREFArray[], int DREFSizes[]);
|
||||||
short parseRequest(const char my_message[], float *resultArray[], short arraySizes[]);
|
short parseRequest(const char my_message[], float *resultArray[], short arraySizes[]);
|
||||||
short readRequest(struct xpcSocket recfd, float *dataRef[], short arraySizes[], struct sockaddr *recvaddr);
|
short readRequest(XPCSocket recfd, float *dataRef[], short arraySizes[], struct sockaddr *recvaddr);
|
||||||
|
|
||||||
// Waypoints
|
// Waypoints
|
||||||
xpcWypt parseWYPT(const char data[]);
|
xpcWypt parseWYPT(const char data[]);
|
||||||
short sendWYPT(struct xpcSocket sendfd, WYPT_OP op, float points[], int numPoints);
|
short sendWYPT(XPCSocket sendfd, WYPT_OP op, float points[], int numPoints);
|
||||||
|
|
||||||
// Screen Text
|
// Screen Text
|
||||||
short sendTEXT(struct xpcSocket sendfd, char* msg, int x, int y);
|
short sendTEXT(XPCSocket sendfd, char* msg, int x, int y);
|
||||||
|
|
||||||
|
|
||||||
#endif //ifdef _h
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif //ifdef _h
|
||||||
|
|||||||
@@ -22,6 +22,9 @@
|
|||||||
<ClCompile Include="..\..\C\src\xplaneConnect.c" />
|
<ClCompile Include="..\..\C\src\xplaneConnect.c" />
|
||||||
<ClCompile Include="..\C Tests\main.c" />
|
<ClCompile Include="..\C Tests\main.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="..\..\C\src\xplaneConnect.h" />
|
||||||
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{BC701AF4-552C-4C9D-82A1-B352542783A4}</ProjectGuid>
|
<ProjectGuid>{BC701AF4-552C-4C9D-82A1-B352542783A4}</ProjectGuid>
|
||||||
<RootNamespace>CTests</RootNamespace>
|
<RootNamespace>CTests</RootNamespace>
|
||||||
|
|||||||
@@ -22,4 +22,9 @@
|
|||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="..\..\C\src\xplaneConnect.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
Reference in New Issue
Block a user