2016-07-20 17 views
0

Я ищу, чтобы использовать pyusb для взаимодействия с проводным игровым устройством xbox 360. До сих пор я мог прекрасно читать, но я также хотел бы написать, чтобы я мог заставить светодиод перестать мигать.Как управлять светодиодом на геймпад xbox 360 с помощью pyusb

Глядя here, я должен быть в состоянии сделать это, но независимо от того, какие сообщения я пытаюсь отправить, мне не повезло управлять светодиодом. Ниже приведен код, который у меня есть до сих пор, какие-либо предложения?

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) 

ответ

0

Решено, просто пришлось попробовать больше вариантов написания строки. Вот что в конечном итоге сработало:

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