ButtonToSwitch Library for ESP32 (Arduino) v4.4.0
A library that provides elaborated switch mechanism behavior simulation for digital signals inputs
Loading...
Searching...
No Matches
HntdTmLtchMPBttn Class Reference

Models a Hinted Timer Latch DD-MPB, a.k.a. Staircase Switch (HTiLDD-MPB). More...

#include <ButtonToSwitch_ESP32.h>

Inheritance diagram for HntdTmLtchMPBttn:
Collaboration diagram for HntdTmLtchMPBttn:

Public Member Functions

 HntdTmLtchMPBttn ()
 Default constructor.
 
 HntdTmLtchMPBttn (const int8_t &mpbttnPin, const unsigned long int &svcTime, const unsigned int &wrnngPrctg=0, const bool &pulledUp=true, const bool &typeNO=true, const unsigned long int &dbncTimeOrigSett=0, const unsigned long int &strtDelay=0)
 Class constructor.
 
virtual bool begin (const unsigned long int &pollDelayMs=_StdPollDelay)
 See DbncdMPBttn::begin(const unsigned long int)
 
void clrStatus (bool clrIsOn=true)
 see DbncdMPBttn::clrStatus(bool)
 
fncPtrType getFnWhnTrnOffPilot ()
 Returns the function that is set to execute every time the object's Pilot attribute flag enters the Off State.
 
fncPtrType getFnWhnTrnOffWrnng ()
 Returns the function that is set to execute every time the object's Warning attribute flag enters the Off State.
 
fncPtrType getFnWhnTrnOnPilot ()
 Returns the function that is set to execute every time the object's Pilot attribute flag enters the On State.
 
fncPtrType getFnWhnTrnOnWrnng ()
 Returns the function that is set to execute every time the object's Warning attribute flag enters the On State.
 
const bool getPilotOn () const
 Returns the current value of the pilotOn attribute flag.
 
const bool getWrnngOn () const
 Returns the current value of the warningOn attribute flag.
 
void setFnWhnTrnOffPilotPtr (void(*newFnWhnTrnOff)())
 Sets the function that will be called to execute every time the object's Pilot is reset.
 
void setFnWhnTrnOffWrnngPtr (void(*newFnWhnTrnOff)())
 Sets the function that will be called to execute every time the object's Warning is reset.
 
void setFnWhnTrnOnPilotPtr (void(*newFnWhnTrnOn)())
 Sets the function that will be called to execute every time the object's Pilot is set.
 
void setFnWhnTrnOnWrnngPtr (void(*newFnWhnTrnOn)())
 Sets the function that will be called to execute every time the object's Wrnng is set.
 
void setKeepPilot (const bool &newKeepPilot)
 Sets the configuration of the keepPilot service attribute.
 
bool setSrvcTime (const unsigned long int &newSvcTime)
 See TmLtchMPBttn::setSrvcTime(const unsigned long int)
 
bool setWrnngPrctg (const unsigned int &newWrnngPrctg)
 Sets the value for the percentage of service time for calculating the warningOn flag value.
 
- Public Member Functions inherited from TmLtchMPBttn
 TmLtchMPBttn ()
 Default constructor.
 
 TmLtchMPBttn (const int8_t &mpbttnPin, const unsigned long int &svcTime, const bool &pulledUp=true, const bool &typeNO=true, const unsigned long int &dbncTimeOrigSett=0, const unsigned long int &strtDelay=0)
 Class constructor.
 
void clrStatus (bool clrIsOn=true)
 see DbncdMPBttn::clrStatus(bool)
 
const unsigned long int getSrvcTime () const
 Returns the configured Service Time.
 
bool setSrvcTime (const unsigned long int &newSrvcTime)
 Sets a new value to the Service Time attribute.
 
void setTmerRstbl (const bool &newIsRstbl)
 Configures the timer for the Service Time to be reseted before it reaches unlatching time.
 
