24 lines
606 B
C++
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
|