00001
00002
00003
00004
00005 #include <stdio.h>
00006 #include <string.h>
00007 #include <unistd.h>
00008 #include <phidget21.h>
00009 int wert[100];
00010 int i;
00011
00012 void display_generic_properties(CPhidgetHandle phid)
00013 {
00014 int sernum, version;
00015 const char *deviceptr, *label;
00016 CPhidget_getDeviceType(phid, &deviceptr);
00017 CPhidget_getSerialNumber(phid, &sernum);
00018 CPhidget_getDeviceVersion(phid, &version);
00019 CPhidget_getDeviceLabel(phid, &label);
00020
00021 printf("%s\n", deviceptr);
00022 printf("Version: %8d SerialNumber: %10d\n", version, sernum);
00023 printf("Label: %s\n", label);
00024 return;
00025 }
00026
00027
00028 int IFK_SensorChangeHandler(CPhidgetInterfaceKitHandle IFK, void *userptr, int Index, int Value)
00029 {
00030
00031
00032 if (i <10)
00033 {
00034 CPhidgetInterfaceKit_getSensorValue(IFK,0, &wert[0+(10*i)]);
00035
00036 CPhidgetInterfaceKit_getSensorValue(IFK,1, &wert[1+(10*i)]);
00037
00038 CPhidgetInterfaceKit_getSensorValue(IFK,2, &wert[2+(10*i)]);
00039
00040 CPhidgetInterfaceKit_getSensorValue(IFK,3, &wert[3+(10*i)]);
00041
00042 }
00043
00044 else
00045 {
00046
00047
00048
00049
00050
00051
00052
00053 wert[94] = ((wert[0] + wert[10]+wert[20]+wert[30]+wert[40]+wert[50]+wert[60]+wert[70]+wert[80]+wert[90]) / 10);
00054 wert[95] = ((wert[1] + wert[11]+wert[21]+wert[31]+wert[41]+wert[51]+wert[61]+wert[71]+wert[81]+wert[91]) / 10);
00055 wert[96] = ((wert[2] + wert[12]+wert[22]+wert[32]+wert[42]+wert[52]+wert[62]+wert[72]+wert[82]+wert[92]) / 10);
00056 wert[97] = ((wert[3] + wert[13]+wert[23]+wert[33]+wert[43]+wert[53]+wert[63]+wert[73]+wert[83]+wert[93]) / 10);
00057
00058 if ((wert[94] < 120) && (wert[95] <300) && (wert[96] < 110) && (wert[97] < 120))
00059 {
00060 printf("Sensor0123 manually are %d %d %d %d ; \n", wert[94],wert[95],wert[96],wert[97]);
00061 printf("tablet empty\n");
00062 }
00063 else
00064 {
00065 printf("Sensor0123 manually are %d %d %d %d ; \n", wert[94],wert[95],wert[96],wert[97]);
00066 printf("tablet NOT empty!\n");
00067 }
00068
00069 for( i = 0; i < 100; i++)
00070 wert[i]=0;
00071 i =0;
00072 }
00073 i++;
00074 printf("i is %d \n",i);
00075 return 0;
00076 }
00077
00078
00079 int IFK_AttachHandler(CPhidgetHandle IFK, void *userptr)
00080 {
00081
00082 printf("Attach handler ran!\n");
00083 return 0;
00084 }
00085
00086 int test_interfacekit()
00087 {
00088 int numInputs, numOutputs, numSensors;
00089 int err;
00090
00091 CPhidgetInterfaceKitHandle IFK = 0;
00092 CPhidget_enableLogging(PHIDGET_LOG_VERBOSE, NULL);
00093 CPhidgetInterfaceKit_create(&IFK);
00094 CPhidgetInterfaceKit_set_OnSensorChange_Handler(IFK, IFK_SensorChangeHandler, NULL);
00095 CPhidget_set_OnAttach_Handler((CPhidgetHandle)IFK, IFK_AttachHandler, NULL);
00096
00097 CPhidget_open((CPhidgetHandle)IFK, -1);
00098
00099
00100 if((err = CPhidget_waitForAttachment((CPhidgetHandle)IFK, 0)) != EPHIDGET_OK )
00101 {
00102 const char *errStr;
00103 CPhidget_getErrorDescription(err, &errStr);
00104 printf("Error waiting for attachment: (%d): %s\n",err,errStr);
00105 goto exit;
00106 }
00107
00108 display_generic_properties((CPhidgetHandle)IFK);
00109 CPhidgetInterfaceKit_getOutputCount((CPhidgetInterfaceKitHandle)IFK, &numOutputs);
00110 CPhidgetInterfaceKit_getInputCount((CPhidgetInterfaceKitHandle)IFK, &numInputs);
00111 CPhidgetInterfaceKit_getSensorCount((CPhidgetInterfaceKitHandle)IFK, &numSensors);
00112 CPhidgetInterfaceKit_setOutputState((CPhidgetInterfaceKitHandle)IFK, 0, 1);
00113
00114 printf("Sensors:%d Inputs:%d Outputs:%d\n", numSensors, numInputs, numOutputs);
00115
00116
00117
00118
00119
00120 while(1)
00121 {
00122 sleep(1);
00123 }
00124
00125 while(1)
00126 {
00127 CPhidgetInterfaceKit_setOutputState(IFK, 7, 1);
00128 CPhidgetInterfaceKit_setOutputState(IFK, 7, 0);
00129 }
00130
00131
00132
00133 CPhidgetInterfaceKit_setOutputState(IFK, 0, 1);
00134 sleep(1);
00135 CPhidgetInterfaceKit_setOutputState(IFK, 0, 0);
00136 sleep(1);
00137 CPhidgetInterfaceKit_setOutputState(IFK, 0, 1);
00138 sleep(1);
00139 CPhidgetInterfaceKit_setOutputState(IFK, 0, 0);
00140
00141 sleep(5);
00142
00143 exit:
00144 CPhidget_close((CPhidgetHandle)IFK);
00145 CPhidget_delete((CPhidgetHandle)IFK);
00146
00147 return 0;
00148 }
00149
00150 int main(int argc, char* argv[])
00151 {
00152 test_interfacekit();
00153 return 0;
00154 }
00155