- Public Member Functions inherited from LtchMPBttn
 LtchMPBttn ()
 Default constructor.
 
 LtchMPBttn (const int8_t &mpbttnPin, const bool &pulledUp=true, const bool &typeNO=true, const unsigned long int &dbncTimeOrigSett=0, const unsigned long int &strtDelay=0)
 Class constructor.
 
void clrStatus (bool clrIsOn=true)
 See DbncdMPBttn::clrStatus(bool)
 
const bool getIsLatched () const
 Returns the value of the isLatched attribute flag, indicating the Latched or Unlatched condition of the object.
 
bool getTrnOffASAP ()
 Returns the value of the trnOffASAP attribute flag.
 
const bool getUnlatchPend () const
 Returns the value of the "Valid Unlatch Pending" attribute.
 
const bool getUnlatchRlsPend () const
 Returns the value of the "Valid Unlatch Release Pending" attribute.
 
void setTrnOffASAP (const bool &newVal)
 Sets the value of the trnOffASAP attribute.
 
void setUnlatchPend (const bool &newVal)
 Sets the value of the "Valid Unlatch Pending" attribute.
 
void setUnlatchRlsPend (const bool &newVal)
 Sets the value of the "Valid Unlatch Release Pending" attribute.
 
bool unlatch ()
 Sets the values of the flags needed to unlatch a latched MPB.
 
- Public Member Functions inherited from DbncdDlydMPBttn
 DbncdDlydMPBttn ()
 Default constructor.
 
 DbncdDlydMPBttn (const int8_t &mpbttnPin, const bool &pulledUp=true, const bool &typeNO=true, const unsigned long int &dbncTimeOrigSett=0, const unsigned long int &strtDelay=0)
 Class constructor.
 
bool init (const int8_t &mpbttnPin, const bool &pulledUp=true, const bool &typeNO=true, const unsigned long int &dbncTimeOrigSett=0, const unsigned long int &strtDelay=0)
 see DbncdMPBttn::init(const int8_t, const bool, const bool, const unsigned long int)
 
void setStrtDelay (const unsigned long int &newStrtDelay)
 Sets a new value to the "Start Delay" strtDelay attribute.
 
- Public Member Functions inherited from DbncdMPBttn
 DbncdMPBttn ()
 Default class constructor.
 
 DbncdMPBttn (const int8_t &mpbttnPin, const bool &pulledUp=true, const bool &typeNO=true, const unsigned long int &dbncTimeOrigSett=0)
 Class constructor.
 
virtual ~DbncdMPBttn ()
 Default virtual destructor.
 
void clrStatus (bool clrIsOn=true)
 Clears and resets flags, timers and counters modified through the object's signals processing.
 
void disable ()
 Disables the input signal processing, ignoring the changes of its values.
 
void enable ()
 Enables the input signal processing.
 
bool end ()
 Detaches the object from the timer that monitors the input pins, compute and updates the object's status. The timer daemon entry is deleted for the object.
 
const unsigned long int getCurDbncTime () const
 Returns the current debounce period time set for the object.
 
fncPtrType getFnWhnTrnOff ()
 Returns the function that is set to execute every time the object enters the Off State.
 
fncPtrType getFnWhnTrnOn ()
 Returns the function that is set to execute every time the object enters the On State.
 
const bool getIsEnabled () const
 Returns the value of the isEnabled attribute flag, indicating the Enabled or Disabled status of the object.
 
const bool getIsOn () const
 Returns the value of the isOn attribute flag.
 
const bool getIsOnDisabled () const
 Returns the value of the isOnDisabled attribute flag.
 
const uint32_t getOtptsSttsPkgd ()
 Returns the relevant attribute flags values for the object state encoded as a 32 bits value, required to pass current state of the object to another thread/task managing the outputs.
 
const bool getOutputsChange () const
 Returns the value of the outputsChange attribute flag.
 
unsigned long int getStrtDelay ()
 Returns the current value of the outputs change task unblocking trigger (outputsChngTskTrggr) attribute flag.
 
