39 lines
753 B
C++
39 lines
753 B
C++
#include <led.h>
|
|
|
|
RGBled::RGBled(const uint8_t pin) : m_led(pin)
|
|
{
|
|
pinMode(m_led, OUTPUT);
|
|
writeStatus(RGBled::ERROR);
|
|
m_brightness = 1.0f;
|
|
}
|
|
|
|
RGBled::~RGBled()
|
|
{
|
|
pinMode(m_led, INPUT);
|
|
}
|
|
|
|
void RGBled::setBrightness(const float b)
|
|
{
|
|
m_brightness = b;
|
|
}
|
|
|
|
void RGBled::setStatus(const LedStatus s)
|
|
{
|
|
if (m_status == s)
|
|
return;
|
|
std::lock_guard<std::mutex> lock(m_mutex);
|
|
m_status = s;
|
|
writeStatus(m_status);
|
|
}
|
|
|
|
const RGBled::LedStatus RGBled::getSatus(void)
|
|
{
|
|
return m_status;
|
|
}
|
|
|
|
void RGBled::writeStatus(const RGBled::LedStatus s)
|
|
{
|
|
const RGBled::color_u u{.status = s};
|
|
rgbLedWrite(m_led, (uint8_t)(m_brightness*u.color.r), (uint8_t)(m_brightness*u.color.g), (uint8_t)(m_brightness*u.color.b));
|
|
}
|