SensESP 3.0.1
Universal Signal K sensor toolkit ESP32
Loading...
Searching...
No Matches
sensesp::Hysteresis< IN, OUT > Class Template Reference

Hysteresis function. More...

#include <sensesp/transforms/hysteresis.h>

Inheritance diagram for sensesp::Hysteresis< IN, OUT >:
[legend]

Public Member Functions

 Hysteresis (IN lower_threshold, IN upper_threshold, OUT low_output, OUT high_output, String config_path="")
 
- Public Member Functions inherited from sensesp::LambdaTransform< IN, OUT, IN, IN, OUT, OUT >
 LambdaTransform (std::function< OUT(IN)> function, const String &config_path="")
 
 LambdaTransform (std::function< OUT(IN)> function, const ParamInfo *param_info, const String &config_path="")
 
 LambdaTransform (std::function< OUT(IN, IN)> function, IN param1, const ParamInfo *param_info, const String &config_path="")
 
 LambdaTransform (std::function< OUT(IN, IN, IN)> function, IN param1, IN param2, const ParamInfo *param_info, const String &config_path="")
 LambdaTransform constructor for two-parameter function.
 
 LambdaTransform (std::function< OUT(IN, IN, IN, OUT)> function, IN param1, IN param2, OUT param3, const ParamInfo *param_info, const String &config_path="")
 
 LambdaTransform (std::function< OUT(IN, IN, IN, OUT, OUT)> function, IN param1, IN param2, OUT param3, OUT param4, const ParamInfo *param_info, const String &config_path="")
 
 LambdaTransform (std::function< OUT(IN, IN, IN, OUT, OUT, bool)> function, IN param1, IN param2, OUT param3, OUT param4, bool param5, const ParamInfo *param_info, const String &config_path="")
 
 LambdaTransform (std::function< OUT(IN, IN, IN, OUT, OUT, bool, bool)> function, IN param1, IN param2, OUT param3, OUT param4, bool param5, bool param6, const ParamInfo *param_info, const String &config_path="")
 
void set (const IN &input) override
 
bool to_json (JsonObject &doc) override
 
bool from_json (const JsonObject &config) override
 
const ParamInfoget_param_info () const
 
- Public Member Functions inherited from sensesp::Transform< IN, OUT >
 Transform (String config_path="")
 
Transform< IN, OUT > * connect_from (ValueProducer< OUT > *producer0, ValueProducer< OUT > *producer1=NULL, ValueProducer< OUT > *producer2=NULL, ValueProducer< OUT > *producer3=NULL, ValueProducer< OUT > *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< IN >
virtual void set_input (const IN &new_value)
 
void connect_from (ValueProducer< IN > *producer)
 
- Public Member Functions inherited from sensesp::ValueProducer< OUT >
 ValueProducer ()
 
 ValueProducer (const OUT &initial_value)
 
virtual const OUT & get () const
 
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< OUT, 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< OUT, 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< OUT, typenameVConsumer::input_type >::value, VConsumer * >::type connect_to (VConsumer &consumer)
 
void emit (const OUT &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

- Public Types inherited from sensesp::ValueConsumer< IN >
using input_type
 
- Static Public Member Functions inherited from sensesp::TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Public Attributes inherited from sensesp::LambdaTransform< IN, OUT, IN, IN, OUT, OUT >
IN param1_
 
IN param2_
 
OUT param3_
 
OUT param4_
 
bool param5_
 
bool param6_
 
- Protected Attributes inherited from sensesp::Saveable
const String config_path_
 
- Protected Attributes inherited from sensesp::ValueProducer< OUT >
OUT output_
 

Detailed Description

template<class IN, class OUT>
class sensesp::Hysteresis< IN, OUT >

Hysteresis function.

Hysteresis is a threshold switch with a dead zone: to prevent switching back and forth at the threshold value, input has to rise above the upper threshold before being switched high, and has to decrease below the lower threshold before being switched back low.

Template Parameters
INInput variable type
OUTOutput variable type
Parameters
[in]lower_thresholdLower threshold value
[in]upper_thresholdUpper threshold value
[in]low_outputOutput value when hysteresis function output is low
[in]high_outputOutput value when hysteresis function output is high
[in]config_pathConfiguration path for the transform

Definition at line 33 of file hysteresis.h.

Constructor & Destructor Documentation

◆ Hysteresis()

template<class IN , class OUT >
sensesp::Hysteresis< IN, OUT >::Hysteresis ( IN lower_threshold,
IN upper_threshold,
OUT low_output,
OUT high_output,
String config_path = "" )
inline

Definition at line 35 of file hysteresis.h.


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