supla-device
Loading...
Searching...
No Matches
Supla::Control::RelayRollerShutterPair Class Reference
Inheritance diagram for Supla::Control::RelayRollerShutterPair:
Collaboration diagram for Supla::Control::RelayRollerShutterPair:

Public Member Functions

 RelayRollerShutterPair (Supla::Io::IoPin output0, Supla::Io::IoPin output1, bool tiltFunctionsEnabled=true, _supla_int_t relayFunctions=(0xFF ^ SUPLA_BIT_FUNC_CONTROLLINGTHEROLLERSHUTTER))
 RelayRollerShutterPair (Supla::Io::Base *io, int output0, int output1, bool highIsOn=true, bool tiltFunctionsEnabled=true, _supla_int_t relayFunctions=(0xFF ^ SUPLA_BIT_FUNC_CONTROLLINGTHEROLLERSHUTTER))
 RelayRollerShutterPair (int output0, int output1, bool highIsOn=true, bool tiltFunctionsEnabled=true, _supla_int_t relayFunctions=(0xFF ^ SUPLA_BIT_FUNC_CONTROLLINGTHEROLLERSHUTTER))
void attach (Button *primaryButton, Button *secondaryButton, bool asInternal=true)
void attach (Button *primaryButton, Button *secondaryButton, ActionTrigger *primaryActionTrigger, ActionTrigger *secondaryActionTrigger, bool asInternal=true)
void attach (Button *button, bool primaryOrUp, bool asInternal=true)
void attach (Button *button, ActionTrigger *actionTrigger, bool primaryOrUp, bool asInternal=true)
ChannelgetChannel () override
const ChannelgetChannel () const override
 Returns pointer to main channel.
ChannelgetSecondaryChannel () override
const ChannelgetSecondaryChannel () const override
 Returns pointer to secondary channel.
bool isInRelayMode () const
bool isInRollerShutterMode () const
RelayRollerShutterPair & setDefaultStateOn ()
RelayRollerShutterPair & setDefaultStateOff ()
RelayRollerShutterPair & setDefaultStateRestore ()
bool setDefaultFunctions (uint32_t primaryFunction, uint32_t secondaryFunction)
RollerShuttergetRollerShutter ()
const RollerShuttergetRollerShutter () const
int32_t handleNewValueFromServer (TSD_SuplaChannelNewValue *value) override
 Handles "new value" request from server.
void fillSuplaChannelNewValue (TSD_SuplaChannelNewValue *value) override
 Fills TSD_SuplaChannelNewValue based on current state.
bool getRemainingCountdownTimerSec (uint32_t *remainingSec) const override
 Returns active countdown timer remaining time in seconds.
uint8_t handleChannelConfig (TSD_ChannelConfig *config, bool local=false) override
 Handles "set channel config" request from server.
void handleSetChannelConfigResult (TSDS_SetChannelConfigResult *result) override
 Handles "set channel config" reply from server.
void handleChannelConfigFinished () override
 Handles "channel config finished" message from server.
int handleCalcfgFromServer (TSD_DeviceCalCfgRequest *request) override
 Handles CALCFG requests from server.
uint32_t getCalcfgPendingTimeoutMs (TSD_DeviceCalCfgRequest *request) const override
 Returns timeout in milliseconds for CALCFG requests that become pending.
void onLoadConfig (SuplaDeviceClass *sdc) override
 First method called on element in SuplaDevice.begin().
void purgeConfig () override
 Removes all configration data related to the element from Storage::Config.
void onLoadState () override
 Second method called on element in SuplaDevice.begin().
void onSaveState () override
 Method called periodically during SuplaDevice iteration.
void onInit () override
 Third method called on element in SuplaDevice.begin().
void iterateAlways () override
 Method called on each SuplaDevice iteration.
bool iterateConnected () override
 Method called on each SuplaDevice iteration when device is connected and registered to Supla server or other protocol.
void onTimer () override
 Method called on timer interupt.
void onFunctionChange (uint32_t currentFunction, uint32_t newFunction) override
 Called when channel function changes.
ApplyConfigResult applyChannelConfig (TSD_ChannelConfig *config, bool local=false) override
void fillChannelConfig (void *channelConfig, int *size, uint8_t configType) override
Public Member Functions inherited from Supla::ElementWithChannelActions
 ElementWithChannelActions (ElementMode mode=ElementMode::Registered)
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
virtual void addAction (uint16_t action, ActionHandler &client, uint16_t event, Supla::Condition *condition, bool alwaysEnabled=false)
 Adds a conditional local action for a specific event.
virtual void addAction (uint16_t action, ActionHandler *client, uint16_t event, Supla::Condition *condition, bool alwaysEnabled=false)
 Pointer variant of addAction(action, client, event, condition).
