supla-device
Loading...
Searching...
No Matches
Supla::Control::AddressableLEDs Class Reference

Class for using addressable LEDs as ws2812b and many others. More...

#include <addressable_leds.h>

Inheritance diagram for Supla::Control::AddressableLEDs:
Collaboration diagram for Supla::Control::AddressableLEDs:

Public Member Functions

 AddressableLEDs (uint16_t number, int16_t pin, neoPixelType type=NEO_GRB+NEO_KHZ800)
 Constructor.
 
void setEffect (AddressableLEDsEffect neweffect, uint16_t newStepTime, uint8_t turnAllLEDsTime=0)
 Setting effect on strip/ring.
 
void onInit () override
 Third method called on element in SuplaDevice.begin()
 
AddressableLEDsEffect getEffect ()
 
uint16_t getStepTime ()
 
uint16_t getTurnOnTime ()
 
bool isOn ()
 
void turnOn ()
 
void turnOff ()
 
void setColor (uint32_t color)
 
void setColor (uint8_t red, uint8_t green, uint8_t blue)
 
void setBrightness (uint8_t brightness)
 
void iterateAlways ()
 Method called on each SuplaDevice iteration.
 
- Public Member Functions inherited from Supla::Element
Elementnext ()
 Returns next Element from the list.
 
virtual void onLoadConfig (SuplaDeviceClass *sdc)
 First method called on element in SuplaDevice.begin().
 
virtual void purgeConfig ()
 Removes all configration data related to the element from Storage::Config.
 
virtual void onLoadState ()
 Second method called on element in SuplaDevice.begin().
 
virtual void onSaveState ()
 Method called periodically during SuplaDevice iteration.
 
virtual bool isStateStorageMigrationNeeded () const
 Method called after onInit() to check if state storage migration is needed.
 
virtual void onRegistered (Supla::Protocol::SuplaSrpc *suplaSrpc=nullptr)
 Method called each time when device successfully registers to Supla server.
 
virtual bool iterateConnected ()
 Method called on each SuplaDevice iteration when device is connected and registered to Supla server or other protocol.
 
virtual bool iterateConnected (void *ptr)
 deprecated
 
virtual void onTimer ()
 Method called on timer interupt.
 
virtual void onFastTimer ()
 Method called on fast timer interupt.
 
virtual void onSoftReset ()
 Method called when device soft restart is triggered.
 
virtual void onDeviceConfigChange (uint64_t fieldBit)
 Method called when device config is changed.
 
virtual int32_t handleNewValueFromServer (TSD_SuplaChannelNewValue *newValue)
 Handles "new value" request from server.
 
virtual void fillSuplaChannelNewValue (TSD_SuplaChannelNewValue *value)
 Fills TSD_SuplaChannelNewValue based on current state.
 
virtual void handleGetChannelState (TDSC_ChannelState *channelState)
 Handles "get channel state (i)" request from server.
 
virtual int handleCalcfgFromServer (TSD_DeviceCalCfgRequest *request)
 Handles CALCFG requests from server.
 
virtual uint8_t handleChannelConfig (TSD_ChannelConfig *newChannelConfig, bool local=false)
 Handles "set channel config" request from server.
 
virtual uint8_t handleWeeklySchedule (TSD_ChannelConfig *newWeeklySchedule, bool altSchedule=false, bool local=false)
 Handles "set channel config" with "weekly schedule" type request from server.
 
virtual void handleSetChannelConfigResult (TSDS_SetChannelConfigResult *result)
 Handles "set channel config" reply from server.
 
virtual void handleChannelConfigFinished ()
 Handles "channel config finished" message from server.
 
int getChannelNumber () const
 Returns channel number.
 
int getSecondaryChannelNumber () const
 Returns secondary channel number.
 
virtual bool isOwnerOfSubDeviceId (int subDeviceId) const
 Returns true if element is owner of subDeviceId.
 
virtual const ChannelgetChannel () const
 Returns pointer to main channel.
 
virtual ChannelgetChannel ()
 
virtual const ChannelgetSecondaryChannel () const
 Returns pointer to secondary channel.
 
virtual ChannelgetSecondaryChannel ()
 
virtual void generateKey (char *output, const char *key) const
 Generates key used for Config.
 
ElementdisableChannelState ()
 Disables channel state (i) function.
 
