Handling and parsing large CSV files

Hello,
I am facing the following task and would like to get some input how to solve it in the easiest and most efficient way:

I am having a CSV file using ";" as separator. The CSV file is rather large (4 MB) and stored on a SD-Card. The CSV file is structured as follows:

Timestamp ; AngleX; AngleY; AngleZ;

All stored numbers are numbers (floats). The data in the CSV file is logged by using an MPU6050 IMU over a time period of several minutes.

I want to use an Arduino Mega with SD-Card shield to read the CSV file and send the three "AngleX, AngleY, AngleZ" values to three servos at the exact time according to the "Timestamp". The Timestamp recorded the milliseconds passed since the beginning of the recording.

As the CSV file is rather large, I assume that I does not make sense and will take too long to go through the entire CSV file on every loop in order to find the "timestamp" which is the nearest to the actual timer of the Arduino controlling the three servos. I would like to avoid any hiccups so that the servos at all times have the fitting value in order to recreate the motion captured and logged by using the IMU as precisely as possible.

I am looking for your input, in particular if there is a library which could help me achieving my goal. Thank you very much for your help.

Best regards,
Mareus

Doesn't your logging mechanism mean that the file is in timestamp order?

I assume the timestamps are in order. That means you only have to read one line ahead.

struct recordType {float timestamp, float angleX, float angleY, float angle} Record;

void ReadRecord()
{
  Record.timestamp = file.parseFloat();
  Record.angleX = file.parseFloat();
  Record.angleY = file.parseFloat();
  Record.angleZ = file.parseFloat();
}

void setup()
{
  // Open the file

  ReadRecord();
  StartTime = millis();
}

void loop()
{
  // Compare the timestamp of the record to the 
  // current elapsed time. 
  if (millis() - StartTime >= Record.timestamp)
  {
    // send the angles to the servos.
    servoX.write(Record.angleX);
    servoY.write(Record.angleY);
    servoZ.write(Record.angleZ);

    // Read the next record
    ReadRecord();

    // Check for end of file
    if (!file.available())
    {
      // Hit the end of the file
      while (1) {} // Hang here
    }
  }
}
1 Like

even the timestamp?

You could close the file before hanging there

Yes. And also define the servo objects. And open the file. And use better variable names.

@J-M-L : Yes, you are correct. The "timestamp" is not a float but an "unsigned long".

Thank you very much @johnwasser! Your code works very well. My current code looks like this:

#include <Arduino.h>
#include <SPI.h>
#include <SD.h>
#include <Wire.h>
#include "ServoEasing.hpp"
#include "PinDefinitionsAndMore.h"

ServoEasing Servo1;
ServoEasing Servo2;

#define START_DEGREE_VALUE 90


// ================================================================
// ===               TIME TRACKING                              ===
// ================================================================
unsigned long starttime;


// ================================================================
// ===               Servoangles and Acc                        ===
// ================================================================
int ServoAngX;
int ServoAngY;

// the logging file
File logfile;
struct RecordType {
  float timempu;
  float AngX;
  float AngY;
  float AngZ;
  float lux;
} Record;

void ReadRecord()
{
  Record.timempu = logfile.parseFloat();
  Record.AngX = logfile.parseFloat();
  Record.AngY = logfile.parseFloat();
  Record.AngZ = logfile.parseFloat();
  Record.lux = logfile.parseFloat();

  Serial.print("Startime: ");
  Serial.println((millis()-starttime));
  Serial.print("Executiontime: ");
  Serial.println(Record.timempu);
  Serial.print("Delta: ");
  Serial.println((Record.timempu)-(millis()-starttime));
//  Serial.print("AngX: ");
//  Serial.println(Record.AngX);
//  Serial.print("AngY: ");
//  Serial.println(Record.AngY);
//  Serial.print("AngZ: ");
//  Serial.println(Record.AngZ);
//  Serial.print("LUX: ");
//  Serial.println(Record.lux);
}

// ================================================================
// ===                      INITIAL SETUP                       ===
// ================================================================
void error(char *str)
{
  Serial.print("error: ");
  Serial.println(str);
  while (1);
}

void setup() {


  Serial.begin(115200);

  //Servos
  Servo1.setEasingType(EASE_LINEAR);
  Servo2.setEasingType(EASE_LINEAR);
  Servo1.write(90);
  Servo2.write(90);

  if (Servo1.attach(SERVO1_PIN, START_DEGREE_VALUE, DEFAULT_MICROSECONDS_FOR_0_DEGREE,
                    DEFAULT_MICROSECONDS_FOR_180_DEGREE) == INVALID_SERVO) {
    Serial.println(F("Error attaching servo"));
  }
  if (Servo2.attach(SERVO2_PIN, START_DEGREE_VALUE, DEFAULT_MICROSECONDS_FOR_0_DEGREE,
                    DEFAULT_MICROSECONDS_FOR_180_DEGREE) == INVALID_SERVO) {
    Serial.println(F("Error attaching servo"));
  }

  //SD Card
  // initialize the SD card
  Serial.print("Initializing SD card...");
  pinMode(10, OUTPUT);

  // see if the card is present and can be initialized:
  if (!SD.begin(10, 11, 12, 13)) {
    error("Card failed, or not present");
  }
  Serial.println("card initialized.");

  logfile = SD.open("MPU.CSV", FILE_READ);

  if (logfile.available()) {
    Serial.println("File opened");
    }

  if (!logfile.available()) {
    Serial.println("File not found");
    }


  ReadRecord();
  starttime = millis();
}


// ================================================================
// ===                    MAIN PROGRAM LOOP                     ===
// ================================================================

void loop() {


  if (millis() - starttime >= Record.timempu)
  {
    ServoAngX = map (Record.AngX, -90, 90, 0, 180);
    ServoAngY = map (Record.AngY, -90, 90, 180, 0);

    setSpeedForAllServos(180);
    Servo1.setEaseTo(ServoAngX);
    Servo2.startEaseTo(ServoAngY); // Start interrupt for all servos. No synchronization here since the servos should move independently.

    
    while (ServoEasing::areInterruptsActive()) {
          
    }

ReadRecord();
  }

  if (!logfile.available())
    {
      // Hit the end of the file
      while (1) { // Hang here
                logfile.close();
        }
    }
}

I measured the delay between executing the command to the servos and the timestamp which is mostly around 50ms and therefore fine. However, sometimes the delay is negative which should not be the case according to the "if" statement.

See:

