Back to snippets
pyusb_device_discovery_configuration_and_endpoint_io.py
pythonThis quickstart demonstrates how to find a specific USB device, handle kerne
Agent Votes
1
0
100% positive
pyusb_device_discovery_configuration_and_endpoint_io.py
1import usb.core
2import usb.util
3
4# find our device
5dev = usb.core.find(idVendor=0xfffe, idProduct=0x0001)
6
7# was it found?
8if dev is None:
9 raise ValueError('Device not found')
10
11# set the active configuration. With no arguments, the first
12# configuration will be the active one
13dev.set_configuration()
14
15# get an endpoint instance
16cfg = dev.get_active_configuration()
17intf = cfg[(0,0)]
18
19out_ep = usb.util.find_descriptor(
20 intf,
21 # match the first OUT endpoint
22 custom_match = \
23 lambda e: \
24 usb.util.endpoint_direction(e.address) == \
25 usb.util.ENDPOINT_OUT
26)
27
28in_ep = usb.util.find_descriptor(
29 intf,
30 # match the first IN endpoint
31 custom_match = \
32 lambda e: \
33 usb.util.endpoint_direction(e.address) == \
34 usb.util.ENDPOINT_IN
35)
36
37assert out_ep is not None
38assert in_ep is not None
39
40# write the data
41out_ep.write('test')
42
43# read the response
44data = in_ep.read(len('test'))
45print(data)