30
30
"""
31
31
32
32
import array
33
+ from traceback import print_exception
33
34
34
35
import adafruit_usb_host_descriptors
35
36
import supervisor
@@ -56,23 +57,36 @@ def find_and_init_boot_mouse(cursor_image="/launcher_assets/mouse_cursor.bmp"):
56
57
print ("scanning usb" )
57
58
for device in usb .core .find (find_all = True ):
58
59
# 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 (
71
+ device , 0
72
+ )
73
+ print (config_descriptor )
74
+
75
+ _possible_interface_index , _possible_endpoint_address = (
76
+ adafruit_usb_host_descriptors .find_boot_mouse_endpoint (device )
75
77
)
78
+ if _possible_interface_index is not None and _possible_endpoint_address is not None :
79
+ mouse_device = device
80
+ mouse_interface_index = _possible_interface_index
81
+ mouse_endpoint_address = _possible_endpoint_address
82
+ print (
83
+ f"mouse interface: { mouse_interface_index } "
84
+ + f"endpoint_address: { hex (mouse_endpoint_address )} "
85
+ )
86
+ break
87
+ print ("was not a boot mouse" )
88
+ except usb .core .USBError as e :
89
+ print_exception (e , e , None )
76
90
77
91
mouse_was_attached = None
78
92
if mouse_device is not None :
0 commit comments