virtual void addAction (uint16_t action, ActionHandler &client, Supla::Condition *condition, bool alwaysEnabled=false)
virtual void addAction (uint16_t action, ActionHandler *client, Supla::Condition *condition, bool alwaysEnabled=false)
bool isEventAlreadyUsed (uint16_t event, bool ignoreAlwaysEnabled) override
void onRegistered (Supla::Protocol::SuplaSrpc *suplaSrpc) override
 Method called each time when device successfully registers to Supla server.
void runAction (uint16_t event) const override
bool isAnyUpdatePending () const override
 Returns true if any update is pending.
void triggerSetChannelConfig (int configType=SUPLA_CONFIG_TYPE_DEFAULT)
Public Member Functions inherited from Supla::Element
 Element (ElementMode mode=ElementMode::Registered)
Element * next ()
 Returns next Element from the list.
virtual bool isStateStorageMigrationNeeded () const
 Method called after onInit() to check if state storage migration is needed.
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 void handleGetChannelState (TDSC_ChannelState *channelState)
 Handles "get channel state (i)" 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.
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.
const ChannelgetChannelByChannelNumber (int channelNumber) const
 Returns pointer to the channel matching channelNumber.
ChannelgetChannelByChannelNumber (int channelNumber)
virtual void generateKey (char *output, const char *key) const
 Generates key used for Config.
Element & disableChannelState ()
 Disables channel state (i) function.
bool isChannelStateEnabled () const
 Returns true if channel state (i) function is enabled.
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.
Public Member Functions inherited from Supla::LocalAction
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)
virtual void disableAction (int32_t action, ActionHandler *client, int32_t event)
virtual void enableAction (int32_t action, ActionHandler *client, int32_t event)
virtual bool disableActionsInConfigMode ()

Protected Member Functions

bool setAndSaveFunction (uint32_t channelFunction) override
Protected Member Functions inherited from Supla::ElementWithChannelActions
virtual bool loadFunctionFromConfig ()
virtual bool saveConfigChangeFlag () const
virtual bool loadConfigChangeFlag ()
void clearChannelConfigChangedFlag ()
bool iterateConfigExchange ()
int getNextConfigType () const
 Returns the next config type to be sent.

Additional Inherited Members

Static Public Member Functions inherited from Supla::Element
static Element * begin ()
 Returns first Element (based on creation order).
static Element * last ()
 Returns last Element (based on creation order).
static Element * getElementByChannelNumber (int channelNumber)
 Returns Element by channel number.