11:50:49.222 -> Initializing SD card...card initialized.
11:50:49.269 -> File opened
11:50:49.269 -> Startime: 58
11:50:49.269 -> Executiontime: 18.00
11:50:49.269 -> Delta: -41.00
11:50:49.318 -> Startime: 21
11:50:49.318 -> Executiontime: 87.00
11:50:49.318 -> Delta: 65.00
11:50:49.366 -> Startime: 90
11:50:49.366 -> Executiontime: 133.00
11:50:49.366 -> Delta: 42.00
11:50:49.414 -> Startime: 136
11:50:49.414 -> Executiontime: 183.00
11:50:49.414 -> Delta: 46.00
11:50:49.462 -> Startime: 186
11:50:49.462 -> Executiontime: 234.00
11:50:49.462 -> Delta: 47.00
11:50:49.510 -> Startime: 237
11:50:49.510 -> Executiontime: 284.00
11:50:49.510 -> Delta: 46.00
11:50:49.557 -> Startime: 287
11:50:49.557 -> Executiontime: 341.00
11:50:49.557 -> Delta: 53.00
11:50:49.652 -> Startime: 344
11:50:49.652 -> Executiontime: 391.00
11:50:49.652 -> Delta: 46.00
11:50:49.700 -> Startime: 394
11:50:49.700 -> Executiontime: 442.00
11:50:49.700 -> Delta: 47.00
11:50:49.747 -> Startime: 445
11:50:49.747 -> Executiontime: 492.00
11:50:49.747 -> Delta: 46.00
11:50:49.794 -> Startime: 496
11:50:49.794 -> Executiontime: 543.00
11:50:49.794 -> Delta: 46.00
11:50:49.842 -> Startime: 546
11:50:49.842 -> Executiontime: 600.00
11:50:49.842 -> Delta: 53.00
11:50:49.888 -> Startime: 603
11:50:49.888 -> Executiontime: 650.00
11:50:49.888 -> Delta: 46.00
11:50:49.936 -> Startime: 653
11:50:49.936 -> Executiontime: 700.00
11:50:49.936 -> Delta: 46.00
11:50:49.984 -> Startime: 703
11:50:49.984 -> Executiontime: 751.00
11:50:49.984 -> Delta: 47.00
11:50:50.032 -> Startime: 755
11:50:50.032 -> Executiontime: 801.00
11:50:50.032 -> Delta: 45.00
11:50:50.080 -> Startime: 804
11:50:50.080 -> Executiontime: 858.00
11:50:50.080 -> Delta: 53.00
11:50:50.176 -> Startime: 871
11:50:50.176 -> Executiontime: 928.00
11:50:50.176 -> Delta: 56.00
11:50:50.222 -> Startime: 931
11:50:50.222 -> Executiontime: 980.00
11:50:50.222 -> Delta: 48.00
11:50:50.268 -> Startime: 983
11:50:50.268 -> Executiontime: 1030.00
11:50:50.268 -> Delta: 46.00
11:50:50.316 -> Startime: 1033
11:50:50.316 -> Executiontime: 1086.00
11:50:50.316 -> Delta: 52.00
11:50:50.364 -> Startime: 1089
11:50:50.364 -> Executiontime: 1136.00
11:50:50.364 -> Delta: 46.00
11:50:50.412 -> Startime: 1139
11:50:50.412 -> Executiontime: 1187.00
11:50:50.459 -> Delta: 47.00
11:50:50.507 -> Startime: 1190
11:50:50.507 -> Executiontime: 1238.00
11:50:50.507 -> Delta: 47.00
11:50:50.555 -> Startime: 1241
11:50:50.555 -> Executiontime: 1294.00
11:50:50.555 -> Delta: 52.00
11:50:50.603 -> Startime: 1297
11:50:50.603 -> Executiontime: 1345.00
11:50:50.603 -> Delta: 47.00
11:50:50.649 -> Startime: 1349
11:50:50.649 -> Executiontime: 1395.00
11:50:50.649 -> Delta: 45.00
11:50:50.697 -> Startime: 1398
11:50:50.697 -> Executiontime: 1446.00
11:50:50.697 -> Delta: 47.00
11:50:50.745 -> Startime: 1449
11:50:50.745 -> Executiontime: 1502.00
11:50:50.745 -> Delta: 52.00
11:50:50.793 -> Startime: 1505
11:50:50.793 -> Executiontime: 1553.00
11:50:50.793 -> Delta: 47.00
11:50:50.839 -> Startime: 1556
11:50:50.839 -> Executiontime: 1603.00
11:50:50.839 -> Delta: 46.00
11:50:50.887 -> Startime: 1607
11:50:50.887 -> Executiontime: 1654.00
11:50:50.887 -> Delta: 46.00
11:50:50.935 -> Startime: 1657
11:50:50.935 -> Executiontime: 1711.00
11:50:50.983 -> Delta: 53.00
11:50:51.031 -> Startime: 1714
11:50:51.031 -> Executiontime: 1762.00
11:50:51.031 -> Delta: 47.00
11:50:51.079 -> Startime: 1776
11:50:51.079 -> Executiontime: 1831.00
11:50:51.079 -> Delta: 54.00
11:50:51.127 -> Startime: 1834
11:50:51.127 -> Executiontime: 1882.00
11:50:51.127 -> Delta: 47.00
11:50:51.175 -> Startime: 1885
11:50:51.175 -> Executiontime: 1932.00
11:50:51.175 -> Delta: 46.00
11:50:51.223 -> Startime: 1935
11:50:51.223 -> Executiontime: 1988.00
11:50:51.223 -> Delta: 52.00
11:50:51.315 -> Startime: 1992
11:50:51.315 -> Executiontime: 2052.00
11:50:51.315 -> Delta: 59.00
11:50:51.363 -> Startime: 2055
11:50:51.363 -> Executiontime: 2119.00
11:50:51.363 -> Delta: 63.00
11:50:51.411 -> Startime: 2122
11:50:51.411 -> Executiontime: 2169.00
11:50:51.411 -> Delta: 46.00
11:50:51.459 -> Startime: 2172
11:50:51.459 -> Executiontime: 2221.00
11:50:51.459 -> Delta: 48.00
11:50:51.507 -> Startime: 2224
11:50:51.507 -> Executiontime: 2277.00
11:50:51.554 -> Delta: 52.00
11:50:51.602 -> Startime: 2280
11:50:51.602 -> Executiontime: 2327.00
11:50:51.602 -> Delta: 46.00
11:50:51.649 -> Startime: 2331
11:50:51.649 -> Executiontime: 2377.00
11:50:51.649 -> Delta: 45.00
11:50:51.696 -> Startime: 2380
11:50:51.696 -> Executiontime: 2429.00
11:50:51.696 -> Delta: 48.00
11:50:51.744 -> Startime: 2432
11:50:51.744 -> Executiontime: 2479.00
11:50:51.744 -> Delta: 46.00
11:50:51.792 -> Startime: 2482
11:50:51.792 -> Executiontime: 2535.00
11:50:51.792 -> Delta: 52.00
11:50:51.838 -> Startime: 2538
11:50:51.838 -> Executiontime: 2586.00
11:50:51.838 -> Delta: 47.00
11:50:51.886 -> Startime: 2590
11:50:51.886 -> Executiontime: 2636.00
11:50:51.886 -> Delta: 45.00
11:50:51.934 -> Startime: 2639
11:50:51.934 -> Executiontime: 2687.00
11:50:51.934 -> Delta: 47.00
11:50:51.982 -> Startime: 2690
11:50:51.982 -> Executiontime: 2743.00
11:50:51.982 -> Delta: 52.00
11:50:52.078 -> Startime: 2757
11:50:52.078 -> Executiontime: 2814.00
11:50:52.078 -> Delta: 56.00
11:50:52.126 -> Startime: 2817
11:50:52.126 -> Executiontime: 2864.00
11:50:52.126 -> Delta: 46.00
11:50:52.174 -> Startime: 2867
11:50:52.174 -> Executiontime: 2915.00
11:50:52.174 -> Delta: 47.00
11:50:52.222 -> Startime: 2918
11:50:52.222 -> Executiontime: 2965.00
11:50:52.222 -> Delta: 46.00
11:50:52.268 -> Startime: 2968
11:50:52.268 -> Executiontime: 3021.00
11:50:52.268 -> Delta: 52.00
11:50:52.316 -> Startime: 3024
11:50:52.316 -> Executiontime: 3073.00
11:50:52.316 -> Delta: 48.00
11:50:52.364 -> Startime: 3076
11:50:52.364 -> Executiontime: 3123.00
11:50:52.411 -> Delta: 46.00
11:50:52.457 -> Startime: 3126
11:50:52.457 -> Executiontime: 3174.00
11:50:52.457 -> Delta: 47.00
11:50:52.504 -> Startime: 3198
11:50:52.504 -> Executiontime: 3230.00
11:50:52.504 -> Delta: 31.00
11:50:52.600 -> Startime: 3278
11:50:52.600 -> Executiontime: 3281.00
11:50:52.600 -> Delta: 2.00
11:50:52.647 -> Startime: 3338
11:50:52.647 -> Executiontime: 3332.00
11:50:52.647 -> Delta: -7.00
11:50:52.743 -> Startime: 3418
11:50:52.743 -> Executiontime: 3382.00
11:50:52.743 -> Delta: -37.00
11:50:52.791 -> Startime: 3478
11:50:52.791 -> Executiontime: 3438.00
11:50:52.791 -> Delta: -41.00
11:50:52.837 -> Startime: 3538
11:50:52.837 -> Executiontime: 3489.00
11:50:52.837 -> Delta: -50.00
11:50:52.885 -> Startime: 3578
11:50:52.885 -> Executiontime: 3541.00
11:50:52.885 -> Delta: -38.00
11:50:52.933 -> Startime: 3619
11:50:52.933 -> Executiontime: 3597.00
11:50:52.933 -> Delta: -22.00
11:50:52.980 -> Startime: 3669
11:50:52.980 -> Executiontime: 3668.00
11:50:52.980 -> Delta: -2.00
11:50:53.027 -> Startime: 3718
11:50:53.027 -> Executiontime: 3718.00
11:50:53.027 -> Delta: -1.00
11:50:53.075 -> Startime: 3759
11:50:53.075 -> Executiontime: 3769.00
11:50:53.075 -> Delta: 10.00
11:50:53.123 -> Startime: 3799
11:50:53.123 -> Executiontime: 3825.00
11:50:53.123 -> Delta: 25.00
11:50:53.171 -> Startime: 3858
11:50:53.171 -> Executiontime: 3876.00
11:50:53.171 -> Delta: 17.00
11:50:53.219 -> Startime: 3898
11:50:53.219 -> Executiontime: 3928.00
11:50:53.219 -> Delta: 29.00
11:50:53.267 -> Startime: 3959
11:50:53.267 -> Executiontime: 3984.00
11:50:53.267 -> Delta: 24.00
11:50:53.315 -> Startime: 4019
11:50:53.315 -> Executiontime: 4034.00
11:50:53.363 -> Delta: 15.00
11:50:53.411 -> Startime: 4078
11:50:53.411 -> Executiontime: 4098.00
11:50:53.411 -> Delta: 18.00
11:50:53.459 -> Startime: 4139
11:50:53.459 -> Executiontime: 4163.00
11:50:53.459 -> Delta: 23.00
11:50:53.552 -> Startime: 4219
11:50:53.552 -> Executiontime: 4214.00
11:50:53.552 -> Delta: -6.00
11:50:53.599 -> Startime: 4259
11:50:53.599 -> Executiontime: 4265.00
11:50:53.599 -> Delta: 5.00
11:50:53.599 -> Startime: 4299
11:50:53.599 -> Executiontime: 4322.00
11:50:53.646 -> Delta: 22.00
11:50:53.693 -> Startime: 4359
11:50:53.693 -> Executiontime: 4372.00
11:50:53.693 -> Delta: 12.00
11:50:53.741 -> Startime: 4399
11:50:53.741 -> Executiontime: 4423.00
11:50:53.741 -> Delta: 23.00
11:50:53.789 -> Startime: 4459
11:50:53.789 -> Executiontime: 4473.00
11:50:53.789 -> Delta: 13.00
11:50:53.838 -> Startime: 4510
11:50:53.838 -> Executiontime: 4543.00
11:50:53.838 -> Delta: 32.00
11:50:53.884 -> Startime: 4579
11:50:53.884 -> Executiontime: 4599.00
11:50:53.884 -> Delta: 19.00
11:50:53.980 -> Startime: 4640
11:50:53.980 -> Executiontime: 4651.00
11:50:53.980 -> Delta: 11.00
11:50:54.026 -> Startime: 4680
11:50:54.026 -> Executiontime: 4702.00
11:50:54.026 -> Delta: 21.00
11:50:54.074 -> Startime: 4739
11:50:54.074 -> Executiontime: 4752.00
11:50:54.074 -> Delta: 12.00
11:50:54.122 -> Startime: 4780
11:50:54.122 -> Executiontime: 4808.00
11:50:54.122 -> Delta: 28.00
11:50:54.122 -> Startime: 4811
11:50:54.122 -> Executiontime: 4860.00
11:50:54.122 -> Delta: 48.00
11:50:54.266 -> Startime: 4919
11:50:54.266 -> Executiontime: 4911.00
11:50:54.266 -> Delta: -9.00
11:50:54.266 -> Startime: 4940
11:50:54.266 -> Executiontime: 4967.00
11:50:54.266 -> Delta: 26.00
11:50:54.314 -> Startime: 4970
11:50:54.314 -> Executiontime: 5018.00
11:50:54.314 -> Delta: 47.00
11:50:54.362 -> Startime: 5040
11:50:54.362 -> Executiontime: 5068.00
11:50:54.362 -> Delta: 27.00
11:50:54.410 -> Startime: 5071
11:50:54.410 -> Executiontime: 5120.00
11:50:54.410 -> Delta: 48.00
11:50:54.458 -> Startime: 5139
11:50:54.458 -> Executiontime: 5176.00
11:50:54.458 -> Delta: 36.00
11:50:54.552 -> Startime: 5219
11:50:54.552 -> Executiontime: 5227.00
11:50:54.552 -> Delta: 7.00
11:50:54.598 -> Startime: 5259
11:50:54.598 -> Executiontime: 5277.00
11:50:54.598 -> Delta: 17.00
11:50:54.645 -> Startime: 5299
11:50:54.645 -> Executiontime: 5334.00
11:50:54.645 -> Delta: 34.00
11:50:54.692 -> Startime: 5348
11:50:54.692 -> Executiontime: 5404.00
11:50:54.692 -> Delta: 56.00
11:50:54.740 -> Startime: 5420
11:50:54.740 -> Executiontime: 5456.00
11:50:54.740 -> Delta: 35.00
11:50:54.788 -> Startime: 5459
11:50:54.788 -> Executiontime: 5506.00
11:50:54.788 -> Delta: 46.00
11:50:54.835 -> Startime: 5519
11:50:54.835 -> Executiontime: 5562.00
11:50:54.835 -> Delta: 42.00
11:50:54.931 -> Startime: 5600
11:50:54.931 -> Executiontime: 5613.00
11:50:54.931 -> Delta: 12.00
11:50:54.979 -> Startime: 5660
11:50:54.979 -> Executiontime: 5663.00
11:50:54.979 -> Delta: 2.00
11:50:55.026 -> Startime: 5701
11:50:55.026 -> Executiontime: 5715.00
11:50:55.026 -> Delta: 13.00
11:50:55.072 -> Startime: 5760
11:50:55.072 -> Executiontime: 5771.00
11:50:55.119 -> Delta: 10.00
11:50:55.167 -> Startime: 5820
11:50:55.167 -> Executiontime: 5822.00
11:50:55.167 -> Delta: 1.00
11:50:55.215 -> Startime: 5860
11:50:55.215 -> Executiontime: 5873.00
11:50:55.215 -> Delta: 12.00
11:50:55.263 -> Startime: 5921
11:50:55.263 -> Executiontime: 5923.00
11:50:55.263 -> Delta: 1.00
11:50:55.311 -> Startime: 5961
11:50:55.311 -> Executiontime: 5980.00
11:50:55.311 -> Delta: 18.00
11:50:55.359 -> Startime: 6020
11:50:55.359 -> Executiontime: 6031.00
11:50:55.359 -> Delta: 10.00
11:50:55.407 -> Startime: 6061
11:50:55.407 -> Executiontime: 6082.00
11:50:55.407 -> Delta: 21.00
11:50:55.455 -> Startime: 6101
11:50:55.455 -> Executiontime: 6143.00
11:50:55.455 -> Delta: 42.00
11:50:55.503 -> Startime: 6172
11:50:55.503 -> Executiontime: 6229.00
11:50:55.503 -> Delta: 57.00
11:50:55.598 -> Startime: 6240
11:50:55.598 -> Executiontime: 6279.00
11:50:55.598 -> Delta: 38.00
11:50:55.645 -> Startime: 6301
11:50:55.645 -> Executiontime: 6330.00
11:50:55.645 -> Delta: 28.00
11:50:55.691 -> Startime: 6341
11:50:55.691 -> Executiontime: 6386.00
11:50:55.691 -> Delta: 44.00
11:50:55.739 -> Startime: 6389
11:50:55.739 -> Executiontime: 6438.00
11:50:55.739 -> Delta: 48.00
11:50:55.787 -> Startime: 6460
11:50:55.787 -> Executiontime: 6489.00
11:50:55.787 -> Delta: 28.00
11:50:55.835 -> Startime: 6493
11:50:55.835 -> Executiontime: 6545.00
11:50:55.835 -> Delta: 52.00
11:50:55.882 -> Startime: 6549
11:50:55.882 -> Executiontime: 6596.00
11:50:55.882 -> Delta: 47.00
11:50:55.929 -> Startime: 6601
11:50:55.929 -> Executiontime: 6646.00
11:50:55.929 -> Delta: 44.00
11:50:55.976 -> Startime: 6650
11:50:55.976 -> Executiontime: 6698.00
11:50:55.976 -> Delta: 48.00
11:50:56.023 -> Startime: 6702
11:50:56.023 -> Executiontime: 6754.00
11:50:56.023 -> Delta: 51.00
11:50:56.118 -> Startime: 6781
11:50:56.118 -> Executiontime: 6805.00
11:50:56.118 -> Delta: 23.00
11:50:56.166 -> Startime: 6821
11:50:56.166 -> Executiontime: 6856.00
11:50:56.166 -> Delta: 34.00
11:50:56.214 -> Startime: 6881
11:50:56.214 -> Executiontime: 6913.00
11:50:56.214 -> Delta: 31.00
11:50:56.262 -> Startime: 6941
11:50:56.262 -> Executiontime: 6964.00
11:50:56.309 -> Delta: 22.00
11:50:56.356 -> Startime: 7011
11:50:56.356 -> Executiontime: 7033.00
11:50:56.356 -> Delta: 21.00
11:50:56.404 -> Startime: 7061
11:50:56.404 -> Executiontime: 7085.00
11:50:56.404 -> Delta: 23.00
11:50:56.452 -> Startime: 7121
11:50:56.452 -> Executiontime: 7141.00
11:50:56.452 -> Delta: 19.00
11:50:56.548 -> Startime: 7181
11:50:56.548 -> Executiontime: 7192.00
11:50:56.548 -> Delta: 10.00
11:50:56.548 -> Startime: 7221
11:50:56.548 -> Executiontime: 7242.00
11:50:56.548 -> Delta: 20.00
11:50:56.644 -> Startime: 7282
11:50:56.644 -> Executiontime: 7300.00
11:50:56.644 -> Delta: 18.00
11:50:56.690 -> Startime: 7321
11:50:56.690 -> Executiontime: 7350.00
11:50:56.690 -> Delta: 27.00
11:50:56.738 -> Startime: 7381
11:50:56.738 -> Executiontime: 7401.00
11:50:56.738 -> Delta: 19.00
11:50:56.786 -> Startime: 7421
11:50:56.786 -> Executiontime: 7452.00
11:50:56.786 -> Delta: 30.00
11:50:56.834 -> Startime: 7481
11:50:56.834 -> Executiontime: 7509.00
11:50:56.834 -> Delta: 27.00
11:50:56.880 -> Startime: 7521
11:50:56.880 -> Executiontime: 7559.00
11:50:56.880 -> Delta: 37.00
11:50:56.928 -> Startime: 7582
11:50:56.928 -> Executiontime: 7610.00
11:50:56.928 -> Delta: 28.00
11:50:56.976 -> Startime: 7622
11:50:56.976 -> Executiontime: 7660.00
11:50:56.976 -> Delta: 37.00
11:50:57.022 -> Startime: 7681
11:50:57.022 -> Executiontime: 7718.00
11:50:57.022 -> Delta: 36.00
11:50:57.070 -> Startime: 7741
11:50:57.070 -> Executiontime: 7768.00
11:50:57.117 -> Delta: 26.00
11:50:57.117 -> Startime: 7771
11:50:57.117 -> Executiontime: 7819.00
11:50:57.117 -> Delta: 47.00
11:50:57.213 -> Startime: 7852
11:50:57.213 -> Executiontime: 7888.00
11:50:57.213 -> Delta: 35.00
11:50:57.261 -> Startime: 7891
11:50:57.261 -> Executiontime: 7939.00
11:50:57.261 -> Delta: 47.00
11:50:57.308 -> Startime: 7961
11:50:57.308 -> Executiontime: 7995.00
11:50:57.308 -> Delta: 32.00
11:50:57.355 -> Startime: 7998
11:50:57.355 -> Executiontime: 8046.00
11:50:57.355 -> Delta: 47.00
11:50:57.451 -> Startime: 8081
11:50:57.451 -> Executiontime: 8096.00
11:50:57.451 -> Delta: 14.00
11:50:57.451 -> Startime: 8099
11:50:57.451 -> Executiontime: 8158.00
11:50:57.451 -> Delta: 58.00
11:50:57.545 -> Startime: 8201
11:50:57.545 -> Executiontime: 8223.00
11:50:57.545 -> Delta: 21.00
11:50:57.593 -> Startime: 8226
11:50:57.593 -> Executiontime: 8274.00
11:50:57.593 -> Delta: 47.00
11:50:57.641 -> Startime: 8277
11:50:57.641 -> Executiontime: 8325.00
11:50:57.641 -> Delta: 47.00
11:50:57.737 -> Startime: 8402
11:50:57.737 -> Executiontime: 8376.00
11:50:57.785 -> Delta: -27.00
11:50:57.785 -> Startime: 8407
11:50:57.785 -> Executiontime: 8432.00
11:50:57.785 -> Delta: 24.00
11:50:57.785 -> Startime: 8435
11:50:57.785 -> Executiontime: 8482.00
11:50:57.785 -> Delta: 46.00
11:50:57.925 -> Startime: 8562
11:50:57.925 -> Executiontime: 8534.00
11:50:57.925 -> Delta: -29.00
11:50:57.925 -> Startime: 8582
11:50:57.925 -> Executiontime: 8590.00
11:50:57.925 -> Delta: 7.00
11:50:57.973 -> Startime: 8593
11:50:57.973 -> Executiontime: 8641.00
11:50:57.973 -> Delta: 47.00
11:50:58.021 -> Startime: 8645
11:50:58.021 -> Executiontime: 8691.00
11:50:58.021 -> Delta: 45.00
11:50:58.114 -> Startime: 8773
11:50:58.114 -> Executiontime: 8761.00
11:50:58.114 -> Delta: -13.00
11:50:58.161 -> Startime: 8802
11:50:58.161 -> Executiontime: 8811.00
11:50:58.161 -> Delta: 8.00
11:50:58.161 -> Startime: 8814
11:50:58.161 -> Executiontime: 8868.00
11:50:58.161 -> Delta: 52.00
11:50:58.256 -> Startime: 8902
11:50:58.256 -> Executiontime: 8919.00
11:50:58.256 -> Delta: 16.00
11:50:58.304 -> Startime: 8922
11:50:58.304 -> Executiontime: 8970.00
11:50:58.304 -> Delta: 47.00
11:50:58.352 -> Startime: 8973
11:50:58.352 -> Executiontime: 9020.00
11:50:58.352 -> Delta: 46.00
11:50:58.400 -> Startime: 9042
11:50:58.400 -> Executiontime: 9076.00
11:50:58.400 -> Delta: 33.00
11:50:58.448 -> Startime: 9079
11:50:58.448 -> Executiontime: 9128.00
11:50:58.448 -> Delta: 48.00
11:50:58.496 -> Startime: 9131
11:50:58.496 -> Executiontime: 9178.00
11:50:58.496 -> Delta: 46.00
11:50:58.544 -> Startime: 9181
11:50:58.544 -> Executiontime: 9229.00
11:50:58.544 -> Delta: 47.00
11:50:58.592 -> Startime: 9232
11:50:58.592 -> Executiontime: 9285.00
11:50:58.592 -> Delta: 52.00
11:50:58.640 -> Startime: 9288
11:50:58.640 -> Executiontime: 9336.00
11:50:58.640 -> Delta: 47.00
11:50:58.687 -> Startime: 9339
11:50:58.687 -> Executiontime: 9387.00
11:50:58.687 -> Delta: 47.00
11:50:58.734 -> Startime: 9390
11:50:58.734 -> Executiontime: 9438.00
11:50:58.782 -> Delta: 47.00
11:50:58.878 -> Startime: 9503
11:50:58.878 -> Executiontime: 9494.00
11:50:58.878 -> Delta: -10.00
11:50:58.924 -> Startime: 9543
11:50:58.924 -> Executiontime: 9544.00
11:50:58.924 -> Delta: 0.00
11:50:58.971 -> Startime: 9593
11:50:58.971 -> Executiontime: 9614.00
11:50:58.971 -> Delta: 20.00
11:50:59.018 -> Startime: 9662
11:50:59.018 -> Executiontime: 9665.00
11:50:59.018 -> Delta: 2.00
11:50:59.018 -> Startime: 9669
11:50:59.018 -> Executiontime: 9723.00
11:50:59.018 -> Delta: 53.00
11:50:59.160 -> Startime: 9782
11:50:59.160 -> Executiontime: 9773.00
11:50:59.160 -> Delta: -10.00
11:50:59.208 -> Startime: 9822
11:50:59.208 -> Executiontime: 9824.00
11:50:59.208 -> Delta: 1.00
11:50:59.208 -> Startime: 9863
11:50:59.208 -> Executiontime: 9874.00
11:50:59.256 -> Delta: 10.00
11:50:59.256 -> Startime: 9877
11:50:59.256 -> Executiontime: 9930.00
11:50:59.256 -> Delta: 52.00
11:50:59.303 -> Startime: 9933
11:50:59.303 -> Executiontime: 9982.00
11:50:59.303 -> Delta: 48.00
11:50:59.350 -> Startime: 9986
11:50:59.350 -> Executiontime: 10033.00
11:50:59.350 -> Delta: 46.00
11:50:59.396 -> Startime: 10037
11:50:59.396 -> Executiontime: 10089.00
11:50:59.396 -> Delta: 51.00
11:50:59.445 -> Startime: 10093
11:50:59.445 -> Executiontime: 10140.00
11:50:59.445 -> Delta: 46.00
11:50:59.493 -> Startime: 10144
11:50:59.493 -> Executiontime: 10203.00
11:50:59.541 -> Delta: 58.00
11:50:59.589 -> Startime: 10207
11:50:59.589 -> Executiontime: 10268.00
11:50:59.589 -> Delta: 60.00
11:50:59.685 -> Startime: 10323
11:50:59.685 -> Executiontime: 10320.00
11:50:59.685 -> Delta: -4.00
11:50:59.733 -> Startime: 10363
11:50:59.733 -> Executiontime: 10371.00
11:50:59.733 -> Delta: 7.00
11:50:59.781 -> Startime: 10393
11:50:59.781 -> Executiontime: 10440.00
11:50:59.781 -> Delta: 45.00
11:50:59.877 -> Startime: 10484
11:50:59.877 -> Executiontime: 10497.00
11:50:59.877 -> Delta: 12.00
11:50:59.877 -> Startime: 10501
11:50:59.877 -> Executiontime: 10548.00
11:50:59.877 -> Delta: 46.00
11:51:00.017 -> Startime: 10624
11:51:00.017 -> Executiontime: 10598.00
11:51:00.017 -> Delta: -27.00
11:51:00.017 -> Startime: 10629
11:51:00.017 -> Executiontime: 10655.00
11:51:00.017 -> Delta: 25.00
11:51:00.065 -> Startime: 10704
11:51:00.065 -> Executiontime: 10706.00
11:51:00.065 -> Delta: 1.00
11:51:00.113 -> Startime: 10744
11:51:00.113 -> Executiontime: 10757.00
11:51:00.113 -> Delta: 12.00
11:51:00.113 -> Startime: 10761
11:51:00.113 -> Executiontime: 10813.00
11:51:00.161 -> Delta: 51.00
11:51:00.209 -> Startime: 10843
11:51:00.209 -> Executiontime: 10864.00
11:51:00.209 -> Delta: 20.00
11:51:00.257 -> Startime: 10884
11:51:00.257 -> Executiontime: 10915.00
11:51:00.257 -> Delta: 31.00
11:51:00.305 -> Startime: 10919
11:51:00.305 -> Executiontime: 10966.00
11:51:00.305 -> Delta: 46.00
11:51:00.353 -> Startime: 10970
11:51:00.353 -> Executiontime: 11023.00
11:51:00.353 -> Delta: 52.00
11:51:00.401 -> Startime: 11027
11:51:00.401 -> Executiontime: 11073.00
11:51:00.401 -> Delta: 45.00
11:51:00.497 -> Startime: 11103
11:51:00.497 -> Executiontime: 11124.00
11:51:00.497 -> Delta: 20.00
11:51:00.497 -> Startime: 11127
11:51:00.497 -> Executiontime: 11181.00
11:51:00.497 -> Delta: 53.00
11:51:00.594 -> Startime: 11195
11:51:00.594 -> Executiontime: 11251.00
11:51:00.594 -> Delta: 55.00
11:51:00.642 -> Startime: 11254
11:51:00.642 -> Executiontime: 11303.00
11:51:00.642 -> Delta: 48.00
11:51:00.690 -> Startime: 11307
11:51:00.690 -> Executiontime: 11353.00
11:51:00.690 -> Delta: 45.00
11:51:00.736 -> Startime: 11356
11:51:00.736 -> Executiontime: 11410.00
11:51:00.736 -> Delta: 53.00
11:51:00.784 -> Startime: 11413
11:51:00.784 -> Executiontime: 11460.00
11:51:00.784 -> Delta: 46.00
11:51:00.832 -> Startime: 11465
11:51:00.832 -> Executiontime: 11511.00
11:51:00.832 -> Delta: 46.00
11:51:00.880 -> Startime: 11514
11:51:00.880 -> Executiontime: 11569.00
11:51:00.880 -> Delta: 54.00
11:51:00.976 -> Startime: 11573
11:51:00.976 -> Executiontime: 11620.00
11:51:00.976 -> Delta: 46.00
11:51:01.024 -> Startime: 11624
11:51:01.024 -> Executiontime: 11670.00
11:51:01.024 -> Delta: 45.00
11:51:01.072 -> Startime: 11675
11:51:01.072 -> Executiontime: 11728.00
11:51:01.072 -> Delta: 52.00
11:51:01.120 -> Startime: 11732
11:51:01.120 -> Executiontime: 11778.00
11:51:01.120 -> Delta: 45.00
11:51:01.168 -> Startime: 11782
11:51:01.168 -> Executiontime: 11829.00
11:51:01.168 -> Delta: 46.00
11:51:01.311 -> Startime: 11904
11:51:01.311 -> Executiontime: 11885.00
11:51:01.311 -> Delta: -20.00
11:51:01.311 -> Startime: 11910
11:51:01.311 -> Executiontime: 11936.00
11:51:01.311 -> Delta: 25.00
11:51:01.358 -> Startime: 11984
11:51:01.358 -> Executiontime: 11988.00
11:51:01.358 -> Delta: 3.00
11:51:01.406 -> Startime: 12035
11:51:01.406 -> Executiontime: 12057.00
11:51:01.406 -> Delta: 21.00
11:51:01.454 -> Startime: 12062
11:51:01.454 -> Executiontime: 12107.00
11:51:01.454 -> Delta: 44.00
11:51:01.502 -> Startime: 12111
11:51:01.502 -> Executiontime: 12165.00
11:51:01.502 -> Delta: 53.00
11:51:01.550 -> Startime: 12169
11:51:01.550 -> Executiontime: 12227.00
11:51:01.550 -> Delta: 57.00
11:51:01.693 -> Startime: 12304
11:51:01.693 -> Executiontime: 12294.00
11:51:01.693 -> Delta: -11.00
11:51:01.693 -> Startime: 12325
11:51:01.693 -> Executiontime: 12345.00
11:51:01.741 -> Delta: 19.00
11:51:01.741 -> Startime: 12349
11:51:01.741 -> Executiontime: 12395.00
11:51:01.741 -> Delta: 45.00
11:51:01.789 -> Startime: 12400
11:51:01.789 -> Executiontime: 12452.00
11:51:01.789 -> Delta: 51.00
11:51:01.837 -> Startime: 12464
11:51:01.837 -> Executiontime: 12503.00
11:51:01.837 -> Delta: 38.00
11:51:01.933 -> Startime: 12524
11:51:01.933 -> Executiontime: 12554.00
11:51:01.933 -> Delta: 29.00
11:51:01.933 -> Startime: 12564
11:51:01.933 -> Executiontime: 12610.00
11:51:01.981 -> Delta: 45.00
11:51:02.028 -> Startime: 12615
11:51:02.028 -> Executiontime: 12661.00
11:51:02.028 -> Delta: 45.00
11:51:02.075 -> Startime: 12665
11:51:02.075 -> Executiontime: 12713.00
11:51:02.075 -> Delta: 47.00
11:51:02.122 -> Startime: 12745
11:51:02.122 -> Executiontime: 12769.00
11:51:02.122 -> Delta: 23.00
11:51:02.169 -> Startime: 12785
11:51:02.169 -> Executiontime: 12820.00
11:51:02.169 -> Delta: 34.00
11:51:02.263 -> Startime: 12855
11:51:02.263 -> Executiontime: 12890.00
11:51:02.263 -> Delta: 34.00
11:51:02.310 -> Startime: 12904
11:51:02.310 -> Executiontime: 12941.00
11:51:02.310 -> Delta: 36.00
11:51:02.357 -> Startime: 12965
11:51:02.357 -> Executiontime: 12998.00
11:51:02.357 -> Delta: 32.00
11:51:02.405 -> Startime: 13024
11:51:02.405 -> Executiontime: 13048.00
11:51:02.405 -> Delta: 23.00
11:51:02.453 -> Startime: 13065
11:51:02.453 -> Executiontime: 13100.00
11:51:02.453 -> Delta: 34.00
11:51:02.501 -> Startime: 13104
11:51:02.501 -> Executiontime: 13156.00
11:51:02.501 -> Delta: 51.00
11:51:02.595 -> Startime: 13185
11:51:02.595 -> Executiontime: 13207.00
11:51:02.595 -> Delta: 21.00
11:51:02.595 -> Startime: 13212
11:51:02.595 -> Executiontime: 13258.00
11:51:02.595 -> Delta: 45.00
11:51:02.691 -> Startime: 13305
11:51:02.691 -> Executiontime: 13309.00
11:51:02.691 -> Delta: 3.00
11:51:02.785 -> Startime: 13365
11:51:02.785 -> Executiontime: 13366.00
11:51:02.785 -> Delta: 0.00
11:51:02.785 -> Startime: 13405
11:51:02.785 -> Executiontime: 13416.00
11:51:02.785 -> Delta: 10.00
11:51:02.834 -> Startime: 13445
11:51:02.834 -> Executiontime: 13467.00
11:51:02.834 -> Delta: 21.00
11:51:02.882 -> Startime: 13485
11:51:02.882 -> Executiontime: 13525.00
11:51:02.882 -> Delta: 39.00
11:51:02.929 -> Startime: 13529
11:51:02.929 -> Executiontime: 13575.00
11:51:02.929 -> Delta: 45.00
11:51:03.022 -> Startime: 13616
11:51:03.022 -> Executiontime: 13626.00
11:51:03.022 -> Delta: 9.00
11:51:03.070 -> Startime: 13665
11:51:03.070 -> Executiontime: 13696.00
11:51:03.070 -> Delta: 30.00
11:51:03.166 -> Startime: 13746
11:51:03.166 -> Executiontime: 13752.00
11:51:03.166 -> Delta: 6.00
11:51:03.166 -> Startime: 13786
11:51:03.166 -> Executiontime: 13803.00
11:51:03.214 -> Delta: 16.00
11:51:03.262 -> Startime: 13845
11:51:03.262 -> Executiontime: 13854.00
11:51:03.262 -> Delta: 8.00
11:51:03.310 -> Startime: 13885
11:51:03.310 -> Executiontime: 13911.00
11:51:03.310 -> Delta: 25.00
11:51:03.356 -> Startime: 13946
11:51:03.356 -> Executiontime: 13962.00
11:51:03.356 -> Delta: 15.00
11:51:03.404 -> Startime: 14006
11:51:03.404 -> Executiontime: 14013.00
11:51:03.404 -> Delta: 6.00
11:51:03.452 -> Startime: 14066
11:51:03.452 -> Executiontime: 14063.00
11:51:03.452 -> Delta: -4.00
11:51:03.500 -> Startime: 14107
11:51:03.500 -> Executiontime: 14121.00
11:51:03.500 -> Delta: 13.00
11:51:03.548 -> Startime: 14166
11:51:03.548 -> Executiontime: 14171.00
11:51:03.596 -> Delta: 4.00
11:51:03.596 -> Startime: 14186
11:51:03.596 -> Executiontime: 14232.00
11:51:03.596 -> Delta: 45.00
11:51:03.690 -> Startime: 14287
11:51:03.690 -> Executiontime: 14299.00
11:51:03.690 -> Delta: 11.00
11:51:03.738 -> Startime: 14327
11:51:03.738 -> Executiontime: 14350.00
11:51:03.738 -> Delta: 22.00
11:51:03.784 -> Startime: 14386
11:51:03.784 -> Executiontime: 14400.00
11:51:03.784 -> Delta: 13.00
11:51:03.880 -> Startime: 14457
11:51:03.880 -> Executiontime: 14457.00
11:51:03.880 -> Delta: -1.00
11:51:03.880 -> Startime: 14486
11:51:03.880 -> Executiontime: 14527.00
11:51:03.880 -> Delta: 40.00
11:51:03.929 -> Startime: 14531
11:51:03.929 -> Executiontime: 14578.00
11:51:03.929 -> Delta: 45.00
11:51:04.025 -> Startime: 14627
11:51:04.025 -> Executiontime: 14628.00
11:51:04.025 -> Delta: 0.00
11:51:04.117 -> Startime: 14687
11:51:04.117 -> Executiontime: 14686.00
11:51:04.117 -> Delta: -2.00
11:51:04.165 -> Startime: 14748
11:51:04.165 -> Executiontime: 14736.00
11:51:04.165 -> Delta: -13.00
11:51:04.212 -> Startime: 14787
11:51:04.212 -> Executiontime: 14787.00
11:51:04.212 -> Delta: -2.00
11:51:04.212 -> Startime: 14807
11:51:04.212 -> Executiontime: 14844.00
11:51:04.212 -> Delta: 36.00
11:51:04.259 -> Startime: 14867
11:51:04.259 -> Executiontime: 14895.00
11:51:04.259 -> Delta: 27.00
11:51:04.355 -> Startime: 14928
11:51:04.355 -> Executiontime: 14946.00
11:51:04.355 -> Delta: 17.00
11:51:04.403 -> Startime: 14987
11:51:04.403 -> Executiontime: 14997.00
11:51:04.403 -> Delta: 9.00
11:51:04.451 -> Startime: 15027
11:51:04.451 -> Executiontime: 15053.00
11:51:04.451 -> Delta: 25.00
11:51:04.499 -> Startime: 15088
11:51:04.499 -> Executiontime: 15105.00
11:51:04.499 -> Delta: 16.00
11:51:04.547 -> Startime: 15148
11:51:04.547 -> Executiontime: 15155.00
11:51:04.547 -> Delta: 6.00
11:51:04.593 -> Startime: 15188
11:51:04.593 -> Executiontime: 15211.00
11:51:04.593 -> Delta: 22.00
11:51:04.640 -> Startime: 15238
11:51:04.640 -> Executiontime: 15281.00
11:51:04.640 -> Delta: 42.00
11:51:04.735 -> Startime: 15328
11:51:04.735 -> Executiontime: 15332.00
11:51:04.735 -> Delta: 3.00
11:51:04.783 -> Startime: 15388
11:51:04.783 -> Executiontime: 15383.00
11:51:04.783 -> Delta: -6.00
11:51:04.831 -> Startime: 15427
11:51:04.831 -> Executiontime: 15440.00
11:51:04.831 -> Delta: 11.00
11:51:04.927 -> Startime: 15488
11:51:04.927 -> Executiontime: 15491.00
11:51:04.927 -> Delta: 2.00
11:51:04.927 -> Startime: 15508
11:51:04.927 -> Executiontime: 15541.00
11:51:04.927 -> Delta: 32.00
11:51:04.975 -> Startime: 15568
11:51:04.975 -> Executiontime: 15592.00
11:51:04.975 -> Delta: 23.00
11:51:05.022 -> Startime: 15628
11:51:05.022 -> Executiontime: 15649.00
11:51:05.070 -> Delta: 20.00
11:51:05.116 -> Startime: 15689
11:51:05.116 -> Executiontime: 15700.00
11:51:05.116 -> Delta: 10.00
11:51:05.164 -> Startime: 15729
11:51:05.164 -> Executiontime: 15751.00
11:51:05.164 -> Delta: 21.00
11:51:05.212 -> Startime: 15789
11:51:05.212 -> Executiontime: 15807.00
11:51:05.212 -> Delta: 17.00
11:51:05.260 -> Startime: 15829
11:51:05.260 -> Executiontime: 15858.00
11:51:05.260 -> Delta: 28.00
11:51:05.260 -> Startime: 15862
11:51:05.260 -> Executiontime: 15910.00
11:51:05.307 -> Delta: 47.00
11:51:05.354 -> Startime: 15949
11:51:05.354 -> Executiontime: 15966.00
11:51:05.354 -> Delta: 16.00
11:51:05.402 -> Startime: 15989
11:51:05.402 -> Executiontime: 16017.00
11:51:05.402 -> Delta: 27.00
11:51:05.498 -> Startime: 16059
11:51:05.498 -> Executiontime: 16087.00
11:51:05.498 -> Delta: 27.00
11:51:05.546 -> Startime: 16108
11:51:05.546 -> Executiontime: 16137.00
11:51:05.546 -> Delta: 28.00
11:51:05.546 -> Startime: 16148
11:51:05.546 -> Executiontime: 16194.00
11:51:05.594 -> Delta: 45.00
11:51:05.642 -> Startime: 16229
11:51:05.642 -> Executiontime: 16258.00
11:51:05.642 -> Delta: 29.00
11:51:05.688 -> Startime: 16269
11:51:05.688 -> Executiontime: 16324.00
11:51:05.688 -> Delta: 54.00
11:51:05.734 -> Startime: 16329
11:51:05.734 -> Executiontime: 16375.00
11:51:05.734 -> Delta: 45.00
11:51:05.827 -> Startime: 16408
11:51:05.827 -> Executiontime: 16426.00
11:51:05.827 -> Delta: 17.00
11:51:05.874 -> Startime: 16449
11:51:05.874 -> Executiontime: 16483.00
11:51:05.874 -> Delta: 33.00
11:51:05.921 -> Startime: 16487
11:51:05.921 -> Executiontime: 16533.00
11:51:05.921 -> Delta: 45.00
11:51:05.968 -> Startime: 16537
11:51:05.968 -> Executiontime: 16584.00
11:51:05.968 -> Delta: 45.00
11:51:06.016 -> Startime: 16609
11:51:06.016 -> Executiontime: 16641.00
11:51:06.016 -> Delta: 31.00
11:51:06.112 -> Startime: 16670
11:51:06.112 -> Executiontime: 16692.00
11:51:06.112 -> Delta: 21.00
11:51:06.112 -> Startime: 16710
11:51:06.112 -> Executiontime: 16743.00
11:51:06.160 -> Delta: 32.00
11:51:06.209 -> Startime: 16769
11:51:06.209 -> Executiontime: 16799.00
11:51:06.209 -> Delta: 29.00
11:51:06.209 -> Startime: 16803
11:51:06.209 -> Executiontime: 16851.00
11:51:06.209 -> Delta: 47.00
11:51:06.304 -> Startime: 16880
11:51:06.304 -> Executiontime: 16920.00
11:51:06.304 -> Delta: 39.00
11:51:06.351 -> Startime: 16925
11:51:06.351 -> Executiontime: 16970.00
11:51:06.351 -> Delta: 44.00
11:51:06.397 -> Startime: 16989
11:51:06.397 -> Executiontime: 17022.00
11:51:06.445 -> Delta: 32.00
11:51:06.445 -> Startime: 17025
11:51:06.445 -> Executiontime: 17078.00
11:51:06.445 -> Delta: 52.00
11:51:06.493 -> Startime: 17081
11:51:06.493 -> Executiontime: 17129.00
11:51:06.493 -> Delta: 47.00
11:51:06.541 -> Startime: 17133
11:51:06.541 -> Executiontime: 17180.00
11:51:06.589 -> Delta: 46.00
11:51:06.637 -> Startime: 17190
11:51:06.637 -> Executiontime: 17237.00
11:51:06.637 -> Delta: 46.00
11:51:06.685 -> Startime: 17240
11:51:06.685 -> Executiontime: 17287.00
11:51:06.685 -> Delta: 46.00
11:51:06.733 -> Startime: 17291
11:51:06.733 -> Executiontime: 17338.00
11:51:06.733 -> Delta: 47.00
11:51:06.779 -> Startime: 17341
11:51:06.779 -> Executiontime: 17389.00
11:51:06.779 -> Delta: 47.00
11:51:06.827 -> Startime: 17393
11:51:06.827 -> Executiontime: 17446.00
11:51:06.827 -> Delta: 52.00
11:51:06.875 -> Startime: 17449
11:51:06.875 -> Executiontime: 17497.00
11:51:06.875 -> Delta: 47.00
11:51:06.921 -> Startime: 17500
11:51:06.921 -> Executiontime: 17547.00
11:51:06.921 -> Delta: 46.00
11:51:06.967 -> Startime: 17551
11:51:06.967 -> Executiontime: 17603.00
11:51:06.967 -> Delta: 52.00
11:51:07.061 -> Startime: 17608
11:51:07.061 -> Executiontime: 17654.00
11:51:07.061 -> Delta: 46.00
11:51:07.109 -> Startime: 17680
11:51:07.109 -> Executiontime: 17706.00
11:51:07.109 -> Delta: 25.00
11:51:07.157 -> Startime: 17709
11:51:07.157 -> Executiontime: 17774.00
11:51:07.157 -> Delta: 64.00
11:51:07.204 -> Startime: 17778
11:51:07.204 -> Executiontime: 17825.00
11:51:07.204 -> Delta: 46.00
11:51:07.299 -> Startime: 17849
11:51:07.299 -> Executiontime: 17882.00
11:51:07.299 -> Delta: 32.00
11:51:07.299 -> Startime: 17885
11:51:07.299 -> Executiontime: 17933.00
11:51:07.348 -> Delta: 47.00
11:51:07.395 -> Startime: 17936
11:51:07.395 -> Executiontime: 17983.00
11:51:07.395 -> Delta: 46.00
11:51:07.442 -> Startime: 17986
11:51:07.442 -> Executiontime: 18034.00
11:51:07.442 -> Delta: 47.00
11:51:07.490 -> Startime: 18037
11:51:07.490 -> Executiontime: 18091.00
11:51:07.490 -> Delta: 53.00
11:51:07.538 -> Startime: 18094
11:51:07.538 -> Executiontime: 18142.00
11:51:07.538 -> Delta: 47.00
11:51:07.585 -> Startime: 18145
11:51:07.585 -> Executiontime: 18192.00
11:51:07.585 -> Delta: 46.00
11:51:07.632 -> Startime: 18195
11:51:07.632 -> Executiontime: 18243.00
11:51:07.632 -> Delta: 47.00
11:51:07.680 -> Startime: 18247
11:51:07.680 -> Executiontime: 18303.00
11:51:07.680 -> Delta: 55.00
11:51:07.728 -> Startime: 18306
11:51:07.728 -> Executiontime: 18369.00
11:51:07.728 -> Delta: 62.00
11:51:07.824 -> Startime: 18373
11:51:07.824 -> Executiontime: 18419.00
11:51:07.824 -> Delta: 45.00
11:51:07.872 -> Startime: 18422
11:51:07.872 -> Executiontime: 18471.00
11:51:07.872 -> Delta: 48.00
11:51:07.920 -> Startime: 18474
11:51:07.920 -> Executiontime: 18527.00
11:51:07.920 -> Delta: 52.00
11:51:07.966 -> Startime: 18541
11:51:07.966 -> Executiontime: 18598.00
11:51:07.966 -> Delta: 56.00
11:51:08.062 -> Startime: 18601
11:51:08.062 -> Executiontime: 18648.00
11:51:08.062 -> Delta: 46.00
11:51:08.108 -> Startime: 18651
11:51:08.108 -> Executiontime: 18699.00
11:51:08.108 -> Delta: 47.00
11:51:08.156 -> Startime: 18702
11:51:08.156 -> Executiontime: 18749.00
11:51:08.156 -> Delta: 46.00
11:51:08.204 -> Startime: 18752
11:51:08.204 -> Executiontime: 18805.00
11:51:08.204 -> Delta: 52.00
11:51:08.252 -> Startime: 18808
11:51:08.252 -> Executiontime: 18857.00
11:51:08.252 -> Delta: 48.00
11:51:08.298 -> Startime: 18860
11:51:08.298 -> Executiontime: 18907.00
11:51:08.298 -> Delta: 46.00
11:51:08.346 -> Startime: 18910
11:51:08.346 -> Executiontime: 18964.00
11:51:08.346 -> Delta: 53.00
11:51:08.394 -> Startime: 18967
11:51:08.394 -> Executiontime: 19015.00
11:51:08.394 -> Delta: 47.00
11:51:08.443 -> Startime: 19018
11:51:08.443 -> Executiontime: 19065.00
11:51:08.443 -> Delta: 46.00
11:51:08.537 -> Startime: 19068
11:51:08.537 -> Executiontime: 19116.00
11:51:08.537 -> Delta: 47.00
11:51:08.585 -> Startime: 19119
11:51:08.585 -> Executiontime: 19173.00
11:51:08.585 -> Delta: 53.00
11:51:08.631 -> Startime: 19176
11:51:08.631 -> Executiontime: 19223.00
11:51:08.631 -> Delta: 46.00
11:51:08.679 -> Startime: 19227
11:51:08.679 -> Executiontime: 19274.00
11:51:08.679 -> Delta: 46.00
11:51:08.727 -> Startime: 19277
11:51:08.727 -> Executiontime: 19325.00
11:51:08.727 -> Delta: 47.00
11:51:08.774 -> Startime: 19328
11:51:08.774 -> Executiontime: 19381.00
11:51:08.774 -> Delta: 52.00
11:51:08.821 -> Startime: 19395
11:51:08.821 -> Executiontime: 19432.00
11:51:08.869 -> Delta: 35.00
11:51:08.869 -> Startime: 19435
11:51:08.869 -> Executiontime: 19501.00
11:51:08.869 -> Delta: 65.00
11:51:08.965 -> Startime: 19504
11:51:08.965 -> Executiontime: 19552.00
11:51:08.965 -> Delta: 47.00
11:51:09.013 -> Startime: 19555
11:51:09.013 -> Executiontime: 19602.00
11:51:09.013 -> Delta: 46.00
11:51:09.060 -> Startime: 19605
11:51:09.060 -> Executiontime: 19658.00
11:51:09.060 -> Delta: 52.00
11:51:09.107 -> Startime: 19661
11:51:09.107 -> Executiontime: 19710.00
11:51:09.107 -> Delta: 48.00
11:51:09.155 -> Startime: 19713
11:51:09.155 -> Executiontime: 19760.00
11:51:09.155 -> Delta: 46.00
11:51:09.203 -> Startime: 19763
11:51:09.203 -> Executiontime: 19811.00
11:51:09.203 -> Delta: 47.00
11:51:09.251 -> Startime: 19814
11:51:09.251 -> Executiontime: 19867.00
11:51:09.251 -> Delta: 52.00
11:51:09.299 -> Startime: 19870
11:51:09.299 -> Executiontime: 19918.00
11:51:09.347 -> Delta: 47.00
11:51:09.394 -> Startime: 19921
11:51:09.394 -> Executiontime: 19969.00
11:51:09.394 -> Delta: 47.00
11:51:09.441 -> Startime: 19972
11:51:09.441 -> Executiontime: 20020.00
11:51:09.441 -> Delta: 47.00
11:51:09.488 -> Startime: 20023
11:51:09.488 -> Executiontime: 20076.00
11:51:09.488 -> Delta: 52.00
11:51:09.535 -> Startime: 20080
11:51:09.535 -> Executiontime: 20126.00
11:51:09.535 -> Delta: 45.00
11:51:09.584 -> Startime: 20129
11:51:09.584 -> Executiontime: 20178.00
11:51:09.584 -> Delta: 48.00
11:51:09.630 -> Startime: 20181
11:51:09.630 -> Executiontime: 20228.00
11:51:09.630 -> Delta: 46.00
11:51:09.678 -> Startime: 20242
11:51:09.678 -> Executiontime: 20284.00

