SensESP 3.0.1
Universal Signal K sensor toolkit ESP32
|
Throttle the input rate. More...
#include <sensesp/transforms/throttle.h>
Public Member Functions | |
Throttle (long min_interval) | |
void | set (const T &input) 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 (const String &config_path) | |
Public Member Functions inherited from sensesp::FileSystemSaveable | |
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) |
Public Member Functions inherited from sensesp::Saveable | |
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 |
Public Member Functions inherited from sensesp::Serializable | |
virtual bool | to_json (JsonObject &root) |
virtual bool | from_json (const JsonObject &root) |
Public Member Functions inherited from sensesp::ValueConsumer< T > | |
virtual void | set_input (const T &new_value) |
void | connect_from (ValueProducer< T > *producer) |
Public Member Functions inherited from sensesp::ValueProducer< T > | |
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) |
Public Member Functions inherited from sensesp::Observable | |
Observable () | |
Observable (Observable &&other) | |
Move constructor. | |
void | notify () |
void | attach (std::function< void()> observer) |
Protected Attributes | |
long | min_interval_ |
elapsedMillis | age_ = LONG_MAX |
Protected Attributes inherited from sensesp::Saveable | |
const String | config_path_ |
Protected Attributes inherited from sensesp::ValueProducer< T > | |
T | output_ |
Additional Inherited Members | |
Public Types inherited from sensesp::ValueConsumer< T > | |
using | input_type = T |
Static Public Member Functions inherited from sensesp::TransformBase | |
static const std::set< TransformBase * > & | get_transforms () |
Throttle the input rate.
Make sure that a frequently changing value is only reported at a specified minimum interval. If, for example, the input value changes every 100ms, but you only want to process it every 1000ms, you can use this transform. It does not average or buffer any values, it just throws away values that are too frequent.
In many cases, you might want to consider the moving_average
transform instead of this one. The moving_average
transform will smooth out the input values, while this one will only emit the last value.
min_interval | Minimum time, in ms, before a new value is emitted again. |
Definition at line 29 of file throttle.h.
|
inline |
Definition at line 31 of file throttle.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 34 of file throttle.h.
|
protected |
Definition at line 44 of file throttle.h.
|
protected |
Definition at line 43 of file throttle.h.