10 #include <libusb-1.0/libusb.h> 105 int controlTransfer(
unsigned char type,
unsigned char request,
unsigned char *data,
unsigned int length,
int value,
113 return controlTransfer(LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_ENDPOINT_OUT, uint8_t(command->code),
114 const_cast<unsigned char *>(command->data()),
unsigned(command->size()), command->value, 0,
123 return controlTransfer(LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_ENDPOINT_IN, uint8_t(command->code),
124 const_cast<unsigned char *>(command->data()),
unsigned(command->size()), command->value, 0,
156 int claimInterface(
const libusb_interface_descriptor *interfaceDescriptor );
unsigned outPacketLength
Packet length for the OUT endpoint.
Definition: usbdevice.h:168
const UniqueUSBid uniqueUSBdeviceID
Definition: usbdevice.h:166
#define HANTEK_EP_OUT
OUT Endpoint for bulk transfers.
Definition: usbdevicedefinitions.h:10
~USBDevice()
Definition: usbdevice.cpp:132
#define HANTEK_ATTEMPTS
The number of transfer attempts.
Definition: usbdevicedefinitions.h:7
unsigned getFindIteration() const
Definition: usbdevice.h:57
void disconnectFromDevice()
Definition: usbdevice.cpp:165
int nInterface
Definition: usbdevice.h:167
libusb_device * device
The USB handle for the oscilloscope.
Definition: usbdevice.h:163
libusb_device * getRawDevice() const
Definition: usbdevice.h:131
unsigned int getFwVersion() const
Definition: usbdevice.h:50
const DSOModel * getModel() const
Get the oscilloscope model.
Definition: usbdevice.h:144
struct libusb_device_descriptor descriptor
Definition: usbdevice.h:162
int bulkRead(const T *command, int attempts=HANTEK_ATTEMPTS)
Bulk read from the oscilloscope.
Definition: usbdevice.h:85
USBDevice(DSOModel *model, libusb_device *device, unsigned findIteration=0)
Definition: usbdevice.cpp:80
#define HANTEK_EP_IN
IN Endpoint for bulk transfers.
Definition: usbdevicedefinitions.h:11
int controlRead(const T *command)
Control read to the oscilloscope.
Definition: usbdevice.h:122
Describes a device This is the central class to describe a hantek compatible DSO. It contains all usb...
Definition: dsomodel.h:16
int claimInterface(const libusb_interface_descriptor *interfaceDescriptor)
Definition: usbdevice.cpp:142
int controlTransfer(unsigned char type, unsigned char request, unsigned char *data, unsigned int length, int value, int index, int attempts=HANTEK_ATTEMPTS)
Control transfer to the oscilloscope.
Definition: usbdevice.cpp:245
void overwriteInPacketLength(unsigned len)
Definition: usbdevice.h:151
unsigned inPacketLength
Packet length for the IN endpoint.
Definition: usbdevice.h:169
int controlWrite(const T *command)
Control write to the oscilloscope.
Definition: usbdevice.h:112
QString libUsbErrorString(int error)
Returns string representation for libusb errors.
Definition: usbdevice.cpp:15
void setFindIteration(unsigned iteration)
Definition: usbdevice.h:56
uint64_t UniqueUSBid
Definition: usbdevice.h:16
int bulkWrite(const unsigned char *data, unsigned int length, int attempts=HANTEK_ATTEMPTS)
Bulk write to the oscilloscope.
Definition: usbdevice.h:75
int bulkReadMulti(unsigned char *data, unsigned length, int attempts=HANTEK_ATTEMPTS_MULTI)
Multi packet bulk read from the oscilloscope.
Definition: usbdevice.cpp:218
#define HANTEK_TIMEOUT
Timeout for USB transfers in ms.
Definition: usbdevicedefinitions.h:5
bool needsFirmware()
Definition: usbdevice.cpp:190
int bulkTransfer(unsigned char endpoint, const unsigned char *data, unsigned int length, int attempts=HANTEK_ATTEMPTS, unsigned int timeout=HANTEK_TIMEOUT)
Bulk transfer to/from the oscilloscope.
Definition: usbdevice.cpp:197
#define HANTEK_ATTEMPTS_MULTI
The number of multi packet transfer attempts.
Definition: usbdevicedefinitions.h:8
This class handles the USB communication with an usb device that has one in and one out endpoint...
Definition: usbdevice.h:28
UniqueUSBid getUniqueUSBDeviceID() const
Definition: usbdevice.h:136
unsigned findIteration
Definition: usbdevice.h:165
bool connectDevice(QString &errorMessage)
Definition: usbdevice.cpp:87
DSOModel * model
Definition: usbdevice.h:159
static UniqueUSBid computeUSBdeviceID(libusb_device *device)
Definition: usbdevice.cpp:49
libusb_device_handle * handle
Definition: usbdevice.h:164
bool isConnected()
Check if the oscilloscope is connected.
Definition: usbdevice.cpp:187
void deviceDisconnected()
The device has been disconnected.