From b576d234be5615d2b27cdd298d153b5a27ebb463 Mon Sep 17 00:00:00 2001
From: nrs1g15 <nrs1g15@soton.ac.uk>
Date: Sun, 21 Jul 2019 21:34:40 +0100
Subject: [PATCH] Managed to get it stable at 6400Kbytes per second which is
 enough for 16 ecu sensors at once

---
 sufst-openlogger/.idea/workspace.xml          |  83 ++++----
 sufst-openlogger/openLogger.cpp               |  10 +-
 .../.idea/workspace.xml                       | 180 +++++++++---------
 sufst-openlogger_controller/buffer.cpp        |   6 +-
 .../openLoggerController.cpp                  |  43 +----
 .../openLoggerController.h                    |   2 +-
 .../sufst-openlogger_controller.ino           |   8 +
 7 files changed, 164 insertions(+), 168 deletions(-)

diff --git a/sufst-openlogger/.idea/workspace.xml b/sufst-openlogger/.idea/workspace.xml
index c227766..0b1d514 100644
--- a/sufst-openlogger/.idea/workspace.xml
+++ b/sufst-openlogger/.idea/workspace.xml
@@ -10,7 +10,12 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="81322c4e-6adb-4223-9d00-22249012da89" name="Default Changelist" comment="">
+      <change beforePath="$PROJECT_DIR$/openLogger.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/openLogger.cpp" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../sufst-openlogger_controller/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../sufst-openlogger_controller/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../sufst-openlogger_controller/buffer.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/../sufst-openlogger_controller/buffer.cpp" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../sufst-openlogger_controller/openLoggerController.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/../sufst-openlogger_controller/openLoggerController.cpp" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../sufst-openlogger_controller/openLoggerController.h" beforeDir="false" afterPath="$PROJECT_DIR$/../sufst-openlogger_controller/openLoggerController.h" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../sufst-openlogger_controller/sufst-openlogger_controller.ino" beforeDir="false" afterPath="$PROJECT_DIR$/../sufst-openlogger_controller/sufst-openlogger_controller.ino" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -26,47 +31,50 @@
   </component>
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file pinned="false" current-in-tab="false">
+      <file pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/sufst-openlogger.ino">
           <provider selected="true" editor-type-id="text-editor">
             <state relative-caret-position="357">
-              <caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" />
+              <caret line="21" selection-start-line="21" selection-end-line="21" />
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/openLogger.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="467">
-              <caret line="210" column="26" lean-forward="true" selection-start-line="210" selection-start-column="26" selection-end-line="210" selection-end-column="26" />
+            <state relative-caret-position="764">
+              <caret line="204" column="5" selection-start-line="204" selection-start-column="5" selection-end-line="204" selection-end-column="5" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/buffer.cpp">
+        <entry file="file://$PROJECT_DIR$/openLogger.h">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-321">
-              <caret line="15" column="5" lean-forward="true" selection-start-line="15" selection-start-column="5" selection-end-line="15" selection-end-column="5" />
+            <state relative-caret-position="374">
+              <caret line="22" column="35" selection-start-line="22" selection-start-column="8" selection-end-line="22" selection-end-column="35" />
+              <folding>
+                <element signature="e#188#230#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/buffer.h">
+        <entry file="file://$PROJECT_DIR$/buffer.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="102">
-              <caret line="6" lean-forward="true" selection-start-line="6" selection-end-line="6" />
+            <state relative-caret-position="663">
+              <caret line="83" column="25" lean-forward="true" selection-start-line="83" selection-start-column="25" selection-end-line="83" selection-end-column="25" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/openLogger.h">
+        <entry file="file://$PROJECT_DIR$/buffer.h">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="391">
-              <caret line="23" column="40" selection-start-line="23" selection-start-column="40" selection-end-line="23" selection-end-column="40" />
+            <state relative-caret-position="527">
+              <caret line="31" column="5" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
             </state>
           </provider>
         </entry>
@@ -124,16 +132,16 @@
         <option value="$PROJECT_DIR$/circularBuffer.cpp" />
         <option value="$PROJECT_DIR$/sufst-openlogger.ino" />
         <option value="$PROJECT_DIR$/buffer.h" />
-        <option value="$PROJECT_DIR$/openLogger.cpp" />
         <option value="$PROJECT_DIR$/buffer.cpp" />
         <option value="$PROJECT_DIR$/openLogger.h" />
+        <option value="$PROJECT_DIR$/openLogger.cpp" />
       </list>
     </option>
   </component>
   <component name="OCFindUsagesOptions" text="true" ivars="false" properties="true" derivedClasses="false" />
   <component name="ProjectFrameBounds">
-    <option name="x" value="990" />
-    <option name="width" value="2861" />
+    <option name="x" value="1417" />
+    <option name="width" value="2432" />
     <option name="height" value="2111" />
   </component>
   <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
@@ -203,14 +211,14 @@
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="74201000" />
+    <option name="totallyTimeSpent" value="75188000" />
   </component>
   <component name="ToolWindowManager">
-    <frame x="378" y="0" width="2188" height="1408" extended-state="0" />
+    <frame x="945" y="0" width="1621" height="1407" extended-state="0" />
     <editor active="true" />
     <layout>
-      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.4976489" visible="true" weight="0.17528196" />
-      <window_info active="true" id="Structure" order="1" sideWeight="0.5023511" side_tool="true" visible="true" weight="0.17528196" />
+      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.4972549" visible="true" weight="0.2094811" />
+      <window_info active="true" id="Structure" order="1" sideWeight="0.5027451" side_tool="true" visible="true" weight="0.2094811" />
       <window_info id="Favorites" order="2" side_tool="true" weight="0.32916266" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" />
@@ -235,38 +243,41 @@
   <component name="editorHistoryManager">
     <entry file="file://$PROJECT_DIR$/circularBuffer.cpp" />
     <entry file="file://$PROJECT_DIR$/circularBuffer.h" />
-    <entry file="file://$PROJECT_DIR$/buffer.cpp">
+    <entry file="file://$PROJECT_DIR$/buffer.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-321">
-          <caret line="15" column="5" lean-forward="true" selection-start-line="15" selection-start-column="5" selection-end-line="15" selection-end-column="5" />
+        <state relative-caret-position="527">
+          <caret line="31" column="5" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/buffer.h">
+    <entry file="file://$PROJECT_DIR$/buffer.cpp">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="102">
-          <caret line="6" lean-forward="true" selection-start-line="6" selection-end-line="6" />
+        <state relative-caret-position="663">
+          <caret line="83" column="25" lean-forward="true" selection-start-line="83" selection-start-column="25" selection-end-line="83" selection-end-column="25" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/sufst-openlogger.ino">
+    <entry file="file://$PROJECT_DIR$/openLogger.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="357">
-          <caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" />
+        <state relative-caret-position="374">
+          <caret line="22" column="35" selection-start-line="22" selection-start-column="8" selection-end-line="22" selection-end-column="35" />
+          <folding>
+            <element signature="e#188#230#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/openLogger.h">
+    <entry file="file://$PROJECT_DIR$/openLogger.cpp">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="391">
-          <caret line="23" column="40" selection-start-line="23" selection-start-column="40" selection-end-line="23" selection-end-column="40" />
+        <state relative-caret-position="764">
+          <caret line="204" column="5" selection-start-line="204" selection-start-column="5" selection-end-line="204" selection-end-column="5" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/openLogger.cpp">
+    <entry file="file://$PROJECT_DIR$/sufst-openlogger.ino">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="467">
-          <caret line="210" column="26" lean-forward="true" selection-start-line="210" selection-start-column="26" selection-end-line="210" selection-end-column="26" />
+        <state relative-caret-position="357">
+          <caret line="21" selection-start-line="21" selection-end-line="21" />
         </state>
       </provider>
     </entry>
diff --git a/sufst-openlogger/openLogger.cpp b/sufst-openlogger/openLogger.cpp
index 7735c6e..0dcb9ee 100644
--- a/sufst-openlogger/openLogger.cpp
+++ b/sufst-openlogger/openLogger.cpp
@@ -195,10 +195,14 @@ void uartCheckingForLength()
     Serial.println((char) Serial.peek());
 #endif // DEBUG_OPENLOGGER
 
-    uartExpectedDataLength = Serial.read();
-
-    uartRxState = receivingData;
+    if (Serial.peek() <= OPENLOGGER_WRITE_BUFFER_LEN) {
+        uartExpectedDataLength = Serial.read();
 
+        uartRxState = receivingData;
+    }
+    else {
+        uartRxState = checkingForStart;
+    }
 }
 
 void uartReceivingData()
