- implemented firmware update of Hendi-Control

git-svn-id: http://moon:8086/svn/projects/HendiControl@157 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
2019-03-30 00:23:19 +00:00
parent a25276d633
commit b06ea8e661
+48 -10
View File
@@ -3,28 +3,66 @@
import time import time
import serial import serial
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__': if __name__ == '__main__':
ser = serial.Serial ('/dev/ttyUSB0', 9600) ser = serial.Serial ('/dev/ttyUSB0', 9600)
ser.set_output_flow_control(True)
try: try:
ser.open() ser.open()
except: except:
ser.close() ser.close()
ser.open() ser.open()
time.sleep(1.0) if 0:
print ("RTS = {}, DTR = {}".format(ser.rts, ser.dtr)) time.sleep(1.0)
time.sleep(0.5) print ("RTS = {}, DTR = {}".format(ser.rts, ser.dtr))
time.sleep(0.5)
ser.rts = False ser.rts = False
print ("RTS = {}, DTR = {}".format(ser.rts, ser.dtr)) print ("RTS = {}, DTR = {}".format(ser.rts, ser.dtr))
time.sleep(0.5) time.sleep(0.5)
ser.dtr = False
print ("RTS = {}, DTR = {}".format(ser.rts, ser.dtr))
time.sleep(1.0)
print("Start firmware update")
enter_bootloader()
ser.timeout = 0.100
ser.readline()
ser.flushInput()
with open("hendictrl.srec", 'r') as fp:
while(True):
s = fp.readline()
if s == '':
break
data = s.encode()
# print(data)
ser.write(data)
# print(ser.read())
ser.dtr = False
print ("RTS = {}, DTR = {}".format(ser.rts, ser.dtr))
time.sleep(1.0) time.sleep(1.0)
ser.flushInput()
print("Start application")
reset()
print(ser.readline().decode('utf-8'))
print(ser.readline().decode('utf-8'))
ser.close() ser.close()