Add Enter/Left messages for enrollment

This commit is contained in:
DTTerastar 2021-03-29 15:51:18 -04:00
parent 5d649f1d2a
commit 270e3c475b
3 changed files with 22 additions and 16 deletions

View File

@ -46,7 +46,7 @@ BleFingerprint::BleFingerprint(BLEAdvertisedDevice *advertisedDevice, float init
auto nativeAddress = address.getNative();
String mac_address = Sprintf("%02x%02x%02x%02x%02x%02x", nativeAddress[5], nativeAddress[4], nativeAddress[3], nativeAddress[2], nativeAddress[1], nativeAddress[0]);
Serial.print("MAC: ");
Serial.print("New | MAC: ");
Serial.print(mac_address);
if (advertisedDevice->haveName())
@ -200,10 +200,19 @@ bool BleFingerprint::shouldReport()
StaticJsonDocument<512> BleFingerprint::report()
{
StaticJsonDocument<512> doc;
#if VERBOSE
// if (id == "iBeacon:2c96d71f47569faddd487c93cc9dac2e-0-0")
// Serial.printf("%-36s %lu %5.1f %5.1f %5.1f\n", id.c_str(), output.timestamp, output.value.position, output.value.speed * 1e6, output.value.acceleration * 1e12);
#endif
if (output.value.position < 0.5)
{
if (!enroll)
{
Serial.printf("Enter | %-50s %lu %5.1f %5.1f %5.1f\n", id.c_str(), output.timestamp, output.value.position, output.value.speed * 1e6, output.value.acceleration * 1e12);
enroll = true;
}
}
else if (enroll && output.value.position > 1.5)
{
Serial.printf("Left | %-50s %lu %5.1f %5.1f %5.1f\n", id.c_str(), output.timestamp, output.value.position, output.value.speed * 1e6, output.value.acceleration * 1e12);
enroll = false;
}
if (id != nullptr)
doc[F("id")] = id;

View File

@ -24,7 +24,7 @@ public:
NimBLEAddress getAddress() { return address; }
private:
bool hasValue;
bool hasValue = false, enroll = false;
NimBLEAddress address;
String id, name, url;
int rssi, calRssi;

View File

@ -283,10 +283,8 @@ class MyAdvertisedDeviceCallbacks : public BLEAdvertisedDeviceCallbacks
void onResult(BLEAdvertisedDevice *advertisedDevice)
{
digitalWrite(LED_BUILTIN, LED_BUILTIN_ON);
//Serial.printf("Advertised Device: %s \n", advertisedDevice->toString().c_str());
BleFingerprint *f = getFingerprint(advertisedDevice);
f->seen(advertisedDevice);
vTaskDelay(advertisedDevice->getRSSI() > -60 ? 2 : 1);
digitalWrite(LED_BUILTIN, !LED_BUILTIN_ON);
}
};
@ -336,6 +334,13 @@ bool reportDevice(BLEAdvertisedDevice advertisedDevice)
void scanForDevices(void *parameter)
{
BLEDevice::init("");
pBLEScan = BLEDevice::getScan(); //create new scan
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks(), true);
pBLEScan->setActiveScan(BLE_ACTIVE_SCAN);
pBLEScan->setInterval(BLE_SCAN_INTERVAL);
pBLEScan->setWindow(BLE_SCAN_WINDOW);
int i = 0;
while (1)
{
@ -534,14 +539,6 @@ void setup()
connectToWifi();
setClock();
connectToMqtt();
BLEDevice::init("");
pBLEScan = BLEDevice::getScan(); //create new scan
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks(), true);
pBLEScan->setActiveScan(BLE_ACTIVE_SCAN);
pBLEScan->setInterval(BLE_SCAN_INTERVAL);
pBLEScan->setWindow(BLE_SCAN_WINDOW);
xTaskCreatePinnedToCore(scanForDevices, "BLE Scan", 4096, pBLEScan, 1, &thBLEScan, 1);
#ifdef M5STICK