tmk_keyboard/tmk_core/protocol/lufa/LUFA-git/Demos/Device/LowLevel/BulkVendor/HostTestApp/test_bulk_vendor.py

68 行
1.7 KiB
Python

"""
LUFA Library
Copyright (C) Dean Camera, 2014.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
"""
"""
LUFA Bulk Vendor device demo host test script. This script will send and
receive a continuous stream of packets to/from to the device, to show
bidirectional communications.
Requires the pyUSB library (http://sourceforge.net/projects/pyusb/).
"""
import sys
from time import sleep
import usb.core
import usb.util
# Bulk Vendor HID device VID and PID
device_vid = 0x03EB
device_pid = 0x206C
device_in_ep = 3
device_out_ep = 4
def get_vendor_device_handle():
dev_handle = usb.core.find(idVendor=device_vid, idProduct=device_pid)
return dev_handle
def write(device, packet):
device.write(usb.util.ENDPOINT_OUT | device_out_ep, packet, 0, 1000)
print("Sent Packet: {0}".format(packet))
def read(device):
packet = device.read(usb.util.ENDPOINT_IN | device_in_ep, 64, 0, 1000)
print("Received Packet: {0}".format(''.join([chr(x) for x in packet])))
return packet
def main():
vendor_device = get_vendor_device_handle()
if vendor_device is None:
print("No valid Vendor device found.")
sys.exit(1)
vendor_device.set_configuration()
print("Connected to device 0x%04X/0x%04X - %s [%s]" %
(vendor_device.idVendor, vendor_device.idProduct,
usb.util.get_string(vendor_device, 255, vendor_device.iProduct),
usb.util.get_string(vendor_device, 255, vendor_device.iManufacturer)))
x = 0
while 1:
x = x + 1 % 255
write(vendor_device, "TEST PACKET %d" % x)
read(vendor_device)
sleep(1)
if __name__ == '__main__':
main()