ranczo-io/services/temperature_svc/ds18b20_sensor.hpp
2025-08-06 07:36:26 +02:00

24 lines
606 B
C++

#pragma once
#include <config.hpp>
#include <ranczo-io/utils/timer.hpp>
namespace ranczo {
class DS18B20Sensor {
public:
DS18B20Sensor(boost::asio::any_io_executor exec, std::string device_id, std::chrono::seconds interval = std::chrono::seconds(2))
: executor_(exec), timer_(exec, interval, [&]() { return this->run(); }), device_id_(std::move(device_id)) {}
boost::asio::awaitable< void > run();
private:
awaitable_expected< float > read_temperature();
boost::asio::any_io_executor executor_;
PeriodicTimer timer_;
std::string device_id_;
};
} // namespace ranczo