#include "pwm.h"
#include "fileutil.h"

PWMPin::PWMPin(std::filesystem::path basedir)
: _basedir(basedir)
{
    if (!std::filesystem::exists(basedir))
        throw std::exception();
    if (!file_is_rwable(basedir / "period"))
        throw std::exception();
    if (!file_is_rwable(_basedir / "duty_cycle"))
        throw std::exception();
}

void PWMPin::set_period(uint64_t period)
{ 
    return write_uint64_t_to_file(_basedir / "period", period);
}

void PWMPin::set_duty_cycle(uint64_t duty_cycle)
{
    return write_uint64_t_to_file(_basedir / "duty_cycle", duty_cycle);
}
