ESPHome 2026.3.0-dev
Loading...
Searching...
No Matches
ch422g.h
Go to the documentation of this file.
1#pragma once
2
4#include "esphome/core/hal.h"
6
7namespace esphome {
8namespace ch422g {
9
11 public:
12 CH422GComponent() = default;
13
15 void setup() override;
17 void loop() override;
19 bool digital_read(uint8_t pin);
21 void digital_write(uint8_t pin, bool value);
23 void pin_mode(uint8_t pin, gpio::Flags flags);
24
25 float get_setup_priority() const override;
26#ifdef USE_LOOP_PRIORITY
27 float get_loop_priority() const override;
28#endif
29 void dump_config() override;
30
31 protected:
32 bool write_reg_(uint8_t reg, uint8_t value);
33 uint8_t read_reg_(uint8_t reg);
34 bool set_mode_(uint8_t mode);
35 bool read_inputs_();
36 bool write_outputs_();
37
39 uint16_t output_bits_{0x00};
41 uint8_t pin_read_flags_ = {0x00};
43 uint8_t input_bits_ = {0x00};
45 uint8_t mode_value_{};
46};
47
49class CH422GGPIOPin : public GPIOPin {
50 public:
51 void setup() override{};
52 void pin_mode(gpio::Flags flags) override;
53 bool digital_read() override;
54 void digital_write(bool value) override;
55 size_t dump_summary(char *buffer, size_t len) const override;
56
57 void set_parent(CH422GComponent *parent) { parent_ = parent; }
58 void set_pin(uint8_t pin) { pin_ = pin; }
59 void set_inverted(bool inverted) { inverted_ = inverted; }
61
62 gpio::Flags get_flags() const override { return this->flags_; }
63
64 protected:
66 uint8_t pin_{};
67 bool inverted_{};
69};
70
71} // namespace ch422g
72} // namespace esphome
BedjetMode mode
BedJet operating mode.
uint16_t output_bits_
The mask to write as output state - 1 means HIGH, 0 means LOW.
Definition ch422g.h:39
void setup() override
Check i2c availability and setup masks.
Definition ch422g.cpp:16
float get_setup_priority() const override
Definition ch422g.cpp:125
bool set_mode_(uint8_t mode)
Definition ch422g.cpp:118
void pin_mode(uint8_t pin, gpio::Flags flags)
Helper function to set the pin mode of a pin.
Definition ch422g.cpp:43
uint8_t pin_read_flags_
Flags to check if read previously during this loop.
Definition ch422g.h:41
void loop() override
Poll for input changes periodically.
Definition ch422g.cpp:30
float get_loop_priority() const override
Definition ch422g.cpp:130
uint8_t read_reg_(uint8_t reg)
Definition ch422g.cpp:105
uint8_t mode_value_
Copy of the mode value.
Definition ch422g.h:45
bool write_reg_(uint8_t reg, uint8_t value)
Definition ch422g.cpp:93
uint8_t input_bits_
Copy of last read values.
Definition ch422g.h:43
bool digital_read(uint8_t pin)
Helper function to read the value of a pin.
Definition ch422g.cpp:55
void digital_write(uint8_t pin, bool value)
Helper function to write the value of a pin.
Definition ch422g.cpp:65
Helper class to expose a CH422G pin as a GPIO pin.
Definition ch422g.h:49
void set_parent(CH422GComponent *parent)
Definition ch422g.h:57
CH422GComponent * parent_
Definition ch422g.h:65
size_t dump_summary(char *buffer, size_t len) const override
Definition ch422g.cpp:137
void setup() override
Definition ch422g.h:51
void set_flags(gpio::Flags flags)
Definition ch422g.cpp:140
void set_inverted(bool inverted)
Definition ch422g.h:59
bool digital_read() override
Definition ch422g.cpp:134
void pin_mode(gpio::Flags flags) override
Definition ch422g.cpp:133
void digital_write(bool value) override
Definition ch422g.cpp:136
void set_pin(uint8_t pin)
Definition ch422g.h:58
gpio::Flags get_flags() const override
Definition ch422g.h:62
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:132
I2CRegister reg(uint8_t a_register)
calls the I2CRegister constructor
Definition i2c.h:152
uint16_t flags
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
std::string size_t len
Definition helpers.h:817