diff --git a/flix/log.ino b/flix/log.ino index e412cb4..7892254 100644 --- a/flix/log.ino +++ b/flix/log.ino @@ -44,6 +44,7 @@ void dumpLog() { Serial.printf("t,rates.x,rates.y,rates.z,ratesTarget.x,ratesTarget.y,ratesTarget.z," "attitude.x,attitude.y,attitude.z,attitudeTarget.x,attitudeTarget.y,attitudeTarget.z,thrustTarget\n"); for (int i = 0; i < LOG_SIZE; i++) { + if (logBuffer[i][0] == 0) continue; // skip empty records for (int j = 0; j < LOG_COLUMNS - 1; j++) { Serial.printf("%f,", logBuffer[i][j]); } diff --git a/tools/grab_log.py b/tools/grab_log.py index 620ea08..c1e1a94 100755 --- a/tools/grab_log.py +++ b/tools/grab_log.py @@ -9,8 +9,7 @@ PORT = os.environ['PORT'] DIR = os.path.dirname(os.path.realpath(__file__)) dev = serial.Serial(port=PORT, baudrate=115200, timeout=0.5) - -log = open(f'{DIR}/log/{datetime.datetime.now().isoformat()}.csv', 'wb') +lines = [] print('Downloading log...') count = 0 @@ -19,8 +18,14 @@ while True: line = dev.readline() if not line: break - log.write(line) + lines.append(line) count += 1 print(f'\r{count} lines', end='') +# sort by timestamp +header = lines.pop(0) +lines.sort(key=lambda line: float(line.split(b',')[0])) + +log = open(f'{DIR}/log/{datetime.datetime.now().isoformat()}.csv', 'wb') +log.writelines([header] + lines) print(f'\nWritten {os.path.relpath(log.name, os.curdir)}')