forked from h2zero/esp-nimble-cpp
Update examples
This commit is contained in:
@@ -6,7 +6,6 @@
|
||||
*
|
||||
* Created: on November 4, 2024
|
||||
* Author: H2zero
|
||||
*
|
||||
*/
|
||||
|
||||
#include <NimBLEDevice.h>
|
||||
@@ -14,22 +13,23 @@
|
||||
static constexpr uint32_t scanTimeMs = 5 * 1000;
|
||||
|
||||
class ClientCallbacks : public NimBLEClientCallbacks {
|
||||
void onConnect(NimBLEClient* pClient) {
|
||||
void onConnect(NimBLEClient* pClient) override {
|
||||
printf("Connected to: %s\n", pClient->getPeerAddress().toString().c_str());
|
||||
}
|
||||
|
||||
void onDisconnect(NimBLEClient* pClient, int reason) {
|
||||
void onDisconnect(NimBLEClient* pClient, int reason) override {
|
||||
printf("%s Disconnected, reason = %d - Starting scan\n", pClient->getPeerAddress().toString().c_str(), reason);
|
||||
NimBLEDevice::getScan()->start(scanTimeMs);
|
||||
}
|
||||
} clientCB;
|
||||
} clientCallbacks;
|
||||
|
||||
class scanCallbacks : public NimBLEScanCallbacks {
|
||||
void onResult(const NimBLEAdvertisedDevice* advertisedDevice) {
|
||||
class ScanCallbacks : public NimBLEScanCallbacks {
|
||||
void onResult(const NimBLEAdvertisedDevice* advertisedDevice) override {
|
||||
printf("Advertised Device found: %s\n", advertisedDevice->toString().c_str());
|
||||
if (advertisedDevice->haveName() && advertisedDevice->getName() == "NimBLE-Server") {
|
||||
printf("Found Our Device\n");
|
||||
|
||||
/** Async connections can be made directly in the scan callbacks */
|
||||
auto pClient = NimBLEDevice::getDisconnectedClient();
|
||||
if (!pClient) {
|
||||
pClient = NimBLEDevice::createClient(advertisedDevice->getAddress());
|
||||
@@ -39,7 +39,7 @@ class scanCallbacks : public NimBLEScanCallbacks {
|
||||
}
|
||||
}
|
||||
|
||||
pClient->setClientCallbacks(&clientCB, false);
|
||||
pClient->setClientCallbacks(&clientCallbacks, false);
|
||||
if (!pClient->connect(true, true, false)) { // delete attributes, async connect, no MTU exchange
|
||||
NimBLEDevice::deleteClient(pClient);
|
||||
printf("Failed to connect\n");
|
||||
@@ -48,19 +48,19 @@ class scanCallbacks : public NimBLEScanCallbacks {
|
||||
}
|
||||
}
|
||||
|
||||
void onScanEnd(const NimBLEScanResults&, int reason) {
|
||||
void onScanEnd(const NimBLEScanResults& results, int reason) override {
|
||||
printf("Scan Ended\n");
|
||||
NimBLEDevice::getScan()->start(scanTimeMs);
|
||||
}
|
||||
};
|
||||
} scanCallbacks;
|
||||
|
||||
extern "C" void app_main(void) {
|
||||
printf("Starting NimBLE Async Client\n");
|
||||
NimBLEDevice::init("");
|
||||
NimBLEDevice::init("Async-Client");
|
||||
NimBLEDevice::setPower(3); /** +3db */
|
||||
|
||||
NimBLEScan* pScan = NimBLEDevice::getScan();
|
||||
pScan->setScanCallbacks(new scanCallbacks());
|
||||
pScan->setScanCallbacks(&scanCallbacks);
|
||||
pScan->setInterval(45);
|
||||
pScan->setWindow(15);
|
||||
pScan->setActiveScan(true);
|
||||
|
||||
Reference in New Issue
Block a user