29 lines
757 B
C++
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
|