SensESP 3.1.1
Universal Signal K sensor toolkit ESP32
Loading...
Searching...
No Matches
digital_pcnt_input.h
Go to the documentation of this file.
1#ifndef SENSESP_SENSORS_DIGITAL_PCNT_INPUT_H_
2#define SENSESP_SENSORS_DIGITAL_PCNT_INPUT_H_
3
4#include <elapsedMillis.h>
5
8#include "sensesp_base_app.h"
9#if ESP_ARDUINO_VERSION_MAJOR < 3
10#warning \
11 "The Pulse Counter API is only available in ESP32 Arduino Core 3.0.0 and later"
12#else
13#include "driver/pulse_cnt.h"
14
15namespace sensesp {
16
36class DigitalInputPcntCounter : public DigitalInput, public Sensor<int> {
37 public:
38 DigitalInputPcntCounter(uint8_t pin, int pin_mode, int interrupt_type,
39 unsigned int read_delay, String config_path = "");
40
41 ~DigitalInputPcntCounter();
42
43 virtual bool to_json(JsonObject& root) override;
44 virtual bool from_json(const JsonObject& config) override;
45
46 protected:
47 unsigned int read_delay_;
48
49 private:
50 esp_err_t configurePcnt(int interrupt_type);
51 pcnt_unit_handle_t pcnt_unit_ = nullptr;
52 pcnt_channel_handle_t pcnt_channel_ = nullptr;
53
54 int interrupt_type_;
55};
56
57const String ConfigSchema(const DigitalInputPcntCounter& obj);
58
59bool ConfigRequiresRestart(const DigitalInputPcntCounter& obj);
60} // namespace sensesp
61
62#endif // ESP_ARDUINO_VERSION_MAJOR < 3
63#endif // SENSESP_SENSORS_DIGITAL_PCNT_INPUT_H_
DigitalInput is the base class for reading a digital GPIO pin.
Sensor template class for any sensor producing actual values.
Definition sensor.h:41
const String ConfigSchema(const SmartSwitchController &obj)
bool ConfigRequiresRestart(const HTTPServer &obj)