45 lines
987 B
Python
Executable File
45 lines
987 B
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import usb
|
|
import time
|
|
import sys
|
|
|
|
def getHandle():
|
|
asp = None
|
|
busses = usb.busses()
|
|
for bus in busses:
|
|
devices = bus.devices
|
|
for dev in devices:
|
|
if dev.idVendor == 0x16c0 and dev.idProduct==0x05dc:
|
|
asp = dev #.open()
|
|
if asp is None:
|
|
return None
|
|
return asp.open()
|
|
|
|
def enableSerialMode(USBaspHandle):
|
|
USBaspHandle.controlMsg(128|32, 32, 8)
|
|
|
|
def disableSerialMode(USBaspHandle):
|
|
USBaspHandle.controlMsg(128|32, 34, 8)
|
|
|
|
def getData(USBaspHandle):
|
|
return USBaspHandle.controlMsg(128|32, 33, 8)
|
|
|
|
handle = getHandle()
|
|
if handle is None:
|
|
sys.stderr.write("USBASP not found!\n")
|
|
exit(1);
|
|
|
|
try:
|
|
enableSerialMode(handle)
|
|
while True:
|
|
data = getData(handle)
|
|
time.sleep(0.01)
|
|
if len(data):
|
|
for char in data:
|
|
sys.stdout.write(chr(char))
|
|
sys.stdout.flush()
|
|
|
|
except KeyboardInterrupt:
|
|
disableSerialMode(handle)
|