SensESP 2.7.2
Universal Signal K sensor toolkit ESP32
Loading...
Searching...
No Matches
sensesp::PressRepeater Class Reference

A transform that takes boolean inputs and adds button behaviors familiar to many device end users. More...

#include <sensesp/transforms/press_repeater.h>

Inheritance diagram for sensesp::PressRepeater:
[legend]

Public Member Functions

 PressRepeater (String config_path="", int integer_false=0, int repeat_start_interval=1500, int repeat_interval=250)
 
virtual void start () override
 
virtual void set_input (bool new_value, uint8_t input_channel=0) override
 
virtual void set_input (int new_value, uint8_t input_channel=0) override
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () 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)
 
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)
 
- Public Member Functions inherited from sensesp::ValueConsumer< int >
void connect_from (ValueProducer< int > *producer, uint8_t input_channel=0)
 

Protected Attributes

int integer_false_
 
int repeat_start_interval_
 
int repeat_interval_
 
elapsedMillis last_value_sent_
 
bool pushed_
 
bool repeating_
 
- Protected Attributes inherited from sensesp::Configurable
String description_ = ""
 
int sort_order_ = 1000
 
- Protected Attributes inherited from sensesp::ValueProducer< T >
output
 

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 ()
 

Detailed Description

A transform that takes boolean inputs and adds button behaviors familiar to many device end users.

It emits a value only when the state of the input changes (i.e. when the input changes from TRUE to FALSE, and vice versa). In addition, if the input remains TRUE longer than repeat_start_interval milliseconds, it will emit TRUE once again, and then again every repeat_interval milliseconds until the input returns to FALSE.

An example use case would be a DigitalInput connected to a button that represents the "Volume Up" or "Volume Down" of a sound system.

As a convenience for wiring up to DigitalInputValue and other producers that emit integers, PressRepeater can also consume integer values. As long as the integer value coming in does not match integer_false, PressRepeater will act as if TRUE was passed to it.

Parameters
config_pathThe path to configure this transform in Config UI
integer_falseWhatever integer value (of your input) you want to be the same as boolean "false". Default is 0.
repeat_start_intervalHow long the input must be TRUE before the first repeated output, in ms. Default is 1500.
repeat_intervalHow often to repeat the repeated output, in ms. The default is 250.

Definition at line 41 of file press_repeater.h.

Constructor & Destructor Documentation

◆ PressRepeater()

sensesp::PressRepeater::PressRepeater ( String  config_path = "",
int  integer_false = 0,
int  repeat_start_interval = 1500,
int  repeat_interval = 250 
)

Definition at line 5 of file press_repeater.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ get_config_schema()

String sensesp::PressRepeater::get_config_schema ( )
overridevirtual

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org

Reimplemented from sensesp::Configurable.

Definition at line 66 of file press_repeater.cpp.

◆ get_configuration()

void sensesp::PressRepeater::get_configuration ( JsonObject configObject)
overridevirtual

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonDocument::as<JsonObject>() and returned.

Reimplemented from sensesp::Configurable.

Definition at line 53 of file press_repeater.cpp.

◆ set_configuration()

bool sensesp::PressRepeater::set_configuration ( const JsonObject config)
overridevirtual

Sets the current state of local member variables using the data stored in config.

Reimplemented from sensesp::Configurable.

Definition at line 68 of file press_repeater.cpp.

◆ set_input() [1/2]

void sensesp::PressRepeater::set_input ( bool  new_value,
uint8_t  input_channel = 0 
)
overridevirtual

Definition at line 40 of file press_repeater.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_input() [2/2]

void sensesp::PressRepeater::set_input ( int  new_value,
uint8_t  input_channel = 0 
)
overridevirtual

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< int >.

Definition at line 36 of file press_repeater.cpp.

Here is the call graph for this function:

◆ start()

void sensesp::PressRepeater::start ( )
overridevirtual

Called during the initialization process. Override this method to add runtime initialization code to your class

Reimplemented from sensesp::Startable.

Definition at line 16 of file press_repeater.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ integer_false_

int sensesp::PressRepeater::integer_false_
protected

Definition at line 56 of file press_repeater.h.

◆ last_value_sent_

elapsedMillis sensesp::PressRepeater::last_value_sent_
protected

Definition at line 59 of file press_repeater.h.

◆ pushed_

bool sensesp::PressRepeater::pushed_
protected

Definition at line 60 of file press_repeater.h.

◆ repeat_interval_

int sensesp::PressRepeater::repeat_interval_
protected

Definition at line 58 of file press_repeater.h.

◆ repeat_start_interval_

int sensesp::PressRepeater::repeat_start_interval_
protected

Definition at line 57 of file press_repeater.h.

◆ repeating_

bool sensesp::PressRepeater::repeating_
protected

Definition at line 61 of file press_repeater.h.


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