♻️ Moves peripherals to source file, add sensor base

This commit is contained in:
Rune Harlyk
2025-09-11 18:34:08 +02:00
committed by Rune Harlyk
parent 41b863a0eb
commit a5371c36b9
7 changed files with 331 additions and 270 deletions
+28 -3
View File
@@ -9,10 +9,35 @@
#include <Adafruit_BMP085_U.h>
#include <Adafruit_Sensor.h>
#include <peripherals/sensor.hpp>
struct BarometerMsg : public SensorMessageBase {
float pressure {-1};
float altitude {-1};
float temperature {-1};
bool success {false};
void toJson(JsonVariant v) const override {
JsonArray arr = v.to<JsonArray>();
arr.add(pressure);
arr.add(altitude);
arr.add(temperature);
arr.add(success);
}
void fromJson(JsonVariantConst v) override {
JsonArrayConst arr = v.as<JsonArrayConst>();
pressure = arr[0] | -1.0f;
altitude = arr[1] | -1.0f;
temperature = arr[2] | -1.0f;
success = arr[3] | false;
}
friend void toJson(JsonVariant v, BarometerMsg const& a) { a.toJson(v); }
};
class Barometer {
public:
Barometer() : _bmp(10085) {}
bool initialize() {
bmp_success = _bmp.begin();
return bmp_success;
@@ -44,7 +69,7 @@ class Barometer {
bool active() { return bmp_success; }
private:
Adafruit_BMP085_Unified _bmp;
Adafruit_BMP085_Unified _bmp {10085};
bool bmp_success {false};
float pressure {0};
float altitude {0};