SensESP 2.7.2
Universal Signal K sensor toolkit ESP32
Loading...
Searching...
No Matches
sensesp::DebounceTemplate< T > Class Template Reference

Implements debounce code for a button or switch. More...

#include <sensesp/transforms/debounce.h>

Inheritance diagram for sensesp::DebounceTemplate< T >:
[legend]

Public Member Functions

 DebounceTemplate (int ms_min_delay=15, String config_path="")
 
virtual void set_input (T input, uint8_t input_channel=0) override
 
- Public Member Functions inherited from sensesp::SymmetricTransform< T >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from sensesp::Transform< T, T >
 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)
 
- Public Member Functions inherited from sensesp::TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from sensesp::Configurable
 Configurable (String config_path="", String description="", int sort_order=1000)
 
String get_description ()
 
void set_description (String description)
 Set the description of the Configurable.
 
int get_sort_order ()
 
void set_sort_order (int sort_order)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from sensesp::Startable
 Startable (int priority=0)
 
virtual void start ()
 
const int get_start_priority ()
 
void set_start_priority (int priority)
 
- Public Member Functions inherited from sensesp::ValueConsumer< T >
void connect_from (ValueProducer< T > *producer, uint8_t input_channel=0)
 
- Public Member Functions inherited from sensesp::ValueProducer< T >
 ValueProducer ()
 
virtual const T & get () const
 
void connect_to (ValueConsumer< T > *consumer, uint8_t input_channel=0)
 
template<typename CT >
void connect_to (ValueConsumer< CT > *consumer, uint8_t input_channel=0)
 Connect a producer to a consumer of a different type.
 
template<typename T2 >
Transform< T, T2 > * connect_to (Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)
 
template<typename TT , typename T2 >
Transform< TT, T2 > * connect_to (Transform< TT, T2 > *consumer_producer, uint8_t input_channel=0)
 Connect a producer to a transform with a different input type.
 
void emit (T new_value)
 
- Public Member Functions inherited from sensesp::Observable
 Observable ()
 
 Observable (Observable &&other)
 Move constructor.
 
void notify ()
 
void attach (std::function< void()> observer)
 

Additional Inherited Members

- Static Public Member Functions inherited from sensesp::TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from sensesp::Startable
static void start_all ()
 
- Public Attributes inherited from sensesp::Configurable
const String config_path_
 
- Protected Member Functions inherited from sensesp::Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from sensesp::Configurable
String description_ = ""
 
int sort_order_ = 1000
 
- Protected Attributes inherited from sensesp::ValueProducer< T >
output
 

Detailed Description

template<class T>
class sensesp::DebounceTemplate< 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
TThe type of value being passed through Debounce.
Parameters
ms_min_delayThe 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_pathThe path for configuring ms_min_delay with the Config UI.
See also
DigitalInputChange

Definition at line 38 of file debounce.h.

Constructor & Destructor Documentation

◆ DebounceTemplate()

template<class T >
sensesp::DebounceTemplate< T >::DebounceTemplate ( int  ms_min_delay = 15,
String  config_path = "" 
)
inline

Definition at line 40 of file debounce.h.

Here is the call graph for this function:

Member Function Documentation

◆ set_input()

template<class T >
virtual void sensesp::DebounceTemplate< T >::set_input ( new_value,
uint8_t  input_channel = 0 
)
inlineoverridevirtual

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
new_valuethe value of the input
input_channelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.

Reimplemented from sensesp::ValueConsumer< T >.

Definition at line 46 of file debounce.h.

Here is the call graph for this function:

The documentation for this class was generated from the following file: