From 0b7ad8809d61b3cf3b81d2885384e9a65fb14509 Mon Sep 17 00:00:00 2001 From: Elvis Dowson Date: Thu, 1 Jan 2015 20:36:18 +0400 Subject: [PATCH 1/6] User Guide(C).txt: Remove trailing whitespaces. Signed-off-by: Elvis Dowson --- C/User Guide (C).txt | 50 ++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/C/User Guide (C).txt b/C/User Guide (C).txt index 16bbae5..60e4bf0 100644 --- a/C/User Guide (C).txt +++ b/C/User Guide (C).txt @@ -1,31 +1,31 @@ X-Plane Connect-C (XPC-C) Readme DESCRIPTION - XPC-C is a series of C functions that facilitate communication with X-Plane. - + XPC-C is a series of C functions that facilitate communication with X-Plane. + ----------------------------------- SETUP - Before using XPC Functions you must - 1. Copy the file XPCPlugin.xpl to the "[X-Plane Directory]/Resources/plugins" directory. - 2. Put in X-Plane CD 1 or X-Plane USB Key. - 3. Start X-Plane. + Before using XPC Functions you must + 1. Copy the file XPCPlugin.xpl to the "[X-Plane Directory]/Resources/plugins" directory. + 2. Put in X-Plane CD 1 or X-Plane USB Key. + 3. Start X-Plane. 4. #include "xplaneConnect.h" ----------------------------------- BASIC FUNCTIONS 1. openUDP opens a UDP Socket for communication. This is used to send data or receive. - INPUT: + INPUT: port (unsigned short): Port Number (ex:49067) xpIP (char *): IP Address of the computer running x-plane xpPort (unsigned short): Port number that the X-Plane/ xpcPlugin Receives on (send -1 for default (49009), Typically xpcPlugin is 49009) OUTPUT: socket (xpcSocket): The Opened Socket - + USE: unsigned short portNumber = 49067; struct xpcSocket theSocket = openUDP(portNumber, “127.0.0.1”, 49009); - + 2. closeUDP closes an opened UDP Socket for communication. This is to be done after the program has finished using that socket. Use opedUDP to open socket. INPUT: socket (xpcSocket): The Opened Socket @@ -37,10 +37,10 @@ BASIC FUNCTIONS INPUT: socket (xpcSocket): Socket to use to send the command recPort (unsigned Short): Port number for requested dataref values to be sent to - + OUTPUT: status (short): 0 if successful - + USE: char IP[16] = "127.0.0.1"; struct xpcSocket theSocket = openUDP(49067); @@ -50,7 +50,7 @@ BASIC FUNCTIONS INPUT: socket (xpcSocket): Socket to use to send the command pause (short): 1=Pause, 0=Resume - + OUTPUT: status (short): 0 if successful @@ -58,22 +58,22 @@ BASIC FUNCTIONS char IP[16] = "127.0.0.1"; struct xpcSocket theSocket = openUDP(49067); pauseSim(theSocket, IP, 49009, 1); - + 5. sendDATA set the value of a state in the "DATA Input & Output" Table INPUT: socket (xpcSocket): Socket to use to send the command dataArray (float[][9]): Array of data to be sent. The first element of each row is the item # (corresponding to the number on the X-Plane "DATA Input & Output" Screen). Send -999 to leave the value unchanged. rows (unsigned short): Number of rows of data being sent - + OUTPUT: status (short): 0 if successful - + USE: char IP[16] = "127.0.0.1"; struct xpcSocket theSocket = openUDP(49067); float data[] = {{14, 1, -999, -999, -999, -999, -999, -999, -999},{25, 0.8, 0.8, -999, -999, -999, -999, -999, -999}}; // Gear and Throttle sendDATA(theSocket,IP,49009,data,2); - + 6. sendPOSI set the position of an aircraft INPUT: socket (xpcSocket): Socket to use to send the command @@ -87,7 +87,7 @@ BASIC FUNCTIONS position[4] = Pitch (deg) position[5] = True Heading (deg) position[6] = Gear (0=up, 1=down) - + OUTPUT: status (short): 0 if successful @@ -96,7 +96,7 @@ BASIC FUNCTIONS struct xpcSocket theSocket = openUDP(49067); float posit[] = {37.5242422, -122.06899, 2500, 0, 0, 0, 1}; sendPOSI(theSocket, IP, 49009, 7, posit); - + 7. sendCTRL send control commands to the aircraft INPUT: socket (xpcSocket): Socket to use to send the command @@ -108,16 +108,16 @@ BASIC FUNCTIONS control[3] = Throttle [-1, 1] control[4] = Gear (0=up, 1=down) control[5] = Flaps [0, 1] - + OUTPUT: status (short): 0 if successful - + USE: char IP[16] = "127.0.0.1"; struct xpcSocket theSocket = openUDP(49067); float ctrl[] = {0, 0, 0, 0.8, 0, 1}; sendCTRL(theSocket, IP, 49009, 6, ctrl); - + 8. sendDREF set the value of a specific dataref. Dataref list found at http://www.xsquawkbox.net/xpsdk/docs/DataRefs.html INPUT: socket (xpcSocket): Socket to use to send the command @@ -125,7 +125,7 @@ BASIC FUNCTIONS length (short): length of dataref string values (float *): Array of values to be sent length2 (short): Number of values in values array - + OUTPUT: status (short): 0 if successful @@ -135,7 +135,7 @@ BASIC FUNCTIONS char theDREF[] = "cockpit/switches/gear_handle_status"; float value = 1; sendDREF(theSocket, IP, 49009, theDREF, strlen(theDREF), &value, 1); - + 9. requestDREF Request the value of specific dref(s). Dataref list found at http://www.xsquawkbox.net/xpsdk/docs/DataRefs.html INPUT: outSocket (xpcSocket): Socket to use to send the command @@ -145,7 +145,7 @@ BASIC FUNCTIONS listLength (short): Number of DataRefs in DREFArray result (*float[]): Array of pointers to the values returned arrayLen (short[]): Array where each element corresponds to the number of elements in the float array. - + OUTPUT: length (short): Number of Values Returned @@ -154,7 +154,7 @@ BASIC FUNCTIONS struct xpcSocket theSocket = openUDP(49067); char DREFArray[][100] = {"sim/cockpit/switches/gear_handle_status"}; requestDREF(theSocket, IP, 49009, DREFArray, strlen(DREFArray[0]),1); - + ----------------------------------- ADVANCED FUNCTIONS (These are mostly used by the xpcPlugin to read requests) 1. sendUDP From ba0600ee680c73edec3ecf6a520dae4db986408f Mon Sep 17 00:00:00 2001 From: Elvis Dowson Date: Thu, 1 Jan 2015 20:41:20 +0400 Subject: [PATCH 2/6] xplaneconnect: Add CMake support for building xplaneconnect shared and static library. Signed-off-by: Elvis Dowson --- C/CMakeLists.txt | 5 +++++ C/src/CMakeLists.txt | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 C/CMakeLists.txt create mode 100644 C/src/CMakeLists.txt diff --git a/C/CMakeLists.txt b/C/CMakeLists.txt new file mode 100644 index 0000000..e265d37 --- /dev/null +++ b/C/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 2.8.4) + +project(xplaneconnectlib) + +add_subdirectory(src) diff --git a/C/src/CMakeLists.txt b/C/src/CMakeLists.txt new file mode 100644 index 0000000..38a7621 --- /dev/null +++ b/C/src/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.4) + +set(LIBXPLANECONNECT_SRC xplaneConnect.c) + +add_library(xplaneconnect_dynamic SHARED ${LIBXPLANECONNECT_SRC}) +add_library(xplaneconnect_static STATIC ${LIBXPLANECONNECT_SRC}) + +set_target_properties(xplaneconnect_dynamic PROPERTIES OUTPUT_NAME "xplaneconnect") +set_target_properties(xplaneconnect_dynamic PROPERTIES VERSION 1.2 SOVERSION 1) + +set_target_properties(xplaneconnect_static PROPERTIES OUTPUT_NAME "xplaneconnect") + +set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) + +install(TARGETS xplaneconnect_dynamic xplaneconnect_static + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) + +install(FILES xplaneConnect.h DESTINATION include/xplaneConnect) From b91bdf6d35a9ae033301d61c518e513ea4be6070 Mon Sep 17 00:00:00 2001 From: Elvis Dowson Date: Fri, 2 Jan 2015 13:46:54 +0400 Subject: [PATCH 3/6] .gitignore: Ignore build folder. Signed-off-by: Elvis Dowson --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 8d7ff37..9eaaea2 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,5 @@ xpcPlugin/build/xpcPlugin.build/Debug/xpcPlugin.build/Objects-normal/x86_64/XPCP xpcPlugin/build/xpcPlugin.build/Debug/xpcPlugin.build/Objects-normal/x86_64/xplaneConnect.o xpcPlugin/xpcPlugin.xcodeproj/project.xcworkspace/xcuserdata/cteubert.xcuserdatad/UserInterfaceState.xcuserstate + +build/ From 6709765a486433f792e81259d13e9d12151777db Mon Sep 17 00:00:00 2001 From: Elvis Dowson Date: Fri, 2 Jan 2015 14:23:02 +0400 Subject: [PATCH 4/6] C/xpcExample: Move sources to src sub-folder. Signed-off-by: Elvis Dowson --- C/xpcExample/xpcExample/{ => src}/main.cpp | 0 C/xpcExample/xpcExample/{ => src}/xpcExample.1 | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename C/xpcExample/xpcExample/{ => src}/main.cpp (100%) rename C/xpcExample/xpcExample/{ => src}/xpcExample.1 (100%) diff --git a/C/xpcExample/xpcExample/main.cpp b/C/xpcExample/xpcExample/src/main.cpp similarity index 100% rename from C/xpcExample/xpcExample/main.cpp rename to C/xpcExample/xpcExample/src/main.cpp diff --git a/C/xpcExample/xpcExample/xpcExample.1 b/C/xpcExample/xpcExample/src/xpcExample.1 similarity index 100% rename from C/xpcExample/xpcExample/xpcExample.1 rename to C/xpcExample/xpcExample/src/xpcExample.1 From b3fada3c642b0f10f5bdbab9fd6e00838af12af5 Mon Sep 17 00:00:00 2001 From: Elvis Dowson Date: Fri, 2 Jan 2015 14:30:02 +0400 Subject: [PATCH 5/6] C/xpcExample: Add CMake support for building xpcExample that uses the xplaneconnect library. Signed-off-by: Elvis Dowson --- C/xpcExample/xpcExample/CMakeLists.txt | 5 +++++ C/xpcExample/xpcExample/src/CMakeLists.txt | 13 +++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 C/xpcExample/xpcExample/CMakeLists.txt create mode 100644 C/xpcExample/xpcExample/src/CMakeLists.txt diff --git a/C/xpcExample/xpcExample/CMakeLists.txt b/C/xpcExample/xpcExample/CMakeLists.txt new file mode 100644 index 0000000..79ce885 --- /dev/null +++ b/C/xpcExample/xpcExample/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 2.8.4) + +project(xpcExample) + +add_subdirectory(src) diff --git a/C/xpcExample/xpcExample/src/CMakeLists.txt b/C/xpcExample/xpcExample/src/CMakeLists.txt new file mode 100644 index 0000000..8c0308b --- /dev/null +++ b/C/xpcExample/xpcExample/src/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 2.8.4) + +add_executable(main main.cpp) + +include_directories(/usr/local/include/xplaneConnect) + +find_library(XPLANECONNECT_LIB NAMES xplaneconnect PATHS "/usr/local/lib") + +message(STATUS "Library path XPLANECONNECT_LIB is " ${XPLANECONNECT_LIB}) + +target_link_libraries(main ${XPLANECONNECT_LIB}) + +set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) From 5853062402aafa29181d24d1c2e5f278a6d7596e Mon Sep 17 00:00:00 2001 From: Elvis Dowson Date: Fri, 2 Jan 2015 14:45:36 +0400 Subject: [PATCH 6/6] C/xpcExample: Update XCode project to reference new source file location. This commit: - updates the XCode project to 6.1.1 - updates the reference to the xpcExample source file - modifies the project so that some of the files that are copied across during the build phase are only done during deployment. Signed-off-by: Elvis Dowson --- .../xpcExample.xcodeproj/project.pbxproj | 10 ++++------ .../xcshareddata/xpcExample.xccheckout | 18 +++++++++--------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/C/xpcExample/xpcExample.xcodeproj/project.pbxproj b/C/xpcExample/xpcExample.xcodeproj/project.pbxproj index 3028f4e..21f3aec 100644 --- a/C/xpcExample/xpcExample.xcodeproj/project.pbxproj +++ b/C/xpcExample/xpcExample.xcodeproj/project.pbxproj @@ -16,14 +16,14 @@ /* Begin PBXCopyFilesBuildPhase section */ BE60308318E5F7A5004B5E1D /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; + buildActionMask = 8; dstPath = /Users/cteubert/Documents/flightdeckz/connections/src/xplaneconnect; dstSubfolderSpec = 0; files = ( BEDC620818EDF254005DB364 /* xplaneConnect.c in CopyFiles */, BEDC620918EDF257005DB364 /* xplaneConnect.h in CopyFiles */, ); - runOnlyForDeploymentPostprocessing = 0; + runOnlyForDeploymentPostprocessing = 1; }; /* End PBXCopyFilesBuildPhase section */ @@ -31,7 +31,7 @@ BEDC61FF18EDF0F5005DB364 /* xplaneConnect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = xplaneConnect.c; path = ../src/xplaneConnect.c; sourceTree = ""; }; BEDC620018EDF0F5005DB364 /* xplaneConnect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = xplaneConnect.h; path = ../src/xplaneConnect.h; sourceTree = ""; }; BEF9890B18E4E7F7005554D1 /* xpcExample */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = xpcExample; sourceTree = BUILT_PRODUCTS_DIR; }; - BEF9890E18E4E7F7005554D1 /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + BEF9890E18E4E7F7005554D1 /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -105,7 +105,7 @@ BEF9890318E4E7F7005554D1 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0500; + LastUpgradeCheck = 0610; ORGANIZATIONNAME = "Chris Teubert"; }; buildConfigurationList = BEF9890618E4E7F7005554D1 /* Build configuration list for PBXProject "xpcExample" */; @@ -209,7 +209,6 @@ BEF9891518E4E7F7005554D1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; HEADER_SEARCH_PATHS = ( "$(inherited)", /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, @@ -222,7 +221,6 @@ BEF9891618E4E7F7005554D1 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; HEADER_SEARCH_PATHS = ( "$(inherited)", /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, diff --git a/C/xpcExample/xpcExample.xcodeproj/project.xcworkspace/xcshareddata/xpcExample.xccheckout b/C/xpcExample/xpcExample.xcodeproj/project.xcworkspace/xcshareddata/xpcExample.xccheckout index 94d88f7..b474632 100644 --- a/C/xpcExample/xpcExample.xcodeproj/project.xcworkspace/xcshareddata/xpcExample.xccheckout +++ b/C/xpcExample/xpcExample.xcodeproj/project.xcworkspace/xcshareddata/xpcExample.xccheckout @@ -10,31 +10,31 @@ xpcExample IDESourceControlProjectOriginsDictionary - C03F0B00-9A73-4E8C-88E5-1BC53A92AE34 - https://github.com/nasa/XPlaneConnect.git + 975A665F236BF35140EC3819BE16448F522675A6 + ssh://ares:8420/aerospace/simulation/xplane/xplane_connect IDESourceControlProjectPath - C/xpcExample/xpcExample.xcodeproj/project.xcworkspace + C/xpcExample/xpcExample.xcodeproj IDESourceControlProjectRelativeInstallPathDictionary - C03F0B00-9A73-4E8C-88E5-1BC53A92AE34 + 975A665F236BF35140EC3819BE16448F522675A6 ../../../.. IDESourceControlProjectURL - https://github.com/nasa/XPlaneConnect.git + ssh://ares:8420/aerospace/simulation/xplane/xplane_connect IDESourceControlProjectVersion - 110 + 111 IDESourceControlProjectWCCIdentifier - C03F0B00-9A73-4E8C-88E5-1BC53A92AE34 + 975A665F236BF35140EC3819BE16448F522675A6 IDESourceControlProjectWCConfigurations IDESourceControlRepositoryExtensionIdentifierKey public.vcs.git IDESourceControlWCCIdentifierKey - C03F0B00-9A73-4E8C-88E5-1BC53A92AE34 + 975A665F236BF35140EC3819BE16448F522675A6 IDESourceControlWCCName - XPlaneConnect + xplane_connect