From b2a10f525c60074fbdf440670aac8fe8b18ca48a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Caruso?= <niccolo.caruso@skywarder.eu> Date: Fri, 17 Jan 2025 16:42:12 +0100 Subject: [PATCH] [ARP] SMA calibrate movements, Hub mutex for having NAS, Cmake removed test-actuators Calibrate state now can have movements by the setStepperAngle commands, not only the tests. --- CMakeLists.txt | 7 ------- src/Groundstation/Automated/Hub.cpp | 7 ++++++- src/Groundstation/Automated/SMA/SMA.cpp | 6 ++++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1902a11e2..f624ae63a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -98,13 +98,6 @@ add_executable(nokia-groundstation-entry target_include_directories(nokia-groundstation-entry PRIVATE ${OBSW_INCLUDE_DIRS}) sbs_target(nokia-groundstation-entry stm32f429zi_nokia) -add_executable(test-actuators - src/Groundstation/Automated/test-actuators.cpp - ${LYRA_GS} ${GROUNDSTATION_COMMON} -) -target_include_directories(test-actuators PRIVATE ${OBSW_INCLUDE_DIRS}) -sbs_target(test-actuators stm32f767zi_lyra_gs) - add_executable(lyra-gs-entry src/Groundstation/LyraGS/lyra-gs-entry.cpp ${LYRA_GS} ${GROUNDSTATION_COMMON} diff --git a/src/Groundstation/Automated/Hub.cpp b/src/Groundstation/Automated/Hub.cpp index c1917662e..523568364 100644 --- a/src/Groundstation/Automated/Hub.cpp +++ b/src/Groundstation/Automated/Hub.cpp @@ -357,7 +357,11 @@ bool Hub::getLastRocketNasState(Boardcore::NASState& nasState) return rocketNasSet; } -bool Hub::hasNewNasState() { return hasNewNasSet; } +bool Hub::hasNewNasState() +{ + Lock<FastMutex> lock(nasStateMutex); + return hasNewNasSet; +} void Hub::setRocketNasState(const NASState& newRocketNasState) { @@ -371,4 +375,5 @@ void Hub::setRocketOrigin(const GPSData& newRocketCoordinates) { Lock<FastMutex> lock(coordinatesMutex); lastRocketCoordinates = newRocketCoordinates; + originReceived = true; } diff --git a/src/Groundstation/Automated/SMA/SMA.cpp b/src/Groundstation/Automated/SMA/SMA.cpp index cbf1c5461..3470e27db 100644 --- a/src/Groundstation/Automated/SMA/SMA.cpp +++ b/src/Groundstation/Automated/SMA/SMA.cpp @@ -94,7 +94,8 @@ void SMA::setRocketNASOrigin(const Boardcore::GPSData& rocketCoordinates) ActuationStatus SMA::moveStepperDeg(StepperList stepperId, float angle) { - if (!testState(&SMA::state_test) && !testState(&SMA::state_test_nf)) + if (!testState(&SMA::state_test) && !testState(&SMA::state_test_nf) && + !testState(&SMA::state_calibrate)) { LOG_ERR(logger, "Stepper can only be manually moved in the TEST state"); return ActuationStatus::NOT_TEST; @@ -199,6 +200,7 @@ void SMA::update() } break; } + // TODO: See if semantically what we want // in fix_rocket state, wait for the GPS fix of the rocket case SMAState::FIX_ROCKET: case SMAState::FIX_ROCKET_NF: @@ -223,8 +225,8 @@ void SMA::update() // retrieve the last NAS Rocket state NASState nasState; + // In case there is a new NAS packet if (hub->hasNewNasState() && hub->getLastRocketNasState(nasState)) - // update the propagator with the NAS state // and retrieve the propagated state propagator.setRocketNasState(nasState); -- GitLab