globals.h

This commit is contained in:
2026-01-07 16:29:40 +01:00
parent f0abda9158
commit 68d76e0959
16 changed files with 853 additions and 844 deletions

35
include/change_detector.h Normal file
View File

@@ -0,0 +1,35 @@
#pragma once
#include <Arduino.h>
template <typename T, size_t MaxObservers>
class Detector {
public:
explicit Detector(T initial) : value(initial) {
for (size_t i = 0; i < MaxObservers; ++i) seen[i] = false;
}
void set(const T& v) {
if (v == value) return;
value = v;
for (size_t i = 0; i < MaxObservers; ++i) seen[i] = false;
}
bool changed(size_t id) {
if (id >= MaxObservers) return false;
if (!seen[id]) {
seen[id] = true;
return true;
}
return false;
}
const T& get() const {
return value;
}
private:
T value;
bool seen[MaxObservers];
};