Hi,
I'm writing some code that uses BLE to discover a couple of sensors. I've been able to initialise the BLE library, scan for a device and succesfully match the service UUID with the one I'm interested in. However once I want to do something with services characteristics my M5 crashes with the following error when I call
std::map<std::string, BLERemoteService*>* servicesMap = pClient->getServices();
for (auto &myServiceEntry : *servicesMap)
{
BLERemoteService* svc = myServiceEntry.second;
Serial.printf("Service found on Device: %s \n", svc->getUUID().toString().c_str());
if (svc->getUUID().toString() == myUUID)
{
Serial.println("Searching for characteruistics");
std::map<std::string, BLERemoteCharacteristic*>* characteristics = svc->getCharacteristics();
Serial.println("Finished search");
}
}
results in
Finished search
E (9180) FreeRTOS: FreeRTOS Task "loopTask" should not return, Aborting now!
Backtrace: 0x40091e8c:0x3ffcaac0 0x400920bd:0x3ffcaae0 0x4008ddef:0x3ffcab00
Rebooting...
Has anyone used the BLE libraries with the M5? My understanding is the BLE libraries are now part of the ESP32 libraries for arduino and I am currently using ESP21 1.0.2
Thanks