ESP32 connect to multiple BLE servers simultaneously - unexpected disconnects
Posted: Thu Sep 05, 2019 9:41 pm
Hi!
I'm trying to connect my ESP32 to two BLE servers simultaneously (two BLE beacons like iTag, Gigaset Keeper/G-Tag etc).
Everything works like expected, but if one device is losing the connection (remove it from transmit range or turn it off), the other device will also lose its connection!
Here is the simplified code im using.
I also added the log (verbose) and highlighted the important rows. In this test, i covered one device up so it lost its signal.
Did i miss something here?
Im quiet new to programming and maybe I'm just doing some stupid mistake?
Any help is appreciated! Thanks!
I'm trying to connect my ESP32 to two BLE servers simultaneously (two BLE beacons like iTag, Gigaset Keeper/G-Tag etc).
Everything works like expected, but if one device is losing the connection (remove it from transmit range or turn it off), the other device will also lose its connection!
Here is the simplified code im using.
I also added the log (verbose) and highlighted the important rows. In this test, i covered one device up so it lost its signal.
Did i miss something here?
Im quiet new to programming and maybe I'm just doing some stupid mistake?
Any help is appreciated! Thanks!
Code: Select all
#include "BLEDevice.h"
static BLEAddress deviceAddr1 = BLEAddress("7C:2F:80:C2:87:C1");
static BLEAddress deviceAddr2 = BLEAddress("FF:FF:3D:1A:C2:66");
static BLEAddress connAddr = BLEAddress("00:00:00:00:00:00");
static BLEScan* pBLEScan;
static unsigned long ms;
static unsigned long lastms = 0;
static unsigned long interval = 10000;
static boolean doConnect = false;
class MyClientCallback : public BLEClientCallbacks {
void onConnect(BLEClient* pClient) {
Serial.println("onConnect");
Serial.printf("device connected: %s\n", pClient->getPeerAddress().toString().c_str());
}
void onDisconnect(BLEClient* pClient) {
Serial.println("onDisconnect");
Serial.printf("device disconnected: %s\n", pClient->getPeerAddress().toString().c_str());
}
};
bool connectToServer() {
Serial.printf("forming a connection to device %s\n", connAddr.toString().c_str());
BLEClient* pClient = BLEDevice::createClient();
Serial.println("ble created client");
pClient->setClientCallbacks(new MyClientCallback());
if (pClient->connect(connAddr)) {
Serial.println("connected to ble server");
}
else {
Serial.println("unable to connect to ble server");
}
doConnect = false;
}
class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
void onResult(BLEAdvertisedDevice advertisedDevice) {
if (advertisedDevice.getAddress().equals(deviceAddr1) || advertisedDevice.getAddress().equals(deviceAddr2)) { // advertisedDevice.haveServiceUUID() && advertisedDevice.isAdvertisingService(serviceUUID)) {
Serial.printf("connect to %s \n", advertisedDevice.getAddress().toString().c_str());
Serial.printf("device: %s\n", advertisedDevice.toString().c_str());
pBLEScan->stop();
connAddr = advertisedDevice.getAddress();
doConnect = true;
}
}
};
void setup() {
Serial.begin(115200);
Serial.println("Starting Arduino BLE Client application...");
BLEDevice::init("");
pBLEScan = BLEDevice::getScan();
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setInterval(1349);
pBLEScan->setWindow(449);
pBLEScan->setActiveScan(true);
}
void loop() {
if (doConnect) {
connectToServer();
}
ms = millis();
if (ms >= lastms + interval) {
pBLEScan->start(5, false);
}
delay(1000);
}
23:06:33.630 -> ets Jun 8 2016 00:22:57
23:06:33.630 ->
23:06:33.630 -> rst:0x1 (POWERON_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)
23:06:33.630 -> configsip: 0, SPIWP:0xee
23:06:33.630 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
23:06:33.630 -> mode:DIO, clock div:1
23:06:33.630 -> load:0x3fff0018,len:4
23:06:33.630 -> load:0x3fff001c,len:1100
23:06:33.630 -> load:0x40078000,len:9232
23:06:33.630 -> load:0x40080400,len:6400
23:06:33.630 -> entry 0x400806a8
23:06:34.005 -> Starting Arduino BLE Client application...
23:06:44.739 -> [V][BLEScan.cpp:195] start(): >> start(duration=5)
23:06:44.739 -> [D][FreeRTOS.cpp:189] take(): Semaphore taking: name: ScanEnd (0x3ffdddd4), owner: <N/A> for start
23:06:44.739 -> [D][FreeRTOS.cpp:198] take(): Semaphore taken: name: ScanEnd (0x3ffdddd4), owner: start
23:06:44.739 -> [V][BLEScan.cpp:227] start(): << start()
23:06:44.739 -> [V][FreeRTOS.cpp:63] wait(): >> wait: Semaphore waiting: name: ScanEnd (0x3ffdddd4), owner: start for start
23:06:44.739 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 2 0x02
23:06:44.739 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:44.739 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:44.739 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 7 0x07
23:06:44.739 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:44.739 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:44.785 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:06:45.020 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:45.020 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:45.020 -> [D][BLEAdvertisedDevice.cpp:418] setRSSI(): - setRSSI(): rssi: -67
23:06:45.020 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0x1
23:06:45.020 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0x01 (), length: 1, data: 06
23:06:45.020 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0x3
23:06:45.020 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0x03 (), length: 8, data: 031802180418f5fe
23:06:45.020 -> [D][BLEAdvertisedDevice.cpp:447] setServiceUUID(): - addServiceUUID(): serviceUUID: 1803-0000-1000-8000-00805f9b34fb
23:06:45.020 -> [D][BLEAdvertisedDevice.cpp:447] setServiceUUID(): - addServiceUUID(): serviceUUID: 1802-0000-1000-8000-00805f9b34fb
23:06:45.020 -> [D][BLEAdvertisedDevice.cpp:447] setServiceUUID(): - addServiceUUID(): serviceUUID: 1804-0000-1000-8000-00805f9b34fb
23:06:45.020 -> [D][BLEAdvertisedDevice.cpp:447] setServiceUUID(): - addServiceUUID(): serviceUUID: fef5-0000-1000-8000-00805f9b34fb
23:06:45.020 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0x9
23:06:45.020 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0x09 (), length: 14, data: 47696761736574206b6565706572
23:06:45.020 -> [D][BLEAdvertisedDevice.cpp:407] setName(): - setName(): name: Gigaset keeper
23:06:45.020 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0xff
23:06:45.020 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0xff (), length: 11, data: 80010215010080c287c1c5
23:06:45.020 -> [D][BLEAdvertisedDevice.cpp:395] setManufacturerData(): - manufacturer data: 80010215010080c287c1c5
23:06:45.020 -> connect to 7c:2f:80:c2:87:c1
23:06:45.020 -> device: Name: Gigaset keeper, Address: 7c:2f:80:c2:87:c1, manufacturer data: 80010215010080c287c1c5, serviceUUID: 1803-0000-1000-8000-00805f9b34fb
23:06:45.020 -> [V][BLEScan.cpp:250] stop(): >> stop()
23:06:45.020 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: ScanEnd (0x3ffdddd4), owner: start
23:06:45.020 -> [V][BLEScan.cpp:262] stop(): << stop()
23:06:45.020 -> [V][FreeRTOS.cpp:77] wait(): << wait: Semaphore released: name: ScanEnd (0x3ffdddd4), owner: <N/A>
23:06:45.020 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:06:45.020 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:45.020 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:45.020 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:06:45.020 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:45.020 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:45.020 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 18 0x12
23:06:45.020 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:45.020 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:46.098 -> forming a connection to device 7c:2f:80:c2:87:c1
23:06:46.098 -> [V][BLEDevice.cpp:66] createClient(): >> createClient
23:06:46.098 -> [V][BLEDevice.cpp:72] createClient(): << createClient
23:06:46.098 -> [V][BLEClient.cpp:96] connect(): >> connect(7c:2f:80:c2:87:c1)
23:06:46.098 -> [BLEDevice.cpp:599] addPeerDevice(): add conn_id: 0, GATT role: client
23:06:46.098 -> [D][FreeRTOS.cpp:189] take(): Semaphore taking: name: RegEvt (0x3ffde6d0), owner: <N/A> for connect
23:06:46.098 -> [D][FreeRTOS.cpp:198] take(): Semaphore taken: name: RegEvt (0x3ffde6d0), owner: connect
23:06:46.098 -> [V][FreeRTOS.cpp:63] wait(): >> wait: Semaphore waiting: name: RegEvt (0x3ffde6d0), owner: connect for connect
23:06:46.098 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 0
23:06:46.098 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
23:06:46.098 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 0
23:06:46.098 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
23:06:46.098 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 0
23:06:46.098 -> [D][BLEClient.cpp:158] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
23:06:46.098 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: RegEvt (0x3ffde6d0), owner: connect
23:06:46.098 -> [V][FreeRTOS.cpp:77] wait(): << wait: Semaphore released: name: RegEvt (0x3ffde6d0), owner: <N/A>
23:06:46.098 -> [D][FreeRTOS.cpp:189] take(): Semaphore taking: name: OpenEvt (0x3ffddf48), owner: <N/A> for connect
23:06:46.098 -> [D][FreeRTOS.cpp:198] take(): Semaphore taken: name: OpenEvt (0x3ffddf48), owner: connect
23:06:46.098 -> [V][FreeRTOS.cpp:63] wait(): >> wait: Semaphore waiting: name: OpenEvt (0x3ffddf48), owner: connect for connect
23:06:49.145 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 40
23:06:49.145 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
23:06:49.145 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 40
23:06:49.145 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
23:06:49.145 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 40
23:06:49.145 -> [D][BLEClient.cpp:158] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
23:06:49.145 -> [D][BLEDevice.cpp:583] updatePeerDevice(): update conn_id: 4, GATT role: client
23:06:49.145 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 2
23:06:49.145 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
23:06:49.145 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 2
23:06:49.145 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
23:06:49.145 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 2
23:06:49.145 -> [D][BLEClient.cpp:158] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
23:06:49.145 -> device connected: 7c:2f:80:c2:87:c1
23:06:49.145 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: OpenEvt (0x3ffddf48), owner: connect
23:06:49.145 -> [V][FreeRTOS.cpp:77] wait(): << wait: Semaphore released: name: OpenEvt (0x3ffddf48), owner: <N/A>
23:06:49.145 -> [V][BLEClient.cpp:129] connect(): << connect(), rc=1
23:06:49.145 -> [V][BLEScan.cpp:195] start(): >> start(duration=5)
23:06:49.145 -> [D][FreeRTOS.cpp:189] take(): Semaphore taking: name: ScanEnd (0x3ffdddd4), owner: <N/A> for start
23:06:49.145 -> [D][FreeRTOS.cpp:198] take(): Semaphore taken: name: ScanEnd (0x3ffdddd4), owner: start
23:06:49.145 -> [V][BLEScan.cpp:227] start(): << start()
23:06:49.145 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 2 0x02
23:06:49.145 -> [V][FreeRTOS.cpp:63] wait(): >> wait: Semaphore waiting: name: ScanEnd (0x3ffdddd4), owner: start for start
23:06:49.145 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:49.145 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:49.145 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:06:49.145 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 7 0x07
23:06:49.145 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:49.145 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:49.145 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:06:49.145 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:06:49.145 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:49.145 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:49.145 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:06:49.145 -> [D][BLEAdvertisedDevice.cpp:418] setRSSI(): - setRSSI(): rssi: -75
23:06:49.145 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0x1
23:06:49.145 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0x01 (), length: 1, data: 05
23:06:49.145 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0xa
23:06:49.145 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0x0a (), length: 1, data: 00
23:06:49.145 -> [D][BLEAdvertisedDevice.cpp:478] setTXPower(): - txPower: 0
23:06:49.145 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0x19
23:06:49.145 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0x19 (), length: 2, data: c103
23:06:49.145 -> [D][BLEAdvertisedDevice.cpp:383] setAppearance(): - appearance: 961
23:06:49.145 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0x2
23:06:49.145 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0x02 (), length: 2, data: e0ff
23:06:49.145 -> [D][BLEAdvertisedDevice.cpp:447] setServiceUUID(): - addServiceUUID(): serviceUUID: ffe0-0000-1000-8000-00805f9b34fb
23:06:49.145 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0x9
23:06:49.145 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0x09 (), length: 16, data: 69544147202020202020202020202020
23:06:49.145 -> [D][BLEAdvertisedDevice.cpp:407] setName(): - setName(): name: iTAG
23:06:49.238 -> connect to ff:ff:3d:1a:c2:66
23:06:49.238 -> device: Name: iTAG , Address: ff:ff:3d:1a:c2:66, appearance: 961, serviceUUID: ffe0-0000-1000-8000-00805f9b34fb, txPower: 0
23:06:49.238 -> [V][BLEScan.cpp:250] stop(): >> stop()
23:06:49.238 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: ScanEnd (0x3ffdddd4), owner: start
23:06:49.238 -> [V][BLEScan.cpp:262] stop(): << stop()
23:06:49.238 -> [V][FreeRTOS.cpp:77] wait(): << wait: Semaphore released: name: ScanEnd (0x3ffdddd4), owner: <N/A>
23:06:49.238 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 18 0x12
23:06:49.238 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:49.238 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:49.238 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:06:50.129 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 18
23:06:50.410 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
23:06:50.410 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 18
23:06:50.410 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
23:06:50.410 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 18
23:06:50.410 -> [D][BLEClient.cpp:158] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
23:06:50.410 -> forming a connection to device ff:ff:3d:1a:c2:66
23:06:50.410 -> [V][BLEDevice.cpp:66] createClient(): >> createClient
23:06:50.410 -> [V][BLEDevice.cpp:72] createClient(): << createClient
23:06:50.410 -> [V][BLEClient.cpp:96] connect(): >> connect(ff:ff:3d:1a:c2:66)
23:06:50.410 -> [BLEDevice.cpp:599] addPeerDevice(): add conn_id: 1, GATT role: client
23:06:50.410 -> [D][FreeRTOS.cpp:189] take(): Semaphore taking: name: RegEvt (0x3ffdfc0c), owner: <N/A> for connect
23:06:50.410 -> [D][FreeRTOS.cpp:198] take(): Semaphore taken: name: RegEvt (0x3ffdfc0c), owner: connect
23:06:50.410 -> [V][FreeRTOS.cpp:63] wait(): >> wait: Semaphore waiting: name: RegEvt (0x3ffdfc0c), owner: connect for connect
23:06:50.410 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 0
23:06:50.410 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 5] ... Unknown
23:06:50.410 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 0
23:06:50.410 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
23:06:50.410 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 0
23:06:50.410 -> [D][BLEClient.cpp:158] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 5] ... Unknown
23:06:50.410 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: RegEvt (0x3ffdfc0c), owner: connect
23:06:50.410 -> [V][FreeRTOS.cpp:77] wait(): << wait: Semaphore released: name: RegEvt (0x3ffdfc0c), owner: <N/A>
23:06:50.410 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 40
23:06:50.410 -> [D][FreeRTOS.cpp:189] take(): Semaphore taking: name: OpenEvt (0x3ffdfc6c), owner: <N/A> for connect
23:06:50.410 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 5] ... Unknown
23:06:50.410 -> [D][FreeRTOS.cpp:198] take(): Semaphore taken: name: OpenEvt (0x3ffdfc6c), owner: connect
23:06:50.410 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 40
23:06:50.410 -> [V][FreeRTOS.cpp:63] wait(): >> wait: Semaphore waiting: name: OpenEvt (0x3ffdfc6c), owner: connect for connect
23:06:50.410 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
23:06:50.410 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 40
23:06:50.410 -> [D][BLEClient.cpp:158] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 5] ... Unknown
23:06:50.410 -> [D][BLEDevice.cpp:583] updatePeerDevice(): update conn_id: 5, GATT role: client
23:06:51.066 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 40
23:06:51.066 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
23:06:51.066 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 40
23:06:51.066 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
23:06:51.066 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 40
23:06:51.066 -> [D][BLEClient.cpp:158] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
23:06:51.066 -> [D][BLEDevice.cpp:583] updatePeerDevice(): update conn_id: 4, GATT role: client
23:06:51.066 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 40
23:06:51.066 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 5] ... Unknown
23:06:51.066 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 40
23:06:51.066 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
23:06:51.066 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 40
23:06:51.066 -> [D][BLEClient.cpp:158] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 5] ... Unknown
23:06:51.066 -> [D][BLEDevice.cpp:583] updatePeerDevice(): update conn_id: 5, GATT role: client
23:06:51.066 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 2
23:06:51.066 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 5] ... Unknown
23:06:51.066 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 2
23:06:51.066 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
23:06:51.066 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 2
23:06:51.066 -> [D][BLEClient.cpp:158] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 5] ... Unknown
23:06:51.066 -> device connected: ff:ff:3d:1a:c2:66
23:06:51.066 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: OpenEvt (0x3ffdfc6c), owner: connect
23:06:51.066 -> [V][FreeRTOS.cpp:77] wait(): << wait: Semaphore released: name: OpenEvt (0x3ffdfc6c), owner: <N/A>
23:06:51.066 -> [V][BLEClient.cpp:129] connect(): << connect(), rc=1
23:06:51.066 -> [V][BLEScan.cpp:195] start(): >> start(duration=5)
23:06:51.066 -> [D][FreeRTOS.cpp:189] take(): Semaphore taking: name: ScanEnd (0x3ffdddd4), owner: <N/A> for start
23:06:51.066 -> [D][FreeRTOS.cpp:198] take(): Semaphore taken: name: ScanEnd (0x3ffdddd4), owner: start
23:06:51.066 -> [V][BLEScan.cpp:227] start(): << start()
23:06:51.066 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 2 0x02
23:06:51.066 -> [V][FreeRTOS.cpp:63] wait(): >> wait: Semaphore waiting: name: ScanEnd (0x3ffdddd4), owner: start for start
23:06:51.066 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:51.066 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:51.066 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:06:51.066 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 7 0x07
23:06:51.066 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:51.066 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:51.066 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:06:51.207 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:06:51.207 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:51.207 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:51.207 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:06:51.207 -> [D][BLEAdvertisedDevice.cpp:418] setRSSI(): - setRSSI(): rssi: -88
23:06:51.207 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0x1
23:06:51.207 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0x01 (), length: 1, data: 1a
23:06:51.207 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0xff
23:06:51.207 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0xff (), length: 9, data: 4c0010050318c779cc
23:06:51.207 -> [D][BLEAdvertisedDevice.cpp:395] setManufacturerData(): - manufacturer data: 4c0010050318c779cc
23:06:51.348 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 18
23:06:51.348 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 5] ... Unknown
23:06:51.348 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 18
23:06:51.348 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
23:06:51.348 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 18
23:06:51.348 -> [D][BLEClient.cpp:158] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 5] ... Unknown
23:06:55.988 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:06:56.035 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:56.035 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:56.035 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:06:56.035 -> [W][BLEScan.cpp:69] handleGAPEvent(): ESP_GAP_SEARCH_INQ_CMPL_EVT
23:06:56.035 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: ScanEnd (0x3ffdddd4), owner: start
23:06:56.035 -> [V][FreeRTOS.cpp:77] wait(): << wait: Semaphore released: name: ScanEnd (0x3ffdddd4), owner: <N/A>
23:06:57.206 -> [V][BLEScan.cpp:195] start(): >> start(duration=5)
23:06:57.206 -> [D][FreeRTOS.cpp:189] take(): Semaphore taking: name: ScanEnd (0x3ffdddd4), owner: <N/A> for start
23:06:57.206 -> [D][FreeRTOS.cpp:198] take(): Semaphore taken: name: ScanEnd (0x3ffdddd4), owner: start
23:06:57.206 -> [V][BLEScan.cpp:227] start(): << start()
23:06:57.206 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 2 0x02
23:06:57.206 -> [V][FreeRTOS.cpp:63] wait(): >> wait: Semaphore waiting: name: ScanEnd (0x3ffdddd4), owner: start for start
23:06:57.206 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:57.206 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:57.206 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:06:57.206 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 7 0x07
23:06:57.206 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:57.206 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:57.206 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:06:57.206 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:06:57.206 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:57.206 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:57.206 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:06:57.206 -> [D][BLEAdvertisedDevice.cpp:418] setRSSI(): - setRSSI(): rssi: -85
23:06:57.206 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0x1
23:06:57.206 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0x01 (), length: 1, data: 1a
23:06:57.206 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0xff
23:06:57.206 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0xff (), length: 9, data: 4c0010050318c779cc
23:06:57.206 -> [D][BLEAdvertisedDevice.cpp:395] setManufacturerData(): - manufacturer data: 4c0010050318c779cc
23:06:58.519 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:06:58.519 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:06:58.519 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:06:58.519 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:06:58.519 -> [D][BLEScan.cpp:97] handleGAPEvent(): Ignoring 6e:b0:9a:e2:23:8d, already seen it.
23:07:01.003 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 20 0x14
23:07:01.003 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:07:01.003 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:07:01.003 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:07:01.191 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:07:01.191 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:07:01.191 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:07:01.191 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:07:01.191 -> [D][BLEScan.cpp:97] handleGAPEvent(): Ignoring 6e:b0:9a:e2:23:8d, already seen it.
23:07:02.081 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:07:02.081 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:07:02.081 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:07:02.081 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:07:02.081 -> [W][BLEScan.cpp:69] handleGAPEvent(): ESP_GAP_SEARCH_INQ_CMPL_EVT
23:07:02.081 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: ScanEnd (0x3ffdddd4), owner: start
23:07:02.081 -> [V][FreeRTOS.cpp:77] wait(): << wait: Semaphore released: name: ScanEnd (0x3ffdddd4), owner: <N/A>
23:07:03.159 -> [V][BLEScan.cpp:195] start(): >> start(duration=5)
23:07:03.159 -> [D][FreeRTOS.cpp:189] take(): Semaphore taking: name: ScanEnd (0x3ffdddd4), owner: <N/A> for start
23:07:03.159 -> [D][FreeRTOS.cpp:198] take(): Semaphore taken: name: ScanEnd (0x3ffdddd4), owner: start
23:07:03.159 -> [V][BLEScan.cpp:227] start(): << start()
23:07:03.159 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 2 0x02
23:07:03.159 -> [V][FreeRTOS.cpp:63] wait(): >> wait: Semaphore waiting: name: ScanEnd (0x3ffdddd4), owner: start for start
23:07:03.159 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:07:03.159 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:07:03.159 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:07:03.159 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 7 0x07
23:07:03.159 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:07:03.159 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:07:03.159 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:07:03.394 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:07:03.394 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:07:03.394 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:07:03.394 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:07:03.394 -> [D][BLEAdvertisedDevice.cpp:418] setRSSI(): - setRSSI(): rssi: -87
23:07:03.440 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0x1
23:07:03.440 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0x01 (), length: 1, data: 1a
23:07:03.440 -> [V][BLEUtils.cpp:746] advTypeToString(): adv data type: 0xff
23:07:03.440 -> [D][BLEAdvertisedDevice.cpp:247] parseAdvertisement(): Type: 0xff (), length: 9, data: 4c0010050318c779cc
23:07:03.440 -> [D][BLEAdvertisedDevice.cpp:395] setManufacturerData(): - manufacturer data: 4c0010050318c779cc
23:07:04.753 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:07:04.753 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:07:04.753 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:07:04.753 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:07:04.753 -> [D][BLEScan.cpp:97] handleGAPEvent(): Ignoring 6e:b0:9a:e2:23:8d, already seen it.
23:07:06.112 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:07:06.112 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:07:06.112 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:07:06.112 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:07:06.112 -> [D][BLEScan.cpp:97] handleGAPEvent(): Ignoring 6e:b0:9a:e2:23:8d, already seen it.
23:07:07.190 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:07:07.190 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:07:07.190 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:07:07.190 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:07:07.190 -> [D][BLEScan.cpp:97] handleGAPEvent(): Ignoring 6e:b0:9a:e2:23:8d, already seen it.
23:07:08.128 -> [V][BLEUtils.cpp:1817] gapEventToString(): gapEventToString: Unknown event type 3 0x03
23:07:08.128 -> [V][BLEUtils.cpp:1049] dumpGapEvent(): Received a GAP event: Unknown event type
23:07:08.128 -> [V][BLEUtils.cpp:1264] dumpGapEvent(): *** dumpGapEvent: Logger not coded ***
23:07:08.128 -> [D][BLEClient.cpp:458] handleGAPEvent(): BLEClient ... handling GAP event!
23:07:08.128 -> [W][BLEScan.cpp:69] handleGAPEvent(): ESP_GAP_SEARCH_INQ_CMPL_EVT
23:07:08.128 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: ScanEnd (0x3ffdddd4), owner: start
23:07:08.128 -> [V][FreeRTOS.cpp:77] wait(): << wait: Semaphore released: name: ScanEnd (0x3ffdddd4), owner: <N/A>
23:07:08.315 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 41
23:07:08.643 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
23:07:08.643 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 41
23:07:08.643 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
23:07:08.643 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 41
23:07:08.643 -> [D][BLEClient.cpp:158] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown
23:07:08.643 -> device disconnected: 7c:2f:80:c2:87:c1
23:07:08.643 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: OpenEvt (0x3ffddf48), owner: <N/A>
23:07:08.643 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: RssiCmplEvt (0x3ffde1d4), owner: <N/A>
23:07:08.643 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: SearchCmplEvt (0x3ffddfa8), owner: <N/A>
23:07:08.643 -> [BLEDevice.cpp:610] removePeerDevice(): remove: 0, GATT role client
23:07:08.643 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 41
23:07:08.643 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 5] ... Unknown
23:07:08.643 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 41
23:07:08.643 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
23:07:08.643 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 41
23:07:08.643 -> [D][BLEClient.cpp:158] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 5] ... Unknown
23:07:08.643 -> device disconnected: ff:ff:3d:1a:c2:66
23:07:08.643 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: OpenEvt (0x3ffdfc6c), owner: <N/A>
23:07:08.643 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: RssiCmplEvt (0x3ffdfd2c), owner: <N/A>
23:07:08.643 -> [V][FreeRTOS.cpp:143] give(): Semaphore giving: name: SearchCmplEvt (0x3ffdfccc), owner: <N/A>
23:07:08.643 -> [BLEDevice.cpp:610] removePeerDevice(): remove: 1, GATT role client
23:07:08.643 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 5
23:07:08.643 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 5] ... Unknown
23:07:08.643 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 5
23:07:08.643 -> [V][BLEUtils.cpp:1283] dumpGattClientEvent(): GATT Event: Unknown
23:07:08.643 -> [V][BLEUtils.cpp:951] gattClientEventTypeToString(): Unknown GATT Client event type: 5
23:07:08.643 -> [D][BLEDevice.cpp:154] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 4] ... Unknown