void ioPhidget::connect(int timeout = 10000){ const char *err; int result; // this starts reading in data. //sets a bridge data event handler called by rate set by 'datarate' CPhidgetBridge_set_OnBridgeData_Handler(bridge, &data, &dat); // open bridge for device connections CPhidget_open((CPhidgetHandle)bridge, -1); //Wait for 10 seconds, otherwise exit printf("Waiting for attachment..."); if((result = CPhidget_waitForAttachment((CPhidgetHandle)bridge, timeout))) { CPhidget_getErrorDescription(result, &err); printf("Problem waiting for attachment: %s\n", err); return; } display_generic_properties((CPhidgetHandle)bridge); // return if the device is attached or not (int) CPhidget_getDeviceStatus((CPhidgetHandle)bridge, &isAttached); return; }
void test() { const char *err; int result; CPhidgetFrequencyCounterHandle freq; //CPhidget_enableLogging(PHIDGET_LOG_VERBOSE, NULL); CPhidgetFrequencyCounter_create(&freq); CPhidget_set_OnAttach_Handler((CPhidgetHandle)freq, AttachHandler, NULL); CPhidget_set_OnDetach_Handler((CPhidgetHandle)freq, DetachHandler, NULL); CPhidget_set_OnError_Handler((CPhidgetHandle)freq, ErrorHandler, NULL); CPhidgetFrequencyCounter_set_OnCount_Handler(freq, Count, NULL); CPhidget_open((CPhidgetHandle)freq, -1); //Wait for 10 seconds, otherwise exit if(result = CPhidget_waitForAttachment((CPhidgetHandle)freq, 10000)) { CPhidget_getErrorDescription(result, &err); printf("Problem waiting for attachment: %s\n", err); return; } display_generic_properties((CPhidgetHandle)freq); //Wait for enter getchar(); printf("Closing...\n"); CPhidget_close((CPhidgetHandle)freq); CPhidget_delete((CPhidgetHandle)freq); return; }
int test_interfacekit() { int numInputs, numOutputs, numSensors; int err; CPhidgetInterfaceKitHandle IFK = 0; CPhidget_enableLogging(PHIDGET_LOG_VERBOSE, NULL); CPhidgetInterfaceKit_create(&IFK); CPhidgetInterfaceKit_set_OnInputChange_Handler(IFK, IFK_InputChangeHandler, NULL); CPhidgetInterfaceKit_set_OnOutputChange_Handler(IFK, IFK_OutputChangeHandler, NULL); CPhidgetInterfaceKit_set_OnSensorChange_Handler(IFK, IFK_SensorChangeHandler, NULL); CPhidget_set_OnAttach_Handler((CPhidgetHandle)IFK, IFK_AttachHandler, NULL); CPhidget_set_OnDetach_Handler((CPhidgetHandle)IFK, IFK_DetachHandler, NULL); CPhidget_set_OnError_Handler((CPhidgetHandle)IFK, IFK_ErrorHandler, NULL); CPhidget_open((CPhidgetHandle)IFK, -1); //wait 5 seconds for attachment if((err = CPhidget_waitForAttachment((CPhidgetHandle)IFK, 0)) != EPHIDGET_OK ) { const char *errStr; CPhidget_getErrorDescription(err, &errStr); printf("Error waiting for attachment: (%d): %s\n",err,errStr); goto exit; } display_generic_properties((CPhidgetHandle)IFK); CPhidgetInterfaceKit_getOutputCount((CPhidgetInterfaceKitHandle)IFK, &numOutputs); CPhidgetInterfaceKit_getInputCount((CPhidgetInterfaceKitHandle)IFK, &numInputs); CPhidgetInterfaceKit_getSensorCount((CPhidgetInterfaceKitHandle)IFK, &numSensors); CPhidgetInterfaceKit_setOutputState((CPhidgetInterfaceKitHandle)IFK, 0, 1); printf("Sensors:%d Inputs:%d Outputs:%d\n", numSensors, numInputs, numOutputs); //err = CPhidget_setDeviceLabel((CPhidgetHandle)IFK, "test"); while(1) { sleep(1); } while(1) { CPhidgetInterfaceKit_setOutputState(IFK, 7, 1); CPhidgetInterfaceKit_setOutputState(IFK, 7, 0); } CPhidgetInterfaceKit_setOutputState(IFK, 0, 1); sleep(1); CPhidgetInterfaceKit_setOutputState(IFK, 0, 0); sleep(1); CPhidgetInterfaceKit_setOutputState(IFK, 0, 1); sleep(1); CPhidgetInterfaceKit_setOutputState(IFK, 0, 0); sleep(5); exit: CPhidget_close((CPhidgetHandle)IFK); CPhidget_delete((CPhidgetHandle)IFK); return 0; }