76 lines
1.4 KiB
C++
76 lines
1.4 KiB
C++
#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);
|
|
} |