git-svn-id: http://moon:8086/svn/projects/HendiControl@174 fda53097-d464-4ada-af97-ba876c37ca34
65 lines
1014 B
Python
65 lines
1014 B
Python
#!/usr/bin/python3
|
|
|
|
import time
|
|
import serial
|
|
import sys
|
|
|
|
def reset():
|
|
ser.dtr = True
|
|
ser.rts = False
|
|
time.sleep(0.05)
|
|
ser.dtr = True
|
|
ser.rts = True
|
|
|
|
def enter_bootloader():
|
|
ser.dtr = True
|
|
ser.rts = False
|
|
time.sleep(0.05)
|
|
ser.dtr = False
|
|
ser.rts = True
|
|
|
|
if __name__ == '__main__':
|
|
|
|
ser = serial.Serial ('/dev/ttyUSB0', 115200)
|
|
|
|
try:
|
|
ser.open()
|
|
except:
|
|
ser.close()
|
|
ser.open()
|
|
|
|
if 0:
|
|
ser.timeout = 1.000
|
|
while(True):
|
|
print(ser.readline().decode('utf-8'), end='')
|
|
|
|
if 1:
|
|
ser.timeout = 1.000
|
|
print("Start firmware update")
|
|
enter_bootloader()
|
|
ser.readline()
|
|
|
|
ser.flushInput()
|
|
with open("HendiCtrl.srec", 'r') as fp:
|
|
while(True):
|
|
s = fp.readline()
|
|
if s == '':
|
|
break
|
|
data = s.encode()
|
|
ser.write(data)
|
|
ack = ser.read()
|
|
sys.stdout.write(ack.decode('utf-8'))
|
|
|
|
sys.stdout.flush()
|
|
|
|
ser.readline()
|
|
ser.flushInput()
|
|
reset()
|
|
print("\nStart application")
|
|
print(ser.readline().decode('utf-8'))
|
|
|
|
ser.close()
|
|
|
|
print ("End of program.")
|
|
|