bobbycar/logdata_visualization/copyLogsFromBobbycar.py

111 lines
2.4 KiB
Python

import serial
import os
serialport = serial.Serial(port='/dev/ttyACM0', baudrate=115200, timeout=0.1)
def establish_connection():
serialport.write("\n".encode())
serialport.write("echo off\n".encode())
while len(serialport.readline())>0:
continue
serialport.write("test\n".encode())
response = serialport.readline()
hrresponse=response.rstrip().decode('ascii')
if hrresponse != "OK":
print("Unexpected test response:"+str(response))
exit()
def get_filenames():
filenames=[]
serialport.write("ls\n".encode())
while True:
response = serialport.readline()
hrresponse=response.rstrip().decode('ascii')
if(len(response))>0:
#print(hrresponse)
filenames.append(hrresponse)
else:
break
return filenames
def copy_file(source,destination):
os.makedirs(os.path.dirname(writefilename), exist_ok=True)
with open(writefilename, 'wb') as writer:
serialport.write(("cat "+filename+"\n").encode())
while True:
response = serialport.readline()
hrresponse=response.rstrip().decode('ascii')
if(len(response))>0:
#print(hrresponse)
writer.write(response)
else:
break
def log_off():
serialport.write(("log off\n").encode())
response = serialport.readline()
hrresponse=response.rstrip().decode('ascii')
if (not hrresponse.startswith("Log disabled")):
print("Unexpected response:"+str(response))
exit()
def delete_file(filename):
serialport.write(("rm "+filename+"\n").encode())
response = serialport.readline()
hrresponse=response.rstrip().decode('ascii')
if hrresponse != "OK":
print("Unexpected response:"+str(response))
exit()
if serialport.isOpen():
establish_connection()
#Get File List
filenames=get_filenames()
#Copy all Files
for filename in filenames:
print("Reading file "+filename)
writefilename='sdcard/'+filename
copy_file(filename,writefilename)
#Delete all files
'''
log_off()
for filename in filenames:
delete_file(filename)
'''
serialport.write("echo on\n".encode())
serialport.close()