usb = sdi->conn;
- /* Detach kernel drivers which grabbed this device (if any). */
if (libusb_kernel_driver_active(usb->devhdl, 0) == 1) {
ret = libusb_detach_kernel_driver(usb->devhdl, 0);
if (ret < 0) {
}
}
- /* Claim interface 0. */
if ((ret = libusb_claim_interface(usb->devhdl, 0)) < 0) {
sr_err("Failed to claim interface 0: %s.",
libusb_error_name(ret));
static void log_dmm_packet(const uint8_t *buf)
{
- sr_dbg("DMM packet: %02x %02x %02x %02x %02x %02x %02x"
- " %02x %02x %02x %02x %02x %02x %02x",
- buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6],
- buf[7], buf[8], buf[9], buf[10], buf[11], buf[12], buf[13]);
+ GString *text;
+
+ text = sr_hexdump_new(buf, 14);
+ sr_dbg("DMM packet: %s", text->str);
+ sr_hexdump_free(text);
}
static int get_and_handle_data(struct sr_dev_inst *sdi)
}
/* Move remaining bytes to beginning of buffer. */
- for (i = 0; i < devc->buflen - devc->bufoffset; i++)
- pbuf[i] = pbuf[devc->bufoffset + i];
+ if (devc->bufoffset < devc->buflen)
+ memmove(pbuf, pbuf + devc->bufoffset, devc->buflen - devc->bufoffset);
devc->buflen -= devc->bufoffset;
return SR_OK;