From a4c407a131464e093386338ce0d90e29245ae250 Mon Sep 17 00:00:00 2001 From: John Harrington Date: Wed, 13 Nov 2019 13:16:51 -0500 Subject: [PATCH 1/2] Changes from PR406 in signal11 repo --- libusb/hid.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libusb/hid.c b/libusb/hid.c index 57aca5564..b3107fd1a 100644 --- a/libusb/hid.c +++ b/libusb/hid.c @@ -481,9 +481,17 @@ static wchar_t *get_usb_string(libusb_device_handle *dev, uint8_t idx) static char *make_path(libusb_device *dev, int interface_number) { char str[64]; - snprintf(str, sizeof(str), "%04x:%04x:%02x", + uint8_t port_numbers[8] = { 0,0,0,0,0,0,0,0 }; + int num_ports; + // Note that USB3 port count limit is 7; use 8 here for alignment + + num_ports = libusb_get_port_numbers(dev, port_numbers, 8); + snprintf(str, sizeof(str), "%04x:%04x:%04x:%04x:%04x:%02x", libusb_get_bus_number(dev), - libusb_get_device_address(dev), + *(uint16_t*)(&port_numbers[0]), + *(uint16_t*)(&port_numbers[2]), + *(uint16_t*)(&port_numbers[4]), + *(uint16_t*)(&port_numbers[6]), interface_number); str[sizeof(str)-1] = '\0'; From 660ef697f619d89d6afe96e3a32e25b1f8f71105 Mon Sep 17 00:00:00 2001 From: Gavin Date: Wed, 13 Nov 2019 13:23:37 -0500 Subject: [PATCH 2/2] Tested on Ubuntu 18.04 using DYMO M25 scales with cython-hidapi wrapper