Skip to content

Commit f5689bc

Browse files
committed
handle VID/PID errors better
1 parent b8a30c4 commit f5689bc

File tree

1 file changed

+28
-16
lines changed

1 file changed

+28
-16
lines changed

adafruit_usb_host_mouse.py

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"""
3131

3232
import array
33+
from traceback import print_exception
3334

3435
import adafruit_usb_host_descriptors
3536
import supervisor
@@ -56,23 +57,34 @@ def find_and_init_boot_mouse(cursor_image="/launcher_assets/mouse_cursor.bmp"):
5657
print("scanning usb")
5758
for device in usb.core.find(find_all=True):
5859
# print device info
59-
print(f"{device.idVendor:04x}:{device.idProduct:04x}")
60-
print(device.manufacturer, device.product)
61-
print()
62-
config_descriptor = adafruit_usb_host_descriptors.get_configuration_descriptor(device, 0)
63-
print(config_descriptor)
64-
65-
_possible_interface_index, _possible_endpoint_address = (
66-
adafruit_usb_host_descriptors.find_boot_mouse_endpoint(device)
67-
)
68-
if _possible_interface_index is not None and _possible_endpoint_address is not None:
69-
mouse_device = device
70-
mouse_interface_index = _possible_interface_index
71-
mouse_endpoint_address = _possible_endpoint_address
72-
print(
73-
f"mouse interface: {mouse_interface_index} "
74-
+ f"endpoint_address: {hex(mouse_endpoint_address)}"
60+
try:
61+
try:
62+
print(f"{device.idVendor:04x}:{device.idProduct:04x}")
63+
except usb.core.USBError as e:
64+
print_exception(e,e,None)
65+
try:
66+
print(device.manufacturer, device.product)
67+
except usb.core.USBError as e:
68+
print_exception(e,e,None)
69+
print()
70+
config_descriptor = adafruit_usb_host_descriptors.get_configuration_descriptor(device, 0)
71+
print(config_descriptor)
72+
73+
_possible_interface_index, _possible_endpoint_address = (
74+
adafruit_usb_host_descriptors.find_boot_mouse_endpoint(device)
7575
)
76+
if _possible_interface_index is not None and _possible_endpoint_address is not None:
77+
mouse_device = device
78+
mouse_interface_index = _possible_interface_index
79+
mouse_endpoint_address = _possible_endpoint_address
80+
print(
81+
f"mouse interface: {mouse_interface_index} "
82+
+ f"endpoint_address: {hex(mouse_endpoint_address)}"
83+
)
84+
break
85+
print("was not a boot mouse")
86+
except usb.core.USBError as e:
87+
print_exception(e,e,None)
7688

7789
mouse_was_attached = None
7890
if mouse_device is not None:

0 commit comments

Comments
 (0)