From b3e0b1beac023fe990ebb2a8ad7282ed42aed67f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niccol=C3=B2=20Betto?= <niccolo.betto@skywarder.eu> Date: Sat, 25 Jan 2025 12:40:38 +0100 Subject: [PATCH 1/3] [Boardcore] Update the boardcore submodule * Fix CMake CXX version to 14 * Make SensorFIFO thread safe (API change) * UBXGPSSpi: Removed 1ms thread sleep during sample * Various minor fixes to sensor drivers * Minor SBS fixes * New Console and Udp radio transceivers --- skyward-boardcore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skyward-boardcore b/skyward-boardcore index 93254875b..ef4e55b65 160000 --- a/skyward-boardcore +++ b/skyward-boardcore @@ -1 +1 @@ -Subproject commit 93254875ba79c70c4e1b4fb1b144a8b117337abf +Subproject commit ef4e55b6575914cc021c4eb36173db9339d3a7c8 -- GitLab From 5d977786858ee3468a7ac81603477d8635dc1725 Mon Sep 17 00:00:00 2001 From: Giovanni Annaloro <giovanni.annaloro@skywarder.eu> Date: Thu, 23 Jan 2025 22:48:03 +0100 Subject: [PATCH 2/3] [Sensors] LSM6DSRX log callback adapted to the thread safe SensorFIFO implementation --- src/Main/Sensors/Sensors.cpp | 6 ++++-- src/Motor/Sensors/Sensors.cpp | 7 +++++-- src/Payload/Sensors/Sensors.cpp | 10 +++++----- 3 files changed, 14 insertions(+), 9 deletions(-) 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 From c89d6f9c839f65f8dfa69d7ba4dce03f623be81f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niccol=C3=B2=20Betto?= <niccolo.betto@skywarder.eu> Date: Sat, 25 Jan 2025 13:27:46 +0100 Subject: [PATCH 3/3] [CMake] Fix sbs script include order The `sbs.cmake` script was included too early, which caused `enable_language()` to be called before the call to `project()`, which is illegal by CMake specification. --- CMakeLists.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e91c7441..2e28274d6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,8 +21,6 @@ cmake_minimum_required(VERSION 3.16) enable_testing() -include(skyward-boardcore/cmake/sbs.cmake) -include(cmake/dependencies.cmake) # -----------------------------------------------------------------------------# # Project # @@ -30,6 +28,9 @@ include(cmake/dependencies.cmake) project(OnBoardSoftware) +include(skyward-boardcore/cmake/sbs.cmake) +include(cmake/dependencies.cmake) + #-----------------------------------------------------------------------------# # Flight entrypoints # #-----------------------------------------------------------------------------# -- GitLab