#include "logic.h"

#include <cassert>

Logic::Logic(
    Sensor* sensor, 
    PWMPin* pwmpin)
: _sensor(sensor),
  _pwmpin(pwmpin) {}

void Logic::loop()
{
    while (true) {
        double t = _sensor->get_temperature();
        uint64_t duty_cycle = t/50 * 30*1000*1000;
        _pwmpin->set_duty_cycle(duty_cycle);

        const timespec naptime = {
            .tv_sec = 1,
            .tv_nsec = 0,
        };
        int rv = nanosleep(&naptime, nullptr);
        assert(rv != -1);
    }
}
