supla-device
Loading...
Searching...
No Matches
Button Class Reference
Inheritance diagram for Button:
Collaboration diagram for Button:

Public Types

enum class  ButtonType : uint8_t { MONOSTABLE , BISTABLE , MOTION_SENSOR }
 
enum class  OnLoadConfigType : uint8_t { LOAD_FULL_CONFIG , LOAD_BUTTON_SETUP_ONLY , DONT_LOAD_CONFIG }
 

Public Member Functions

 Button (Supla::Io *io, int pin, bool pullUp=false, bool invertLogic=false)
 
 Button (int pin, bool pullUp=false, bool invertLogic=false)
 
void onTimer () override
 Method called on timer interupt.
 
void onLoadConfig (SuplaDeviceClass *) override
 First method called on element in SuplaDevice.begin().
 
void onInit () override
 Third method called on element in SuplaDevice.begin()
 
void addAction (uint16_t action, ActionHandler &client, uint16_t event, bool alwaysEnabled=false) override
 
void addAction (uint16_t action, ActionHandler *client, uint16_t event, bool alwaysEnabled=false) override
 
void disableAction (int32_t action, ActionHandler *client, int32_t event) override
 
void enableAction (int32_t action, ActionHandler *client, int32_t event) override
 
void setHoldTime (unsigned int timeMs)
 
void repeatOnHoldEvery (unsigned int timeMs)
 
void setMulticlickTime (unsigned int timeMs, bool bistableButton=false)
 
void setButtonType (const ButtonType type)
 
bool isBistable () const
 
bool isMonostable () const
 
bool isMotionSensor () const
 
virtual void configureAsConfigButton (SuplaDeviceClass *sdc)
 
bool disableActionsInConfigMode () override
 
void dontUseOnLoadConfig ()
 
void setOnLoadConfigType (OnLoadConfigType type)
 
uint8_t getMaxMulticlickValue ()
 
int8_t getButtonNumber () const override
 
void setButtonNumber (int8_t number)
 
void handleAction (int event, int action) override
 
void disableButton ()
 
void enableButton ()
 
uint32_t getLastStateChange () const
 
- Public Member Functions inherited from Supla::Control::SimpleButton
 SimpleButton (Supla::Io *io, int pin, bool pullUp=false, bool invertLogic=false)
 
 SimpleButton (int pin, bool pullUp=false, bool invertLogic=false)
 
void onTimer () override
 Method called on timer interupt.
 
void onInit () override
 Third method called on element in SuplaDevice.begin()
 
void setSwNoiseFilterDelay (unsigned int newDelayMs)
 
void setDebounceDelay (unsigned int newDelayMs)
 
enum StateResults getLastState () const
 
- Public Member Functions inherited from Supla::Element
Elementnext ()
 Returns next Element from the list.
 
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 void onRegistered (Supla::Protocol::SuplaSrpc *suplaSrpc=nullptr)
 Method called each time when device successfully registers to Supla server.
 
virtual void iterateAlways ()
 Method called on each SuplaDevice iteration.
 
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 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 ()
 Returns true if any update is pending.
 
void setInitialCaption (const char *caption, bool secondaryChannel=false)
 Sets initial caption.
 
void setDefaultFunction (int32_t defaultFunction)
 Sets default channel's function.
 
- Public Member Functions inherited from Supla::LocalAction
virtual void runAction (uint16_t event) const
 
virtual bool isEventAlreadyUsed (uint16_t event, bool ignoreAlwaysEnabled)
 
virtual ActionHandlerClientgetHandlerForFirstClient (uint16_t event)
 
virtual ActionHandlerClientgetHandlerForClient (ActionHandler *client, uint16_t event)
 
virtual void disableOtherClients (const ActionHandler &client, uint16_t event)
 
virtual void enableOtherClients (const ActionHandler &client, uint16_t event)
 
virtual void disableOtherClients (const ActionHandler *client, uint16_t event)
 
virtual void enableOtherClients (const ActionHandler *client, uint16_t event)
 
- Public Member Functions inherited from Supla::ActionHandler
virtual void activateAction (int action)
 
virtual bool deleteClient ()
 
virtual ActionHandlergetRealClient ()
 

Protected Member Functions

void evaluateMaxMulticlickValue ()
 
void disableRepeatOnHold (uint32_t threshold=0)
 
void enableRepeatOnHold ()
 

Protected Attributes

uint32_t multiclickTimeMs = 0
 
uint32_t lastStateChangeMs = 0
 
uint16_t repeatOnHoldMs = 0
 
uint16_t holdSend = 0
 
uint16_t holdTimeMs = 0
 
ButtonType buttonType = ButtonType::MONOSTABLE
 
enum OnLoadConfigType onLoadConfigType = OnLoadConfigType::LOAD_FULL_CONFIG
 
uint8_t clickCounter = 0
 
uint8_t maxMulticlickValueConfigured = 0
 
bool repeatOnHoldEnabled = false
 
bool configButton = false
 
int8_t buttonNumber = -1
 
bool disabled = false
 
- Protected Attributes inherited from Supla::Control::SimpleButton
ButtonState state
 
- Protected Attributes inherited from Supla::Element
ElementnextPtr = nullptr
 

Static Protected Attributes

static int buttonCounter = 0
 
- Static Protected Attributes inherited from Supla::Element
static ElementfirstPtr = nullptr
 
static bool invalidatePtr = false
 

Friends

class ActionTrigger
 

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 Public Member Functions inherited from Supla::LocalAction
static void DeleteActionsHandledBy (const ActionHandler *client)
 
static void DeleteActionsTriggeredBy (const LocalAction *action)
 
static void NullifyActionsHandledBy (const ActionHandler *client)
 
static ActionHandlerClientgetClientListPtr ()
 

Member Function Documentation

◆ addAction() [1/2]

void Button::addAction ( uint16_t action,
ActionHandler & client,
uint16_t event,
bool alwaysEnabled = false )
overridevirtual

Reimplemented from Supla::LocalAction.

◆ addAction() [2/2]

void Button::addAction ( uint16_t action,
ActionHandler * client,
uint16_t event,
bool alwaysEnabled = false )
overridevirtual

Reimplemented from Supla::LocalAction.

◆ disableAction()

void Button::disableAction ( int32_t action,
ActionHandler * client,
int32_t event )
overridevirtual

Reimplemented from Supla::LocalAction.

◆ disableActionsInConfigMode()

bool Button::disableActionsInConfigMode ( )
overridevirtual

Reimplemented from Supla::LocalAction.

◆ enableAction()

void Button::enableAction ( int32_t action,
ActionHandler * client,
int32_t event )
overridevirtual

Reimplemented from Supla::LocalAction.

◆ getButtonNumber()

int8_t Button::getButtonNumber ( ) const
overridevirtual

Reimplemented from Supla::Control::SimpleButton.

◆ handleAction()

void Button::handleAction ( int event,
int action )
overridevirtual

Implements Supla::ActionHandler.

◆ onInit()

void Button::onInit ( )
overridevirtual

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.

◆ onLoadConfig()

void Button::onLoadConfig ( SuplaDeviceClass * sdc)
overridevirtual

First method called on element in SuplaDevice.begin().

Called only if Config Storage class is configured. Element should read its configration in this method.

Parameters
sdc

Reimplemented from Supla::Element.

◆ onTimer()

void Button::onTimer ( )
overridevirtual

Method called on timer interupt.

It should provide all actions that have to be executed periodically regardless of other SuplaDevice activities. It is usually called every 10 ms.

Reimplemented from Supla::Element.


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