diff --git a/embedded/lib/Component/LedComponent.cpp b/embedded/lib/Component/LedComponent.cpp index 16c944d..8d482dc 100644 --- a/embedded/lib/Component/LedComponent.cpp +++ b/embedded/lib/Component/LedComponent.cpp @@ -23,24 +23,20 @@ void LedComponent::setup() _led = new ChainableLED(_pinClock, _pin, _ledNumber); } -void LedComponent::setColor(uint8_t led_number, Color color) +void LedComponent::setColor(LedNumber led_number, Color color) { - if (led_number >= _ledNumber) - return; - _led->setColorRGB(led_number, color.red, color.green, color.blue); + _led->setColorRGB(static_cast(led_number), color.red, color.green, color.blue); } -void LedComponent::setColor(uint8_t led_number, Color color, uint16_t fading_time) +void LedComponent::setColor(LedNumber led_number, Color color, uint16_t fading_time) { - if (led_number >= _ledNumber) - return; const auto redFade = color.red / (static_cast(fading_time)); const auto greenFade = color.green / (static_cast(fading_time)); const auto blueFade = color.blue / (static_cast(fading_time)); for (uint16_t time(0); time < fading_time; time++) { - _led->setColorRGB(led_number, static_cast(redFade * time), static_cast(greenFade * time), static_cast(blueFade * time)); + _led->setColorRGB(static_cast(led_number), static_cast(redFade * time), static_cast(greenFade * time), static_cast(blueFade * time)); delay(1); } } \ No newline at end of file diff --git a/embedded/lib/Component/LedComponent.hpp b/embedded/lib/Component/LedComponent.hpp index e84ad06..6b5380c 100644 --- a/embedded/lib/Component/LedComponent.hpp +++ b/embedded/lib/Component/LedComponent.hpp @@ -6,8 +6,8 @@ struct Color { byte red; - byte blue; byte green; + byte blue; Color operator-(byte value); }; @@ -17,16 +17,23 @@ namespace LedColors constexpr Color LED_OFF = {0,0,0}; constexpr Color WIFI_ON = {0x18,0x28,0x36}; constexpr Color NO_WIFI = {0x64,0x04,0x0B}; + constexpr Color TOO_DRY = {0xB3,0x58,0x1B}; + constexpr Color TOO_WET = {0x1B,0x09,0x3F}; } +enum class LedNumber { + LED_HARDWARE = 0, + LED_PLANT = 1 +}; + class LedComponent { public: LedComponent(byte pin, byte pin_clock, uint8_t led_number); ~LedComponent(); void setup(); - void setColor(uint8_t led_number, Color color); - void setColor(uint8_t led_number, Color color, uint16_t fading_time); + void setColor(LedNumber led_number, Color color); + void setColor(LedNumber led_number, Color color, uint16_t fading_time); private: byte _pin; diff --git a/embedded/lib/Component/MainComponent.cpp b/embedded/lib/Component/MainComponent.cpp index 2247445..da5053c 100644 --- a/embedded/lib/Component/MainComponent.cpp +++ b/embedded/lib/Component/MainComponent.cpp @@ -13,8 +13,8 @@ void MainComponent::setup() _led.setup(); _dht.setup(); // Lights are off when powered - _led.setColor(0,{0,0,0}); - _led.setColor(1,{0,0,0}); + _led.setColor(LedNumber::LED_HARDWARE,{0,0,0}); + _led.setColor(LedNumber::LED_PLANT,{0,0,0}); } Component& MainComponent::getHumidity() { return _humidity; } diff --git a/embedded/lib/Display/Screen.cpp b/embedded/lib/Display/Screen.cpp index 712baf9..ddcfb54 100644 --- a/embedded/lib/Display/Screen.cpp +++ b/embedded/lib/Display/Screen.cpp @@ -131,7 +131,7 @@ void Screen::boot() // Shutting down led when finished booting if(_bootFrame == MAX_BOOT_FRAMES) - MainComponent::GetInstance().getLed().setColor(0,LedColors::LED_OFF); + MainComponent::GetInstance().getLed().setColor(LedNumber::LED_HARDWARE,LedColors::LED_OFF); } void Screen::loop(const float plantHumidity, const float airTemperature, const float airHumidity) diff --git a/embedded/lib/ServerHandler/ServerHandler.cpp b/embedded/lib/ServerHandler/ServerHandler.cpp index ffc9158..4fe00af 100644 --- a/embedded/lib/ServerHandler/ServerHandler.cpp +++ b/embedded/lib/ServerHandler/ServerHandler.cpp @@ -5,9 +5,9 @@ inline void led_blink(LedComponent& led) { - led.setColor(0,LedColors::WIFI_ON); + led.setColor(LedNumber::LED_HARDWARE,LedColors::WIFI_ON); delay(50); - led.setColor(0,LedColors::LED_OFF); + led.setColor(LedNumber::LED_HARDWARE,LedColors::LED_OFF); } ServerHandler::ServerHandler() : server(80), display_time(0), _connected(false) @@ -40,13 +40,13 @@ void ServerHandler::setup(const char *ssid, const char *password) { _connected = true; auto color = LedColors::WIFI_ON; - led.setColor(0,color-15,200); + led.setColor(LedNumber::LED_HARDWARE,color-15,200); server.begin(); server.on("/", [this]() { this->handleRoot(); }); // fonction lamda pour gérer les requettes get } else { - led.setColor(0,LedColors::NO_WIFI,200); + led.setColor(LedNumber::LED_HARDWARE,LedColors::NO_WIFI,200); } }