|
|
de79654 |
diff -up ./cmake/internal/SearchForStuff.cmake.enablephidget ./cmake/internal/SearchForStuff.cmake
|
|
|
de79654 |
--- ./cmake/internal/SearchForStuff.cmake.enablephidget 2011-01-08 09:28:15.974551777 -0500
|
|
|
de79654 |
+++ ./cmake/internal/SearchForStuff.cmake 2011-01-08 09:29:23.678551971 -0500
|
|
|
de79654 |
@@ -232,3 +232,41 @@ IF (PLAYER_OS_WIN)
|
|
|
de79654 |
${CMAKE_CURRENT_SOURCE_DIR}/cmake/internal/setdlldirectory.c)
|
|
|
de79654 |
ENDIF (PLAYER_OS_WIN)
|
|
|
de79654 |
|
|
|
de79654 |
+# Check for libphidget, see if we have 2.1.7 or later
|
|
|
de79654 |
+SET (PHIDGET_INCLUDE_DIR "" CACHE STRING "Directory containing the Phidget headers")
|
|
|
de79654 |
+SET (PHIDGET_LIB_DIR "" CACHE STRING "Directory containing the Phidget libraries")
|
|
|
de79654 |
+MARK_AS_ADVANCED (PHIDGET_INCLUDE_DIR)
|
|
|
de79654 |
+MARK_AS_ADVANCED (PHIDGET_LIB_DIR)
|
|
|
de79654 |
+
|
|
|
de79654 |
+IF ("${PHIDGET_INCLUDE_DIR}" STREQUAL "")
|
|
|
de79654 |
+ SET (phidgetHeader "phidget21.h")
|
|
|
de79654 |
+ SET (phidgetCFlags "")
|
|
|
de79654 |
+ELSE ("${PHIDGET_INCLUDE_DIR}" STREQUAL "")
|
|
|
de79654 |
+ SET (phidgetHeader "${PHIDGET_INCLUDE_DIR}/phidget21.h")
|
|
|
de79654 |
+ SET (phidgetCFlags "-I${PHIDGET_INCLUDE_DIR}")
|
|
|
de79654 |
+ENDIF ("${PHIDGET_INCLUDE_DIR}" STREQUAL "")
|
|
|
de79654 |
+
|
|
|
de79654 |
+IF ("${PHIDGET_LIB_DIR}" STREQUAL "")
|
|
|
de79654 |
+ SET (phidgetLinkFlags "-lphidget21")
|
|
|
de79654 |
+ELSE ("${PHIDGET_LIB_DIR}" STREQUAL "")
|
|
|
de79654 |
+ SET (phidgetLinkFlags " -L${PHIDGET_LIB_DIR} -lphidget21")
|
|
|
de79654 |
+ENDIF ("${PHIDGET_LIB_DIR}" STREQUAL "")
|
|
|
de79654 |
+
|
|
|
de79654 |
+IF (HAVE_DNS_SD)
|
|
|
de79654 |
+ SET (phidgetLinkFlags "${phidgetLinkFlags} -ldns_sd")
|
|
|
de79654 |
+ENDIF(HAVE_DNS_SD)
|
|
|
de79654 |
+
|
|
|
de79654 |
+CHECK_INCLUDE_FILES(${phidgetHeader} HAVE_PHIDGET_H)
|
|
|
de79654 |
+IF (HAVE_PHIDGET_H)
|
|
|
de79654 |
+ INCLUDE (CheckCSourceCompiles)
|
|
|
de79654 |
+ SET(CMAKE_REQUIRED_FLAGS "${phidgetCFlags} ${phidgetLinkFlags} -lphidget21")
|
|
|
de79654 |
+ SET (CHECK_PHIDGET_SOURCE_CODE "#include <phidget21.h>\n int main ()
|
|
|
de79654 |
+ {CPhidgetInterfaceKitHandle ifk=0; int phidget_num_outputs=0;
|
|
|
de79654 |
+ CPhidgetInterfaceKit_create(&ifk;;
|
|
|
de79654 |
+ CPhidgetInterfaceKit_getOutputCount(ifk, &phidget_num_outputs); return 0; }\n")
|
|
|
de79654 |
+ CHECK_C_SOURCE_COMPILES ("${CHECK_PHIDGET_SOURCE_CODE}" HAVE_PHIDGET_2_1_7)
|
|
|
de79654 |
+ENDIF (HAVE_PHIDGET_H)
|
|
|
de79654 |
+
|
|
|
de79654 |
+IF (HAVE_PHIDGET_H)
|
|
|
de79654 |
+ SET(HAVE_PHIDGET true)
|
|
|
de79654 |
+ENDIF (HAVE_PHIDGET_H)
|
|
|
de79654 |
diff -up ./config.h.in.enablephidget ./config.h.in
|
|
|
de79654 |
--- ./config.h.in.enablephidget 2011-01-08 09:42:02.950551971 -0500
|
|
|
de79654 |
+++ ./config.h.in 2011-01-08 09:42:43.419551971 -0500
|
|
|
de79654 |
@@ -15,4 +15,5 @@
|
|
|
de79654 |
#cmakedefine HAVE_IEEEFP_H 1
|
|
|
de79654 |
#cmakedefine WORDS_BIGENDIAN 1
|
|
|
de79654 |
#cmakedefine HAVE_SETDLLDIRECTORY 1
|
|
|
de79654 |
+#cmakedefine HAVE_PHIDGET_2_1_7 1
|
|
|
de79654 |
|
|
|
de79654 |
diff -up ./server/drivers/mixed/phidgetIFK/CMakeLists.txt.enablephidget ./server/drivers/mixed/phidgetIFK/CMakeLists.txt
|
|
|
de79654 |
--- ./server/drivers/mixed/phidgetIFK/CMakeLists.txt.enablephidget 2011-01-08 09:30:18.492552601 -0500
|
|
|
de79654 |
+++ ./server/drivers/mixed/phidgetIFK/CMakeLists.txt 2011-01-08 09:31:27.874551975 -0500
|
|
|
de79654 |
@@ -1,16 +1,10 @@
|
|
|
de79654 |
-PLAYERDRIVER_OPTION (phidgetifk build_phidgetifk ON)
|
|
|
de79654 |
-SET (PHIDGETIFK_DIR "" CACHE STRING "Directory containing the Phidget IFK headers and libraries")
|
|
|
de79654 |
-MARK_AS_ADVANCED (PHIDGETIFK_DIR)
|
|
|
de79654 |
-IF ("${PHIDGETIFK_DIR}" STREQUAL "")
|
|
|
de79654 |
- SET (phidgetReqHeader "phidget21.h")
|
|
|
de79654 |
- SET (phidgetExtraFlags "")
|
|
|
de79654 |
- SET (phidgetExtraLibs "-lphidget21")
|
|
|
de79654 |
-ELSE ("${PHIDGETIFK_DIR}" STREQUAL "")
|
|
|
de79654 |
- SET (phidgetReqHeader "${PHIDGETIFK_DIR}/phidget21.h")
|
|
|
de79654 |
- SET (phidgetExtraFlags "-I${PHIDGETIFK_DIR}/include")
|
|
|
de79654 |
- SET (phidgetExtraLibs "-L${PHIDGETIFK_DIR}/lib -lphidget21")
|
|
|
de79654 |
-ENDIF ("${PHIDGETIFK_DIR}" STREQUAL "")
|
|
|
de79654 |
-PLAYERDRIVER_REQUIRE_HEADER (phidgetifk build_phidgetifk ${phidgetReqHeader})
|
|
|
de79654 |
+# libphidget now discovered in SearchForStuff.cmake
|
|
|
de79654 |
+IF (HAVE_PHIDGET)
|
|
|
de79654 |
+ PLAYERDRIVER_OPTION (phidgetifk build_phidgetifk ON)
|
|
|
de79654 |
+ELSE (HAVE_PHIDGET)
|
|
|
de79654 |
+ PLAYERDRIVER_OPTION (phidgetifk build_phidgetifk OFF "Could not find libphidget")
|
|
|
de79654 |
+ENDIF (HAVE_PHIDGET)
|
|
|
de79654 |
+
|
|
|
de79654 |
PLAYERDRIVER_ADD_DRIVER (phidgetifk build_phidgetifk
|
|
|
de79654 |
- LINKFLAGS ${phidgetExtraLibs} CFLAGS ${phidgetExtraFlags}
|
|
|
de79654 |
+ LINKFLAGS ${phidgetLinkFlags} CFLAGS ${phidgetCFlags}
|
|
|
de79654 |
SOURCES phidgetIFK.cc)
|
|
|
de79654 |
diff -up ./server/drivers/mixed/phidgetIFK/phidgetIFK.cc.enablephidget ./server/drivers/mixed/phidgetIFK/phidgetIFK.cc
|
|
|
de79654 |
--- ./server/drivers/mixed/phidgetIFK/phidgetIFK.cc.enablephidget 2011-01-08 09:43:14.839551971 -0500
|
|
|
de79654 |
+++ ./server/drivers/mixed/phidgetIFK/phidgetIFK.cc 2011-01-08 09:44:01.493551971 -0500
|
|
|
de79654 |
@@ -87,7 +87,6 @@ driver
|
|
|
de79654 |
/** @} */
|
|
|
de79654 |
|
|
|
de79654 |
|
|
|
de79654 |
-
|
|
|
de79654 |
#include <unistd.h>
|
|
|
de79654 |
#include <string.h>
|
|
|
de79654 |
#include <iostream>
|
|
|
de79654 |
@@ -97,7 +96,7 @@ driver
|
|
|
de79654 |
#include "phidget21.h"
|
|
|
de79654 |
|
|
|
de79654 |
#include <libplayercore/playercore.h>
|
|
|
de79654 |
-
|
|
|
de79654 |
+#include "config.h"
|
|
|
de79654 |
|
|
|
de79654 |
//For nanosleep:
|
|
|
de79654 |
#include <time.h>
|
|
|
de79654 |
@@ -326,8 +325,11 @@ int PhidgetIFK::ProcessMessage(QueuePoin
|
|
|
de79654 |
|
|
|
de79654 |
//the actual ammount of digital outputs of the widget
|
|
|
de79654 |
int phidget_num_outputs(0);
|
|
|
de79654 |
+#ifdef HAVE_PHIDGET_2_1_7
|
|
|
de79654 |
+ CPhidgetInterfaceKit_getOutputCount(ifk, &phidget_num_outputs);
|
|
|
de79654 |
+#else
|
|
|
de79654 |
CPhidgetInterfaceKit_getNumOutputs(ifk, &phidget_num_outputs);
|
|
|
de79654 |
-
|
|
|
de79654 |
+#endif
|
|
|
de79654 |
if (count > static_cast<int>(max_do)) {
|
|
|
de79654 |
PLAYER_WARN("PhidgetIFK: Received a command with a huge ammount of digital outputs. Check the value of count.\n");
|
|
|
de79654 |
PLAYER_WARN1("PhidgetIFK: Limiting to the maximum possible value: %d\n",max_do);
|
|
|
de79654 |
@@ -379,10 +381,14 @@ int PhidgetIFK::ProcessMessage(QueuePoin
|
|
|
de79654 |
|
|
|
de79654 |
//Get the size of the LCD screen
|
|
|
de79654 |
int numcolumns(0);
|
|
|
de79654 |
- CPhidgetTextLCD_getNumColumns(lcd,&numcolumns);
|
|
|
de79654 |
int numrows(0);
|
|
|
de79654 |
+#ifdef HAVE_PHIDGET_2_1_7
|
|
|
de79654 |
+ CPhidgetTextLCD_getColumnCount(lcd,&numcolumns);
|
|
|
de79654 |
+ CPhidgetTextLCD_getRowCount(lcd,&numrows);
|
|
|
de79654 |
+#else
|
|
|
de79654 |
+ CPhidgetTextLCD_getNumColumns(lcd,&numcolumns);
|
|
|
de79654 |
CPhidgetTextLCD_getNumRows(lcd,&numrows);
|
|
|
de79654 |
-
|
|
|
de79654 |
+#endif
|
|
|
de79654 |
//Copy the text to a string for easier manipulation
|
|
|
de79654 |
string completemessage;
|
|
|
de79654 |
completemessage = const_cast<const char *>(cmd->string);
|
|
|
de79654 |
@@ -472,8 +478,11 @@ void PhidgetIFK::Main() {
|
|
|
de79654 |
|
|
|
de79654 |
//Read from the device.
|
|
|
de79654 |
int numsensors(0);
|
|
|
de79654 |
+#ifdef HAVE_PHIDGET_2_1_7
|
|
|
de79654 |
+ CPhidgetInterfaceKit_getSensorCount(ifk, &numsensors);
|
|
|
de79654 |
+#else
|
|
|
de79654 |
CPhidgetInterfaceKit_getNumSensors(ifk, &numsensors);
|
|
|
de79654 |
-
|
|
|
de79654 |
+#endif
|
|
|
de79654 |
std::vector<float> values;
|
|
|
de79654 |
for (int i = 0 ; i != numsensors ; ++i) {
|
|
|
de79654 |
values.push_back(0.0);
|
|
|
de79654 |
@@ -502,8 +511,11 @@ void PhidgetIFK::Main() {
|
|
|
de79654 |
player_dio_data_t data_di;
|
|
|
de79654 |
//need the digital inputs as a bitfield
|
|
|
de79654 |
int num_di(0);
|
|
|
de79654 |
+#ifdef HAVE_PHIDGET_2_1_7
|
|
|
de79654 |
+ CPhidgetInterfaceKit_getInputCount(ifk, &num_di);
|
|
|
de79654 |
+#else
|
|
|
de79654 |
CPhidgetInterfaceKit_getNumInputs(ifk, &num_di);
|
|
|
de79654 |
-
|
|
|
de79654 |
+#endif
|
|
|
de79654 |
data_di.count=num_di;
|
|
|
de79654 |
|
|
|
de79654 |
std::vector<bool> divalues;
|
|
|
de79654 |
diff -up ./server/drivers/rfid/CMakeLists.txt.enablephidget ./server/drivers/rfid/CMakeLists.txt
|
|
|
de79654 |
--- ./server/drivers/rfid/CMakeLists.txt.enablephidget 2011-01-08 09:30:27.997551861 -0500
|
|
|
de79654 |
+++ ./server/drivers/rfid/CMakeLists.txt 2011-01-08 09:31:54.667551970 -0500
|
|
|
de79654 |
@@ -10,21 +10,15 @@ PLAYERDRIVER_OPTION (skyetekM1 build_sky
|
|
|
de79654 |
PLAYERDRIVER_REJECT_OS (skyetekM1 build_skyetekM1 PLAYER_OS_WIN)
|
|
|
de79654 |
PLAYERDRIVER_ADD_DRIVER (skyetekM1 build_skyetekM1 SOURCES skyetekM1.cc)
|
|
|
de79654 |
|
|
|
de79654 |
-PLAYERDRIVER_OPTION (phidgetRFID build_phidgetRFID ON)
|
|
|
de79654 |
-SET (PHIDGETRFID_DIR "" CACHE STRING "Directory containing the Phidget RFID headers and libraries")
|
|
|
de79654 |
-MARK_AS_ADVANCED (PHIDGETRFID_DIR)
|
|
|
de79654 |
-IF ("${PHIDGETRFID_DIR}" STREQUAL "")
|
|
|
de79654 |
- SET (phidgetReqHeader "phidget21.h")
|
|
|
de79654 |
- SET (phidgetExtraFlags "")
|
|
|
de79654 |
- SET (phidgetExtraLibs "-lphidget21")
|
|
|
de79654 |
-ELSE ("${PHIDGETRFID_DIR}" STREQUAL "")
|
|
|
de79654 |
- SET (phidgetReqHeader "${PHIDGETRFID_DIR}/phidget21.h")
|
|
|
de79654 |
- SET (phidgetExtraFlags "-I${PHIDGETRFID_DIR}/include")
|
|
|
de79654 |
- SET (phidgetExtraLibs "-L${PHIDGETRFID_DIR}/lib -lphidget21")
|
|
|
de79654 |
-ENDIF ("${PHIDGETRFID_DIR}" STREQUAL "")
|
|
|
de79654 |
-PLAYERDRIVER_REQUIRE_HEADER (phidgetRFID build_phidgetRFID ${phidgetReqHeader})
|
|
|
de79654 |
+# libphidget now discovered in SearchForStuff.cmake
|
|
|
de79654 |
+IF (HAVE_PHIDGET)
|
|
|
de79654 |
+ PLAYERDRIVER_OPTION (phidgetAcc build_phidgetRFID ON)
|
|
|
de79654 |
+ELSE (HAVE_PHIDGET)
|
|
|
de79654 |
+ PLAYERDRIVER_OPTION (phidgetAcc build_phidgetRFID OFF "Could not find libphidget")
|
|
|
de79654 |
+ENDIF (HAVE_PHIDGET)
|
|
|
de79654 |
+
|
|
|
de79654 |
PLAYERDRIVER_ADD_DRIVER (phidgetRFID build_phidgetRFID
|
|
|
de79654 |
- LINKFLAGS ${phidgetExtraLibs} CFLAGS "${phidgetExtraFlags}"
|
|
|
de79654 |
+ LINKFLAGS ${phidgetLinkFlags} CFLAGS "${phidgetCFlags}"
|
|
|
de79654 |
SOURCES phidgetRFID.cc)
|
|
|
de79654 |
|
|
|
de79654 |
PLAYERDRIVER_OPTION (acr120u build_acr120u ON)
|
|
|
de79654 |
diff -up ./server/drivers/rfid/phidgetRFID.cc.enablephidget ./server/drivers/rfid/phidgetRFID.cc
|
|
|
de79654 |
--- ./server/drivers/rfid/phidgetRFID.cc.enablephidget 2011-01-08 09:43:32.178551971 -0500
|
|
|
de79654 |
+++ ./server/drivers/rfid/phidgetRFID.cc 2011-01-08 09:44:33.501551971 -0500
|
|
|
de79654 |
@@ -83,9 +83,9 @@ driver
|
|
|
de79654 |
/** @} */
|
|
|
de79654 |
|
|
|
de79654 |
|
|
|
de79654 |
-
|
|
|
de79654 |
#include "phidget21.h"
|
|
|
de79654 |
#include <libplayercore/playercore.h>
|
|
|
de79654 |
+#include "config.h"
|
|
|
de79654 |
|
|
|
de79654 |
#include <unistd.h>
|
|
|
de79654 |
#include <string.h>
|
|
|
de79654 |
@@ -261,7 +261,11 @@ int Phidgetrfid::ProcessMessage(QueuePoi
|
|
|
de79654 |
|
|
|
de79654 |
//the actual ammount of digital outputs of the widget
|
|
|
de79654 |
int phidget_num_outputs(0);
|
|
|
de79654 |
+#ifdef HAVE_PHIDGET_2_1_7
|
|
|
de79654 |
+ CPhidgetRFID_getOutputCount(rfid, &phidget_num_outputs);
|
|
|
de79654 |
+#else
|
|
|
de79654 |
CPhidgetRFID_getNumOutputs(rfid, &phidget_num_outputs);
|
|
|
de79654 |
+#endif
|
|
|
de79654 |
printf("Num of outputs: %d\n", phidget_num_outputs);
|
|
|
de79654 |
|
|
|
de79654 |
if (count > static_cast<int>(max_do)) {
|
|
|
de79654 |
diff -up ./server/drivers/wsn/CMakeLists.txt.enablephidget ./server/drivers/wsn/CMakeLists.txt
|
|
|
de79654 |
--- ./server/drivers/wsn/CMakeLists.txt.enablephidget 2011-01-08 09:30:38.161552089 -0500
|
|
|
de79654 |
+++ ./server/drivers/wsn/CMakeLists.txt 2011-01-08 09:32:14.870551971 -0500
|
|
|
de79654 |
@@ -21,19 +21,12 @@ ELSE (HAVE_STL)
|
|
|
de79654 |
ENDIF (HAVE_STL)
|
|
|
de79654 |
PLAYERDRIVER_ADD_DRIVER (accel_calib build_accel_calib SOURCES accel_calib.cc)
|
|
|
de79654 |
|
|
|
de79654 |
-PLAYERDRIVER_OPTION (phidgetAcc build_phidgetAcc ON)
|
|
|
de79654 |
-SET (PHIDGETACC_DIR "" CACHE STRING "Directory containing the Phidget Acc headers and libraries")
|
|
|
de79654 |
-MARK_AS_ADVANCED (PHIDGETACC_DIR)
|
|
|
de79654 |
-IF ("${PHIDGETACC_DIR}" STREQUAL "")
|
|
|
de79654 |
- SET (phidgetReqHeader "phidget21.h")
|
|
|
de79654 |
- SET (phidgetExtraFlags "")
|
|
|
de79654 |
- SET (phidgetExtraLibs "-lphidget21")
|
|
|
de79654 |
-ELSE ("${PHIDGETACC_DIR}" STREQUAL "")
|
|
|
de79654 |
- SET (phidgetReqHeader "${PHIDGETACC_DIR}/phidget21.h")
|
|
|
de79654 |
- SET (phidgetExtraFlags "-I${PHIDGETACC_DIR}/include")
|
|
|
de79654 |
- SET (phidgetExtraLibs "-L${PHIDGETACC_DIR}/lib -lphidget21")
|
|
|
de79654 |
-ENDIF ("${PHIDGETACC_DIR}" STREQUAL "")
|
|
|
de79654 |
-PLAYERDRIVER_REQUIRE_HEADER (phidgetAcc build_phidgetAcc ${phidgetReqHeader})
|
|
|
de79654 |
+# libphidget now discovered in SearchForStuff.cmake
|
|
|
de79654 |
+IF (HAVE_PHIDGET)
|
|
|
de79654 |
+ PLAYERDRIVER_OPTION (phidgetAcc build_phidgetAcc ON)
|
|
|
de79654 |
+ELSE (HAVE_PHIDGET)
|
|
|
de79654 |
+ PLAYERDRIVER_OPTION (phidgetAcc build_phidgetAcc OFF "Could not find libphidget")
|
|
|
de79654 |
+ENDIF (HAVE_PHIDGET)
|
|
|
de79654 |
PLAYERDRIVER_ADD_DRIVER (phidgetAcc build_phidgetAcc
|
|
|
de79654 |
- LINKFLAGS ${phidgetExtraLibs} CFLAGS ${phidgetExtraFlags}
|
|
|
de79654 |
+ LINKFLAGS ${phidgetLinkFlags} CFLAGS ${phidgetCFlags}
|
|
|
de79654 |
SOURCES phidgetAcc.cc)
|
|
|
de79654 |
diff -up ./server/drivers/wsn/phidgetAcc.cc.enablephidget ./server/drivers/wsn/phidgetAcc.cc
|
|
|
de79654 |
--- ./server/drivers/wsn/phidgetAcc.cc.enablephidget 2011-01-08 09:43:25.513551970 -0500
|
|
|
de79654 |
+++ ./server/drivers/wsn/phidgetAcc.cc 2011-01-08 09:44:16.546551971 -0500
|
|
|
de79654 |
@@ -79,10 +79,9 @@ driver
|
|
|
de79654 |
*/
|
|
|
de79654 |
/** @} */
|
|
|
de79654 |
|
|
|
de79654 |
-
|
|
|
de79654 |
-
|
|
|
de79654 |
#include "phidget21.h"
|
|
|
de79654 |
#include <libplayercore/playercore.h>
|
|
|
de79654 |
+#include "config.h"
|
|
|
de79654 |
|
|
|
de79654 |
#include <unistd.h>
|
|
|
de79654 |
#include <string.h>
|
|
|
de79654 |
@@ -273,7 +272,11 @@ void PhidgetAcc::Main() {
|
|
|
de79654 |
data.data_packet.temperature = -1;
|
|
|
de79654 |
data.data_packet.battery = -1;
|
|
|
de79654 |
int n_axis;
|
|
|
de79654 |
+#ifdef HAVE_PHIDGET_2_1_7
|
|
|
de79654 |
+ if(CPhidgetAccelerometer_getAxisCount(accel,&n_axis)) return;
|
|
|
de79654 |
+#else
|
|
|
de79654 |
if(CPhidgetAccelerometer_getNumAxis(accel,&n_axis)) return;
|
|
|
de79654 |
+#endif
|
|
|
de79654 |
double *p_accel;
|
|
|
de79654 |
p_accel= new double[n_axis];
|
|
|
de79654 |
for (int i=0;i
|