From f8a4f79481376a7795cd8e9b3084bf20ff1904ee Mon Sep 17 00:00:00 2001 From: Anthony Smykalov Date: Tue, 26 Sep 2023 20:02:03 -0500 Subject: [PATCH 1/3] Should be everything to implement datalogging command --- TARS/src/mcu_main/dataLog.cpp | 2 +- TARS/src/mcu_main/main.cpp | 6 ++++-- TARS/src/mcu_main/telemetry.cpp | 10 +++++++++- TARS/src/mcu_main/telemetry.h | 3 ++- ground/src/feather/main.cpp | 6 +++++- 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/TARS/src/mcu_main/dataLog.cpp b/TARS/src/mcu_main/dataLog.cpp index 9f34941d..c6410c7f 100644 --- a/TARS/src/mcu_main/dataLog.cpp +++ b/TARS/src/mcu_main/dataLog.cpp @@ -25,7 +25,7 @@ DataLogBuffer dataLogger; // DataLogView::DataLogView(DataLogBuffer& buffer) : // lowGView(buffer.lowGFifo), highGView(buffer.highGFifo), gpsView(buffer.gpsFifo), -// kalmanView(buffer.kalmanFifo), rocketStateView(buffer.rocketStateFifo), barometerView(buffer.barometerFifo), +// kalmanView(buffer.kalmanFifo), rocketStateView(buffer.rocketStateFifo), barometerView(buffer.barometerFifo), Anthony Caroline Mara Kira Billy Vayun // flapView(buffer.flapFifo), voltageView(buffer.voltageFifo) // { } diff --git a/TARS/src/mcu_main/main.cpp b/TARS/src/mcu_main/main.cpp index 7cd21758..5b13ca1c 100644 --- a/TARS/src/mcu_main/main.cpp +++ b/TARS/src/mcu_main/main.cpp @@ -40,6 +40,7 @@ #include "mcu_main/sensors/sensors.h" #include "mcu_main/telemetry.h" + #define THREAD_DEBUG //#define SERVO_DEBUG @@ -208,8 +209,9 @@ static THD_FUNCTION(dataLogger_THD, arg) { #ifdef THREAD_DEBUG Serial.println("Data Logging thread entrance"); #endif - - sd_logger.update(); + if (datalog_is_running) { + sd_logger.update(); + } chThdSleepMilliseconds(6); } diff --git a/TARS/src/mcu_main/telemetry.cpp b/TARS/src/mcu_main/telemetry.cpp index 2fa4342d..acd74216 100644 --- a/TARS/src/mcu_main/telemetry.cpp +++ b/TARS/src/mcu_main/telemetry.cpp @@ -99,7 +99,7 @@ void Telemetry::handleCommand(const telemetry_command &cmd) { return; } last_command_id = (int16_t)cmd.cmd_id; - + /* * Write frequency to SD card to save * between runs @@ -120,6 +120,14 @@ void Telemetry::handleCommand(const telemetry_command &cmd) { } Serial.println("[DEBUG]: Got abort"); } + + if (cmd.command == START_LOGGING) { + datalog_is_running = true; + } + + if (cmd.command == STOP_LOGGING) { + datalog_is_running = false; + } } /** diff --git a/TARS/src/mcu_main/telemetry.h b/TARS/src/mcu_main/telemetry.h index 92d5b004..b761e41b 100644 --- a/TARS/src/mcu_main/telemetry.h +++ b/TARS/src/mcu_main/telemetry.h @@ -50,7 +50,7 @@ struct TelemetryPacket { }; // Commands transmitted from ground station to rocket -enum CommandType { SET_FREQ, SET_CALLSIGN, ABORT, TEST_FLAPS, EMPTY }; +enum CommandType { SET_FREQ, SET_CALLSIGN, ABORT, TEST_FLAPS, EMPTY, START_LOGGING, STOP_LOGGING }; struct telemetry_command { CommandType command; @@ -71,6 +71,7 @@ struct command_handler_struct { class Telemetry { public: bool abort = false; + bool datalog_is_running = false; Telemetry(); diff --git a/ground/src/feather/main.cpp b/ground/src/feather/main.cpp index 7adb870b..1c022be0 100644 --- a/ground/src/feather/main.cpp +++ b/ground/src/feather/main.cpp @@ -150,7 +150,7 @@ struct telemetry_data { int response_ID; }; -enum class CommandType { SET_FREQ, SET_CALLSIGN, ABORT, TEST_FLAP, EMPTY }; +enum class CommandType { SET_FREQ, SET_CALLSIGN, ABORT, TEST_FLAP, EMPTY, START_LOGGING, STOP_LOGGING }; // Commands transmitted from ground station to rocket struct telemetry_command { CommandType command; @@ -502,6 +502,10 @@ void SerialInput(const char* key, const char* value) { return; } else if (strcmp(key, "FLAP") == 0) { command.command = CommandType::TEST_FLAP; + } else if (strcmp(key, "START_LOGGING") == 0) { + //command.command = CommandType::START_LOGGING; + } else if (strcmp(key, "STOP_LOGGING") == 0) { + //command.command = CommandType::STOP_LOGGING; } else { SerialError(); return; From 780f2cdd759e3e44140c68971a4c1c9d1c6b2edc Mon Sep 17 00:00:00 2001 From: Anthony Smykalov Date: Tue, 26 Sep 2023 23:18:43 -0500 Subject: [PATCH 2/3] . --- TARS/src/mcu_main/dataLog.cpp | 2 +- TARS/src/mcu_main/telemetry.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/TARS/src/mcu_main/dataLog.cpp b/TARS/src/mcu_main/dataLog.cpp index c6410c7f..9f34941d 100644 --- a/TARS/src/mcu_main/dataLog.cpp +++ b/TARS/src/mcu_main/dataLog.cpp @@ -25,7 +25,7 @@ DataLogBuffer dataLogger; // DataLogView::DataLogView(DataLogBuffer& buffer) : // lowGView(buffer.lowGFifo), highGView(buffer.highGFifo), gpsView(buffer.gpsFifo), -// kalmanView(buffer.kalmanFifo), rocketStateView(buffer.rocketStateFifo), barometerView(buffer.barometerFifo), Anthony Caroline Mara Kira Billy Vayun +// kalmanView(buffer.kalmanFifo), rocketStateView(buffer.rocketStateFifo), barometerView(buffer.barometerFifo), // flapView(buffer.flapFifo), voltageView(buffer.voltageFifo) // { } diff --git a/TARS/src/mcu_main/telemetry.h b/TARS/src/mcu_main/telemetry.h index b761e41b..c37ed537 100644 --- a/TARS/src/mcu_main/telemetry.h +++ b/TARS/src/mcu_main/telemetry.h @@ -72,6 +72,7 @@ class Telemetry { public: bool abort = false; bool datalog_is_running = false; + Telemetry(); From 46b2109b36056aa401ffb42cc955821416d4f7db Mon Sep 17 00:00:00 2001 From: Anthony Smykalov Date: Tue, 26 Sep 2023 23:21:15 -0500 Subject: [PATCH 3/3] final minor changes --- ground/src/feather/main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ground/src/feather/main.cpp b/ground/src/feather/main.cpp index 1c022be0..b44423f6 100644 --- a/ground/src/feather/main.cpp +++ b/ground/src/feather/main.cpp @@ -503,9 +503,9 @@ void SerialInput(const char* key, const char* value) { } else if (strcmp(key, "FLAP") == 0) { command.command = CommandType::TEST_FLAP; } else if (strcmp(key, "START_LOGGING") == 0) { - //command.command = CommandType::START_LOGGING; + command.command = CommandType::START_LOGGING; } else if (strcmp(key, "STOP_LOGGING") == 0) { - //command.command = CommandType::STOP_LOGGING; + command.command = CommandType::STOP_LOGGING; } else { SerialError(); return;