refactor led class
This commit is contained in:
@@ -1,29 +1,32 @@
|
||||
#include <led.h>
|
||||
|
||||
RGBled::RGBled(const uint8_t pin, const uint8_t num)
|
||||
RGBled::RGBled(const uint8_t pin) : m_led(pin)
|
||||
{
|
||||
m_led = Adafruit_NeoPixel(num, pin, NEO_GRB + NEO_KHZ800);
|
||||
m_led.begin();
|
||||
m_led.setPixelColor(0, RED);
|
||||
m_led.show();
|
||||
pinMode(m_led, OUTPUT);
|
||||
writeStatus(RGBled::ERROR);
|
||||
}
|
||||
|
||||
RGBled::~RGBled()
|
||||
{
|
||||
m_led.clear();
|
||||
pinMode(m_led, INPUT);
|
||||
}
|
||||
|
||||
void RGBled::setStatus(const LedStatus s)
|
||||
{
|
||||
if (m_status == s) return;
|
||||
if (m_status == s)
|
||||
return;
|
||||
std::lock_guard<std::mutex> lock(m_mutex);
|
||||
m_status = s;
|
||||
RGB_BUILTIN_LED_COLOR_ORDER
|
||||
m_led.setPixelColor(0, s);
|
||||
m_led.setBrightness(16);
|
||||
m_led.show();
|
||||
writeStatus(m_status);
|
||||
}
|
||||
|
||||
const RGBled::LedStatus RGBled::getSatus(void)
|
||||
{
|
||||
return m_status;
|
||||
}
|
||||
}
|
||||
|
||||
void RGBled::writeStatus(const RGBled::LedStatus s)
|
||||
{
|
||||
RGBled::color_u u{.status = s};
|
||||
rgbLedWrite(m_led, u.color.r, u.color.g, u.color.b);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user