|
| | CurveInterpolator (std::set< Sample > *defaults=NULL, const String &config_path="") |
| | Construct a new CurveInterpolator object.
|
| |
| void | set (const float &input) override |
| |
| CurveInterpolator * | set_input_title (String input_title) |
| |
| CurveInterpolator * | set_output_title (String output_title) |
| |
| virtual bool | to_json (JsonObject &doc) override |
| |
| virtual bool | from_json (const JsonObject &doc) override |
| |
| void | clear_samples () |
| |
| void | add_sample (const Sample &new_sample) |
| |
| const std::set< Sample > & | get_samples () const |
| |
| | SymmetricTransform (String config_path="") |
| |
| | 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) |
| |
| 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) |
| |
| | 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) |
| |
Implement a piecewise linear interpolation transform.
Piecewise linear functions are defined by a collection of x,y pairs, in which the x values are monotonically increasing. The y values are the corresponding values of the function at the x values. The interpolator will linearly interpolate between the y values to produce a value for any x value.
As a practical example, consider the following samples:
At different input values, the following happens:
- At x = 0, the interpolator will return 0.
- At x = 0.5, the interpolator will still return 0 because both adjacent samples have y = 0.
- At x = 1.4, the adjacent outputs are 0 and 1, so the interpolator will return 0.4.
- At x = 2.5, the interpolator will return 1.0 because the adjacent outputs are both 1.
It can be used e.g. for non-linear analog gauges such as temperature gauges and oil pressure gauges, which get their input from analog sensors that are variable resistors.
Definition at line 39 of file curveinterpolator.h.