2 #ifndef __accessoryBaseLight2_H__ 3 #define __accessoryBaseLight2_H__ 6 #include "Accessory.hpp" 13 #define LIGHTON STATE_FIRST 15 #define LIGHTBLINK STATE_SECOND 17 #define LIGHTOFF STATE_NONE 20 #define FADING_FULL_DELAY (this->fadingStep == 0 ? 0 : ((255UL / this->fadingStep)+1) * this->fadingDelay) 33 unsigned long blinkingDelay;
37 enum LightState { LIGHT_ON, LIGHT_OFF, LIGHT_ASCENDING, LIGHT_DESCENDING };
38 LightState currentState;
39 uint8_t fadingCurrentValue;
40 unsigned long startingMillis;
65 inline bool IsOn()
const {
return this->state == LIGHTON; }
69 inline bool IsBlinking()
const {
return this->state == LIGHTBLINK; }
74 inline bool IsFading()
const {
return this->fadingStep > 0; }
80 void Event(ACCESSORIES_EVENT_TYPE inEvent = ACCESSORIES_EVENT_MOVEPOSITIONID,
int inData = 0);
84 inline void SetBlinking(
unsigned long inBlinkingDelay) { this->blinkingDelay = inBlinkingDelay; }
89 void SetFading(uint8_t inStep, uint8_t inDelay);
92 void SetState(ACC_STATE instate);
101 inline void ResetAction() { this->startingMillis = 0; }
107 void LightFadingRaw(uint8_t inValue);
109 int EEPROMSave(
int inPos,
bool inSimulate =
false);
110 int EEPROMLoad(
int inPos);
112 #ifdef ACCESSORIES_PRINT_ACCESSORIES 117 void printAccessory();
virtual void ResetAction()
unsigned long GetActionStartingMillis() const
virtual bool IsGroupActionPending() const
virtual void StartAction()
void SetFading(uint8_t inStep, uint8_t inDelay)
void SetBlinking(unsigned long inBlinkingDelay)
void Event(ACCESSORIES_EVENT_TYPE inEvent = ACCESSORIES_EVENT_MOVEPOSITIONID, int inData = 0)
void SetStateRaw(ACC_STATE inNewState)
void begin(Port *inpPort, int inIntensity = 255, Accessory *inpOwner = 0)
AccessoryBaseLight(Accessory *inpOwner = 0)