2021-03-22 14:11:42 +01:00
|
|
|
#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>
|
2021-03-22 14:11:42 +01:00
|
|
|
|
|
|
|
class BleFingerprint
|
|
|
|
{
|
|
|
|
|
|
|
|
public:
|
|
|
|
BleFingerprint(BLEAdvertisedDevice *advertisedDevice, float initalDistance);
|
|
|
|
|
|
|
|
void seen(BLEAdvertisedDevice *advertisedDevice);
|
|
|
|
void report(BLEAdvertisedDevice *advertisedDevice);
|
|
|
|
|
|
|
|
void setCalRssi(int rssi);
|
|
|
|
|
|
|
|
StaticJsonDocument<500> getJson();
|
|
|
|
|
|
|
|
private:
|
|
|
|
String id;
|
|
|
|
int rssi, calRssi;
|
2021-03-22 23:56:29 +01:00
|
|
|
float raw;
|
|
|
|
Reading<Differential<float>> output;
|
|
|
|
|
|
|
|
FilterChain compositeFilter;
|
|
|
|
TimestampFilter<float> tsFilter;
|
|
|
|
MovingAverageFilter<float, float> maFilter{MovingAverageFilter<float, float>(3)};
|
|
|
|
WeightedUpdateFilter<float, float> wuFilter{WeightedUpdateFilter<float, float>(0.1)};
|
|
|
|
OneEuroFilter<float, unsigned long> oneEuro{OneEuroFilter<float, unsigned long>(1, 1, 0.007, 1)};
|
|
|
|
DifferentialFilter<float> diffFilter;
|
|
|
|
|
2021-03-22 14:11:42 +01:00
|
|
|
StaticJsonDocument<500> doc;
|
|
|
|
unsigned long lastReading = 0;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|