Furthermore: Will there by longer delays in case the CSV file gets bigger (currently i am testing with a file recorded 20sec of movement)?

Lastly: How do I read two lines of the CSV File ahead, so that I can determine the difference in angle and time to calculate the accelaration / duration of the movement?

You need to find out how long time it takes to load a records from SD-card into memory. When you know that, you create a buffer/array of records and pre-load as many records as possible (or needed) into that array before starting the sequence. Whenever the delta time is large enough to load one or more records, you do so. You will need to handle the array as a circular buffer where the beginning and end is defined by variables in order to know where to put new and get old data.

using parseFloat will be ok for the timestamp if you never exceed the limits of float (6 to 7 significant digits), but I would store it as an unsigned long in Record if you want to do calculations with millis.

It would have been better if you had stored the data on the SD card as binary data (actual unsigned long and floats) instead of ASCII, that avoids the need to parse the data, and allows you to index into the file if you want a specific record.

The SD card is read into a 512 byte buffer, there will always be a slight delay when that buffer needs to be refilled.

Looks like you are converting the floats to a number from 0 - 180 for the servo position - why not do that conversion when you read the data, then Record can store the data as byte instead of float, giving you the ability to store a much larger buffer of data. Also, if you never use certain data there is no need to store it at all - you never appear to use Record.lux or Record.AngZ, although that may be because you did not include it in the test code).

It looks like you are falling behind on your playback. The first two records below were read 80 milliseconds apart but the motion was supposed to be done in 50 milliseconds. After a few such, you will fall further and further behind.

I recommend you reduce the amount of text logging by not labeling each line and using one line per report:

  Serial.print((millis()-starttime));
  Serial.print(',');
  Serial.print(Record.timempu);
  Serial.print(',');
  Serial.println((Record.timempu)-(millis()-starttime));

if the file can be modified, you should go for a binary format (writing a struct of known size for each record).

That lets you read any record at any position pretty easily (record N is at file seek N x recorSize, starting with first record at index 0) and save a lot of conversion time.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.