mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-30 20:09:14 +03:00
new lib BLE, чуть меньше расходует памяти
This commit is contained in:
@@ -181,7 +181,7 @@ void scanEndedCB(NimBLEScanResults results)
|
|||||||
//#if defined (esp32c6_4mb) || defined (esp32c6_8mb)
|
//#if defined (esp32c6_4mb) || defined (esp32c6_8mb)
|
||||||
//class BleScan : public IoTItem, NimBLEScanCallbacks
|
//class BleScan : public IoTItem, NimBLEScanCallbacks
|
||||||
//#else
|
//#else
|
||||||
class BleScan : public IoTItem, BLEAdvertisedDeviceCallbacks
|
class BleScan : public IoTItem, BLEAdvertisedDeviceCallbacks //NimBLEScanCallbacks
|
||||||
//#endif
|
//#endif
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@@ -218,13 +218,20 @@ public:
|
|||||||
}
|
}
|
||||||
if (advertisedDevice->haveManufacturerData())
|
if (advertisedDevice->haveManufacturerData())
|
||||||
{
|
{
|
||||||
|
#if defined (esp32c6_4mb) || defined (esp32c6_8mb)
|
||||||
char *manufacturerdata = BLEUtils::buildHexData(NULL, (uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length());
|
char *manufacturerdata = BLEUtils::buildHexData(NULL, (uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length());
|
||||||
BLEdata["manufacturerdata"] = manufacturerdata;
|
#else
|
||||||
free(manufacturerdata);
|
std::string manufacturerdata = NimBLEUtils::dataToHexString((uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length());
|
||||||
}
|
|
||||||
#if !defined (esp32c6_4mb) && !defined (esp32c6_8mb)
|
|
||||||
if (advertisedDevice->haveRSSI())
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
BLEdata["manufacturerdata"] = manufacturerdata;
|
||||||
|
#if defined (esp32c6_4mb) || defined (esp32c6_8mb)
|
||||||
|
free(manufacturerdata);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
//#if !defined (esp32c6_4mb) && !defined (esp32c6_8mb) //&& !defined (esp32_4mb3f)
|
||||||
|
// if (advertisedDevice->haveRSSI())
|
||||||
|
//#endif
|
||||||
BLEdata["rssi"] = (int)advertisedDevice->getRSSI();
|
BLEdata["rssi"] = (int)advertisedDevice->getRSSI();
|
||||||
if (advertisedDevice->haveTXPower())
|
if (advertisedDevice->haveTXPower())
|
||||||
BLEdata["txpower"] = (int8_t)advertisedDevice->getTXPower();
|
BLEdata["txpower"] = (int8_t)advertisedDevice->getTXPower();
|
||||||
@@ -302,11 +309,11 @@ public:
|
|||||||
|
|
||||||
BLEDevice::init("");
|
BLEDevice::init("");
|
||||||
pBLEScan = BLEDevice::getScan(); // create new scan
|
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);
|
pBLEScan->setScanCallbacks(this);
|
||||||
#else
|
//#else
|
||||||
pBLEScan->setAdvertisedDeviceCallbacks(this);
|
// pBLEScan->setAdvertisedDeviceCallbacks(this);
|
||||||
#endif
|
//#endif
|
||||||
pBLEScan->setActiveScan(false); // active scan uses more power, but get results faster
|
pBLEScan->setActiveScan(false); // active scan uses more power, but get results faster
|
||||||
pBLEScan->setInterval(100);
|
pBLEScan->setInterval(100);
|
||||||
pBLEScan->setWindow(99); // less or equal setInterval value
|
pBLEScan->setWindow(99); // less or equal setInterval value
|
||||||
@@ -321,11 +328,11 @@ public:
|
|||||||
if (_scanDuration > 0)
|
if (_scanDuration > 0)
|
||||||
{
|
{
|
||||||
SerialPrint("i", F("BLE"), "Start Scanning...");
|
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);
|
pBLEScan->start(_scanDuration, false);
|
||||||
#else
|
//#else
|
||||||
pBLEScan->start(_scanDuration, scanEndedCB, false);
|
// pBLEScan->start(_scanDuration, scanEndedCB, false);
|
||||||
#endif
|
//#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,13 +65,13 @@
|
|||||||
"defActive": false,
|
"defActive": false,
|
||||||
"usedLibs": {
|
"usedLibs": {
|
||||||
"esp32c6_4mb": [
|
"esp32c6_4mb": [
|
||||||
"https://github.com/h2zero/NimBLE-Arduino#c6-build"
|
"https://github.com/Mit4el/NimBLE-Arduino.git#c6-build"
|
||||||
],
|
],
|
||||||
"esp32c6_8mb": [
|
"esp32c6_8mb": [
|
||||||
"https://github.com/h2zero/NimBLE-Arduino#c6-build"
|
"https://github.com/Mit4el/NimBLE-Arduino.git#c6-build"
|
||||||
],
|
],
|
||||||
"esp32_4mb3f": [
|
"esp32*": [
|
||||||
"https://github.com/Mit4el/NimBLE-Arduino.git"
|
"https://github.com/Mit4el/NimBLE-Arduino.git#release/2.2"
|
||||||
],
|
],
|
||||||
"esp32s2_4mb": [
|
"esp32s2_4mb": [
|
||||||
"exclude"
|
"exclude"
|
||||||
|
|||||||
@@ -181,7 +181,7 @@ void scanEndedCB(NimBLEScanResults results)
|
|||||||
//#if defined (esp32c6_4mb) || defined (esp32c6_8mb)
|
//#if defined (esp32c6_4mb) || defined (esp32c6_8mb)
|
||||||
//class BleScan : public IoTItem, NimBLEScanCallbacks
|
//class BleScan : public IoTItem, NimBLEScanCallbacks
|
||||||
//#else
|
//#else
|
||||||
class BleScan : public IoTItem, BLEAdvertisedDeviceCallbacks
|
class BleScan : public IoTItem, BLEAdvertisedDeviceCallbacks //NimBLEScanCallbacks
|
||||||
//#endif
|
//#endif
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@@ -218,13 +218,20 @@ public:
|
|||||||
}
|
}
|
||||||
if (advertisedDevice->haveManufacturerData())
|
if (advertisedDevice->haveManufacturerData())
|
||||||
{
|
{
|
||||||
|
#if defined (esp32c6_4mb) || defined (esp32c6_8mb)
|
||||||
char *manufacturerdata = BLEUtils::buildHexData(NULL, (uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length());
|
char *manufacturerdata = BLEUtils::buildHexData(NULL, (uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length());
|
||||||
BLEdata["manufacturerdata"] = manufacturerdata;
|
#else
|
||||||
free(manufacturerdata);
|
std::string manufacturerdata = NimBLEUtils::dataToHexString((uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length());
|
||||||
}
|
|
||||||
#if !defined (esp32c6_4mb) && !defined (esp32c6_8mb)
|
|
||||||
if (advertisedDevice->haveRSSI())
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
BLEdata["manufacturerdata"] = manufacturerdata;
|
||||||
|
#if defined (esp32c6_4mb) || defined (esp32c6_8mb)
|
||||||
|
free(manufacturerdata);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
//#if !defined (esp32c6_4mb) && !defined (esp32c6_8mb) //&& !defined (esp32_4mb3f)
|
||||||
|
// if (advertisedDevice->haveRSSI())
|
||||||
|
//#endif
|
||||||
BLEdata["rssi"] = (int)advertisedDevice->getRSSI();
|
BLEdata["rssi"] = (int)advertisedDevice->getRSSI();
|
||||||
if (advertisedDevice->haveTXPower())
|
if (advertisedDevice->haveTXPower())
|
||||||
BLEdata["txpower"] = (int8_t)advertisedDevice->getTXPower();
|
BLEdata["txpower"] = (int8_t)advertisedDevice->getTXPower();
|
||||||
@@ -302,11 +309,11 @@ public:
|
|||||||
|
|
||||||
BLEDevice::init("");
|
BLEDevice::init("");
|
||||||
pBLEScan = BLEDevice::getScan(); // create new scan
|
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);
|
pBLEScan->setScanCallbacks(this);
|
||||||
#else
|
//#else
|
||||||
pBLEScan->setAdvertisedDeviceCallbacks(this);
|
// pBLEScan->setAdvertisedDeviceCallbacks(this);
|
||||||
#endif
|
//#endif
|
||||||
pBLEScan->setActiveScan(false); // active scan uses more power, but get results faster
|
pBLEScan->setActiveScan(false); // active scan uses more power, but get results faster
|
||||||
pBLEScan->setInterval(100);
|
pBLEScan->setInterval(100);
|
||||||
pBLEScan->setWindow(99); // less or equal setInterval value
|
pBLEScan->setWindow(99); // less or equal setInterval value
|
||||||
@@ -321,11 +328,11 @@ public:
|
|||||||
if (_scanDuration > 0)
|
if (_scanDuration > 0)
|
||||||
{
|
{
|
||||||
SerialPrint("i", F("BLE"), "Start Scanning...");
|
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);
|
pBLEScan->start(_scanDuration, false);
|
||||||
#else
|
//#else
|
||||||
pBLEScan->start(_scanDuration, scanEndedCB, false);
|
// pBLEScan->start(_scanDuration, scanEndedCB, false);
|
||||||
#endif
|
//#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);
|
return new BleScan(param);
|
||||||
}
|
}
|
||||||
else if (subtype == F("BleSens_p1"))
|
else if (subtype == F("BleSens"))
|
||||||
{
|
{
|
||||||
return new BleSens(param);
|
return new BleSens(param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,13 +65,13 @@
|
|||||||
"defActive": false,
|
"defActive": false,
|
||||||
"usedLibs": {
|
"usedLibs": {
|
||||||
"esp32c6_4mb": [
|
"esp32c6_4mb": [
|
||||||
"https://github.com/h2zero/NimBLE-Arduino#c6-build"
|
"https://github.com/Mit4el/NimBLE-Arduino.git#c6-build"
|
||||||
],
|
],
|
||||||
"esp32c6_8mb": [
|
"esp32c6_8mb": [
|
||||||
"https://github.com/h2zero/NimBLE-Arduino#c6-build"
|
"https://github.com/Mit4el/NimBLE-Arduino.git#c6-build"
|
||||||
],
|
],
|
||||||
"esp32*": [
|
"esp32*": [
|
||||||
"https://github.com/Mit4el/NimBLE-Arduino.git"
|
"https://github.com/Mit4el/NimBLE-Arduino.git#release/2.2"
|
||||||
],
|
],
|
||||||
"esp32s2_4mb": [
|
"esp32s2_4mb": [
|
||||||
"exclude"
|
"exclude"
|
||||||
|
|||||||
@@ -181,7 +181,7 @@ void scanEndedCB(NimBLEScanResults results)
|
|||||||
//#if defined (esp32c6_4mb) || defined (esp32c6_8mb)
|
//#if defined (esp32c6_4mb) || defined (esp32c6_8mb)
|
||||||
//class BleScan : public IoTItem, NimBLEScanCallbacks
|
//class BleScan : public IoTItem, NimBLEScanCallbacks
|
||||||
//#else
|
//#else
|
||||||
class BleScan : public IoTItem, BLEAdvertisedDeviceCallbacks
|
class BleScan : public IoTItem, BLEAdvertisedDeviceCallbacks //NimBLEScanCallbacks
|
||||||
//#endif
|
//#endif
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@@ -218,13 +218,20 @@ public:
|
|||||||
}
|
}
|
||||||
if (advertisedDevice->haveManufacturerData())
|
if (advertisedDevice->haveManufacturerData())
|
||||||
{
|
{
|
||||||
|
#if defined (esp32c6_4mb) || defined (esp32c6_8mb)
|
||||||
char *manufacturerdata = BLEUtils::buildHexData(NULL, (uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length());
|
char *manufacturerdata = BLEUtils::buildHexData(NULL, (uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length());
|
||||||
BLEdata["manufacturerdata"] = manufacturerdata;
|
#else
|
||||||
free(manufacturerdata);
|
std::string manufacturerdata = NimBLEUtils::dataToHexString((uint8_t *)advertisedDevice->getManufacturerData().data(), advertisedDevice->getManufacturerData().length());
|
||||||
}
|
|
||||||
#if !defined (esp32c6_4mb) && !defined (esp32c6_8mb)
|
|
||||||
if (advertisedDevice->haveRSSI())
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
BLEdata["manufacturerdata"] = manufacturerdata;
|
||||||
|
#if defined (esp32c6_4mb) || defined (esp32c6_8mb)
|
||||||
|
free(manufacturerdata);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
//#if !defined (esp32c6_4mb) && !defined (esp32c6_8mb) //&& !defined (esp32_4mb3f)
|
||||||
|
// if (advertisedDevice->haveRSSI())
|
||||||
|
//#endif
|
||||||
BLEdata["rssi"] = (int)advertisedDevice->getRSSI();
|
BLEdata["rssi"] = (int)advertisedDevice->getRSSI();
|
||||||
if (advertisedDevice->haveTXPower())
|
if (advertisedDevice->haveTXPower())
|
||||||
BLEdata["txpower"] = (int8_t)advertisedDevice->getTXPower();
|
BLEdata["txpower"] = (int8_t)advertisedDevice->getTXPower();
|
||||||
@@ -302,11 +309,11 @@ public:
|
|||||||
|
|
||||||
BLEDevice::init("");
|
BLEDevice::init("");
|
||||||
pBLEScan = BLEDevice::getScan(); // create new scan
|
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);
|
pBLEScan->setScanCallbacks(this);
|
||||||
#else
|
//#else
|
||||||
pBLEScan->setAdvertisedDeviceCallbacks(this);
|
// pBLEScan->setAdvertisedDeviceCallbacks(this);
|
||||||
#endif
|
//#endif
|
||||||
pBLEScan->setActiveScan(false); // active scan uses more power, but get results faster
|
pBLEScan->setActiveScan(false); // active scan uses more power, but get results faster
|
||||||
pBLEScan->setInterval(100);
|
pBLEScan->setInterval(100);
|
||||||
pBLEScan->setWindow(99); // less or equal setInterval value
|
pBLEScan->setWindow(99); // less or equal setInterval value
|
||||||
@@ -321,11 +328,11 @@ public:
|
|||||||
if (_scanDuration > 0)
|
if (_scanDuration > 0)
|
||||||
{
|
{
|
||||||
SerialPrint("i", F("BLE"), "Start Scanning...");
|
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);
|
pBLEScan->start(_scanDuration, false);
|
||||||
#else
|
//#else
|
||||||
pBLEScan->start(_scanDuration, scanEndedCB, false);
|
// pBLEScan->start(_scanDuration, scanEndedCB, false);
|
||||||
#endif
|
//#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);
|
return new BleScan(param);
|
||||||
}
|
}
|
||||||
else if (subtype == F("BleSens_p2"))
|
else if (subtype == F("BleSens"))
|
||||||
{
|
{
|
||||||
return new BleSens(param);
|
return new BleSens(param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,13 +65,13 @@
|
|||||||
"defActive": false,
|
"defActive": false,
|
||||||
"usedLibs": {
|
"usedLibs": {
|
||||||
"esp32c6_4mb": [
|
"esp32c6_4mb": [
|
||||||
"https://github.com/h2zero/NimBLE-Arduino#c6-build"
|
"https://github.com/Mit4el/NimBLE-Arduino.git#c6-build"
|
||||||
],
|
],
|
||||||
"esp32c6_8mb": [
|
"esp32c6_8mb": [
|
||||||
"https://github.com/h2zero/NimBLE-Arduino#c6-build"
|
"https://github.com/Mit4el/NimBLE-Arduino.git#c6-build"
|
||||||
],
|
],
|
||||||
"esp32*": [
|
"esp32*": [
|
||||||
"https://github.com/Mit4el/NimBLE-Arduino.git"
|
"https://github.com/Mit4el/NimBLE-Arduino.git#release/2.2"
|
||||||
],
|
],
|
||||||
"esp32s2_4mb": [
|
"esp32s2_4mb": [
|
||||||
"exclude"
|
"exclude"
|
||||||
|
|||||||
Reference in New Issue
Block a user