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

Outputs the moving average of the last sample_size inputs. More...

#include <sensesp/transforms/moving_average.h>

Inheritance diagram for sensesp::MovingAverage:
[legend]

Public Member Functions

 MovingAverage (int sample_size, float multiplier=1.0, String config_path="")
 
virtual void set_input (float input, uint8_t inputChannel=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)
 

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 ()
 
- Protected Attributes inherited from sensesp::Configurable
String description_ = ""
 
int sort_order_ = 1000
 
- Protected Attributes inherited from sensesp::ValueProducer< P >
P output
 

Detailed Description

Outputs the moving average of the last sample_size inputs.

Used to smooth the output of a value (signal) that has frequent variations. For example, the output of a temperature sensor may vary from 180 to 185 several times over a short period, but you just want to see the average of that. MovingAverage outputs the average of the most recent sample_size values. It also incorporates a "scale" factor, in case you want to increase or decrease your final output by a fixed percentage.

Definition at line 22 of file moving_average.h.

Constructor & Destructor Documentation

◆ MovingAverage()

sensesp::MovingAverage::MovingAverage ( int  sample_size,
float  multiplier = 1.0,
String  config_path = "" 
)
Parameters
sample_sizeThe number of most recent values you want to average for your output.
multiplierMoving average will be multiplied by multiplier before it is output - make it something other than 1. if you need to scale your output up or down by a fixed percentage.
config_pathThe path used to configure this transform in the Config UI.

Definition at line 7 of file moving_average.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ get_config_schema()

String sensesp::MovingAverage::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 49 of file moving_average.cpp.

◆ get_configuration()

void sensesp::MovingAverage::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 36 of file moving_average.cpp.

◆ set_configuration()

bool sensesp::MovingAverage::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 51 of file moving_average.cpp.

◆ set_input()

void sensesp::MovingAverage::set_input ( float  input,
uint8_t  inputChannel = 0 
)
overridevirtual

Definition at line 17 of file moving_average.cpp.

Here is the call graph for this function:

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