A float passthrough transform that will only pass that value through if it is "sufficiently different" from the last value passed through. More...
#include <sensesp/transforms/change_filter.h>
Public Member Functions | |
ChangeFilter (float min_delta=0.0, float max_delta=9999.0, int max_skips=99, const String &config_path="") | |
virtual void | set (const float &new_value) override |
virtual bool | to_json (JsonObject &root) override |
virtual bool | from_json (const JsonObject &config) override |
![]() | |
SymmetricTransform (String config_path="") | |
![]() | |
Transform (String config_path="") | |
Transform< float, float > * | connect_from (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *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 float &new_value) |
void | connect_from (ValueProducer< float > *producer) |
![]() | |
ValueProducer () | |
ValueProducer (const float &initial_value) | |
virtual const float & | get () const |
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< float, 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. | |
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< float, typenameVConsumer::input_type >::value, VConsumer * >::type | connect_to (VConsumer *consumer) |
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< float, typenameVConsumer::input_type >::value, VConsumer * >::type | connect_to (VConsumer &consumer) |
void | emit (const float &new_value) |
![]() | |
Observable () | |
Observable (Observable &&other) | |
Move constructor. | |
void | notify () |
void | attach (std::function< void()> observer) |
Protected Attributes | |
float | min_delta_ |
float | max_delta_ |
int | max_skips_ |
int | skips_ |
![]() | |
const String | config_path_ |
![]() | |
float | output_ |
Additional Inherited Members | |
![]() | |
using | input_type |
![]() | |
static const std::set< TransformBase * > & | get_transforms () |
A float passthrough transform that will only pass that value through if it is "sufficiently different" from the last value passed through.
More specifically, the absolute value of the difference between the new value and the last passed value has to be greater than or equal to the specified min_delta, and less than or equal to the specified max_delta. If the consecutive skip count ever reaches max_skips, the value will be let through regardless.
min_delta | If the change from the last passed value is less than min_delta, it will not be passed. Default = 0.0. |
max_delta | If the change from the last passed value is more than max_delta, it will not be passed. Default = 9999.0. |
max_skips | If max_skips inputs have already been skipped, the current input will be passed even if it's between min_delta and max_delta, and max_skips will be reset to 0. |
config_path | The path to configure this transform in the Config UI. |
Definition at line 34 of file change_filter.h.
sensesp::ChangeFilter::ChangeFilter | ( | float | min_delta = 0.0, |
float | max_delta = 9999.0, | ||
int | max_skips = 99, | ||
const String & | config_path = "" ) |
|
overridevirtual |
Deserializes the current object data from a JsonObject.
Reimplemented from sensesp::Serializable.
Definition at line 39 of file change_filter.cpp.
|
overridevirtual |
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< float >.
Definition at line 22 of file change_filter.cpp.
|
overridevirtual |
Serializes the current object data into a JsonObject.
Reimplemented from sensesp::Serializable.
Definition at line 32 of file change_filter.cpp.
|
protected |
Definition at line 45 of file change_filter.h.
|
protected |
Definition at line 46 of file change_filter.h.
|
protected |
Definition at line 44 of file change_filter.h.
|
protected |
Definition at line 47 of file change_filter.h.