From a6e4617b303b849921d25c15332d56cf39db78e3 Mon Sep 17 00:00:00 2001 From: Mit4el Date: Mon, 13 Jan 2025 19:19:02 +0300 Subject: [PATCH] =?UTF-8?q?new=20lib=20BLE,=20=D1=87=D1=83=D1=82=D1=8C=20?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=8C=D1=88=D0=B5=20=D1=80=D0=B0=D1=81=D1=85?= =?UTF-8?q?=D0=BE=D0=B4=D1=83=D0=B5=D1=82=20=D0=BF=D0=B0=D0=BC=D1=8F=D1=82?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/sensors/Ble/Ble.cpp | 31 +++++++++++------- src/modules/sensors/Ble/modinfo.json | 8 ++--- src/modules/sensors/Ble_part1/Ble_p1.cpp | 37 +++++++++++++--------- src/modules/sensors/Ble_part1/modinfo.json | 6 ++-- src/modules/sensors/Ble_part2/Ble_p2.cpp | 37 +++++++++++++--------- src/modules/sensors/Ble_part2/modinfo.json | 6 ++-- 6 files changed, 73 insertions(+), 52 deletions(-) diff --git a/src/modules/sensors/Ble/Ble.cpp b/src/modules/sensors/Ble/Ble.cpp index caaa3d53..370287be 100644 --- a/src/modules/sensors/Ble/Ble.cpp +++ b/src/modules/sensors/Ble/Ble.cpp @@ -181,7 +181,7 @@ void scanEndedCB(NimBLEScanResults results) //#if defined (esp32c6_4mb) || defined (esp32c6_8mb) //class BleScan : public IoTItem, NimBLEScanCallbacks //#else -class BleScan : public IoTItem, BLEAdvertisedDeviceCallbacks +class BleScan : public IoTItem, BLEAdvertisedDeviceCallbacks //NimBLEScanCallbacks //#endif { private: @@ -218,13 +218,20 @@ public: } if (advertisedDevice->haveManufacturerData()) { +#if defined (esp32c6_4mb) || defined (esp32c6_8mb) char *manufacturerdata = BLEUtils::buildHexData(NULL, (uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length()); +#else + std::string manufacturerdata = NimBLEUtils::dataToHexString((uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length()); +#endif + BLEdata["manufacturerdata"] = manufacturerdata; + #if defined (esp32c6_4mb) || defined (esp32c6_8mb) free(manufacturerdata); + #endif } -#if !defined (esp32c6_4mb) && !defined (esp32c6_8mb) - if (advertisedDevice->haveRSSI()) -#endif +//#if !defined (esp32c6_4mb) && !defined (esp32c6_8mb) //&& !defined (esp32_4mb3f) +// if (advertisedDevice->haveRSSI()) +//#endif BLEdata["rssi"] = (int)advertisedDevice->getRSSI(); if (advertisedDevice->haveTXPower()) BLEdata["txpower"] = (int8_t)advertisedDevice->getTXPower(); @@ -302,11 +309,11 @@ public: BLEDevice::init(""); pBLEScan = BLEDevice::getScan(); // create new scan -#if defined (esp32c6_4mb) || defined (esp32c6_8mb) +//#if defined (esp32c6_4mb) || defined (esp32c6_8mb) //|| defined (esp32_4mb3f) pBLEScan->setScanCallbacks(this); -#else - pBLEScan->setAdvertisedDeviceCallbacks(this); -#endif +//#else +// pBLEScan->setAdvertisedDeviceCallbacks(this); +//#endif pBLEScan->setActiveScan(false); // active scan uses more power, but get results faster pBLEScan->setInterval(100); pBLEScan->setWindow(99); // less or equal setInterval value @@ -321,11 +328,11 @@ public: if (_scanDuration > 0) { SerialPrint("i", F("BLE"), "Start Scanning..."); -#if defined (esp32c6_4mb) || defined (esp32c6_8mb) +//#if defined (esp32c6_4mb) || defined (esp32c6_8mb) //|| defined (esp32_4mb3f) pBLEScan->start(_scanDuration, false); -#else - pBLEScan->start(_scanDuration, scanEndedCB, false); -#endif +//#else +// pBLEScan->start(_scanDuration, scanEndedCB, false); +//#endif } } } diff --git a/src/modules/sensors/Ble/modinfo.json b/src/modules/sensors/Ble/modinfo.json index 9a75dbd9..65e57602 100644 --- a/src/modules/sensors/Ble/modinfo.json +++ b/src/modules/sensors/Ble/modinfo.json @@ -65,13 +65,13 @@ "defActive": false, "usedLibs": { "esp32c6_4mb": [ - "https://github.com/h2zero/NimBLE-Arduino#c6-build" + "https://github.com/Mit4el/NimBLE-Arduino.git#c6-build" ], "esp32c6_8mb": [ - "https://github.com/h2zero/NimBLE-Arduino#c6-build" + "https://github.com/Mit4el/NimBLE-Arduino.git#c6-build" ], - "esp32_4mb3f": [ - "https://github.com/Mit4el/NimBLE-Arduino.git" + "esp32*": [ + "https://github.com/Mit4el/NimBLE-Arduino.git#release/2.2" ], "esp32s2_4mb": [ "exclude" diff --git a/src/modules/sensors/Ble_part1/Ble_p1.cpp b/src/modules/sensors/Ble_part1/Ble_p1.cpp index 534e7c4b..2aab9be7 100644 --- a/src/modules/sensors/Ble_part1/Ble_p1.cpp +++ b/src/modules/sensors/Ble_part1/Ble_p1.cpp @@ -181,7 +181,7 @@ void scanEndedCB(NimBLEScanResults results) //#if defined (esp32c6_4mb) || defined (esp32c6_8mb) //class BleScan : public IoTItem, NimBLEScanCallbacks //#else -class BleScan : public IoTItem, BLEAdvertisedDeviceCallbacks +class BleScan : public IoTItem, BLEAdvertisedDeviceCallbacks //NimBLEScanCallbacks //#endif { private: @@ -218,13 +218,20 @@ public: } if (advertisedDevice->haveManufacturerData()) { +#if defined (esp32c6_4mb) || defined (esp32c6_8mb) char *manufacturerdata = BLEUtils::buildHexData(NULL, (uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length()); +#else + std::string manufacturerdata = NimBLEUtils::dataToHexString((uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length()); +#endif + BLEdata["manufacturerdata"] = manufacturerdata; + #if defined (esp32c6_4mb) || defined (esp32c6_8mb) free(manufacturerdata); + #endif } -#if !defined (esp32c6_4mb) && !defined (esp32c6_8mb) - if (advertisedDevice->haveRSSI()) -#endif +//#if !defined (esp32c6_4mb) && !defined (esp32c6_8mb) //&& !defined (esp32_4mb3f) +// if (advertisedDevice->haveRSSI()) +//#endif BLEdata["rssi"] = (int)advertisedDevice->getRSSI(); if (advertisedDevice->haveTXPower()) BLEdata["txpower"] = (int8_t)advertisedDevice->getTXPower(); @@ -302,11 +309,11 @@ public: BLEDevice::init(""); pBLEScan = BLEDevice::getScan(); // create new scan -#if defined (esp32c6_4mb) || defined (esp32c6_8mb) +//#if defined (esp32c6_4mb) || defined (esp32c6_8mb) //|| defined (esp32_4mb3f) pBLEScan->setScanCallbacks(this); -#else - pBLEScan->setAdvertisedDeviceCallbacks(this); -#endif +//#else +// pBLEScan->setAdvertisedDeviceCallbacks(this); +//#endif pBLEScan->setActiveScan(false); // active scan uses more power, but get results faster pBLEScan->setInterval(100); pBLEScan->setWindow(99); // less or equal setInterval value @@ -321,11 +328,11 @@ public: if (_scanDuration > 0) { SerialPrint("i", F("BLE"), "Start Scanning..."); -#if defined (esp32c6_4mb) || defined (esp32c6_8mb) +//#if defined (esp32c6_4mb) || defined (esp32c6_8mb) //|| defined (esp32_4mb3f) pBLEScan->start(_scanDuration, false); -#else - pBLEScan->start(_scanDuration, scanEndedCB, false); -#endif +//#else +// pBLEScan->start(_scanDuration, scanEndedCB, false); +//#endif } } } @@ -335,13 +342,13 @@ public: //======================================================================================================= -void *getAPI_Ble_part1(String subtype, String param) +void *getAPI_Ble(String subtype, String param) { - if (subtype == F("BleScan_p1")) + if (subtype == F("BleScan")) { return new BleScan(param); } - else if (subtype == F("BleSens_p1")) + else if (subtype == F("BleSens")) { return new BleSens(param); } diff --git a/src/modules/sensors/Ble_part1/modinfo.json b/src/modules/sensors/Ble_part1/modinfo.json index 0d2f484e..2ceaa1a0 100644 --- a/src/modules/sensors/Ble_part1/modinfo.json +++ b/src/modules/sensors/Ble_part1/modinfo.json @@ -65,13 +65,13 @@ "defActive": false, "usedLibs": { "esp32c6_4mb": [ - "https://github.com/h2zero/NimBLE-Arduino#c6-build" + "https://github.com/Mit4el/NimBLE-Arduino.git#c6-build" ], "esp32c6_8mb": [ - "https://github.com/h2zero/NimBLE-Arduino#c6-build" + "https://github.com/Mit4el/NimBLE-Arduino.git#c6-build" ], "esp32*": [ - "https://github.com/Mit4el/NimBLE-Arduino.git" + "https://github.com/Mit4el/NimBLE-Arduino.git#release/2.2" ], "esp32s2_4mb": [ "exclude" diff --git a/src/modules/sensors/Ble_part2/Ble_p2.cpp b/src/modules/sensors/Ble_part2/Ble_p2.cpp index 9c3be51d..f74b2419 100644 --- a/src/modules/sensors/Ble_part2/Ble_p2.cpp +++ b/src/modules/sensors/Ble_part2/Ble_p2.cpp @@ -181,7 +181,7 @@ void scanEndedCB(NimBLEScanResults results) //#if defined (esp32c6_4mb) || defined (esp32c6_8mb) //class BleScan : public IoTItem, NimBLEScanCallbacks //#else -class BleScan : public IoTItem, BLEAdvertisedDeviceCallbacks +class BleScan : public IoTItem, BLEAdvertisedDeviceCallbacks //NimBLEScanCallbacks //#endif { private: @@ -218,13 +218,20 @@ public: } if (advertisedDevice->haveManufacturerData()) { +#if defined (esp32c6_4mb) || defined (esp32c6_8mb) char *manufacturerdata = BLEUtils::buildHexData(NULL, (uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length()); +#else + std::string manufacturerdata = NimBLEUtils::dataToHexString((uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length()); +#endif + BLEdata["manufacturerdata"] = manufacturerdata; + #if defined (esp32c6_4mb) || defined (esp32c6_8mb) free(manufacturerdata); + #endif } -#if !defined (esp32c6_4mb) && !defined (esp32c6_8mb) - if (advertisedDevice->haveRSSI()) -#endif +//#if !defined (esp32c6_4mb) && !defined (esp32c6_8mb) //&& !defined (esp32_4mb3f) +// if (advertisedDevice->haveRSSI()) +//#endif BLEdata["rssi"] = (int)advertisedDevice->getRSSI(); if (advertisedDevice->haveTXPower()) BLEdata["txpower"] = (int8_t)advertisedDevice->getTXPower(); @@ -302,11 +309,11 @@ public: BLEDevice::init(""); pBLEScan = BLEDevice::getScan(); // create new scan -#if defined (esp32c6_4mb) || defined (esp32c6_8mb) +//#if defined (esp32c6_4mb) || defined (esp32c6_8mb) //|| defined (esp32_4mb3f) pBLEScan->setScanCallbacks(this); -#else - pBLEScan->setAdvertisedDeviceCallbacks(this); -#endif +//#else +// pBLEScan->setAdvertisedDeviceCallbacks(this); +//#endif pBLEScan->setActiveScan(false); // active scan uses more power, but get results faster pBLEScan->setInterval(100); pBLEScan->setWindow(99); // less or equal setInterval value @@ -321,11 +328,11 @@ public: if (_scanDuration > 0) { SerialPrint("i", F("BLE"), "Start Scanning..."); -#if defined (esp32c6_4mb) || defined (esp32c6_8mb) +//#if defined (esp32c6_4mb) || defined (esp32c6_8mb) //|| defined (esp32_4mb3f) pBLEScan->start(_scanDuration, false); -#else - pBLEScan->start(_scanDuration, scanEndedCB, false); -#endif +//#else +// pBLEScan->start(_scanDuration, scanEndedCB, false); +//#endif } } } @@ -335,13 +342,13 @@ public: //======================================================================================================= -void *getAPI_Ble_part2(String subtype, String param) +void *getAPI_Ble(String subtype, String param) { - if (subtype == F("BleScan_p2")) + if (subtype == F("BleScan")) { return new BleScan(param); } - else if (subtype == F("BleSens_p2")) + else if (subtype == F("BleSens")) { return new BleSens(param); } diff --git a/src/modules/sensors/Ble_part2/modinfo.json b/src/modules/sensors/Ble_part2/modinfo.json index 26241435..06f8fbf9 100644 --- a/src/modules/sensors/Ble_part2/modinfo.json +++ b/src/modules/sensors/Ble_part2/modinfo.json @@ -65,13 +65,13 @@ "defActive": false, "usedLibs": { "esp32c6_4mb": [ - "https://github.com/h2zero/NimBLE-Arduino#c6-build" + "https://github.com/Mit4el/NimBLE-Arduino.git#c6-build" ], "esp32c6_8mb": [ - "https://github.com/h2zero/NimBLE-Arduino#c6-build" + "https://github.com/Mit4el/NimBLE-Arduino.git#c6-build" ], "esp32*": [ - "https://github.com/Mit4el/NimBLE-Arduino.git" + "https://github.com/Mit4el/NimBLE-Arduino.git#release/2.2" ], "esp32s2_4mb": [ "exclude"