Revision: 9130
http://sourceforge.net/p/playerstage/svn/9130
Author: jpgr87
Date: 2013-11-10 19:06:56 +0000 (Sun, 10 Nov 2013)
Log Message:
-----------
Phidget RFID driver now compatible with phidget 2.1.8 library
Modified Paths:
--------------
code/player/trunk/cmake/internal/SearchForStuff.cmake
code/player/trunk/server/drivers/rfid/CMakeLists.txt
code/player/trunk/server/drivers/rfid/phidgetRFID.cc
Modified: code/player/trunk/cmake/internal/SearchForStuff.cmake
===================================================================
--- code/player/trunk/cmake/internal/SearchForStuff.cmake 2013-11-10
18:28:48 UTC (rev 9129)
+++ code/player/trunk/cmake/internal/SearchForStuff.cmake 2013-11-10
19:06:56 UTC (rev 9130)
@@ -277,6 +277,11 @@
CPhidgetInterfaceKit_create(&ifk);
CPhidgetInterfaceKit_getOutputCount(ifk, &phidget_num_outputs); return 0;
}\n")
CHECK_C_SOURCE_COMPILES ("${CHECK_PHIDGET_SOURCE_CODE}" HAVE_PHIDGET_2_1_7)
+
+ SET(CMAKE_REQUIRED_FLAGS "${phidgetCFlags} ${phidgetLinkFlags}
-lphidget21")
+ SET(CHECK_PHIDGET_SOURCE_CODE_218 "#include <phidget21.h>\n int main ()
+ {CPhidgetRFIDHandle handle; CPhidgetRFID_set_OnTag2_Handler(handle,0,0);}")
+ CHECK_C_SOURCE_COMPILES("${CHECK_PHIDGET_SOURCE_CODE_218}"
HAVE_PHIDGET_2_1_8)
ENDIF (HAVE_PHIDGET_H)
IF (HAVE_PHIDGET_H)
Modified: code/player/trunk/server/drivers/rfid/CMakeLists.txt
===================================================================
--- code/player/trunk/server/drivers/rfid/CMakeLists.txt 2013-11-10
18:28:48 UTC (rev 9129)
+++ code/player/trunk/server/drivers/rfid/CMakeLists.txt 2013-11-10
19:06:56 UTC (rev 9130)
@@ -17,8 +17,12 @@
PLAYERDRIVER_OPTION (phidgetAcc build_phidgetRFID OFF "Could not find
libphidget")
ENDIF (HAVE_PHIDGET)
+IF (HAVE_PHIDGET_2_1_8)
+ SET (phidgetRFIDCFlags "${phidgetCFlags} -DHAVE_PHIDGET_2_1_8")
+ENDIF (HAVE_PHIDGET_2_1_8)
+
PLAYERDRIVER_ADD_DRIVER (phidgetRFID build_phidgetRFID
- LINKFLAGS ${phidgetLinkFlags} CFLAGS "${phidgetCFlags}"
+ LINKFLAGS ${phidgetLinkFlags} CFLAGS "${phidgetRFIDCFlags}"
SOURCES phidgetRFID.cc)
PLAYERDRIVER_OPTION (acr120u build_acr120u ON)
Modified: code/player/trunk/server/drivers/rfid/phidgetRFID.cc
===================================================================
--- code/player/trunk/server/drivers/rfid/phidgetRFID.cc 2013-11-10
18:28:48 UTC (rev 9129)
+++ code/player/trunk/server/drivers/rfid/phidgetRFID.cc 2013-11-10
19:06:56 UTC (rev 9130)
@@ -109,8 +109,13 @@
return(end.tv_sec*1000.0 + end.tv_usec/1000.0 - (start.tv_sec*1000.0 +
start.tv_usec/1000.0));
}
+#ifdef HAVE_PHIDGET_2_1_8
+int TagLost(CPhidgetRFIDHandle rfid, void *hola, char *usrchar,
CPhidgetRFID_Protocol protocol);
+int TagFound(CPhidgetRFIDHandle rfid, void *hola, char *usrchar,
CPhidgetRFID_Protocol protocol);
+#else
int TagLost(CPhidgetRFIDHandle rfid,void *hola, unsigned char *usrchar);
int TagFound(CPhidgetRFIDHandle rfid,void *hola, unsigned char *usrchar);
+#endif
@@ -220,8 +225,13 @@
PLAYER_MSG0(1,"Connection granted to the PhidgetRFID Reader.");
}
+#ifdef HAVE_PHIDGET_2_1_8
+ CPhidgetRFID_set_OnTagLost2_Handler(rfid,TagLost,NULL);
+ CPhidgetRFID_set_OnTag2_Handler(rfid,TagFound,NULL);
+#else
CPhidgetRFID_set_OnTagLost_Handler(rfid,TagLost,NULL);
CPhidgetRFID_set_OnTag_Handler(rfid,TagFound,NULL);
+#endif
//Turning on the Antena.
CPhidgetRFID_setAntennaOn(rfid,1);
CPhidgetRFID_setLEDOn(rfid,1);
@@ -359,10 +369,13 @@
// called on each message.
ProcessMessages();
-
-
- unsigned char tag[20];
+ char* tag = new char[20];
+#ifdef HAVE_PHIDGET_2_1_8
+ CPhidgetRFID_Protocol proto = PHIDGET_RFID_PROTOCOL_PHIDGETS;
+ CPhidgetRFID_getLastTag2(rfid,&tag,&proto);
+#else
CPhidgetRFID_getLastTag(rfid,tag);
+#endif
int ledstate;
player_rfid_data_t data_rfid;
data_rfid.tags = new player_rfid_tag_t[1];
@@ -397,8 +410,8 @@
}
CPhidgetRFID_setLEDOn(rfid,0);
}
+ delete [] tag;
-
//Publishing data.
if (rfid_id.interf !=0) {
Publish(rfid_id, PLAYER_MSGTYPE_DATA, PLAYER_RFID_DATA_TAGS,
(unsigned char*)&data_rfid, sizeof(player_rfid_data_t), NULL);
@@ -439,13 +452,22 @@
}
//Handler functions to check if there is a new tag there. They are handlers as
seen on the Phidget library.
+
+#ifdef HAVE_PHIDGET_2_1_8
+int TagLost(CPhidgetRFIDHandle rfid, void *dummy, char *usrchar,
CPhidgetRFID_Protocol protocol) {
+#else
int TagLost(CPhidgetRFIDHandle rfid,void *dummy, unsigned char *usrchar) {
+#endif
tagControl.rfid_present=rfid;
tagControl.tagPresent=0;
return (0);
}
+#ifdef HAVE_PHIDGET_2_1_8
+int TagFound(CPhidgetRFIDHandle rfid, void *dummy, char *usrchar,
CPhidgetRFID_Protocol protocol) {
+#else
int TagFound(CPhidgetRFIDHandle rfid,void *dummy, unsigned char *usrchar) {
+#endif
tagControl.rfid_present=rfid;
tagControl.tagPresent=1;
return (0);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit