23 roo_time::Duration
expiration()
const {
return expiration_; }
30 if (
reading.value.isUnknown() && !cached_.
value.isUnknown()) {
33 if (
reading.time + expiration_ < roo_time::Uptime::Now()) {
34 reading.value = roo_quantity::UnknownTemperature();
41 roo_time::Duration expiration_;
42 mutable Reading cached_;
Reports readings of another thermometer if fresher than an expiration.
roo_time::Duration expiration() const
ExpiringThermometer(const Thermometer *thermometer)
Reading readTemperature() const override
Returns the latest available temperature reading.
ExpiringThermometer(const Thermometer *thermometer, roo_time::Duration expiration)
void setExpiration(roo_time::Duration expiration)
An abstraction of a multi-state settable switch.
An abstraction of a thermometer, i.e., a device that reports temperature.
Thermometer::Reading ReadExpiringTemperature(const Thermometer &t, roo_time::Duration expiration)
Convenience function for expiring thermometer readings.
Captures a temperature measured at a specific time.
roo_quantity::Temperature value
Measured temperature value.
roo_time::Uptime time
Timestamp of the reading.