1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/usr/bin/env python3
- import usb.core as core
- import usb.util as util
- from usb.core import USBError
- from remotes import tv
- # Use usb-devices to find the Arduino
- dev = core.find(idVendor=0x2341, idProduct=0x0043)
- detached = False
- if dev is None:
- raise ValueError("Device Not Found!")
- #if dev.is_kernel_driver_active(0):
- # try:
- # dev.detach_kernel_driver(0)
- # detached = True
- # print("Kernel detached")
- # except USBError as e:
- # exit("Failed detaching kernel driver!")
- #else:
- # print("No Kernel Attached!")
- #try:
- # util.claim_interface(dev, 0)
- # print("Claimed Device!")
- #except:
- # endpoint = dev[0][(0,0)][0]
- # data = dev.read(endpoint.bEndpointAddress, 0x0040)
- # print(type(data))
- # print(data)
- #if detached:
- # dev.attach_kernel_driver(0)
- # print("Kernel attached")
- #exit()
- #print(type(dev))
- #print(dev)
- # Setup the device
- # https://github.com/pyusb/pyusb/issues/357
- #dev.set_configuration()
- # From https://stackoverflow.com/questions/29345325/raspberry-pyusb-gets-resource-busy
- dev.reset()
- # Get the config
- cfg = dev.get_active_configuration()
- #print(cfg)
- # Index the config for interfaces
- intf = cfg[(0, 0)]
- print(intf)
- # If you don't know the endpoint
- # Obatains the endpoint out
- ep = util.find_descriptor(
- intf,
- custom_match = \
- lambda e: \
- util.endpoint_direction(e.bEndpointAddress) == \
- util.ENDPOINT_IN)
- assert ep is not None
- # Now we timeout here. :(
- ep.write(b'0x57E3E817,32,1\n')
|