bool attach( CPhidgetPHSensorHandle &phid, int serial_number) { int result; const char *err; //create the PH Sensor object CPhidgetPHSensor_create(&phid); //Set the handlers to be run when the device is plugged in or opened from software, unplugged or closed from software, or generates an error. CPhidget_set_OnAttach_Handler((CPhidgetHandle)phid, AttachHandler, NULL); CPhidget_set_OnDetach_Handler((CPhidgetHandle)phid, DetachHandler, NULL); CPhidget_set_OnError_Handler((CPhidgetHandle)phid, ErrorHandler, NULL); //Registers a callback that will run if the PH changes by more than the PH trigger. //Requires the handle for the PHSensor, the function that will be called, and a arbitrary pointer that will be supplied to the callback function (may be NULL). CPhidgetPHSensor_set_OnPHChange_Handler(phid, PHChangeHandler, NULL); //open the PH Sensor for device connections CPhidget_open((CPhidgetHandle)phid, -1); //get the program to wait for an PH Sensor device to be attached ROS_INFO("Waiting for PH Sensor to be attached...."); if ((result = CPhidget_waitForAttachment((CPhidgetHandle)phid, 10000))) { CPhidget_getErrorDescription(result, &err); ROS_INFO("Problem waiting for PH Sensor attachment: %s\n", err); return false; } else return true; }
int ph_simple() { int result; const char *err; //Declare an PH Sensor handle CPhidgetPHSensorHandle ph = 0; //create the PH Sensor object CPhidgetPHSensor_create(&ph); //Set the handlers to be run when the device is plugged in or opened from software, unplugged or closed from software, or generates an error. CPhidget_set_OnAttach_Handler((CPhidgetHandle)ph, AttachHandler, NULL); CPhidget_set_OnDetach_Handler((CPhidgetHandle)ph, DetachHandler, NULL); CPhidget_set_OnError_Handler((CPhidgetHandle)ph, ErrorHandler, NULL); //Registers a callback that will run if the PH changes by more than the PH trigger. //Requires the handle for the PHSensor, the function that will be called, and a arbitrary pointer that will be supplied to the callback function (may be NULL). CPhidgetPHSensor_set_OnPHChange_Handler(ph, PHChangeHandler, NULL); //open the PH Sensor for device connections CPhidget_open((CPhidgetHandle)ph, -1); //get the program to wait for an PH Sensor device to be attached printf("Waiting for PH Sensor to be attached...."); if((result = CPhidget_waitForAttachment((CPhidgetHandle)ph, 10000))) { CPhidget_getErrorDescription(result, &err); printf("Problem waiting for attachment: %s\n", err); return 0; } //Display the properties of the attached textlcd device display_properties(ph); //read led event data printf("Reading.....\n"); //increase the sensitivity printf("Increasing sensitivity to 10.00, Press any key to continue\n"); getchar(); CPhidgetPHSensor_setPHChangeTrigger (ph, 10.00); //end printf("Press any key to end\n"); getchar(); //since user input has been read, this is a signal to terminate the program so we will close the phidget and delete the object we created printf("Closing...\n"); CPhidget_close((CPhidgetHandle)ph); CPhidget_delete((CPhidgetHandle)ph); //all done, exit return 0; }