3030"""
3131
3232import array
33+ from traceback import print_exception
3334
3435import adafruit_usb_host_descriptors
3536import supervisor
@@ -56,23 +57,36 @@ 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 (
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 )
7577 )
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 )
7690
7791 mouse_was_attached = None
7892 if mouse_device is not None :
0 commit comments