![]() |
ButtonToSwitch Library for STM32 v4.1.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_STM32.h>
Public Member Functions | |
LtchMPBttn (GPIO_TypeDef *mpbttnPort, const uint16_t &mpbttnPin, const bool &pulledUp=true, const bool &typeNO=true, const unsigned long int &dbncTimeOrigSett=0, const unsigned long int &strtDelay=0) | |
Class constructor. | |
LtchMPBttn (gpioPinId_t mpbttnPinStrct, 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 trnOffASfAP class attribute flag. | |
const bool | getUnlatchPend () const |
Returns the value of the validUnlatchPending attribute. | |
const bool | getUnlatchRlsPend () const |
Returns the value of the validUnlatchReleasePending attribute. | |
bool | resetFda () |
See DbncdMPBttn::resetFda() | |
void | setTrnOffASAP (const bool &newVal) |
Sets the value of the trnOffASAP attribute flag. | |
void | setUnlatchPend (const bool &newVal) |
Sets the value of the validUnlatchPending attribute. | |
void | setUnlatchRlsPend (const bool &newVal) |
Sets the value of the validUnlatchRlsPending attribute. | |
bool | unlatch () |
Sets the values of the flags needed to unlatch a latched MPB. | |
![]() | |
DbncdDlydMPBttn () | |
Default constructor. | |
DbncdDlydMPBttn (GPIO_TypeDef *mpbttnPort, const uint16_t &mpbttnPin, const bool &pulledUp=true, const bool &typeNO=true, const unsigned long int &dbncTimeOrigSett=0, const unsigned long int &strtDelay=0) | |
Class constructor. | |
DbncdDlydMPBttn (gpioPinId_t mpbttnPinStrct, const bool &pulledUp=true, const bool &typeNO=true, const unsigned long int &dbncTimeOrigSett=0, const unsigned long int &strtDelay=0) | |
Class constructor. | |
bool | init (GPIO_TypeDef *mpbttnPort, const uint16_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(GPIO_TypeDef*, const uint16_t, const bool, const bool, const unsigned long int) | |
bool | init (gpioPinId_t mpbttnPinStrct, const bool &pulledUp=true, const bool &typeNO=true, const unsigned long int &dbncTimeOrigSett=0, const unsigned long int &strtDelay=0) |
see DbncdMPBttn::init(gpioPinId_t, const bool, const bool, const unsigned long int) | |
void | setStrtDelay (const unsigned long int &newStrtDelay) |
Sets a new value to the delay attribute. | |
![]() | |
DbncdMPBttn () | |
Default class constructor. | |
DbncdMPBttn (GPIO_TypeDef *mpbttnPort, const uint16_t &mpbttnPin, const bool &pulledUp=true, const bool &typeNO=true, const unsigned long int &dbncTimeOrigSett=0) | |
Class constructor. | |
DbncdMPBttn (gpioPinId_t mpbttnPinStrct, 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 strtDelay attribute. | |
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 (GPIO_TypeDef *mpbttnPort, const uint16_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 | init (gpioPinId_t mpbttnPinStrct, 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 () |
Restarts the software timer updating the calculation of the object internal flags. | |
bool | setDbncTime (const unsigned long int &newDbncTime) |
Sets the debounce process time. | |
void | setFnWhnTrnOffPtr (void(*newFnWhnTrnOff)()) |
Sets the function that will be called to execute every time the object enters the Off State. | |
void | setFnWhnTrnOnPtr (void(*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. | |
void | setOutputsChange (bool newOutputChange) |
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 pointer to the task to be notified by the object when its output attribute flags changes. | |
virtual void | setTaskWhileOn (const TaskHandle_t &newTaskHandle) |
Sets the handle to 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-MPB 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 | ( | GPIO_TypeDef * | mpbttnPort, |
const uint16_t & | mpbttnPin, | ||
const bool & | pulledUp = true, | ||
const bool & | typeNO = true, | ||
const unsigned long int & | dbncTimeOrigSett = 0, | ||
const unsigned long int & | strtDelay = 0 ) |
Class constructor.
LtchMPBttn::LtchMPBttn | ( | gpioPinId_t | mpbttnPinStrct, |
const bool & | pulledUp = true, | ||
const bool & | typeNO = true, | ||
const unsigned long int & | dbncTimeOrigSett = 0, | ||
const unsigned long int & | strtDelay = 0 ) |
Class constructor.
mpbttnPinStrct | GPIO port and Pin identification defined as a single gpioPinId_t parameter. |
For the rest of the parameters see DbncdMPBttn(GPIO_TypeDef*, const uint16_t, const bool, const bool, const unsigned long int)
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 trnOffASfAP class 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 validUnlatchPending attribute.
The validUnlatchPending 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 validUnlatchReleasePending attribute.
The validUnlatchReleasePending 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 flag.
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 validUnlatchPending attribute.
By setting the value of the validUnlatchPending 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 validUnlatchPending attribute |
void LtchMPBttn::setUnlatchRlsPend | ( | const bool & | newVal | ) |
Sets the value of the validUnlatchRlsPending attribute.
By setting the value of the validUnlatchPending and validUnlatchReleasePending 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 validUnlatchReleasePending 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. |