#pragma once #include #include #include class AutoDiscoverRTCClock : public mesh::RTCClock { mesh::RTCClock* _fallback; bool i2c_probe(TwoWire& wire, uint8_t addr); public: AutoDiscoverRTCClock(mesh::RTCClock& fallback) : _fallback(&fallback) { } void begin(TwoWire& wire); uint32_t getCurrentTime() override; void setCurrentTime(uint32_t time) override; void tick() override { _fallback->tick(); // is typically VolatileRTCClock, which now needs tick() } };