Implements debounce code for a button or switch. More...
#include <sensesp/transforms/debounce.h>
Public Member Functions | |
Debounce (int ms_min_delay=15, String config_path="") | |
virtual void | set (const T &input) override |
virtual bool | to_json (JsonObject &doc) override |
virtual bool | from_json (const JsonObject &config) override |
![]() | |
SymmetricTransform (String config_path="") | |
![]() | |
Transform (String config_path="") | |
Transform< T, T > * | connect_from (ValueProducer< T > *producer0, ValueProducer< T > *producer1=NULL, ValueProducer< T > *producer2=NULL, ValueProducer< T > *producer3=NULL, ValueProducer< T > *producer4=NULL) |
![]() | |
TransformBase (const String &config_path) | |
![]() | |
FileSystemSaveable (const String &config_path) | |
virtual bool | load () override |
Load and populate the object from a persistent storage. | |
virtual bool | save () override |
Save the object to a persistent storage. | |
virtual bool | clear () override |
Delete the data from a persistent storage. | |
bool | find_config_file (const String &config_path, String &filename) |
![]() | |
Saveable (const String &config_path) | |
virtual bool | refresh () |
Refresh the object. This may or may not access the persistent storage but is not expected to overwrite the object's state. | |
const String & | get_config_path () const |
![]() | |
![]() | |
virtual void | set_input (const T &new_value) |
void | connect_from (ValueProducer< T > *producer) |
![]() | |
ValueProducer () | |
ValueProducer (const T &initial_value) | |
virtual const T & | get () const |
template<typename VConsumer > | |
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< T, typenameVConsumer::input_type >::value, std::shared_ptr< VConsumer > >::type | connect_to (std::shared_ptr< VConsumer > consumer) |
Connect a producer to a transform with a different input type. | |
template<typename VConsumer > | |
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< T, typenameVConsumer::input_type >::value, VConsumer * >::type | connect_to (VConsumer *consumer) |
template<typename VConsumer > | |
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< T, typenameVConsumer::input_type >::value, VConsumer * >::type | connect_to (VConsumer &consumer) |
void | emit (const T &new_value) |
![]() | |
Observable () | |
Observable (Observable &&other) | |
Move constructor. | |
void | notify () |
void | attach (std::function< void()> observer) |
Protected Attributes | |
int | ms_min_delay_ |
bool | value_received_ = false |
T | debounced_value_ |
reactesp::DelayEvent * | event_ = nullptr |
![]() | |
const String | config_path_ |
![]() | |
T | output_ |
Additional Inherited Members | |
![]() | |
using | input_type = T |
![]() | |
static const std::set< TransformBase * > & | get_transforms () |
Implements debounce code for a button or switch.
It's a passthrough transform that will output a value only if it's different from the previous output, and only if it's been ms_min_delay ms since the input was received.
T | The type of value being passed through Debounce. |
ms_min_delay | The minimum amount of time that must have passed since the input was received by this Transform in order for the output to occur. If you are using this to debounce the output from DigitalInputChange , ms_min_delay should be set at least a little bit longer than DigitalInputChange::read_delay . |
DigitalInputChange::read_delay is 10 ms by default, and Debounce::ms_min_delay is 15 ms by default. If that doesn't adequately debounce your button or switch, adjust both of those values until it does.
config_path | The path for configuring ms_min_delay with the Config UI. |
Definition at line 32 of file debounce.h.
|
inline |
|
inlineoverridevirtual |
Deserializes the current object data from a JsonObject.
Reimplemented from sensesp::Serializable.
Definition at line 64 of file debounce.h.
|
inlineoverridevirtual |
Used to set an input of this consumer. It is called automatically by a ValueProducer but can also be called manually.
new_value | the value of the input |
Reimplemented from sensesp::ValueConsumer< T >.
Definition at line 39 of file debounce.h.
|
inlineoverridevirtual |
Serializes the current object data into a JsonObject.
Reimplemented from sensesp::Serializable.
Definition at line 59 of file debounce.h.
|
protected |
Definition at line 78 of file debounce.h.
|
protected |
Definition at line 79 of file debounce.h.
|
protected |
Definition at line 76 of file debounce.h.
|
protected |
Definition at line 77 of file debounce.h.