const TaskHandle_t getTaskToNotify () const
 Returns the task to be notified by the object when its output flags changes.
 
const TaskHandle_t getTaskWhileOn ()
 Returns the task to be run (resumed) while the object is in the On state.
 
bool init (const int8_t &mpbttnPin, const bool &pulledUp=true, const bool &typeNO=true, const unsigned long int &dbncTimeOrigSett=0)
 Initializes an object instantiated by the default constructor.
 
bool pause ()
 Pauses the software timer updating the computation of the object's internal flags value.
 
void resetDbncTime ()
 Resets the debounce process time of the object to the value used at instantiation.
 
void resetFda ()
 Resets the MPB behavior automaton to it's Initial or Start State
 
bool resume ()
 Resets the outputs change task unblocking trigger (outputsChngTskTrggr) attribute flag.
 
void setBeginDisabled (const bool &newBeginDisabled=false)
 Sets the starting isDisabled state.
 
bool setDbncTime (const unsigned long int &newDbncTime)
 Sets the debounce process time.
 
void setFnWhnTrnOffPtr (fncPtrType newFnWhnTrnOff)
 Sets the function that will be called to execute every time the object enters the Off State.
 
void setFnWhnTrnOnPtr (fncPtrType newFnWhnTrnOn)
 Sets the function that will be called to execute every time the object enters the On State.
 
void setIsOnDisabled (const bool &newIsOnDisabled)
 Sets the value of the isOnDisabled attribute flag.
 
void setOutputsChange (bool newOutputsChange)
 Sets the value of the attribute flag indicating if a change took place in any of the output attribute flags (IsOn included).
 
void setTaskToNotify (const TaskHandle_t &newTaskHandle)
 Sets the handle to the task to be notified by the object when its output attribute flags changes.
 
virtual void setTaskWhileOn (const TaskHandle_t &newTaskHandle)
 Sets the task to be run while the object is in the On state.
 

Detailed Description

Models a Hinted Timer Latch DD-MPB, a.k.a. Staircase Switch (HTiLDD-MPB).

