]> sigrok.org Git - libsigrok.git/commitdiff
usbtmc: add the Siglent VID and reset USB devices in open
authorGerhard Sittig <redacted>
Sun, 11 Feb 2018 15:30:34 +0000 (16:30 +0100)
committerUwe Hermann <redacted>
Sun, 11 Feb 2018 23:13:49 +0000 (00:13 +0100)
Add the Siglent's VID to a list of blacklisted USB TMC devices.
Unconditionally reset USB devices in the open routine.

This was taken from marchel's development for Siglent SDS. Though the
reset should probably be conditional, and only get applied to devices
which are known to need it.

The comment may need adjustment, maybe individual PID entries are
required. The VID probably not only applies to SDS devices, but could
be used for SDG and other gear as well. And lsusb output suggests the
VID is used by Atten, too.

src/scpi/scpi_usbtmc_libusb.c

index 6f2bc81940710313f4d5dbd18c4d310ba6687814..7e49a8a0f12b9aef7a195cb28e5da801b9c83329 100644 (file)
@@ -107,6 +107,7 @@ static struct usbtmc_blacklist blacklist_remote[] = {
        { 0x1ab1, 0x04b0 }, /* Rigol DS2000 series */
        { 0x0957, 0x0588 }, /* Agilent DSO1000 series (rebadged Rigol DS1000) */
        { 0x0b21, 0xffff }, /* All Yokogawa devices */
+       { 0xf4ec, 0xffff }, /* All Siglent SDS devices */
        ALL_ZERO
 };
 
@@ -370,6 +371,8 @@ static int scpi_usbtmc_libusb_open(struct sr_scpi_dev_inst *scpi)
                return SR_ERR;
        }
 
+       libusb_reset_device(usb->devhdl);
+
        /* Get capabilities. */
        ret = libusb_control_transfer(usb->devhdl, LIBUSB_ENDPOINT_IN |
                LIBUSB_REQUEST_TYPE_CLASS | LIBUSB_RECIPIENT_INTERFACE,