diff --git a/platform/libusb/hci_transport_h2_libusb.c b/platform/libusb/hci_transport_h2_libusb.c index 314a3fa21c..dcf819eb16 100644 --- a/platform/libusb/hci_transport_h2_libusb.c +++ b/platform/libusb/hci_transport_h2_libusb.c @@ -225,6 +225,7 @@ static int sco_out_addr; // device path static int usb_path_len; +static uint8_t dev_addr; static uint8_t usb_path[USB_MAX_PATH_LEN]; // transport interface state @@ -245,11 +246,15 @@ void hci_transport_usb_set_path(int len, uint8_t * port_numbers){ if (len > USB_MAX_PATH_LEN || !port_numbers){ log_error("hci_transport_usb_set_path: len or port numbers invalid"); return; - } + } usb_path_len = len; memcpy(usb_path, port_numbers, len); } +void hci_transport_usb_set_address(uint8_t _dev_addr){ + dev_addr = _dev_addr; +} + // static void queue_transfer(struct libusb_transfer *transfer){ @@ -1019,6 +1024,37 @@ static int usb_open(void){ printf("USB device with given path not found\n"); return -1; } + } else if(dev_addr) { + + for (int i=0;i