From d753fa71f9776b561f21fdee555355d41e2ac474 Mon Sep 17 00:00:00 2001 From: giovannaloro <giovanni.annaloro@skywarder.eu> Date: Thu, 23 Jan 2025 22:48:03 +0100 Subject: [PATCH] lm6dsrx loggers adapted to the thread safe SensorFIFO implementation loggings adapted to thread safe SensorFIFO implementation --- skyward-boardcore | 2 +- src/Main/Sensors/Sensors.cpp | 6 ++++-- src/Motor/Sensors/Sensors.cpp | 7 +++++-- src/Payload/Sensors/Sensors.cpp | 10 +++++----- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/skyward-boardcore b/skyward-boardcore index 93254875b..9eb183f43 160000 --- a/skyward-boardcore +++ b/skyward-boardcore @@ -1 +1 @@ -Subproject commit 93254875ba79c70c4e1b4fb1b144a8b117337abf +Subproject commit 9eb183f438306cb9e3e1c9d90c3ec5c095484239 diff --git a/src/Main/Sensors/Sensors.cpp b/src/Main/Sensors/Sensors.cpp index d8dd731aa..9a86955e5 100644 --- a/src/Main/Sensors/Sensors.cpp +++ b/src/Main/Sensors/Sensors.cpp @@ -625,8 +625,10 @@ void Sensors::lsm6dsrxCallback() return; // For every instance inside the fifo log the sample - for (uint16_t i = 0; i < lsm6dsrx->getLastFifoSize(); i++) - sdLogger.log(lsm6dsrx->getLastFifo().at(i)); + uint16_t lastFifoSize; + const auto lastFifo = lsm6dsrx->getLastFifo(lastFifoSize); + for (uint16_t i = 0; i < lastFifoSize; i++) + sdLogger.log(lastFifo.at(i)); } void Sensors::vn100Init() diff --git a/src/Motor/Sensors/Sensors.cpp b/src/Motor/Sensors/Sensors.cpp index 5d8ed74e4..c930178ca 100644 --- a/src/Motor/Sensors/Sensors.cpp +++ b/src/Motor/Sensors/Sensors.cpp @@ -259,9 +259,12 @@ void Sensors::lsm6dsrxCallback() if (!lsm6dsrx) return; + uint16_t lastFifoSize; + const auto lastFifo = lsm6dsrx->getLastFifo(lastFifoSize); + // For every instance inside the fifo log the sample - for (uint16_t i = 0; i < lsm6dsrx->getLastFifoSize(); i++) - sdLogger.log(lsm6dsrx->getLastFifo().at(i)); + for (uint16_t i = 0; i < lastFifoSize; i++) + sdLogger.log(lastFifo.at(i)); } void Sensors::ads131m08Init() diff --git a/src/Payload/Sensors/Sensors.cpp b/src/Payload/Sensors/Sensors.cpp index c763eaddb..0adc003da 100644 --- a/src/Payload/Sensors/Sensors.cpp +++ b/src/Payload/Sensors/Sensors.cpp @@ -541,13 +541,13 @@ void Sensors::lsm6dsrxCallback() return; // We can skip logging the last sample since we are logging the fifo - auto& logger = Logger::getInstance(); - auto& fifo = lsm6dsrx->getLastFifo(); - auto fifoSize = lsm6dsrx->getLastFifoSize(); + auto& logger = Logger::getInstance(); + uint16_t lastFifoSize; + const auto lastFifo = lsm6dsrx->getLastFifo(lastFifoSize); // For every instance inside the fifo log the sample - for (auto i = 0; i < fifoSize; i++) - logger.log(fifo.at(i)); + for (uint16_t i = 0; i < lastFifoSize; i++) + logger.log(lastFifo.at(i)); } void Sensors::ads131m08Init() -- GitLab