The Staircase switch keeps the ON state since the moment the signal is stable (debouncing + delay process), and until the unlatch signal is provided by a preset timer started immediately after the MPB has passed the debounce & delay process. A warning flag might be configured to raise when the time left to keep the ON signal is close to expiration, based on a configurable percentage of the total Service Time. The time count down might be reseted by pressing the MPB before the timer expires by optionally configuring the object to do so with the provided method. A Pilot Signal attribute flag is included to emulate completely the staircase switches, that might be activated while the MPB is in Off state, by optionally configuring the object to do so with the provided method (This might be considered just a perk as it's not much more than the isOn flag negated output, but gives the advantage of freeing the designer of additional coding).

class HntdTmLtchMPBttn

Constructor & Destructor Documentation

◆ HntdTmLtchMPBttn()

HntdTmLtchMPBttn::HntdTmLtchMPBttn ( const int8_t & mpbttnPin,
const unsigned long int & svcTime,
const unsigned int & wrnngPrctg = 0,
const bool & pulledUp = true,
const bool & typeNO = true,
const unsigned long int & dbncTimeOrigSett = 0,
const unsigned long int & strtDelay = 0 )

Class constructor.

Parameters
wrnngPrctgTime before expiration of service time that the warning flag must be set. The time is expressed as a percentage of the total service time so it's a value in the 0 <= wrnngPrctg <= 100 range.

For the rest of the parameters see TmLtchMPBttn(const int8_t, const unsigned long int, const bool, const bool, const unsigned long int, const unsigned long int)

Member Function Documentation

◆ getFnWhnTrnOffPilot()

fncPtrType HntdTmLtchMPBttn::getFnWhnTrnOffPilot ( )

Returns the function that is set to execute every time the object's Pilot attribute flag enters the Off State.

The function to be executed is an attribute that might be modified by the setFnWhnTrnOffPilotPtr() method.

Returns
A function pointer to the function set to execute every time the object's Pilot is set to the Off State.
Return values
nullptrif there is no function set to execute when the object's Pilot enters the Off State.
Warning
The function code execution will become part of the list of procedures the object executes when it enters the Pilot Off State, including the modification of affected attribute flags. Making the function code too time-demanding must be handled with care, using alternative execution schemes, for example the function might resume a independent task that suspends itself at the end of its code, to let a new function calling event resume it once again.

◆ getFnWhnTrnOffWrnng()

fncPtrType HntdTmLtchMPBttn::getFnWhnTrnOffWrnng ( )

Returns the function that is set to execute every time the object's Warning attribute flag enters the Off State.

The function to be executed is an attribute that might be modified by the setFnWhnTrnOffWrnngPtr() method.

Returns
A function pointer to the function set to execute every time the object's Warning is set to the Off State.
Return values
nullptrif there is no function set to execute when the object's Warning enters the Off State.
Warning
The function code execution will become part of the list of procedures the object executes when it enters the Warning Off State, including the modification of affected attribute flags. Making the function code too time-demanding must be handled with care, using alternative execution schemes, for example the function might resume a independent task that suspends itself at the end of its code, to let a new function calling event resume it once again.

◆ getFnWhnTrnOnPilot()

fncPtrType HntdTmLtchMPBttn::getFnWhnTrnOnPilot ( )

Returns the function that is set to execute every time the object's Pilot attribute flag enters the On State.

The function to be executed is an attribute that might be modified by the setFnWhnTrnOnPilotPtr() method.

Returns
A function pointer to the function set to execute every time the object's Pilot is set to the On State.
Return values
nullptrif there is no function set to execute when the object's Pilot enters the On State.
Warning
The function code execution will become part of the list of procedures the object executes when it enters the Pilot On State, including the modification of affected attribute flags. Making the function code too time-demanding must be handled with care, using alternative execution schemes, for example the function might resume a independent task that suspends itself at the end of its code, to let a new function calling event resume it once again.

◆ getFnWhnTrnOnWrnng()

fncPtrType HntdTmLtchMPBttn::getFnWhnTrnOnWrnng ( )

Returns the function that is set to execute every time the object's Warning attribute flag enters the On State.

The function to be executed is an attribute that might be modified by the setFnWhnTrnOnWarnngPtr() method.

Returns
A function pointer to the function set to execute every time the object's Warning is set to the On State.
Return values
nullptrif there is no function set to execute when the object's Warning enters the On State.
Warning
The function code execution will become part of the list of procedures the object executes when it enters the Warning On State, including the modification of affected attribute flags. Making the function code too time-demanding must be handled with care, using alternative execution schemes, for example the function might resume a independent task that suspends itself at the end of its code, to let a new function calling event resume it once again.

◆ getPilotOn()

const bool HntdTmLtchMPBttn::getPilotOn ( ) const

Returns the current value of the pilotOn attribute flag.

The pilotOn flag will be set when the isOn attribute flag is reset (~isOn), while the keepPilot attribute is set. If the keepPilot attribute is false the pilotOn will keep reset independently of the isOn flag value.

Returns
The current value of the pilotOn flag
Return values
truethe pilotOn flag value is true
falsethe pilotOn flag value is false

◆ getWrnngOn()

const bool HntdTmLtchMPBttn::getWrnngOn ( ) const

Returns the current value of the warningOn attribute flag.

The warningOn flag will be set when the configured service time (to keep the ON signal set) is close to expiration, based on a configurable percentage of the total Service time.

Returns
The current value of the warningOn attribute flag.
Note
As there is no configuration setting to keep the warning flag from working, the way to force the flag to stay set or stay reset is by configuring the accepted limits:
  • 0: Will keep the warningOn flag always false (i.e. will turn to true 0 ms before reaching the end of Service Time).
  • 100: Will keep the warningOn flag always true (i.e. will turn to true for the 100% of the Service Time).

◆ setFnWhnTrnOffPilotPtr()

void HntdTmLtchMPBttn::setFnWhnTrnOffPilotPtr ( void(* newFnWhnTrnOff )())

Sets the function that will be called to execute every time the object's Pilot is reset.

The function to be executed must be of the form void (*newFnWhnTrnOff)(), meaning it must take no arguments and must return no value, it will be executed only once by the object (recursion must be handled with the usual precautions). When instantiated the attribute value is set to nullptr.

Parameters
newFnWhnTrnOffFunction pointer to the function intended to be called when the object's Pilot is reset. Passing nullptr as parameter deactivates the function execution mechanism.

◆ setFnWhnTrnOffWrnngPtr()

void HntdTmLtchMPBttn::setFnWhnTrnOffWrnngPtr ( void(* newFnWhnTrnOff )())

Sets the function that will be called to execute every time the object's Warning is reset.

The function to be executed must be of the form void (*newFnWhnTrnOff)(), meaning it must take no arguments and must return no value, it will be executed only once by the object (recursion must be handled with the usual precautions). When instantiated the attribute value is set to nullptr.

Parameters
newFnWhnTrnOffFunction pointer to the function intended to be called when the object's Warning is reset. Passing nullptr as parameter deactivates the function execution mechanism.

◆ setFnWhnTrnOnPilotPtr()

void HntdTmLtchMPBttn::setFnWhnTrnOnPilotPtr ( void(* newFnWhnTrnOn )())

Sets the function that will be called to execute every time the object's Pilot is set.

The function to be executed must be of the form void (*newFnWhnTrnOn)(), meaning it must take no arguments and must return no value, it will be executed only once by the object (recursion must be handled with the usual precautions). When instantiated the attribute value is set to nullptr.

Parameters
newFnWhnTrnOnfunction pointer to the function intended to be called when the object's Pilot is set. Passing nullptr as parameter deactivates the function execution mechanism.

◆ setFnWhnTrnOnWrnngPtr()

void HntdTmLtchMPBttn::setFnWhnTrnOnWrnngPtr ( void(* newFnWhnTrnOn )())

Sets the function that will be called to execute every time the object's Wrnng is set.

The function to be executed must be of the form void (*newFnWhnTrnOn)(), meaning it must take no arguments and must return no value, it will be executed only once by the object (recursion must be handled with the usual precautions). When instantiated the attribute value is set to nullptr.

Parameters
newFnWhnTrnOnfunction pointer to the function intended to be called when the object's Wrnng is set. Passing nullptr as parameter deactivates the function execution mechanism.

◆ setKeepPilot()

void HntdTmLtchMPBttn::setKeepPilot ( const bool & newKeepPilot)

Sets the configuration of the keepPilot service attribute.

Parameters
newKeepPilotThe new setting for the keepPilot service attribute.

◆ setSrvcTime()

bool HntdTmLtchMPBttn::setSrvcTime ( const unsigned long int & newSvcTime)

See TmLtchMPBttn::setSrvcTime(const unsigned long int)

Note
As the warningOn attribute flag behavior is based on a percentage of the service time setting, changing the value of that service time implies changing the time amount for the warning signal service, recalculating such time as the set percentage of the new service time.
Here is the call graph for this function:

◆ setWrnngPrctg()

bool HntdTmLtchMPBttn::setWrnngPrctg ( const unsigned int & newWrnngPrctg)

Sets the value for the percentage of service time for calculating the warningOn flag value.

The amount of time before expiration of service time that the warning flag must be set is defined as a percentage of the total service time so it's a value in the 0 <= wrnngPrctg <= 100 range.

Parameters
newWrnngPrctgThe new percentage of service time value used to calculate the time before service time expiration to set the warningOn flag.
Returns
Success changing the percentage to a new value
Return values
truethe value was within range, the new value is set
falsethe value was outside range, the value change was dismissed.