From 2dd6182b103b0767ce3537f394b668d2e9e67a36 Mon Sep 17 00:00:00 2001 From: Davide Mor <davide.mor@skywarder.eu> Date: Sat, 5 Oct 2024 00:24:12 +0200 Subject: [PATCH] [Main][Payload] Added new event so that SET_CALIBRATION_TC doesn't trigger recalibration of all computers --- src/boards/Main/Radio/Radio.cpp | 6 ++++-- .../StateMachines/FlightModeManager/FlightModeManager.cpp | 4 ++++ src/boards/Payload/Radio/MessageHandler.cpp | 6 ++++-- .../StateMachines/FlightModeManager/FlightModeManager.cpp | 1 + src/boards/common/Events.h | 2 ++ 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/boards/Main/Radio/Radio.cpp b/src/boards/Main/Radio/Radio.cpp index fe8d4473e..7d58d8f5b 100644 --- a/src/boards/Main/Radio/Radio.cpp +++ b/src/boards/Main/Radio/Radio.cpp @@ -340,13 +340,15 @@ void Radio::handleMessage(const mavlink_message_t& msg) if (press == 0) { getModule<Sensors>()->resetBaroCalibrationReference(); - EventBroker::getInstance().post(TMTC_CALIBRATE, TOPIC_TMTC); + EventBroker::getInstance().post( + TMTC_SET_CALIBRATION_PRESSURE, TOPIC_TMTC); enqueueAck(msg); } else { getModule<Sensors>()->setBaroCalibrationReference(press); - EventBroker::getInstance().post(TMTC_CALIBRATE, TOPIC_TMTC); + EventBroker::getInstance().post( + TMTC_SET_CALIBRATION_PRESSURE, TOPIC_TMTC); if (press < 50000) { diff --git a/src/boards/Main/StateMachines/FlightModeManager/FlightModeManager.cpp b/src/boards/Main/StateMachines/FlightModeManager/FlightModeManager.cpp index 00101fad1..19289554d 100644 --- a/src/boards/Main/StateMachines/FlightModeManager/FlightModeManager.cpp +++ b/src/boards/Main/StateMachines/FlightModeManager/FlightModeManager.cpp @@ -368,6 +368,10 @@ State FlightModeManager::state_disarmed(const Event& event) getModule<CanHandler>()->sendEvent(CanConfig::EventId::CALIBRATE); return transition(&FlightModeManager::state_calibrate_sensors); } + case TMTC_SET_CALIBRATION_PRESSURE: + { + return transition(&FlightModeManager::state_calibrate_sensors); + } case TMTC_ENTER_TEST_MODE: { getModule<CanHandler>()->sendEvent( diff --git a/src/boards/Payload/Radio/MessageHandler.cpp b/src/boards/Payload/Radio/MessageHandler.cpp index 43166cfba..5d5e322f1 100644 --- a/src/boards/Payload/Radio/MessageHandler.cpp +++ b/src/boards/Payload/Radio/MessageHandler.cpp @@ -286,13 +286,15 @@ void Radio::MavlinkBackend::handleMessage(const mavlink_message_t& msg) if (press == 0) { parent.getModule<Sensors>()->resetBaroCalibrationReference(); - EventBroker::getInstance().post(TMTC_CALIBRATE, TOPIC_TMTC); + EventBroker::getInstance().post(TMTC_SET_CALIBRATION_PRESSURE, + TOPIC_TMTC); return enqueueAck(msg); } else { parent.getModule<Sensors>()->setBaroCalibrationReference(press); - EventBroker::getInstance().post(TMTC_CALIBRATE, TOPIC_TMTC); + EventBroker::getInstance().post(TMTC_SET_CALIBRATION_PRESSURE, + TOPIC_TMTC); if (press < 50000) { diff --git a/src/boards/Payload/StateMachines/FlightModeManager/FlightModeManager.cpp b/src/boards/Payload/StateMachines/FlightModeManager/FlightModeManager.cpp index 75e5bcad0..3a3d514cc 100644 --- a/src/boards/Payload/StateMachines/FlightModeManager/FlightModeManager.cpp +++ b/src/boards/Payload/StateMachines/FlightModeManager/FlightModeManager.cpp @@ -412,6 +412,7 @@ State FlightModeManager::OnGroundDisarmed(const Event& event) getModule<CanHandler>()->sendEvent(CanConfig::EventId::CALIBRATE); // Fallthrough } + case TMTC_SET_CALIBRATION_PRESSURE: case CAN_CALIBRATE: { return transition(&FlightModeManager::OnGroundSensorCalibration); diff --git a/src/boards/common/Events.h b/src/boards/common/Events.h index 080074f8b..fc524997e 100644 --- a/src/boards/common/Events.h +++ b/src/boards/common/Events.h @@ -114,6 +114,7 @@ enum Events : uint8_t TMTC_ARM, TMTC_DISARM, TMTC_CALIBRATE, + TMTC_SET_CALIBRATION_PRESSURE, TMTC_FORCE_INIT, TMTC_FORCE_LAUNCH, TMTC_FORCE_ENGINE_SHUTDOWN, @@ -248,6 +249,7 @@ inline std::string getEventString(uint8_t event) {TMTC_ARM, "TMTC_ARM"}, {TMTC_DISARM, "TMTC_DISARM"}, {TMTC_CALIBRATE, "TMTC_CALIBRATE"}, + {TMTC_SET_CALIBRATION_PRESSURE, "TMTC_SET_CALIBRATION_PRESSURE"}, {TMTC_FORCE_INIT, "TMTC_FORCE_INIT"}, {TMTC_FORCE_LAUNCH, "TMTC_FORCE_LAUNCH"}, {TMTC_FORCE_ENGINE_SHUTDOWN, "TMTC_FORCE_ENGINE_SHUTDOWN"}, -- GitLab