Added support for the TEXT command to the C client.

This commit is contained in:
Jason Watkins
2015-04-07 14:48:19 -07:00
parent 453ea65619
commit 46913596c5
3 changed files with 42 additions and 4 deletions

View File

@@ -419,6 +419,20 @@ short sendpCTRL(struct xpcSocket recfd, short numArgs, float valueArray[], char
return 0;
}
short sendTEXT(struct xpcSocket sendfd, char* msg, int x, int y)
{
char buf[269] = { 0 };
size_t msgLen = strnlen(msg, 255);
size_t len = 14 + msgLen;
strcpy(buf, "TEXT");
memcpy(buf + 5, &x, sizeof(int));
memcpy(buf + 9, &y, sizeof(int));
buf[13] = msgLen;
strncpy(buf + 14, msg, msgLen);
sendUDP(sendfd, buf, len);
}
//READ
//----------------------------------------
short readUDP(struct xpcSocket recfd, char *dataRef, struct sockaddr *recvaddr)

View File

@@ -81,7 +81,11 @@
short requestDREF(struct xpcSocket sendfd, struct xpcSocket recfd, char DREFArray[][100], short DREFSizes[], short listLength, float *resultArray[], short arraySizes[]);
int parseGETD(const char my_message[], char *DREFArray[], int DREFSizes[]);
short parseRequest(const char my_message[], float *resultArray[], short arraySizes[]);
short readRequest(struct xpcSocket recfd, float *dataRef[], short arraySizes[], struct sockaddr *recvaddr);
short readRequest(struct xpcSocket recfd, float *dataRef[], short arraySizes[], struct sockaddr *recvaddr);
// Screen Text
short sendTEXT(struct xpcSocket sendfd, int x, int y, char* msg);
#endif //ifdef _h

View File

@@ -84,6 +84,25 @@ short sendReadTest() // send/read Test
return 0;
}
short sendTEXTTest()
{
printf("sendTEXT - ");
// Setup
struct xpcSocket sendPort = openUDP(49064, "127.0.0.1", 49009);
int x = 100;
int y = 700;
char* msg = "XPlaneConnect test message. Now with 100% fewer new lines!";
// Test
sendTEXT(sendPort, msg, x, y);
// NOTE: Manually verify that msg appears on the screen in X-Plane!
// Cleanup
closeUDP(sendPort);
return 0;
}
short requestDREFTest() // Request DREF Test (Required for next tests)
{
printf("requestDREF - ");
@@ -542,15 +561,16 @@ int main(int argc, const char * argv[])
runTest(openTest);
runTest(closeTest);
runTest(sendReadTest);
runTest(sendReadTest);
runTest(sendTEXTTest);
runTest(requestDREFTest);
runTest(sendDREFTest);
runTest(sendDATATest);
runTest(sendCTRLTest);
runTest(sendpCTRLTest);
runTest(sendPOSITest);
runTest(pauseTest);
runTest(connTest);
runTest(pauseTest);
runTest(connTest);
printf( "----------------\nTest Summary\n\tFailed: %i\n\tPassed: %i\n", testFailed, testPassed );