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);
+ }
/**
|