diff --git a/epicardium/ble/ble_main.c b/epicardium/ble/ble_main.c index 7344683b6f2cda48d3ef80e7794bff63208d6a58..009db4b843e0628ae0e1a6474bcafd2746fb2fd9 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;