#include "Hanglamp.hpp" CRGB colorTable[] = { CRGB(255, 243, 218), CRGB(255, 250, 237), CRGB(255, 255, 255), CRGB(250, 233, 213), CRGB::Red, CRGB::Blue, CRGB::Green, CRGB::Purple, CRGB::Turquoise, CRGB::Yellow, }; Hanglamp::Hanglamp(){ } void Hanglamp::setup(){ } void Hanglamp::setColor(CRGB color){ jumpTo(color); } void Hanglamp::nextColor(){ this->colorIndex++; if(colorIndex >= (sizeof(colorTable) / sizeof(CRGB))){ colorIndex = 0; } Serial.printf("colorIndex: %d\n", this->colorIndex); setColor(colorTable[this->colorIndex]); } void Hanglamp::setBrightness(int brightness){ uint8_t newBrightness = brightness < 0 ? 0 : brightness > 255 ? 255 : brightness; this->brightness = newBrightness; Serial.printf("new brightness: %d\n", newBrightness); FastLED.setBrightness(newBrightness); FastLED.show(); #ifdef ENABLE_MQTT MQTT_publish("hanglamp/brightness", String(newBrightness)); #endif } void Hanglamp::adjustBrightness(int add){ this->setBrightness(this->brightness + add); } void Hanglamp::controlsCallback(ControlEvent event){ Serial.printf("ControlEvent: %d\n", event); switch(event){ case Clockwise: adjustBrightness(4); break; case Counterclockwise: adjustBrightness(-4); break; case Key: nextColor(); break; } } void Hanglamp::status(CRGB color){ Led_status(color); }