SensESP 2.7.2
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_input (T input, uint8_t input_channel=0) override
 
virtual void get_configuration (JsonObject &root) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from sensesp::Transform< T, float >
 Transform (String config_path="")
 
Transform< T, float > * connect_from (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *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< T >
void connect_from (ValueProducer< T > *producer, uint8_t input_channel=0)
 
- Public Member Functions inherited from sensesp::ValueProducer< T >
 ValueProducer ()
 
virtual const T & get () const
 
void connect_to (ValueConsumer< T > *consumer, uint8_t input_channel=0)
 
template<typename CT >
void connect_to (ValueConsumer< CT > *consumer, uint8_t input_channel=0)
 Connect a producer to a consumer of a different type.
 
template<typename T2 >
Transform< T, T2 > * connect_to (Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)
 
template<typename TT , typename T2 >
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 (T 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

int previous_state_ = -1
 
unsigned long start_time_
 
unsigned long duration_ = 0.
 
unsigned long duration_at_start_ = 0.
 
- Protected Attributes inherited from sensesp::Configurable
String description_ = ""
 
int sort_order_ = 1000
 
- Protected Attributes inherited from sensesp::ValueProducer< T >
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

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 31 of file time_counter.h.

Constructor & Destructor Documentation

◆ TimeCounter()

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

Definition at line 33 of file time_counter.h.

Here is the call graph for this function:

Member Function Documentation

◆ get_config_schema()

template<typename T >
virtual String sensesp::TimeCounter< T >::get_config_schema ( )
inlineoverridevirtual

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 85 of file time_counter.h.

◆ get_configuration()

template<typename T >
virtual void sensesp::TimeCounter< T >::get_configuration ( JsonObject configObject)
inlineoverridevirtual

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 70 of file time_counter.h.

◆ set_configuration()

template<typename T >
virtual bool sensesp::TimeCounter< T >::set_configuration ( const JsonObject config)
inlineoverridevirtual

Sets the current state of local member variables using the data stored in config.

Reimplemented from sensesp::Configurable.

Definition at line 74 of file time_counter.h.

◆ set_input()

template<typename T >
virtual void sensesp::TimeCounter< T >::set_input ( new_value,
uint8_t  input_channel = 0 
)
inlineoverridevirtual

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
new_valuethe value of the input
input_channelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.

Reimplemented from sensesp::ValueConsumer< T >.

Definition at line 38 of file time_counter.h.

Here is the call graph for this function:

Member Data Documentation

◆ duration_

template<typename T >
unsigned long sensesp::TimeCounter< T >::duration_ = 0.
protected

Definition at line 92 of file time_counter.h.

◆ duration_at_start_

template<typename T >
unsigned long sensesp::TimeCounter< T >::duration_at_start_ = 0.
protected

Definition at line 93 of file time_counter.h.

◆ previous_state_

template<typename T >
int sensesp::TimeCounter< T >::previous_state_ = -1
protected

Definition at line 90 of file time_counter.h.

◆ start_time_

template<typename T >
unsigned long sensesp::TimeCounter< T >::start_time_
protected

Definition at line 91 of file time_counter.h.


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