diff --git a/sufst-openlogger_controller/.idea/workspace.xml b/sufst-openlogger_controller/.idea/workspace.xml
index ecd01e9..b0bb38e 100644
--- a/sufst-openlogger_controller/.idea/workspace.xml
+++ b/sufst-openlogger_controller/.idea/workspace.xml
@@ -10,9 +10,11 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="e173ebdc-c119-4235-9653-364cc21b27a5" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/ecuOpenloggerTags.h" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/ecuCan.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/ecuCan.cpp" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../sufst-openlogger/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../sufst-openlogger/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../sufst-openlogger/openLogger.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/../sufst-openlogger/openLogger.cpp" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/buffer.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/buffer.cpp" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/openLoggerController.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/openLoggerController.cpp" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/openLoggerController.h" beforeDir="false" afterPath="$PROJECT_DIR$/openLoggerController.h" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/sufst-openlogger_controller.ino" beforeDir="false" afterPath="$PROJECT_DIR$/sufst-openlogger_controller.ino" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@@ -43,11 +45,11 @@
   </component>
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file pinned="false" current-in-tab="false">
+      <file pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/sufst-openlogger_controller.ino">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="767">
-              <caret line="62" column="40" selection-start-line="62" selection-start-column="40" selection-end-line="62" selection-end-column="40" />
+            <state relative-caret-position="714">
+              <caret line="68" column="34" lean-forward="true" selection-start-line="68" selection-start-column="34" selection-end-line="68" selection-end-column="34" />
               <folding>
                 <element signature="e#57#90#0" expanded="true" />
               </folding>
@@ -55,11 +57,11 @@
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/ecuCan.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="867">
-              <caret line="51" column="22" selection-start-line="51" selection-start-column="22" selection-end-line="51" selection-end-column="22" />
+            <state relative-caret-position="-2485">
+              <caret line="19" selection-start-line="19" selection-end-line="19" />
               <folding>
                 <element signature="e#39#58#0" expanded="true" />
                 <element signature="e#767#962#0" expanded="true" />
@@ -87,15 +89,6 @@
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/ecuOpenloggerTags.h">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="119">
-              <caret line="7" column="38" selection-start-line="7" selection-start-column="8" selection-end-line="7" selection-end-column="38" />
-            </state>
-          </provider>
-        </entry>
-      </file>
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/ecuCan.h">
           <provider selected="true" editor-type-id="text-editor">
@@ -108,8 +101,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/openLoggerController.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="32">
-              <caret line="40" column="13" lean-forward="true" selection-start-line="40" selection-start-column="13" selection-end-line="40" selection-end-column="13" />
+            <state relative-caret-position="346">
+              <caret line="171" column="60" lean-forward="true" selection-start-line="171" selection-start-column="60" selection-end-line="171" selection-end-column="60" />
               <folding>
                 <element signature="e#40#73#0" expanded="true" />
               </folding>
@@ -117,11 +110,20 @@
           </provider>
         </entry>
       </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/ecuOpenloggerTags.h">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="119">
+              <caret line="7" column="38" selection-start-line="7" selection-start-column="8" selection-end-line="7" selection-end-column="38" />
+            </state>
+          </provider>
+        </entry>
+      </file>
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/openLoggerController.h">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="221">
-              <caret line="13" column="76" selection-start-line="13" selection-start-column="76" selection-end-line="13" selection-end-column="76" />
+            <state relative-caret-position="272">
+              <caret line="16" column="37" selection-start-line="16" selection-start-column="37" selection-end-line="16" selection-end-column="37" />
             </state>
           </provider>
         </entry>
@@ -129,8 +131,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/buffer.h">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="85">
-              <caret line="5" column="16" selection-start-line="5" selection-start-column="16" selection-end-line="5" selection-end-column="16" />
+            <state relative-caret-position="255">
+              <caret line="15" column="22" lean-forward="true" selection-start-line="15" selection-start-column="22" selection-end-line="15" selection-end-column="22" />
             </state>
           </provider>
         </entry>
