![]() |
ButtonToSwitch Library for ESP32 (Arduino) v4.4.0
A library that provides elaborated switch mechanism behavior simulation for digital signals inputs
|
Abstract class, base to model Latched Debounced Delayed MPBs (LDD-MPB). More...
#include <ButtonToSwitch_ESP32.h>
Public Member Functions | |
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. | |
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) | |
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. | |
![]() | |
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. | |
![]() | |
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. | |
Abstract class, base to model Latched Debounced Delayed MPBs (LDD-MPB).
Latched DD-MPBs are MPBs whose distinctive characteristic is that implement switches that keep the ON state since the moment the input signal is stable (debouncing + Delay process), and keeps the ON state after the MPB is released and until an event un-latches them, setting them free to move to the Off State. The un-latching mechanisms include but are not limited to: same MPB presses, timers, other MPB presses, other GPIO external un-latch signals or the use of the public method unlatch(). The different un-latching events defines the sub-classes of the LDD-MPB class.
LtchMPBttn::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.
const bool LtchMPBttn::getIsLatched | ( | ) | const |
Returns the value of the isLatched attribute flag, indicating the Latched or Unlatched condition of the object.
The isLatched flag is automatically updated periodically by the timer that calculates the object state.
true | the object is in Latched condition. |
false | The object is in Unlatched condition. |
bool LtchMPBttn::getTrnOffASAP | ( | ) |
Returns the value of the trnOffASAP attribute flag.
As described in the class characteristics the unlatching process comprises two stages, Validated Unlatch Signal and Validates unlatch Release Signal, that might be generated simultaneously or separated in time. The trnOffASAP attribute flag sets the behavior of the MPB in the second case.
const bool LtchMPBttn::getUnlatchPend | ( | ) | const |
Returns the value of the "Valid Unlatch Pending" attribute.
The "Valid Unlatch Pending" holds the existence of a still to be processed confirmed unlatch signal. Getting it's current value makes possible taking actions before the unlatch process is started or even discard it completely by using the setUnlatchPend(const bool) method.
const bool LtchMPBttn::getUnlatchRlsPend | ( | ) | const |
Returns the value of the "Valid Unlatch Release Pending" attribute.
The "Valid Unlatch Release Pending" holds the existence of a still to be processed confirmed unlatch released signal. Getting it's current value makes possible taking actions before the unlatch process ends or even discard it completely by using the setUnlatchRlsPend(const bool) method.
void LtchMPBttn::setTrnOffASAP | ( | const bool & | newVal | ) |
Sets the value of the trnOffASAP attribute.
As explained in the class description, to accommodate to different sources of the unlatch signal, the unlatching process has been splitted in two steps:
newVal | New value for the trnOffASAP attribute |
void LtchMPBttn::setUnlatchPend | ( | const bool & | newVal | ) |
Sets the value of the "Valid Unlatch Pending" attribute.
By setting the value of the "Valid Unlatch Pending" it's possible to modify the current MPB status by generating an unlatch signal or by canceling an existent unlatch signal.
newVal | New value for the "Valid Unlatch Pending" attribute |
void LtchMPBttn::setUnlatchRlsPend | ( | const bool & | newVal | ) |
Sets the value of the "Valid Unlatch Release Pending" attribute.
By setting the value of the "Valid Unlatch Pending" and "Valid Unlatch Release Pending" flags it's possible to modify the current MPB status by generating an unlatch signal or by canceling an existent unlatch signal.
newVal | New value for the "Valid Unlatch Release Pending" attribute |
bool LtchMPBttn::unlatch | ( | ) |
Sets the values of the flags needed to unlatch a latched MPB.
By setting the values of the validUnlatchPending and validUnlatchReleasePending flags it's possible to modify the current MPB status by generating an unlatch signal.
true | the object was latched and the unlatch flags were set. |
false | the object was not latched, no unlatch flags were set. |