From bd0ce824a4932bdb84907e69124db1ebc55221b9 Mon Sep 17 00:00:00 2001 From: Davide Basso <davide.basso@skywarder.eu> Date: Sat, 10 May 2025 12:57:51 +0200 Subject: [PATCH] [MockupMain] Working loadcell --- src/MockupMain/BoardScheduler.h | 4 ++-- src/MockupMain/Configs/SensorsConfig.h | 12 ++++++------ src/MockupMain/Sensors/Sensors.cpp | 10 ++++++++++ src/MockupMain/mockup-entry.cpp | 2 +- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/MockupMain/BoardScheduler.h b/src/MockupMain/BoardScheduler.h index 1769434b2..f347ce413 100644 --- a/src/MockupMain/BoardScheduler.h +++ b/src/MockupMain/BoardScheduler.h @@ -52,10 +52,10 @@ public: }; }; - Boardcore::TaskScheduler& nasController() { return critical; } Boardcore::TaskScheduler& sensors() { return high; } Boardcore::TaskScheduler& pinHandler() { return high; } Boardcore::TaskScheduler& radio() { return medium; } + Boardcore::TaskScheduler& nasController() { return low; } static Priority::PriorityLevel flightModeManagerPriority() { @@ -64,7 +64,7 @@ public: static Priority::PriorityLevel nasControllerPriority() { - return Priority::MEDIUM; + return Priority::LOW; } /** diff --git a/src/MockupMain/Configs/SensorsConfig.h b/src/MockupMain/Configs/SensorsConfig.h index 132f19f80..01da8ae15 100644 --- a/src/MockupMain/Configs/SensorsConfig.h +++ b/src/MockupMain/Configs/SensorsConfig.h @@ -55,7 +55,7 @@ constexpr auto ACC_GYRO_ODR = Boardcore::BMX160Config::OutputDataRate::HZ_100; constexpr auto MAG_ODR = Boardcore::BMX160Config::OutputDataRate::HZ_100; static const Boardcore::AxisOrthoOrientation AXIS_ORIENTATION = { - Boardcore::Direction::POSITIVE_Z, Boardcore::Direction::POSITIVE_Y}; + Boardcore::Direction::NEGATIVE_Z, Boardcore::Direction::POSITIVE_Y}; constexpr auto TEMP_DIVIDER = 0; constexpr auto FIFO_WATERMARK = 40; @@ -69,7 +69,7 @@ constexpr auto MAG_DATA_SIZE = 8; namespace H3LIS331DL { constexpr auto ENABLED = true; -constexpr auto SAMPLING_RATE = 800_hz; +constexpr auto SAMPLING_RATE = 400_hz; constexpr auto ODR = Boardcore::H3LIS331DLDefs::OutputDataRate::ODR_1000; constexpr auto BDU = Boardcore::H3LIS331DLDefs::BlockDataUpdate::BDU_CONTINUOS_UPDATE; @@ -87,7 +87,7 @@ constexpr auto ODR = Boardcore::LPS22DF::ODR_50; namespace UBXGPS { constexpr auto ENABLED = true; -constexpr auto SAMPLING_RATE = 10_hz; +constexpr auto SAMPLING_RATE = 6_hz; } // namespace UBXGPS namespace ADS131M08 @@ -103,14 +103,14 @@ namespace LIS3MDL { constexpr auto ENABLED = true; constexpr auto SAMPLING_RATE = 100_hz; -constexpr auto ODR = Boardcore::LIS3MDL::ODR_155_HZ; +constexpr auto ODR = Boardcore::LIS3MDL::ODR_10_HZ; constexpr auto FSR = Boardcore::LIS3MDL::FS_4_GAUSS; } // namespace LIS3MDL namespace InternalADC { constexpr auto ENABLED = true; -constexpr auto SAMPLING_RATE = 100_hz; +constexpr auto SAMPLING_RATE = 1_hz; constexpr auto VBAT_CH = Boardcore::InternalADC::Channel::CH5; constexpr auto VBAT_COEFF = (150 + 40.2) / 40.2; } // namespace InternalADC @@ -118,7 +118,7 @@ constexpr auto VBAT_COEFF = (150 + 40.2) / 40.2; namespace LoadCell { constexpr auto ENABLED = true; -constexpr auto SAMPLING_RATE = InternalADC::SAMPLING_RATE; +constexpr auto SAMPLING_RATE = ADS131M08::SAMPLING_RATE; constexpr auto ADC_CHANNEL = Boardcore::ADS131M08Defs::Channel::CHANNEL_0; namespace Calibration diff --git a/src/MockupMain/Sensors/Sensors.cpp b/src/MockupMain/Sensors/Sensors.cpp index fad15ae3c..0cdf2738c 100644 --- a/src/MockupMain/Sensors/Sensors.cpp +++ b/src/MockupMain/Sensors/Sensors.cpp @@ -62,6 +62,9 @@ bool Sensors::start() if (config::InternalADC::ENABLED) internalADCInit(); + if (config::LoadCell::ENABLED) + loadCellInit(); + if (!postSensorCreationHook()) { LOG_ERR(logger, "Sensors post-creation hook failed"); @@ -527,6 +530,13 @@ bool Sensors::sensorManagerInit() map.emplace(internalAdc.get(), info); } + if (loadCell) + { + SensorInfo info{"LoadCell", config::LoadCell::SAMPLING_RATE, + [this]() { loadCellCallback(); }}; + map.emplace(loadCell.get(), info); + } + auto& scheduler = getModule<BoardScheduler>()->sensors(); manager = std::make_unique<SensorManager>(map, &scheduler); return manager->start(); diff --git a/src/MockupMain/mockup-entry.cpp b/src/MockupMain/mockup-entry.cpp index 0ea06da34..76e3480c4 100644 --- a/src/MockupMain/mockup-entry.cpp +++ b/src/MockupMain/mockup-entry.cpp @@ -134,7 +134,7 @@ int main() START_MODULE(pinHandler); START_MODULE(radio); - START_MODULE(nasController); + // START_MODULE(nasController); START_MODULE(flightModeManager); START_MODULE(scheduler); -- GitLab