src/HidDevice.cpp
author sl
Thu, 22 May 2014 08:17:14 +0200
changeset 15 e5b84f315be7
parent 14 4a5538e0ccbf
child 16 21033ded8f86
permissions -rw-r--r--
Sorting out connected state management with our new VFD object.
     1 //
     2 //
     3 //
     4 
     5 #include "HidDevice.h"
     6 
     7 
     8 
     9 //
    10 // class HidDevice
    11 //
    12 
    13 HidDevice::HidDevice():iHidDevice(NULL)
    14     {
    15 
    16     }
    17 
    18 /**
    19 */
    20 int HidDevice::Open(const char* aPath)
    21 	{
    22 	Close();
    23 
    24 	iHidDevice =  hid_open_path(aPath);
    25 
    26 	if (!iHidDevice)
    27 		{
    28 		//Fail to connect our device
    29 		return 0;
    30 		}
    31 
    32 	return 1;
    33 	}
    34 
    35 /**
    36 See hidapi documentation.
    37 */
    38 int HidDevice::Open(unsigned short aVendorId, unsigned short aProductId, const wchar_t* aSerialNumber)
    39 	{
    40 	iHidDevice = hid_open(aVendorId, aProductId, aSerialNumber);
    41 
    42 	if (!iHidDevice)
    43 		{
    44 		//Fail to connect our device
    45 		return 0;
    46 		}
    47 
    48 	return 1;
    49 	}
    50 
    51 /**
    52 */
    53 void HidDevice::Close()
    54 	{
    55 	hid_close(iHidDevice);
    56 	iHidDevice=NULL;
    57 	}
    58 
    59 /**
    60 */
    61 bool HidDevice::IsOpen()
    62     {
    63     return iHidDevice!=NULL;
    64     }
    65 
    66 
    67 /**
    68 */
    69 const wchar_t* HidDevice::Error()
    70 	{
    71 	return hid_error(iHidDevice);
    72 	}
    73 
    74 /**
    75 */
    76 int HidDevice::SetNonBlocking(int aNonBlocking)
    77 	{
    78 	//Success we are now connected to our HID device
    79 	//Set read operation as non blocking
    80 	return hid_set_nonblocking(iHidDevice, aNonBlocking);
    81 	}