floatpump-firmware/Middlewares/floatpump/Src/GPIChannel.cpp

29 lines
757 B
C++

//
// Created by robtor on 10.01.23.
//
#include "GPIChannel.h"
namespace floatpump {
namespace io {
GPIChannel::GPIChannel(GPIO_TypeDef *gpio, uint16_t pin, bool inverted) : m_gpio(gpio), m_gpio_pin(pin), m_inverted(inverted) {
}
void GPIChannel::poll() {
if(HAL_GPIO_ReadPin(m_gpio, m_gpio_pin) == GPIO_PIN_SET) {
m_state = (m_inverted)? state::OFF : state::ON;
} else {
m_state = (m_inverted)? state::ON : state::OFF;
}
}
GPIChannel::state GPIChannel::getState() const {
return m_state;
}
bool GPIChannel::getStateBool() const {
return (m_state == state::ON);
}
} // floatpump
} // io