C/xpcExample: Move sources to src sub-folder.

Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
This commit is contained in:
Elvis Dowson
2015-01-02 14:23:02 +04:00
parent b91bdf6d35
commit 6709765a48
2 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,131 @@
//
// main.cpp
// xpcExample
//
// Created by Chris Teubert on 3/27/14.
// Copyright (c) 2014 Chris Teubert. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "xplaneConnect.h"
int main() {
int i,j;
struct xpcSocket sendfd,readfd;
float data[4][9] = {0};
char DREF[100] = {0};
char DREFArray[100][100];
char DREFArray2[100][100];
short DREFSizes[100];
float *recDATA[100];
float POSI[9] = {0.0};
float CTRL[5] = {0.0};
float gear;
char IP[16] = "127.0.0.1";// //IP Address of computer running X-Plane
short PORT = 49009; //xpcPlugin Receiving port (usually 49009)
printf("xplaneconnect Example Script\n- Setting up Simulation\n");
for (i = 0; i < 100; i++) {
recDATA[i] = (float *) malloc(40*sizeof(float));
memset(DREFArray[i],0,100);
memset(DREFArray2[i],0,100);
}
// Open Sockets
readfd = openUDP(49055, IP, PORT); //Open socket for receiving
sendfd = openUDP(49077, IP, PORT); //Open socket for sending
// Set up Connection
setCONN(sendfd, 49055); // Setup so data will be received on port 49055
// Set Location/Orientation (sendPOSI)
// Set Up Position Array
POSI[0] = 37.524; // Lat
POSI[1] = -122.06899; // Lon
POSI[2] = 2500; // Alt
POSI[3] = 0; // Pitch
POSI[4] = 0; // Roll
POSI[5] = 0; // Heading
POSI[6] = 1; // Gear
sendPOSI(sendfd, 0, 7, POSI);
POSI[0] = 37.52465;
POSI[4] = 20;
sendPOSI(sendfd, 1, 7, POSI);
// Set Rates (sendDATA)
for (i=0;i<4;i++) { // Set array to -999
for (j=0;j<9;j++) data[i][j] = -999;
}
// Set up Data Array (first item in row is item number (example: 20=position)
data[0][0] = 18; // Alpha
data[0][1] = 0;
data[0][3] = 0;
data[1][0] = 3;//21; //Velocity
data[1][1] = 130;
data[1][2] = 130;
data[1][3] = 130;
data[1][4] = 130;
data[2][0] = 16; //PQR
data[2][1] = 0;
data[2][2] = 0;
data[2][3] = 0;
sendDATA(sendfd, data, 3); // Throttle/Velocity/Alpha/PQR
// Set CTRL
CTRL[3] = 0.8; // Throttle
sendCTRL(sendfd, 4, CTRL);
// pauseSim
pauseSim(sendfd, 1); // Sending 1 to pause
// Pause for 5 seconds
sleep(5);
// Unpause
pauseSim(sendfd, 0); // Sending 0 to unpause
printf("- Resuming Simulation\n");
// Simulate for 10 seconds
sleep(10);
// SendDREF (Landing Gear)
printf("- Stowing Landing Gear\n");
strcpy(DREF,"cockpit/switches/gear_handle_status"); // Gear handle data reference
DREFSizes[0] = sizeof(DREF);
gear = 1; // Stow gear
sendDREF(sendfd, DREF, DREFSizes[0], &gear, 1); // Set gear to stow
// Simulate for 10 seconds
sleep(10);
// Check Landing gear, Pause
printf("- Confirming Gear Status\n");
strcpy(DREFArray2[0],"sim/cockpit/switches/gear_handle_status");
strcpy(DREFArray2[1],"sim/operation/override/override_planepath");
for (i=0;i<2;i++) {
DREFSizes[i] = (int) strlen(DREFArray2[i]);
}
requestDREF(sendfd, readfd, DREFArray2, DREFSizes, 2, recDATA, DREFSizes); // Request 2 values
if (*(recDATA[0])==0) {
printf("\tGear Stowed\n");
} else {
printf("\tERROR: Gear Stowage unsuccessful\n");
}
printf("---End Program---\n");
return 0;
}

View File

@@ -0,0 +1,79 @@
.\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples.
.\"See Also:
.\"man mdoc.samples for a complete listing of options
.\"man mdoc for the short list of editing options
.\"/usr/share/misc/mdoc.template
.Dd 3/27/14 \" DATE
.Dt xpcExample 1 \" Program name and manual section number
.Os Darwin
.Sh NAME \" Section Header - required - don't modify
.Nm xpcExample,
.\" The following lines are read in generating the apropos(man -k) database. Use only key
.\" words here as the database is built based on the words here and in the .ND line.
.Nm Other_name_for_same_program(),
.Nm Yet another name for the same program.
.\" Use .Nm macro to designate other names for the documented program.
.Nd This line parsed for whatis database.
.Sh SYNOPSIS \" Section Header - required - don't modify
.Nm
.Op Fl abcd \" [-abcd]
.Op Fl a Ar path \" [-a path]
.Op Ar file \" [file]
.Op Ar \" [file ...]
.Ar arg0 \" Underlined argument - use .Ar anywhere to underline
arg2 ... \" Arguments
.Sh DESCRIPTION \" Section Header - required - don't modify
Use the .Nm macro to refer to your program throughout the man page like such:
.Nm
Underlining is accomplished with the .Ar macro like this:
.Ar underlined text .
.Pp \" Inserts a space
A list of items with descriptions:
.Bl -tag -width -indent \" Begins a tagged list
.It item a \" Each item preceded by .It macro
Description of item a
.It item b
Description of item b
.El \" Ends the list
.Pp
A list of flags and their descriptions:
.Bl -tag -width -indent \" Differs from above in tag removed
.It Fl a \"-a flag as a list item
Description of -a flag
.It Fl b
Description of -b flag
.El \" Ends the list
.Pp
.\" .Sh ENVIRONMENT \" May not be needed
.\" .Bl -tag -width "ENV_VAR_1" -indent \" ENV_VAR_1 is width of the string ENV_VAR_1
.\" .It Ev ENV_VAR_1
.\" Description of ENV_VAR_1
.\" .It Ev ENV_VAR_2
.\" Description of ENV_VAR_2
.\" .El
.Sh FILES \" File used or created by the topic of the man page
.Bl -tag -width "/Users/joeuser/Library/really_long_file_name" -compact
.It Pa /usr/share/file_name
FILE_1 description
.It Pa /Users/joeuser/Library/really_long_file_name
FILE_2 description
.El \" Ends the list
.\" .Sh DIAGNOSTICS \" May not be needed
.\" .Bl -diag
.\" .It Diagnostic Tag
.\" Diagnostic informtion here.
.\" .It Diagnostic Tag
.\" Diagnostic informtion here.
.\" .El
.Sh SEE ALSO
.\" List links in ascending order by section, alphabetically within a section.
.\" Please do not reference files that do not exist without filing a bug report
.Xr a 1 ,
.Xr b 1 ,
.Xr c 1 ,
.Xr a 2 ,
.Xr b 2 ,
.Xr a 3 ,
.Xr b 3
.\" .Sh BUGS \" Document known, unremedied bugs
.\" .Sh HISTORY \" Document history if command behaves in a unique manner