libdrmconf
0.10.4
A library to program DMR radios.
|
Implements the HID radio interface using libusb. More...
#include <hid_libusb.hh>
Classes | |
class | Descriptor |
Specialization to address a HI device uniquely. More... | |
Public Member Functions | |
HIDevice (const USBDeviceDescriptor &descr, const ErrorStack &err=ErrorStack(), QObject *parent=nullptr) | |
Connects to the device with given vendor and product ID. | |
virtual | ~HIDevice () |
Destructor. | |
bool | isOpen () const |
Returns true if the connection is established. | |
bool | hid_send_recv (const unsigned char *data, unsigned nbytes, unsigned char *rdata, unsigned rlength, const ErrorStack &err=ErrorStack()) |
Send command/data to the device and store response in rdata . More... | |
void | close () |
Close connection to device. | |
HIDevice (const USBDeviceDescriptor &descr, const ErrorStack &err=ErrorStack(), QObject *parent=nullptr) | |
Opens a connection to the device with given vendor and product ID. | |
virtual | ~HIDevice () |
Destructor. | |
bool | isOpen () const |
Returns true if the connection was established. | |
bool | hid_send_recv (const unsigned char *data, unsigned nbytes, unsigned char *rdata, unsigned rlength, const ErrorStack &err=ErrorStack()) |
Send command/data to the device and store response in rdata . More... | |
void | close () |
Close connection to device. | |
Static Public Member Functions | |
static QList< USBDeviceDescriptor > | detect (uint16_t vid, uint16_t pid) |
Finds all HID interfaces with the specified VID/PID combination. | |
static QList< USBDeviceDescriptor > | detect (uint16_t vid, uint16_t pid) |
Finds all HID interfaces with the specified VID/PID combination. | |
Protected Member Functions | |
int | write_read (const unsigned char *data, unsigned length, unsigned char *reply, unsigned rlength, const ErrorStack &err=ErrorStack()) |
Internal used implementation of send_recv(). | |
Static Protected Member Functions | |
static void | read_callback (struct libusb_transfer *t) |
Callback for response data. | |
static void | callback_input (void *context, IOReturn result, void *sender, IOHIDReportType type, uint32_t reportID, uint8_t *data, CFIndex nbytes) |
Internal callback for response data. | |
static void | callback_open (void *context, IOReturn result, void *sender, IOHIDDeviceRef deviceRef) |
Internal callback for device opend. | |
static void | callback_close (void *ontext, IOReturn result, void *sender, IOHIDDeviceRef deviceRef) |
Internal callback for device closed. | |
Protected Attributes | |
libusb_context * | _ctx |
libusb context. | |
libusb_device_handle * | _dev |
libusb device. | |
struct libusb_transfer * | _transfer |
libusb async transfer descriptor. | |
unsigned char | _receive_buf [42] |
Receive buffer. | |
volatile int | _nbytes_received = 0 |
Receive result. | |
ErrorStack | _cbError |
Internal used error stack for the static callback function. | |
IOHIDManagerRef | _HIDManager |
Device manager. | |
volatile IOHIDDeviceRef | _dev |
Device handle. | |
unsigned char | _transfer_buf [42] |
Device buffer. | |
Implements the HID radio interface using libusb.
Implements the HID radio interface MacOS X API.
bool HIDevice::hid_send_recv | ( | const unsigned char * | data, |
unsigned | nbytes, | ||
unsigned char * | rdata, | ||
unsigned | rlength, | ||
const ErrorStack & | err = ErrorStack() |
||
) |
Send command/data to the device and store response in rdata
.
data | Pointer to the command/data to send. |
nbytes | The number of bytes to send. |
rdata | Pointer to receive buffer. |
rlength | Size of receive buffer. |
err | Passes an error stack to put error messages on. |
bool HIDevice::hid_send_recv | ( | const unsigned char * | data, |
unsigned | nbytes, | ||
unsigned char * | rdata, | ||
unsigned | rlength, | ||
const ErrorStack & | err = ErrorStack() |
||
) |
Send command/data to the device and store response in rdata
.
data | Pointer to the command/data to send. |
nbytes | The number of bytes to send. |
rdata | Pointer to receive buffer. |
rlength | Size of receive buffer. |
err | The stack to put error messages on. |