ESPresense/lib/BleFingerprint/BleFingerprint.h

46 lines
1.1 KiB
C
Raw Normal View History

#ifndef _BLEFINGERPRINT_
#define _BLEFINGERPRINT_
#include <NimBLEDevice.h>
#include <NimBLEAdvertisedDevice.h>
#include <NimBLEEddystoneURL.h>
#include <NimBLEEddystoneTLM.h>
#include <NimBLEBeacon.h>
#include <ArduinoJson.h>
2021-03-22 23:56:29 +01:00
#include <SoftFilters.h>
class BleFingerprint
{
public:
BleFingerprint(BLEAdvertisedDevice *advertisedDevice);
~BleFingerprint();
void seen(BLEAdvertisedDevice *advertisedDevice);
bool report(JsonDocument *doc);
String getId() { return id; }
float getDistance();
void setDistance(float distFl);
NimBLEAddress getAddress() { return address; }
void setAddress(NimBLEAddress newAddr) { address = newAddr; }
private:
2021-03-29 21:51:18 +02:00
bool hasValue = false, enroll = false;
NimBLEAddress address;
2021-03-29 20:50:23 +02:00
String id, name, url;
int rssi, calRssi;
2021-03-22 23:56:29 +01:00
float raw;
2021-03-29 20:50:23 +02:00
time_t firstSeen;
time_t lastSeen;
2021-03-22 23:56:29 +01:00
Reading<Differential<float>> output;
TimestampFilter<float> tsFilter;
2021-03-24 14:10:33 +01:00
one_euro_filter<double, unsigned long> oneEuro{one_euro_filter<double, unsigned long>(1, 0.01, 0.01, 1)};
2021-03-22 23:56:29 +01:00
DifferentialFilter<float> diffFilter;
};
#endif