SensESP 3.4.1-alpha
Universal Signal K sensor toolkit ESP32
Loading...
Searching...
No Matches
sensesp::DigitalInputCounter Class Reference

DigitalInputCounter counts interrupts and reports the count every read_delay ms. More...

#include <sensesp/sensors/digital_input.h>

Inheritance diagram for sensesp::DigitalInputCounter:
[legend]

Public Member Functions

 DigitalInputCounter (uint8_t pin, int pin_mode, int interrupt_type, unsigned int read_delay, String config_path="")
 
virtual ~DigitalInputCounter ()
 
virtual bool to_json (JsonObject &root) override
 
virtual bool from_json (const JsonObject &config) override
 
- Public Member Functions inherited from sensesp::DigitalInput
 DigitalInput (uint8_t pin, int pin_mode)
 
- Public Member Functions inherited from sensesp::Sensor< int >
 Sensor (String config_path)
 
- Public Member Functions inherited from sensesp::SensorConfig
 SensorConfig (const String &config_path)
 
- Public Member Functions inherited from sensesp::Observable
 Observable ()
 
 Observable (Observable &&other)
 Move constructor.
 
void notify ()
 
int attach (std::function< void()> observer)
 Attach an observer callback.
 
void detach (int id)
 Remove a previously attached observer by its ID.
 
- 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::ValueProducer< T >
 ValueProducer ()
 
 ValueProducer (const T &initial_value)
 
virtual const T & get () const
 
template<typename VConsumer >
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< T, 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.
 
template<typename VConsumer >
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< T, typenameVConsumer::input_type >::value, VConsumer * >::type connect_to (VConsumer *consumer)
 
template<typename VConsumer >
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< T, typenameVConsumer::input_type >::value, VConsumer * >::type connect_to (VConsumer &consumer)
 
void emit (const T &new_value)
 

Protected Types

enum class  LoadConfig { kNo , kYes }
 

Protected Member Functions

 DigitalInputCounter (uint8_t pin, int pin_mode, int interrupt_type, unsigned int read_delay, String config_path, std::function< void()> interrupt_handler)
 
 DigitalInputCounter (uint8_t pin, int pin_mode, int interrupt_type, unsigned int read_delay, String config_path, std::function< void()> interrupt_handler, LoadConfig load_config)
 
void register_events ()
 

Protected Attributes

unsigned int read_delay_
 
volatile unsigned int counter_ = 0
 
reactesp::RepeatEvent * repeat_event_ = nullptr
 
reactesp::ISREvent * isr_event_ = nullptr
 
- Protected Attributes inherited from sensesp::DigitalInput
uint8_t pin_
 
- Protected Attributes inherited from sensesp::Saveable
const String config_path_
 
- Protected Attributes inherited from sensesp::ValueProducer< T >
output_
 

Detailed Description

DigitalInputCounter counts interrupts and reports the count every read_delay ms.

A typical use case is to count the revolutions of something, such as an engine, to determine RPM. See /examples/rpm_counter.cpp

Parameters
pinThe GPIO pin to which the device is connected
pin_modeWill be INPUT or INPUT_PULLUP
interrupt_typeWill be RISING, FALLING, or CHANGE
read_delayHow often you want to read the pin, in ms
config_pathThe path to configuring read_delay in the Config UI

Definition at line 99 of file digital_input.h.

Member Enumeration Documentation

◆ LoadConfig

enum class sensesp::DigitalInputCounter::LoadConfig
strongprotected
Enumerator
kNo 
kYes 

Definition at line 126 of file digital_input.h.

Constructor & Destructor Documentation

◆ DigitalInputCounter() [1/3]

sensesp::DigitalInputCounter::DigitalInputCounter ( uint8_t  pin,
int  pin_mode,
int  interrupt_type,
unsigned int  read_delay,
String  config_path = "" 
)
inline

Definition at line 101 of file digital_input.h.

◆ ~DigitalInputCounter()

virtual sensesp::DigitalInputCounter::~DigitalInputCounter ( )
inlinevirtual

Definition at line 108 of file digital_input.h.

Here is the call graph for this function:

◆ DigitalInputCounter() [2/3]

sensesp::DigitalInputCounter::DigitalInputCounter ( uint8_t  pin,
int  pin_mode,
int  interrupt_type,
unsigned int  read_delay,
String  config_path,
std::function< void()>  interrupt_handler 
)
inlineprotected

Definition at line 128 of file digital_input.h.

◆ DigitalInputCounter() [3/3]

sensesp::DigitalInputCounter::DigitalInputCounter ( uint8_t  pin,
int  pin_mode,
int  interrupt_type,
unsigned int  read_delay,
String  config_path,
std::function< void()>  interrupt_handler,
LoadConfig  load_config 
)
inlineprotected

Definition at line 134 of file digital_input.h.

Here is the call graph for this function:

Member Function Documentation

◆ from_json()

bool sensesp::DigitalInputCounter::from_json ( const JsonObject &  root)
overridevirtual

Deserializes the current object data from a JsonObject.

Reimplemented from sensesp::Serializable.

Definition at line 31 of file digital_input.cpp.

◆ register_events()

void sensesp::DigitalInputCounter::register_events ( )
inlineprotected

Definition at line 150 of file digital_input.h.

Here is the call graph for this function:

◆ to_json()

bool sensesp::DigitalInputCounter::to_json ( JsonObject &  root)
overridevirtual

Serializes the current object data into a JsonObject.

Reimplemented from sensesp::Serializable.

Definition at line 26 of file digital_input.cpp.

Member Data Documentation

◆ counter_

volatile unsigned int sensesp::DigitalInputCounter::counter_ = 0
protected

Definition at line 162 of file digital_input.h.

◆ isr_event_

reactesp::ISREvent* sensesp::DigitalInputCounter::isr_event_ = nullptr
protected

Definition at line 164 of file digital_input.h.

◆ read_delay_

unsigned int sensesp::DigitalInputCounter::read_delay_
protected

Definition at line 161 of file digital_input.h.

◆ repeat_event_

reactesp::RepeatEvent* sensesp::DigitalInputCounter::repeat_event_ = nullptr
protected

Definition at line 163 of file digital_input.h.


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