bool isChannelStateEnabled () const
 Returns true if channel state (i) function is enabled.
 
virtual bool isAnyUpdatePending () const
 Returns true if any update is pending.
 
void setInitialCaption (const char *caption, bool secondaryChannel=false)
 Sets initial caption.
 
bool setDefaultFunction (uint32_t defaultFunction)
 Sets default channel's function.
 
bool setFunction (uint32_t newFunction)
 Sets channel's function.
 
virtual void onFunctionChange (uint32_t currentFunction, uint32_t newFunction)
 Called when channel function changes.
 

Protected Member Functions

void iterate_Still ()
 
void iterate_Swap ()
 
void iterate_Flow ()
 
void iterate_RainbowWheel ()
 
void iterate_Rainbow ()
 
uint32_t RainbowWheel (byte WheelPos)
 

Protected Attributes

Adafruit_NeoPixel * pixels
 
bool on = false
 
uint16_t numberOfLeds
 
uint16_t lightedLeds = 0
 
uint32_t RGBcolor = 0x004400
 
uint32_t LastColor = 0
 
uint8_t turnOnTime = 0
 
uint32_t lastLEDTime = 0
 
uint16_t stepTime = 1000
 
uint32_t lastTime = 0
 
AddressableLEDsEffect effect = STILL
 
uint32_t counter = 0
 
- Protected Attributes inherited from Supla::Element
ElementnextPtr = nullptr
 

Additional Inherited Members

- Static Public Member Functions inherited from Supla::Element
static Elementbegin ()
 Returns first Element (based on creation order)
 
static Elementlast ()
 Returns last Element (based on creation order)
 
static ElementgetElementByChannelNumber (int channelNumber)
 Returns Element by channel number.
 
static ElementgetOwnerOfSubDeviceId (int subDeviceId)
 Returns Element which owns given subDeviceId.
 
static bool IsAnyUpdatePending ()
 Checks if any element has pending update for remote server.
 
static void NotifyElementsAboutConfigChange (uint64_t fieldBit)
 Notifies all elements about device config change.
 
static bool IsInvalidPtrSet ()
 When "invalid pointer" is set, previously obtained Element pointer may be invalid.
 
static void ClearInvalidPtr ()
 Clears "invalid pointer" flag.
 
- Static Protected Attributes inherited from Supla::Element
static ElementfirstPtr = nullptr
 
static bool invalidatePtr = false
 

Detailed Description

Class for using addressable LEDs as ws2812b and many others.

It implements some simple effects for using with strips and rings constructed with such leds

Constructor & Destructor Documentation

◆ AddressableLEDs()

Supla::Control::AddressableLEDs::AddressableLEDs ( uint16_t number,
int16_t pin,
neoPixelType type = NEO_GRB + NEO_KHZ800 )
inline

Constructor.

Parameters
number- number of leds in strip/ring
pin- GPIO with connected data line of leds
type(optional) - type of sytip/ring, see Adafruit Neopixel library

Member Function Documentation

◆ iterateAlways()

void Supla::Control::AddressableLEDs::iterateAlways ( )
inlinevirtual

Method called on each SuplaDevice iteration.

It should provide all actions that have to be executed periodically regardless of network state.

Reimplemented from Supla::Element.

◆ onInit()

void Supla::Control::AddressableLEDs::onInit ( )
inlineoverridevirtual

Third method called on element in SuplaDevice.begin()

Method called during SuplaDevice initialization. I.e. load initial state, initialize pins etc.

Reimplemented from Supla::Element.

◆ setEffect()

void Supla::Control::AddressableLEDs::setEffect ( AddressableLEDsEffect neweffect,
uint16_t newStepTime,
uint8_t turnAllLEDsTime = 0 )
inline

Setting effect on strip/ring.

Parameters
neweffect- AddressableLEDsEffect, can be:
  • AddressableLEDsEffect::STILL
  • AddressableLEDsEffect::SWAP
  • AddressableLEDsEffect::FLOW
  • AddressableLEDsEffect::RAINBOWWHEEL
  • AddressableLEDsEffect::RAINBOW
newStepTime- time (in ms) of one effect step
turnAllLEDsTime(optional) - time (in sec) of turning on all leds

The documentation for this class was generated from the following file: