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

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>

Inheritance diagram for sensesp::ChangeFilter:
[legend]

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
 
- Public Member Functions inherited from sensesp::SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from sensesp::Transform< float, float >
 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)
 
- 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
- Public Member Functions inherited from sensesp::ValueConsumer< float >
virtual void set_input (const float &new_value)
 
void connect_from (ValueProducer< float > *producer)
 
- Public Member Functions inherited from sensesp::ValueProducer< float >
 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)
 
- Public Member Functions inherited from sensesp::Observable
 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_
 
- Protected Attributes inherited from sensesp::Saveable
const String config_path_
 
- Protected Attributes inherited from sensesp::ValueProducer< float >
float output_
 

Additional Inherited Members

- Public Types inherited from sensesp::ValueConsumer< float >
using input_type
 
- Static Public Member Functions inherited from sensesp::TransformBase
static const std::set< TransformBase * > & get_transforms ()
 

Detailed Description

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.

Parameters
min_deltaIf the change from the last passed value is less than min_delta, it will not be passed. Default = 0.0.
max_deltaIf the change from the last passed value is more than max_delta, it will not be passed. Default = 9999.0.
max_skipsIf 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_pathThe path to configure this transform in the Config UI.

Definition at line 34 of file change_filter.h.

Constructor & Destructor Documentation

◆ ChangeFilter()

sensesp::ChangeFilter::ChangeFilter ( float min_delta = 0.0,
float max_delta = 9999.0,
int max_skips = 99,
const String & config_path = "" )

Definition at line 12 of file change_filter.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ from_json()

bool sensesp::ChangeFilter::from_json ( const JsonObject & root)
overridevirtual

Deserializes the current object data from a JsonObject.

Reimplemented from sensesp::Serializable.

Definition at line 39 of file change_filter.cpp.

◆ set()

void sensesp::ChangeFilter::set ( const float & new_value)
overridevirtual

Used to set an input of this consumer. It is called automatically by a ValueProducer but can also be called manually.

Parameters
new_valuethe value of the input

Reimplemented from sensesp::ValueConsumer< float >.

Definition at line 22 of file change_filter.cpp.

Here is the call graph for this function:

◆ to_json()

bool sensesp::ChangeFilter::to_json ( JsonObject & root)
overridevirtual

Serializes the current object data into a JsonObject.

Reimplemented from sensesp::Serializable.

Definition at line 32 of file change_filter.cpp.

Member Data Documentation

◆ max_delta_

float sensesp::ChangeFilter::max_delta_
protected

Definition at line 45 of file change_filter.h.

◆ max_skips_

int sensesp::ChangeFilter::max_skips_
protected

Definition at line 46 of file change_filter.h.

◆ min_delta_

float sensesp::ChangeFilter::min_delta_
protected

Definition at line 44 of file change_filter.h.

◆ skips_

int sensesp::ChangeFilter::skips_
protected

Definition at line 47 of file change_filter.h.


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