mirror of https://github.com/ARMmbed/mbed-os.git
pyusb_basic test add helper functions
parent
972fee6143
commit
e85d5a33cd
|
@ -894,6 +894,58 @@ def repeated_construction_destruction_test(log):
|
||||||
yield
|
yield
|
||||||
|
|
||||||
|
|
||||||
|
def release_interfaces(dev):
|
||||||
|
""" Releases interfaces to allow configuration switch
|
||||||
|
|
||||||
|
Fixes error while configuration change(on Windows machines):
|
||||||
|
USBError: [Errno None] libusb0-dll:err [set_configuration] can't change configuration, an interface is still in use (claimed)
|
||||||
|
"""
|
||||||
|
cfg = dev.get_active_configuration()
|
||||||
|
for i in range(0, cfg.bNumInterfaces):
|
||||||
|
usb.util.release_interface(dev, i)
|
||||||
|
|
||||||
|
|
||||||
|
def restore_default_configuration(dev):
|
||||||
|
cfg = dev[1]
|
||||||
|
cfg.set()
|
||||||
|
|
||||||
|
|
||||||
|
def get_status(dev, recipient, index = 0):
|
||||||
|
""" Get status of the recipient
|
||||||
|
|
||||||
|
Args:
|
||||||
|
dev - pyusb device
|
||||||
|
recipient - CTRL_RECIPIENT_DEVICE/CTRL_RECIPIENT_INTERFACE/CTRL_RECIPIENT_ENDPOINT
|
||||||
|
index - 0 if recipient is device, interface index if recipient is interface, endpoint index if recipient is endpoint
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
status flag 32b int
|
||||||
|
"""
|
||||||
|
request_type = build_request_type(CTRL_IN, CTRL_TYPE_STANDARD,
|
||||||
|
recipient)
|
||||||
|
request = REQUEST_GET_STATUS
|
||||||
|
value = 0 # Always 0 for this request
|
||||||
|
index = index # recipient index
|
||||||
|
length = 2 # Always 2 for this request (size of return data)
|
||||||
|
ret = dev.ctrl_transfer(request_type, request, value, index, length)
|
||||||
|
ret = ret[0] | (ret[1] << 8)
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
def get_descriptor(dev, type_index, lang_id, length):
|
||||||
|
# Control IN GET_DESCRIPTOR - device
|
||||||
|
request_type = build_request_type(CTRL_IN, CTRL_TYPE_STANDARD,
|
||||||
|
CTRL_RECIPIENT_DEVICE)
|
||||||
|
request = REQUEST_GET_DESCRIPTOR
|
||||||
|
value = type_index # Descriptor Type (H) and Descriptor Index (L)
|
||||||
|
index = lang_id # 0 or Language ID for this request
|
||||||
|
length = length # Descriptor Length
|
||||||
|
ret = dev.ctrl_transfer(request_type, request, value, index, length)
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
For documentation purpose until test writing finished
|
For documentation purpose until test writing finished
|
||||||
TODO: remove this if not needed anymore
|
TODO: remove this if not needed anymore
|
||||||
|
|
Loading…
Reference in New Issue