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 Playerstage-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/playerstage-commit