|
| | 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) |
| |
template<class T>
class sensesp::Debounce< T >
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.
- Template Parameters
-
| T | The type of value being passed through Debounce. |
- Parameters
-
| 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.
- Parameters
-
| config_path | The path for configuring ms_min_delay with the Config UI. |
- See also
- DigitalInputChange
Definition at line 32 of file debounce.h.