From 1f8fb66db8a6ce75751d079cab06b56122106e6e Mon Sep 17 00:00:00 2001 From: Angelo Prete <angelo.prete@skywarder.eu> Date: Fri, 22 Mar 2024 19:15:22 +0100 Subject: [PATCH] [Parafoil] Reintroduced control delay --- src/boards/Parafoil/Configs/FlightModeManagerConfig.h | 4 +++- .../StateMachines/FlightModeManager/FlightModeManager.cpp | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/boards/Parafoil/Configs/FlightModeManagerConfig.h b/src/boards/Parafoil/Configs/FlightModeManagerConfig.h index c7f1b9a56..bb1843eb7 100644 --- a/src/boards/Parafoil/Configs/FlightModeManagerConfig.h +++ b/src/boards/Parafoil/Configs/FlightModeManagerConfig.h @@ -1,5 +1,5 @@ /* Copyright (c) 2022 Skyward Experimental Rocketry - * Author: Federico Mandelli + * Author: Federico Mandelli, Angelo Prete * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -25,4 +25,6 @@ namespace Parafoil { constexpr unsigned int LOGGING_DELAY = 5 * 1000; // [ms] +constexpr unsigned int CONTROL_DELAY = 5 * 1000; // [ms] + } // namespace Parafoil diff --git a/src/boards/Parafoil/StateMachines/FlightModeManager/FlightModeManager.cpp b/src/boards/Parafoil/StateMachines/FlightModeManager/FlightModeManager.cpp index 31788a9a0..14ba646b8 100644 --- a/src/boards/Parafoil/StateMachines/FlightModeManager/FlightModeManager.cpp +++ b/src/boards/Parafoil/StateMachines/FlightModeManager/FlightModeManager.cpp @@ -346,16 +346,20 @@ State FlightModeManager::state_ready(const Event& event) State FlightModeManager::state_wing_descent(const Event& event) { + static uint16_t controlDelayId; + switch (event) { case EV_ENTRY: { logStatus(FlightModeManagerState::WING_DESCENT); - EventBroker::getInstance().post(FLIGHT_WING_DESCENT, TOPIC_FLIGHT); + controlDelayId = EventBroker::getInstance().postDelayed( + FLIGHT_WING_DESCENT, TOPIC_FLIGHT, CONTROL_DELAY); return HANDLED; } case EV_EXIT: { + EventBroker::getInstance().removeDelayed(controlDelayId); return HANDLED; } case EV_EMPTY: -- GitLab