phidget.cpp
Go to the documentation of this file.
00001 #include "carl_phidgets/phidget.h"
00002 
00003 namespace phidgets {
00004 
00005 Phidget::Phidget()
00006 {
00007 
00008 }
00009 
00010 Phidget::~Phidget()
00011 {
00012   //close(); // segfaults, why?
00013   CPhidget_delete(handle_);
00014 }
00015 
00016 void Phidget::registerHandlers()
00017 {
00018   CPhidget_set_OnAttach_Handler(handle_, &Phidget::AttachHandler, this); 
00019   CPhidget_set_OnDetach_Handler(handle_, &Phidget::DetachHandler, this); 
00020         CPhidget_set_OnError_Handler (handle_, &Phidget::ErrorHandler,  this);
00021 }
00022 
00023 void Phidget::init(CPhidgetHandle handle)
00024 {
00025   handle_ = handle;
00026 }
00027 
00028 int Phidget::open(int serial_number)
00029 {
00030   return CPhidget_open(handle_, serial_number);
00031 }
00032 
00033 int Phidget::close()
00034 {
00035   return CPhidget_close(handle_);
00036 }
00037 
00038 int Phidget::waitForAttachment(int timeout)
00039 {
00040   return CPhidget_waitForAttachment(handle_, timeout);
00041 }
00042 
00043 std::string Phidget::getDeviceType()
00044 {
00045   char a[1000];
00046   const char * deviceptr = a;
00047   CPhidget_getDeviceType(handle_, &deviceptr);
00048   return std::string(deviceptr);
00049 }
00050 
00051 std::string Phidget::getDeviceName()
00052 {
00053   char a[1000];
00054   const char * deviceptr = a;
00055   CPhidget_getDeviceName(handle_, &deviceptr);
00056   return std::string(deviceptr);
00057 }
00058 
00059 std::string Phidget::getDeviceLabel()
00060 {
00061   char a[1000];
00062   const char * deviceptr = a;
00063   CPhidget_getDeviceType(handle_, &deviceptr);
00064   return std::string(deviceptr);
00065 }
00066 
00067 std::string Phidget::getLibraryVersion(){
00068   char a[1000];
00069   const char * deviceptr = a;
00070   CPhidget_getLibraryVersion(&deviceptr);
00071   return std::string(deviceptr);
00072 }
00073 
00074 int Phidget::getDeviceSerialNumber()
00075 {
00076   int sernum;
00077   CPhidget_getSerialNumber(handle_, &sernum);
00078   return sernum;
00079 }
00080 
00081 int Phidget::getDeviceVersion()
00082 {
00083   int version;
00084   CPhidget_getDeviceVersion(handle_, &version);
00085   return version;
00086 }
00087 
00088 std::string Phidget::getErrorDescription(int errorCode)
00089 {
00090   char a[1000];
00091   const char * errorPtr = a;
00092   CPhidget_getErrorDescription(errorCode, &errorPtr);
00093   return std::string(errorPtr);
00094 }
00095 
00096 void Phidget::attachHandler()
00097 {
00098         printf("Phidget attached (serial# %d)\n", getDeviceSerialNumber());
00099 }
00100 
00101 void Phidget::detachHandler()
00102 {
00103         printf("Phidget detached (serial# %d)\n", getDeviceSerialNumber());
00104 }
00105 
00106 void Phidget::errorHandler(int error)
00107 {
00108         printf("Phidget error [%d]: %s\n", error, getErrorDescription(error).c_str());
00109 }
00110 
00111 int Phidget::AttachHandler(CPhidgetHandle handle, void *userptr)
00112 {
00113   ((Phidget*)userptr)->attachHandler();
00114   return 0;
00115 }
00116 
00117 int Phidget::DetachHandler(CPhidgetHandle handle, void *userptr)
00118 {
00119   ((Phidget*)userptr)->detachHandler();
00120   return 0;
00121 }
00122 
00123 int Phidget::ErrorHandler(CPhidgetHandle handle, void *userptr, int ErrorCode, const char *unknown)
00124 {
00125   ((Phidget*)userptr)->errorHandler(ErrorCode);
00126   return 0;
00127 }
00128 
00129 } //namespace phidgets


carl_phidgets
Author(s): David Kent , Russell Toris
autogenerated on Thu Jun 6 2019 21:09:54