From 7815d89dbfef983919d1a9133eb4938b52ac3744 Mon Sep 17 00:00:00 2001 From: Bascy Date: Wed, 19 May 2021 22:27:32 -0600 Subject: [PATCH] Call onSubscribe() after adding connection to subscribedVector This allows for sending BLE messages in the onSubscribe() handler --- src/NimBLECharacteristic.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/NimBLECharacteristic.cpp b/src/NimBLECharacteristic.cpp index 992e3e5..9e31255 100644 --- a/src/NimBLECharacteristic.cpp +++ b/src/NimBLECharacteristic.cpp @@ -307,7 +307,6 @@ void NimBLECharacteristic::setSubscribe(struct ble_gap_event *event) { NimBLEDevice::getServer()->clearIndicateWait(event->subscribe.conn_handle); } - m_pCallbacks->onSubscribe(this, &desc, subVal); auto it = m_subscribedVec.begin(); for(;it != m_subscribedVec.end(); ++it) { @@ -319,14 +318,14 @@ void NimBLECharacteristic::setSubscribe(struct ble_gap_event *event) { if(subVal > 0) { if(it == m_subscribedVec.end()) { m_subscribedVec.push_back({event->subscribe.conn_handle, subVal}); - return; + } else { + (*it).second = subVal; } - - (*it).second = subVal; - } else if(it != m_subscribedVec.end()) { m_subscribedVec.erase(it); } + + m_pCallbacks->onSubscribe(this, &desc, subVal); }