2016-07-20 11 views
0

steuern Ich bin auf der Suche nach pyusb, um mit einem verdrahteten Xbox 360 Gamepad zu interagieren. Bis jetzt kann ich gut lesen aber ich würde auch gerne schreiben damit ich die LED aufhören kann zu blinken.Wie man die LED auf einem Xbox 360 Gamepad mit pyusb

Looking here, sollte ich in der Lage sein, es zu tun, aber egal, welche Nachrichten ich versuche zu senden, ich habe kein Glück, die Kontrolle der LED. Unten ist der Code, den ich bis jetzt habe, irgendwelche Vorschläge?

import usb 
dev = usb.core.find(idVendor=1118, idProduct=654) 
dev.set_configuration() 
readEP = dev[0][(0,0)][0] #endpoint to read from 
writeEP = dev[0][(0,0)][1] #endpoint to write to 

print readEP #should be: <ENDPOINT 0x81: Interrupt IN> 
print writeEP #should be: <ENDPOINT 0x1: Interrupt OUT> 

##read the startup messages 
for i in range(4): #usually only 4 messages 
    data = dev.read(readEP.bEndpointAddress,readEP.wMaxPacketSize,100) 
    print len(data) #should be 3 

##get initial button/axes state 
data = dev.read(readEP.bEndpointAddress,readEP.wMaxPacketSize,100) 
print len(data) #should be 20 

##Try to set the LED to illuminate just one element (message 0x06). 
##Each of the following commented-out attempts fails to leave only the first 
##element illuminated and subsequent attempts at reading or writing yields 
##"usb.core.USBError: [Errno 5] Input/Output Error" 
dev.write(writeEP,'010306',100) 
# dev.write(writeEP,'0\x010306',100) 
# dev.write(writeEP,'66310',100) #decimal value of 0x010306 

##attempt to read again 
while True: 
    data = dev.read(readEP.bEndpointAddress,readEP.wMaxPacketSize,100) 

Antwort

0

Gelöst es; Ich musste einfach mehr Varianten der geschriebenen Zeichenfolge ausprobieren. Hier ist, was schließlich funktioniert:

dev.write(writeEP,"\x01\x03\x06",0) 
Verwandte Themen