ESPHome 2025.5.0
Loading...
Searching...
No Matches
nau7802.h
Go to the documentation of this file.
1#pragma once
2
7
8#include <cinttypes>
9
10namespace esphome {
11namespace nau7802 {
12
23
31
41 // Never write this to a register
43};
44
50
52 public:
53 void set_samples_per_second(NAU7802SPS sps) { this->sps_ = sps; }
54 void set_ldo_voltage(NAU7802LDO ldo) { this->ldo_ = ldo; }
55 void set_gain(NAU7802Gain gain) { this->gain_ = gain; }
56 void set_gain_calibration(float gain_calibration) { this->gain_calibration_ = gain_calibration; }
57 void set_offset_calibration(int32_t offset_calibration) { this->offset_calibration_ = offset_calibration; }
61
62 void setup() override;
63 void loop() override;
64 void dump_config() override;
65 float get_setup_priority() const override;
66 void update() override;
67
68 protected:
69 //
70 // Internal state
71 //
72 enum class CalibrationState : uint8_t {
74 OFFSET,
75 GAIN,
77
82
83 //
84 // Config values
85 //
89
90 //
91 // Internal Methods
92 //
94 void complete_setup_();
95 void write_value_(uint8_t start_reg, size_t size, int32_t value);
96 int32_t read_value_(uint8_t start_reg, size_t size);
97 bool is_data_ready_();
98 void set_calibration_failure_(bool failed);
99};
100
101template<typename... Ts>
102class NAU7802CalbrateExternalOffsetAction : public Action<Ts...>, public Parented<NAU7802Sensor> {
103 public:
104 void play(Ts... x) override { this->parent_->calibrate_external_offset(); }
105};
106
107template<typename... Ts>
108class NAU7802CalbrateInternalOffsetAction : public Action<Ts...>, public Parented<NAU7802Sensor> {
109 public:
110 void play(Ts... x) override { this->parent_->calibrate_internal_offset(); }
111};
112
113template<typename... Ts> class NAU7802CalbrateGainAction : public Action<Ts...>, public Parented<NAU7802Sensor> {
114 public:
115 void play(Ts... x) override { this->parent_->calibrate_gain(); }
116};
117
118} // namespace nau7802
119} // namespace esphome
BedjetMode mode
BedJet operating mode.
Helper class to easily give an object a parent of type T.
Definition helpers.h:538
This class simplifies creating components that periodically check a state.
Definition component.h:301
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:133
void set_samples_per_second(NAU7802SPS sps)
Definition nau7802.h:53
bool calibrate_(enum NAU7802CalibrationModes mode)
Definition nau7802.cpp:240
void set_gain_calibration(float gain_calibration)
Definition nau7802.h:56
void set_ldo_voltage(NAU7802LDO ldo)
Definition nau7802.h:54
float get_setup_priority() const override
Definition nau7802.cpp:298
void write_value_(uint8_t start_reg, size_t size, int32_t value)
Definition nau7802.cpp:218
int32_t read_value_(uint8_t start_reg, size_t size)
Definition nau7802.cpp:226
enum esphome::nau7802::NAU7802Sensor::CalibrationState INACTIVE
void set_offset_calibration(int32_t offset_calibration)
Definition nau7802.h:57
void set_calibration_failure_(bool failed)
Definition nau7802.cpp:258
void set_gain(NAU7802Gain gain)
Definition nau7802.h:55
Base-class for all sensors.
Definition sensor.h:57
AlsGain501 gain
@ NAU7802_CALIBRATE_GAIN
Definition nau7802.h:48
@ NAU7802_CALIBRATE_EXTERNAL_OFFSET
Definition nau7802.h:46
@ NAU7802_CALIBRATE_INTERNAL_OFFSET
Definition nau7802.h:47
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
uint16_t x
Definition tt21100.cpp:5