[Libphidget-cvs-commits] CVS: libphidget/src/libphidget phidget.c,1.12,1.13
Status: Alpha
Brought to you by:
jstrohm
From: Jack S. <js...@us...> - 2002-12-13 20:45:20
|
Update of /cvsroot/libphidget/libphidget/src/libphidget In directory sc8-pr-cvs1:/tmp/cvs-serv8973/libphidget Modified Files: phidget.c Log Message: Support reading of interface kit 488 using libusb Index: phidget.c =================================================================== RCS file: /cvsroot/libphidget/libphidget/src/libphidget/phidget.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** phidget.c 13 Dec 2002 16:42:21 -0000 1.12 --- phidget.c 13 Dec 2002 20:45:14 -0000 1.13 *************** *** 22,27 **** // TODO - change this ! #define DBG(a) printf("*** DEBUG *** : %s\n",a) ! //#define DBG(a) int _libPhidgetInitialized = 0; /**< Private variable to determine if the libphidget is initialized */ --- 22,27 ---- // TODO - change this ! //#define DBG(a) printf("*** DEBUG *** : %s\n",a) ! #define DBG(a) int _libPhidgetInitialized = 0; /**< Private variable to determine if the libphidget is initialized */ *************** *** 1370,1373 **** --- 1370,1397 ---- } */ + + /** + * Helper function to read from an interface kit. + */ + void phidgetInterfaceKit488Read(struct phidget *phidgetDevice, float analog[4], int digital[8]) + { + char buffer[7]; + + phidgetRead(phidgetDevice,buffer,sizeof(buffer)); + + digital[0]=(buffer[0] & 1)==1; + digital[1]=(buffer[0] & 2)==2; + digital[2]=(buffer[0] & 4)==4; + digital[3]=(buffer[0] & 8)==8; + digital[4]=(buffer[0] & 16)==16; + digital[5]=(buffer[0] & 32)==32; + digital[6]=(buffer[0] & 64)==64; + digital[7]=(buffer[0] & 128)==128; + + analog[0]=((unsigned char)buffer[3]+((unsigned char)buffer[2] & 0x0f) * 256); + analog[1]=((unsigned char)buffer[1]+((unsigned char)buffer[2] & 0xf0) * 16); + analog[2]=((unsigned char)buffer[6]+((unsigned char)buffer[5] & 0x0f) * 256); + analog[3]=((unsigned char)buffer[4]+((unsigned char)buffer[5] & 0xf0) * 16); + } /** |