From 3d5789af0aa2b3a3527a8900daab4c6013a1967c Mon Sep 17 00:00:00 2001
From: schneider <schneider@blinkenlichts.net>
Date: Sat, 20 Jun 2020 01:47:55 +0200
Subject: [PATCH] fix(ble): Keep advertising in slected mode after connection
 closes

---
 epicardium/ble/ble_main.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/epicardium/ble/ble_main.c b/epicardium/ble/ble_main.c
index 7344683b6..009db4b84 100644
--- a/epicardium/ble/ble_main.c
+++ b/epicardium/ble/ble_main.c
@@ -600,7 +600,11 @@ static void bleProcMsg(bleMsg_t *pMsg)
       break;
 
     case DM_ADV_START_IND:
-      LOG_INFO("ble", "Advertisement started");
+      LOG_INFO("ble", "Advertisement started %u %u", advertising_mode, advertising_mode_target);
+      if(advertising_mode != advertising_mode_target) {
+        AppAdvStop();
+      }
+
       break;
 
     case DM_ADV_STOP_IND:
@@ -648,6 +652,12 @@ static void bleProcMsg(bleMsg_t *pMsg)
                    pMsg->dm.connClose.reason);
           break;
       }
+      /* Stack overwrites advertising mode after connection close.
+       * Force our desired mode.
+       */
+      advertising_mode = APP_MODE_NONE;
+      AppAdvStop();
+
       bleClose(pMsg);
       break;
 
-- 
GitLab