static Element * getOwnerOfSubDeviceId (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 DeleteAction (const LocalAction *trigger, const ActionHandler *client, uint16_t event, uint16_t action)
static void NullifyActionsHandledBy (const ActionHandler *client)
static ActionHandlerClientgetClientListPtr ()
Protected Attributes inherited from Supla::ElementWithChannelActions
Supla::ChannelConfigState channelConfigState
uint8_t setChannelConfigAttempts = 0
ConfigTypesBitmap usedConfigTypes
ConfigTypesBitmap receivedConfigTypes
Protected Attributes inherited from Supla::Element
bool registeredElement = true
Element * nextPtr = nullptr
Static Protected Attributes inherited from Supla::Element
static Element * firstPtr = nullptr
static bool invalidatePtr = false

Member Function Documentation

◆ applyChannelConfig()

ApplyConfigResult Supla::Control::RelayRollerShutterPair::applyChannelConfig ( TSD_ChannelConfig * config,
bool local = false )
overridevirtual

Reimplemented from Supla::ElementWithChannelActions.

◆ fillChannelConfig()

void Supla::Control::RelayRollerShutterPair::fillChannelConfig ( void * channelConfig,
int * size,
uint8_t configType )
overridevirtual

Reimplemented from Supla::ElementWithChannelActions.

◆ fillSuplaChannelNewValue()

void Supla::Control::RelayRollerShutterPair::fillSuplaChannelNewValue ( TSD_SuplaChannelNewValue * value)
overridevirtual

Fills TSD_SuplaChannelNewValue based on current state.

Parameters
valuepointer to TSD_SuplaChannelNewValue which should be filled

Reimplemented from Supla::Element.

◆ getCalcfgPendingTimeoutMs()

uint32_t Supla::Control::RelayRollerShutterPair::getCalcfgPendingTimeoutMs ( TSD_DeviceCalCfgRequest * request) const
overridevirtual

Returns timeout in milliseconds for CALCFG requests that become pending.

Zero means no timeout.

Reimplemented from Supla::Element.

◆ getChannel() [1/2]

const Channel * Supla::Control::RelayRollerShutterPair::getChannel ( ) const
overridevirtual

Returns pointer to main channel.

Returns
pointer to main channel, nullptr if element has no channel

Reimplemented from Supla::Element.

◆ getChannel() [2/2]

Channel * Supla::Control::RelayRollerShutterPair::getChannel ( )
overridevirtual

Reimplemented from Supla::Element.

◆ getRemainingCountdownTimerSec()

bool Supla::Control::RelayRollerShutterPair::getRemainingCountdownTimerSec ( uint32_t * remainingSec) const
overridevirtual

Returns active countdown timer remaining time in seconds.

Parameters
remainingSecoutput pointer for remaining seconds. It is set to 0 when the countdown timer is not available or inactive.
Returns
true when remainingSec contains a valid active timer value, false otherwise.

Reimplemented from Supla::Element.

◆ getSecondaryChannel() [1/2]

const Channel * Supla::Control::RelayRollerShutterPair::getSecondaryChannel ( ) const
overridevirtual

Returns pointer to secondary channel.

Returns
pointer to secondary channel, nullptr if element has no secondary channel

Reimplemented from Supla::Element.

◆ getSecondaryChannel() [2/2]

Channel * Supla::Control::RelayRollerShutterPair::getSecondaryChannel ( )
overridevirtual

Reimplemented from Supla::Element.

◆ handleCalcfgFromServer()

int Supla::Control::RelayRollerShutterPair::handleCalcfgFromServer ( TSD_DeviceCalCfgRequest * request)
overridevirtual

Handles CALCFG requests from server.

Parameters
request
Returns
SUPLA_CALCFG_RESULT_* (see proto.h)

Reimplemented from Supla::Element.

◆ handleChannelConfig()

uint8_t Supla::Control::RelayRollerShutterPair::handleChannelConfig ( TSD_ChannelConfig * newChannelConfig,
bool local = false )
overridevirtual

Handles "set channel config" request from server.

Parameters
newChannelConfigpointer to new channel configuration
localtrue if request is local (issued by device itself), false when requests originates from server.
Returns
SUPLA_RESULTCODE_* (see proto.h)

Reimplemented from Supla::ElementWithChannelActions.

◆ handleChannelConfigFinished()

void Supla::Control::RelayRollerShutterPair::handleChannelConfigFinished ( )
overridevirtual

Handles "channel config finished" message from server.

This message informs device that server finished sending channel config for this element.

Reimplemented from Supla::ElementWithChannelActions.

◆ handleNewValueFromServer()

int32_t Supla::Control::RelayRollerShutterPair::handleNewValueFromServer ( TSD_SuplaChannelNewValue * newValue)
overridevirtual

Handles "new value" request from server.

Parameters
newValuepointer to TSD_SuplaChannelNewValue
Returns
-1 - don't send reply to server 0 - success==false 1 - success==true

Reimplemented from Supla::Element.

◆ handleSetChannelConfigResult()

void Supla::Control::RelayRollerShutterPair::handleSetChannelConfigResult ( TSDS_SetChannelConfigResult * result)
overridevirtual

Handles "set channel config" reply from server.

All types of channel config should be handled here (including weekly schedule, default config, etc).

Parameters
result

Reimplemented from Supla::ElementWithChannelActions.

◆ iterateAlways()

void Supla::Control::RelayRollerShutterPair::iterateAlways ( )
overridevirtual

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.

◆ iterateConnected()

bool Supla::Control::RelayRollerShutterPair::iterateConnected ( )
overridevirtual

Method called on each SuplaDevice iteration when device is connected and registered to Supla server or other protocol.

Returns
true when element didn't communicate with server and next element should be iterated instead. false otherwise.

Reimplemented from Supla::ElementWithChannelActions.

◆ onFunctionChange()

void Supla::Control::RelayRollerShutterPair::onFunctionChange ( uint32_t currentFunction,
uint32_t newFunction )
overridevirtual

Called when channel function changes.

Parameters
currentFunctionold function
newFunctionnew function

Reimplemented from Supla::Element.

◆ onInit()

void Supla::Control::RelayRollerShutterPair::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 Supla::Control::RelayRollerShutterPair::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.

◆ onLoadState()

void Supla::Control::RelayRollerShutterPair::onLoadState ( )
overridevirtual

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

Method called during state Storage initialization (i.e. read from EEPROM, FRAM). Called only if Storage class is configured.

Reimplemented from Supla::Element.

◆ onSaveState()

void Supla::Control::RelayRollerShutterPair::onSaveState ( )
overridevirtual

Method called periodically during SuplaDevice iteration.

It should provide state saving for this elemnet to Storage

Reimplemented from Supla::Element.

◆ onTimer()

void Supla::Control::RelayRollerShutterPair::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.

◆ purgeConfig()

void Supla::Control::RelayRollerShutterPair::purgeConfig ( )
overridevirtual

Removes all configration data related to the element from Storage::Config.

Reimplemented from Supla::ElementWithChannelActions.

◆ setAndSaveFunction()

bool Supla::Control::RelayRollerShutterPair::setAndSaveFunction ( uint32_t channelFunction)
overrideprotectedvirtual

Reimplemented from Supla::ElementWithChannelActions.


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