diff --git a/Software/src/datalayer/datalayer.h b/Software/src/datalayer/datalayer.h index d730b257..82215092 100644 --- a/Software/src/datalayer/datalayer.h +++ b/Software/src/datalayer/datalayer.h @@ -222,6 +222,8 @@ typedef struct { bool can_logging_active = false; /** uint8_t, enumeration which CAN interface should be used for log playback */ uint8_t can_replay_interface = CAN_NATIVE; + /** bool, determines if CAN replay should loop or not */ + bool loop_playback = false; } DATALAYER_SYSTEM_INFO_TYPE; diff --git a/Software/src/devboard/webserver/can_replay_html.cpp b/Software/src/devboard/webserver/can_replay_html.cpp index ac4cc9e4..4a84cce0 100644 --- a/Software/src/devboard/webserver/can_replay_html.cpp +++ b/Software/src/devboard/webserver/can_replay_html.cpp @@ -22,7 +22,7 @@ String can_replay_processor(void) { ".can-message { background-color: #404E57; margin-bottom: 5px; padding: 10px; border-radius: 5px; font-family: " "monospace; }"; content += ""; - content += ""; + content += ""; // Start a new block for the CAN messages content += "
"; @@ -63,11 +63,14 @@ String can_replay_processor(void) { content += "

Step 3: Playback control

"; + //Checkbox to see if the user wants the log to repeat once it reaches the end + content += " Loop "; + // Add a button to start playing the log content += " "; // Add a button to stop playing the log - content += " "; + content += " "; content += "

Uploaded Log Preview:

"; content += "
";
@@ -113,9 +116,17 @@ String can_replay_processor(void) {
   // Add JavaScript for navigation
   content += "