From 70c993dff40fb80a7aa35674bec6f9d7f962933a Mon Sep 17 00:00:00 2001
From: Darrell
Date: Wed, 3 Aug 2022 19:50:22 -0400
Subject: [PATCH] Ignore annoying echo dot lost iBeacons (#571)
---
lib/BleFingerprint/BleFingerprint.cpp | 2 +-
lib/BleFingerprint/BleFingerprint.h | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/BleFingerprint/BleFingerprint.cpp b/lib/BleFingerprint/BleFingerprint.cpp
index 8cd96ad..5042631 100644
--- a/lib/BleFingerprint/BleFingerprint.cpp
+++ b/lib/BleFingerprint/BleFingerprint.cpp
@@ -391,8 +391,8 @@ void BleFingerprint::fingerprintManufactureData(NimBLEAdvertisedDevice *advertis
{
BLEBeacon oBeacon = BLEBeacon();
oBeacon.setData(strManufacturerData);
- setId(Sprintf("iBeacon:%s-%u-%u", std::string(oBeacon.getProximityUUID()).c_str(), ENDIAN_CHANGE_U16(oBeacon.getMajor()), ENDIAN_CHANGE_U16(oBeacon.getMinor())), ID_TYPE_IBEACON);
calRssi = oBeacon.getSignalPower();
+ setId(Sprintf("iBeacon:%s-%u-%u", std::string(oBeacon.getProximityUUID()).c_str(), ENDIAN_CHANGE_U16(oBeacon.getMajor()), ENDIAN_CHANGE_U16(oBeacon.getMinor())), calRssi != 3 ? ID_TYPE_IBEACON : ID_TYPE_ECHO_LOST );
}
else if (strManufacturerData.length() >= 4 && strManufacturerData[2] == 0x10)
{
diff --git a/lib/BleFingerprint/BleFingerprint.h b/lib/BleFingerprint/BleFingerprint.h
index 9279e2d..0cbcbed 100644
--- a/lib/BleFingerprint/BleFingerprint.h
+++ b/lib/BleFingerprint/BleFingerprint.h
@@ -15,6 +15,8 @@
#define NO_RSSI (-32768)
#define ID_TYPE_TX_POW short(1)
+
+#define ID_TYPE_ECHO_LOST short(-10)
#define ID_TYPE_MISC_APPLE short(-5)
#define ID_TYPE_MAC short(0)