mirror of
https://github.com/Threnklyn/esphome-dev.git
synced 2026-06-01 10:38:27 +02:00
Activate owning-memory clang-tidy check (#1891)
* Activate owning-memory clang-tidy check * Lint * Lint * Fix issue with new NfcTag constructor * Update pointers for number and select * Add back the NOLINT to display buffer * Fix merge * DSMR fixes * Nextion fixes * Fix pipsolar * Fix lwip socket * Format * Change socket fix Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
@@ -20,6 +20,7 @@ CONFIG_SCHEMA = output.FLOAT_OUTPUT_SCHEMA.extend(
|
||||
|
||||
async def to_code(config):
|
||||
paren = await cg.get_variable(config[CONF_PCA9685_ID])
|
||||
rhs = paren.create_channel(config[CONF_CHANNEL])
|
||||
var = cg.Pvariable(config[CONF_ID], rhs)
|
||||
var = cg.new_Pvariable(config[CONF_ID])
|
||||
cg.add(var.set_channel(config[CONF_CHANNEL]))
|
||||
cg.add(paren.register_channel(var))
|
||||
await output.register_output(var, config)
|
||||
|
||||
@@ -123,11 +123,11 @@ void PCA9685Output::loop() {
|
||||
this->update_ = false;
|
||||
}
|
||||
|
||||
PCA9685Channel *PCA9685Output::create_channel(uint8_t channel) {
|
||||
this->min_channel_ = std::min(this->min_channel_, channel);
|
||||
this->max_channel_ = std::max(this->max_channel_, channel);
|
||||
auto *c = new PCA9685Channel(this, channel);
|
||||
return c;
|
||||
void PCA9685Output::register_channel(PCA9685Channel *channel) {
|
||||
auto c = channel->channel_;
|
||||
this->min_channel_ = std::min(this->min_channel_, c);
|
||||
this->max_channel_ = std::max(this->max_channel_, c);
|
||||
channel->set_parent(this);
|
||||
}
|
||||
|
||||
void PCA9685Channel::write_state(float state) {
|
||||
|
||||
@@ -20,14 +20,15 @@ extern const uint8_t PCA9685_MODE_OUTNE_LOW;
|
||||
|
||||
class PCA9685Output;
|
||||
|
||||
class PCA9685Channel : public output::FloatOutput {
|
||||
class PCA9685Channel : public output::FloatOutput, public Parented<PCA9685Output> {
|
||||
public:
|
||||
PCA9685Channel(PCA9685Output *parent, uint8_t channel) : parent_(parent), channel_(channel) {}
|
||||
void set_channel(uint8_t channel) { channel_ = channel; }
|
||||
|
||||
protected:
|
||||
friend class PCA9685Output;
|
||||
|
||||
void write_state(float state) override;
|
||||
|
||||
PCA9685Output *parent_;
|
||||
uint8_t channel_;
|
||||
};
|
||||
|
||||
@@ -37,7 +38,7 @@ class PCA9685Output : public Component, public i2c::I2CDevice {
|
||||
PCA9685Output(float frequency, uint8_t mode = PCA9685_MODE_OUTPUT_ONACK | PCA9685_MODE_OUTPUT_TOTEM_POLE)
|
||||
: frequency_(frequency), mode_(mode) {}
|
||||
|
||||
PCA9685Channel *create_channel(uint8_t channel);
|
||||
void register_channel(PCA9685Channel *channel);
|
||||
|
||||
void setup() override;
|
||||
void dump_config() override;
|
||||
|
||||
Reference in New Issue
Block a user