From 84ebc16976149560c2c8c44ee71de382ea3ba3c8 Mon Sep 17 00:00:00 2001
From: Davide Basso <davide.basso@skywarder.eu>
Date: Wed, 14 May 2025 16:49:03 +0200
Subject: [PATCH] [Parafoil] Avoid extra DPL_FLARE_START event

---
 .../StateMachines/WingController/WingController.cpp  | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/Parafoil/StateMachines/WingController/WingController.cpp b/src/Parafoil/StateMachines/WingController/WingController.cpp
index 0930dcc74..61ec4b6ad 100644
--- a/src/Parafoil/StateMachines/WingController/WingController.cpp
+++ b/src/Parafoil/StateMachines/WingController/WingController.cpp
@@ -175,11 +175,6 @@ State WingController::FlyingDeployment(const Boardcore::Event& event)
         }
         case DPL_FLARE_START:
         {
-            if (pumpCount == 0)
-            {
-                EventBroker::getInstance().post(DPL_DONE, TOPIC_DPL);
-                return HANDLED;
-            }
             pumpCount--;
 
             auto pump = Wing::Deployment::PUMPS.at(pumpCount);
@@ -194,6 +189,13 @@ State WingController::FlyingDeployment(const Boardcore::Event& event)
             auto pump = Wing::Deployment::PUMPS.at(pumpCount);
 
             resetWing();
+
+            if (pumpCount - 1 == 0)
+            {
+                EventBroker::getInstance().post(DPL_DONE, TOPIC_DPL);
+                return HANDLED;
+            }
+
             flareTimeoutEventId = EventBroker::getInstance().postDelayed(
                 DPL_FLARE_START, TOPIC_DPL,
                 Millisecond{pump.resetTime}.value());
-- 
GitLab