SensESP 3.0.1
Universal Signal K sensor toolkit ESP32
Loading...
Searching...
No Matches
sensesp::TimeCounter< T > Class Template Reference

A transform that outputs the duration of the input value being true or non-null. More...

#include <sensesp/transforms/time_counter.h>

Inheritance diagram for sensesp::TimeCounter< T >:
[legend]

Public Member Functions

 TimeCounter (String config_path)
 
virtual void set (const T &input) override
 
virtual bool to_json (JsonObject &root) override
 
virtual bool from_json (const JsonObject &config) override
 
- Public Member Functions inherited from sensesp::Transform< T, double >
 Transform (String config_path="")
 
Transform< T, double > * connect_from (ValueProducer< double > *producer0, ValueProducer< double > *producer1=NULL, ValueProducer< double > *producer2=NULL, ValueProducer< double > *producer3=NULL, ValueProducer< double > *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< T >
virtual void set_input (const T &new_value)
 
void connect_from (ValueProducer< T > *producer)
 
- Public Member Functions inherited from sensesp::ValueProducer< double >
 ValueProducer ()
 
 ValueProducer (const double &initial_value)
 
virtual const double & get () const
 
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< double, 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< double, 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< double, typenameVConsumer::input_type >::value, VConsumer * >::type connect_to (VConsumer &consumer)
 
void emit (const double &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

bool initialized_ = false
 
bool previous_state_ = false
 
uint64_t start_time_ms_
 
uint64_t duration_ms_ = 0
 
uint64_t duration_at_start_ms_ = 0
 
- Protected Attributes inherited from sensesp::Saveable
const String config_path_
 
- Protected Attributes inherited from sensesp::ValueProducer< double >
double output_
 

Additional Inherited Members

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

Detailed Description

template<typename T>
class sensesp::TimeCounter< T >

A transform that outputs the duration of the input value being true or non-null.

The main use case for this transform is to measure the total engine hours in a persistent way. The value is stored in the flash drive whenever the input state changes (the engine is turned on or off).

Template Parameters
TThe type of the input value. Must be castable to a boolean.

Definition at line 22 of file time_counter.h.

Constructor & Destructor Documentation

◆ TimeCounter()

template<typename T >
sensesp::TimeCounter< T >::TimeCounter ( String config_path)
inline

Definition at line 24 of file time_counter.h.

Here is the call graph for this function:

Member Function Documentation

◆ from_json()

template<typename T >
virtual bool sensesp::TimeCounter< T >::from_json ( const JsonObject & root)
inlineoverridevirtual

Deserializes the current object data from a JsonObject.

Reimplemented from sensesp::Serializable.

Definition at line 68 of file time_counter.h.

◆ set()

template<typename T >
virtual void sensesp::TimeCounter< T >::set ( const T & new_value)
inlineoverridevirtual

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< T >.

Definition at line 28 of file time_counter.h.

Here is the call graph for this function:

◆ to_json()

template<typename T >
virtual bool sensesp::TimeCounter< T >::to_json ( JsonObject & root)
inlineoverridevirtual

Serializes the current object data into a JsonObject.

Reimplemented from sensesp::Serializable.

Definition at line 63 of file time_counter.h.

Member Data Documentation

◆ duration_at_start_ms_

template<typename T >
uint64_t sensesp::TimeCounter< T >::duration_at_start_ms_ = 0
protected

Definition at line 91 of file time_counter.h.

◆ duration_ms_

template<typename T >
uint64_t sensesp::TimeCounter< T >::duration_ms_ = 0
protected

Definition at line 90 of file time_counter.h.

◆ initialized_

template<typename T >
bool sensesp::TimeCounter< T >::initialized_ = false
protected

Definition at line 87 of file time_counter.h.

◆ previous_state_

template<typename T >
bool sensesp::TimeCounter< T >::previous_state_ = false
protected

Definition at line 88 of file time_counter.h.

◆ start_time_ms_

template<typename T >
uint64_t sensesp::TimeCounter< T >::start_time_ms_
protected

Definition at line 89 of file time_counter.h.


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