@@ -138,8 +140,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/buffer.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="350">
-              <caret line="99" column="1" lean-forward="true" selection-start-line="99" selection-start-column="1" selection-end-line="99" selection-end-column="1" />
+            <state relative-caret-position="30">
+              <caret line="80" column="82" lean-forward="true" selection-start-line="80" selection-start-column="82" selection-end-line="80" selection-end-column="82" />
             </state>
           </provider>
         </entry>
@@ -166,8 +168,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>openloggerCommandTxCirBuffer</find>
-      <find>begin</find>
       <find>Cir</find>
       <find>cir</find>
       <find>open</find>
@@ -181,7 +181,6 @@
       <find>head</find>
       <find>uartCurrentlyTransmitting</find>
       <find>Serial1</find>
-      <find>&amp;</find>
       <find>*(</find>
       <find>buffer</find>
       <find>peek</find>
@@ -195,6 +194,9 @@
       <find>Serial</find>
       <find>OPENLOGGER_TX_BUFFER_LEN</find>
       <find>startTag</find>
+      <find>&amp;</find>
+      <find>&amp;=</find>
+      <find>tx</find>
       <find>openloggerProcess</find>
     </findStrings>
     <replaceStrings>
@@ -213,15 +215,15 @@
         <option value="$PROJECT_DIR$/circularBuffer.cpp" />
         <option value="$PROJECT_DIR$/circularBuffer.h" />
         <option value="$PROJECT_DIR$/buffer.h" />
-        <option value="$PROJECT_DIR$/openLoggerController.h" />
         <option value="$PROJECT_DIR$/ecuCan.h" />
-        <option value="$PROJECT_DIR$/buffer.cpp" />
-        <option value="$PROJECT_DIR$/openLoggerController.cpp" />
         <option value="$PROJECT_DIR$/can.cpp" />
         <option value="$PROJECT_DIR$/can.h" />
         <option value="$PROJECT_DIR$/ecuOpenloggerTags.h" />
-        <option value="$PROJECT_DIR$/sufst-openlogger_controller.ino" />
         <option value="$PROJECT_DIR$/ecuCan.cpp" />
+        <option value="$PROJECT_DIR$/buffer.cpp" />
+        <option value="$PROJECT_DIR$/sufst-openlogger_controller.ino" />
+        <option value="$PROJECT_DIR$/openLoggerController.cpp" />
+        <option value="$PROJECT_DIR$/openLoggerController.h" />
       </list>
     </option>
   </component>
@@ -298,14 +300,14 @@
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="90843000" />
+    <option name="totallyTimeSpent" value="93438000" />
   </component>
   <component name="ToolWindowManager">
-    <frame x="651" y="0" width="1915" height="1407" extended-state="0" />
+    <frame x="948" y="0" width="1619" height="1407" extended-state="0" />
     <editor active="true" />
     <layout>
-      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.4964706" visible="true" weight="0.21185984" />
-      <window_info active="true" id="Structure" order="1" sideWeight="0.5035294" side_tool="true" visible="true" weight="0.21185984" />
+      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.49490196" visible="true" weight="0.21167415" />
+      <window_info active="true" id="Structure" order="1" sideWeight="0.50509804" side_tool="true" visible="true" weight="0.21167415" />
       <window_info id="Favorites" order="2" side_tool="true" weight="0.3298872" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" />
@@ -336,27 +338,6 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/circularBuffer.cpp" />
     <entry file="file://$PROJECT_DIR$/circularBuffer.h" />
-    <entry file="file://$PROJECT_DIR$/buffer.h">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="85">
-          <caret line="5" column="16" selection-start-line="5" selection-start-column="16" selection-end-line="5" selection-end-column="16" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/ecuCan.h">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="357">
-          <caret line="21" selection-start-line="21" selection-end-line="21" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/openLoggerController.h">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="221">
-          <caret line="13" column="76" selection-start-line="13" selection-start-column="76" selection-end-line="13" selection-end-column="76" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/can.cpp">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="306">
@@ -364,51 +345,31 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/buffer.cpp">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="350">
-          <caret line="99" column="1" lean-forward="true" selection-start-line="99" selection-start-column="1" selection-end-line="99" selection-end-column="1" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/openLoggerController.cpp">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="32">
-          <caret line="40" column="13" lean-forward="true" selection-start-line="40" selection-start-column="13" selection-end-line="40" selection-end-column="13" />
-          <folding>
-            <element signature="e#40#73#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/ecuOpenloggerTags.h">
+    <entry file="file://$PROJECT_DIR$/can.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="119">
-          <caret line="7" column="38" selection-start-line="7" selection-start-column="8" selection-end-line="7" selection-end-column="38" />
+        <state relative-caret-position="401">
+          <caret line="28" column="15" selection-start-line="28" selection-start-column="15" selection-end-line="28" selection-end-column="15" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/can.h">
+    <entry file="file://$PROJECT_DIR$/buffer.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="401">
-          <caret line="28" column="15" selection-start-line="28" selection-start-column="15" selection-end-line="28" selection-end-column="15" />
+        <state relative-caret-position="255">
+          <caret line="15" column="22" lean-forward="true" selection-start-line="15" selection-start-column="22" selection-end-line="15" selection-end-column="22" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/sufst-openlogger_controller.ino">
+    <entry file="file://$PROJECT_DIR$/ecuCan.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="767">
-          <caret line="62" column="40" selection-start-line="62" selection-start-column="40" selection-end-line="62" selection-end-column="40" />
-          <folding>
-            <element signature="e#57#90#0" expanded="true" />
-          </folding>
+        <state relative-caret-position="357">
+          <caret line="21" selection-start-line="21" selection-end-line="21" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/ecuCan.cpp">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="867">
-          <caret line="51" column="22" selection-start-line="51" selection-start-column="22" selection-end-line="51" selection-end-column="22" />
+        <state relative-caret-position="-2485">
+          <caret line="19" selection-start-line="19" selection-end-line="19" />
           <folding>
             <element signature="e#39#58#0" expanded="true" />
             <element signature="e#767#962#0" expanded="true" />
@@ -435,5 +396,46 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/ecuOpenloggerTags.h">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="119">
+          <caret line="7" column="38" selection-start-line="7" selection-start-column="8" selection-end-line="7" selection-end-column="38" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/buffer.cpp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="30">
+          <caret line="80" column="82" lean-forward="true" selection-start-line="80" selection-start-column="82" selection-end-line="80" selection-end-column="82" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/openLoggerController.cpp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="346">
+          <caret line="171" column="60" lean-forward="true" selection-start-line="171" selection-start-column="60" selection-end-line="171" selection-end-column="60" />
+          <folding>
+            <element signature="e#40#73#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/openLoggerController.h">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="272">
+          <caret line="16" column="37" selection-start-line="16" selection-start-column="37" selection-end-line="16" selection-end-column="37" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/sufst-openlogger_controller.ino">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="714">
+          <caret line="68" column="34" lean-forward="true" selection-start-line="68" selection-start-column="34" selection-end-line="68" selection-end-column="34" />
+          <folding>
+            <element signature="e#57#90#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>
\ No newline at end of file
diff --git a/sufst-openlogger_controller/buffer.cpp b/sufst-openlogger_controller/buffer.cpp
index 6092547..3a7ebe2 100644
--- a/sufst-openlogger_controller/buffer.cpp
+++ b/sufst-openlogger_controller/buffer.cpp
@@ -51,8 +51,6 @@ uint16_t cirBufferAvailableForWrite(cirBuffer_handle cirBuff)
 
 void cirBufferWrite(cirBuffer_handle cirBuff, void *unit)
 {
-
-
     memcpy(&(cirBuff->data[cirBuff->head * cirBuff->unitSize]), unit, cirBuff->unitSize);
 
     ++cirBuff->head &= (cirBuff->capacity - 1);
@@ -69,7 +67,7 @@ void cirBufferWriteBytes(cirBuffer_handle cirBuff, void *src, uint16_t len)
 
     uint16_t usedBytes = cirBufferAvailable(cirBuff);
 
-    if ((cirBuff->capacity - len) <= usedBytes) {
+    if ((usedBytes + len) <= cirBuff->capacity) {
         cirBuff->full = 1;
     }
 
@@ -80,7 +78,7 @@ void cirBufferWriteBytes(cirBuffer_handle cirBuff, void *src, uint16_t len)
     }
 
     if (cirBuff->full) {
-        cirBuff->tail = (cirBuff->tail + (len - usedBytes)) & (cirBuff->capacity + 1);
+        cirBuff->tail = (cirBuff->tail + (len - usedBytes)) & (cirBuff->capacity - 1);
     }
 }
 
diff --git a/sufst-openlogger_controller/openLoggerController.cpp b/sufst-openlogger_controller/openLoggerController.cpp
index cdd6539..29e3e08 100644
--- a/sufst-openlogger_controller/openLoggerController.cpp
+++ b/sufst-openlogger_controller/openLoggerController.cpp
@@ -168,48 +168,21 @@ void openloggerRunning()
 
     uint16_t uartTxDataAmount = cirBufferAvailable(&openloggerTxDataCirBuffer);
 
-    if (!uartCurrentlyTransmitting) {
-        if (uartTxDataAmount > 0) {
-            if ((uartCurrentMs - uartLastTransmissionMs) >= 20) {
-
-#if DEBUG_OPENLOGGER
-                Serial.print("OPLOG: START WRITE ");
-                Serial.println(uartTxDataAmount);
-#endif // DEBUG_OPENLOGGER
-
-                uartAmountToTransmit = uartTxDataAmount;
+    if (uartTxDataAmount >= 32) {
+        if ((uartCurrentMs - uartLastTransmissionMs) >= 5) {
+            if (Serial1.availableForWrite() >= 40) {
 
                 Serial1.write(uartStartByte);
                 Serial1.write(uartTypeData);
-                Serial1.write(uartAmountToTransmit);
+                Serial1.write(32);
                 Serial1.flush();
 
-                uartCurrentlyTransmitting = true;
-            }
-        }
-    }
-
-    if (uartCurrentlyTransmitting) {
+                cirBufferReadBytes(&openloggerTxDataCirBuffer, uartTxPayload, 32);
 
-        uint8_t uartAvailableForData = Serial1.availableForWrite();
+                Serial1.write(uartTxPayload, 32);
 
-#if DEBUG_OPENLOGGER
-        Serial.println("OPLOG: WRITING");
-#endif // DEBUG_OPENLOGGER
-
-        uint8_t uartBytesToTransmitThisProcess =
-            (uartAvailableForData >= uartAmountToTransmit) ? uartAmountToTransmit : uartAvailableForData;
-
-        cirBufferReadBytes(&openloggerTxDataCirBuffer, uartTxPayload, uartBytesToTransmitThisProcess);
-
-        Serial1.write(uartTxPayload, uartBytesToTransmitThisProcess);
-
-        uartAmountToTransmit -= uartBytesToTransmitThisProcess;
-
-        if (uartAmountToTransmit == 0) {
-            uartLastTransmissionMs = millis();
-
-            uartCurrentlyTransmitting = false;
+                uartLastTransmissionMs = millis();
+            }
         }
     }
 }
diff --git a/sufst-openlogger_controller/openLoggerController.h b/sufst-openlogger_controller/openLoggerController.h
index 99ade35..8fe858e 100644
--- a/sufst-openlogger_controller/openLoggerController.h
+++ b/sufst-openlogger_controller/openLoggerController.h
@@ -14,7 +14,7 @@
  *  Until then keep the buffer size at 64 to prevent transmission corruption
  */
 
-#define OPENLOGGER_TX_BUFFER_LEN 64
+#define OPENLOGGER_TX_BUFFER_LEN 2048
 #define OPENLOGGER_TX_COMMAND_BUFFER_LEN 8
 
 /*
diff --git a/sufst-openlogger_controller/sufst-openlogger_controller.ino b/sufst-openlogger_controller/sufst-openlogger_controller.ino
index 58c16c4..af9bf61 100644
--- a/sufst-openlogger_controller/sufst-openlogger_controller.ino
+++ b/sufst-openlogger_controller/sufst-openlogger_controller.ino
@@ -58,10 +58,18 @@ void loop()
 
         ecuCanMsg0x2000(&emulateCanMsg);
 
+        emulateCanMsg.id = 0x2001;
+
+        ecuCanMsg0x2001(&emulateCanMsg);
+
         emulateCanMsg.id = 0x2002;
 
         ecuCanMsg0x2002(&emulateCanMsg);
 
+        emulateCanMsg.id = 0x2003;
+
+        ecuCanMsg0x2003(&emulateCanMsg);
+
         lastSdWriteMs = millis();
     }
 
-- 
GitLab