Initial Release
This commit is contained in:
48
usb/device/dev_lowlevel/dev_lowlevel_loopback.py
Executable file
48
usb/device/dev_lowlevel/dev_lowlevel_loopback.py
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
#
|
||||
# Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
#
|
||||
|
||||
# sudo pip3 install pyusb
|
||||
|
||||
import usb.core
|
||||
import usb.util
|
||||
|
||||
# find our device
|
||||
dev = usb.core.find(idVendor=0x0000, idProduct=0x0001)
|
||||
|
||||
# was it found?
|
||||
if dev is None:
|
||||
raise ValueError('Device not found')
|
||||
|
||||
# get an endpoint instance
|
||||
cfg = dev.get_active_configuration()
|
||||
intf = cfg[(0, 0)]
|
||||
|
||||
outep = usb.util.find_descriptor(
|
||||
intf,
|
||||
# match the first OUT endpoint
|
||||
custom_match= \
|
||||
lambda e: \
|
||||
usb.util.endpoint_direction(e.bEndpointAddress) == \
|
||||
usb.util.ENDPOINT_OUT)
|
||||
|
||||
inep = usb.util.find_descriptor(
|
||||
intf,
|
||||
# match the first IN endpoint
|
||||
custom_match= \
|
||||
lambda e: \
|
||||
usb.util.endpoint_direction(e.bEndpointAddress) == \
|
||||
usb.util.ENDPOINT_IN)
|
||||
|
||||
assert inep is not None
|
||||
assert outep is not None
|
||||
|
||||
test_string = "Hello World!"
|
||||
outep.write(test_string)
|
||||
from_device = inep.read(len(test_string))
|
||||
|
||||
print("Device Says: {}".format(''.join([chr(x) for x in from_device])))
|
||||
Reference in New Issue
Block a user