SensESP 2.7.2
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, String config_path="")
 
virtual void set_input (float 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< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from sensesp::Transform< C, P >
 Transform (String config_path="")
 
Transform< C, P > * connect_from (ValueProducer< P > *producer0, ValueProducer< P > *producer1=NULL, ValueProducer< P > *producer2=NULL, ValueProducer< P > *producer3=NULL, ValueProducer< P > *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< C >
virtual void set_input (C new_value, uint8_t input_channel=0)
 
void connect_from (ValueProducer< C > *producer, uint8_t input_channel=0)
 
- Public Member Functions inherited from sensesp::ValueProducer< P >
 ValueProducer ()
 
virtual const Pget () const
 
void connect_to (ValueConsumer< P > *consumer, uint8_t input_channel=0)
 
void connect_to (ValueConsumer< CT > *consumer, uint8_t input_channel=0)
 Connect a producer to a consumer of a different type.
 
Transform< P, T2 > * connect_to (Transform< P, T2 > *consumer_producer, uint8_t input_channel=0)
 
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 (P 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::Configurable
String description_ = ""
 
int sort_order_ = 1000
 
- Protected Attributes inherited from sensesp::ValueProducer< P >
P 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 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 33 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,
String  config_path = "" 
)

Definition at line 13 of file change_filter.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ get_config_schema()

String sensesp::ChangeFilter::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 48 of file change_filter.cpp.

◆ get_configuration()

void sensesp::ChangeFilter::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 33 of file change_filter.cpp.

◆ set_configuration()

bool sensesp::ChangeFilter::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 50 of file change_filter.cpp.

◆ set_input()

void sensesp::ChangeFilter::set_input ( float  new_value,
uint8_t  input_channel = 0 
)
overridevirtual

Definition at line 23 of file change_filter.cpp.

Here is the call graph for this function:

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: