[multiple] Fix channel/pin range validation and widen channel types (#15529)

This commit is contained in:
Jonathan Swoboda
2026-04-07 18:37:17 -04:00
committed by GitHub
parent 14bcdfe700
commit aad898503d
12 changed files with 17 additions and 17 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ CONFIG_SCHEMA = output.FLOAT_OUTPUT_SCHEMA.extend(
{
cv.GenerateID(CONF_BP1658CJ_ID): cv.use_id(BP1658CJ),
cv.Required(CONF_ID): cv.declare_id(Channel),
cv.Required(CONF_CHANNEL): cv.int_range(min=0, max=65535),
cv.Required(CONF_CHANNEL): cv.int_range(min=0, max=4),
}
).extend(cv.COMPONENT_SCHEMA)
@@ -35,7 +35,7 @@ CONFIG_SCHEMA = (
.extend(
{
cv.GenerateID(CONF_MCP3008_ID): cv.use_id(MCP3008),
cv.Required(CONF_NUMBER): cv.int_,
cv.Required(CONF_NUMBER): cv.int_range(min=0, max=7),
cv.Optional(CONF_REFERENCE_VOLTAGE, default="3.3V"): cv.voltage,
}
)
+2 -2
View File
@@ -81,9 +81,9 @@ void MY9231OutputComponent::loop() {
}
this->update_ = false;
}
void MY9231OutputComponent::set_channel_value_(uint8_t channel, uint16_t value) {
void MY9231OutputComponent::set_channel_value_(uint16_t channel, uint16_t value) {
ESP_LOGV(TAG, "set channels %u to %u", channel, value);
uint8_t index = this->num_channels_ - channel - 1;
uint16_t index = this->num_channels_ - channel - 1;
if (this->pwm_amounts_[index] != value) {
this->update_ = true;
}
+3 -3
View File
@@ -30,7 +30,7 @@ class MY9231OutputComponent : public Component {
class Channel : public output::FloatOutput {
public:
void set_parent(MY9231OutputComponent *parent) { parent_ = parent; }
void set_channel(uint8_t channel) { channel_ = channel; }
void set_channel(uint16_t channel) { channel_ = channel; }
protected:
void write_state(float state) override {
@@ -39,13 +39,13 @@ class MY9231OutputComponent : public Component {
}
MY9231OutputComponent *parent_;
uint8_t channel_;
uint16_t channel_;
};
protected:
uint16_t get_max_amount_() const { return (uint32_t(1) << this->bit_depth_) - 1; }
void set_channel_value_(uint8_t channel, uint16_t value);
void set_channel_value_(uint16_t channel, uint16_t value);
void init_chips_(uint8_t command);
void write_word_(uint16_t value, uint8_t bits);
void send_di_pulses_(uint8_t count);
+1 -1
View File
@@ -14,7 +14,7 @@ CONFIG_SCHEMA = output.FLOAT_OUTPUT_SCHEMA.extend(
{
cv.GenerateID(CONF_SM16716_ID): cv.use_id(SM16716),
cv.Required(CONF_ID): cv.declare_id(Channel),
cv.Required(CONF_CHANNEL): cv.int_range(min=0, max=65535),
cv.Required(CONF_CHANNEL): cv.int_range(min=0, max=254),
}
).extend(cv.COMPONENT_SCHEMA)
+1 -1
View File
@@ -15,7 +15,7 @@ CONFIG_SCHEMA = output.FLOAT_OUTPUT_SCHEMA.extend(
{
cv.GenerateID(CONF_SM2135_ID): cv.use_id(SM2135),
cv.Required(CONF_ID): cv.declare_id(Channel),
cv.Required(CONF_CHANNEL): cv.int_range(min=0, max=65535),
cv.Required(CONF_CHANNEL): cv.int_range(min=0, max=4),
}
).extend(cv.COMPONENT_SCHEMA)
+1 -1
View File
@@ -15,7 +15,7 @@ CONFIG_SCHEMA = output.FLOAT_OUTPUT_SCHEMA.extend(
{
cv.GenerateID(CONF_SM2235_ID): cv.use_id(SM2235),
cv.Required(CONF_ID): cv.declare_id(Channel),
cv.Required(CONF_CHANNEL): cv.int_range(min=0, max=65535),
cv.Required(CONF_CHANNEL): cv.int_range(min=0, max=4),
}
).extend(cv.COMPONENT_SCHEMA)
+1 -1
View File
@@ -15,7 +15,7 @@ CONFIG_SCHEMA = output.FLOAT_OUTPUT_SCHEMA.extend(
{
cv.GenerateID(CONF_SM2335_ID): cv.use_id(SM2335),
cv.Required(CONF_ID): cv.declare_id(Channel),
cv.Required(CONF_CHANNEL): cv.int_range(min=0, max=65535),
cv.Required(CONF_CHANNEL): cv.int_range(min=0, max=4),
}
).extend(cv.COMPONENT_SCHEMA)
@@ -16,7 +16,7 @@ CONFIG_SCHEMA = output.FLOAT_OUTPUT_SCHEMA.extend(
{
cv.GenerateID(CONF_TLC5947_ID): cv.use_id(TLC5947),
cv.Required(CONF_ID): cv.declare_id(TLC5947Channel),
cv.Required(CONF_CHANNEL): cv.int_range(min=0, max=65535),
cv.Required(CONF_CHANNEL): cv.uint16_t,
}
).extend(cv.COMPONENT_SCHEMA)
@@ -11,11 +11,11 @@ namespace tlc5947 {
class TLC5947Channel : public output::FloatOutput, public Parented<TLC5947> {
public:
void set_channel(uint8_t channel) { this->channel_ = channel; }
void set_channel(uint16_t channel) { this->channel_ = channel; }
protected:
void write_state(float state) override;
uint8_t channel_;
uint16_t channel_;
};
} // namespace tlc5947
@@ -16,7 +16,7 @@ CONFIG_SCHEMA = output.FLOAT_OUTPUT_SCHEMA.extend(
{
cv.GenerateID(CONF_TLC5971_ID): cv.use_id(TLC5971),
cv.Required(CONF_ID): cv.declare_id(TLC5971Channel),
cv.Required(CONF_CHANNEL): cv.int_range(min=0, max=65535),
cv.Required(CONF_CHANNEL): cv.uint16_t,
}
).extend(cv.COMPONENT_SCHEMA)
@@ -11,11 +11,11 @@ namespace tlc5971 {
class TLC5971Channel : public output::FloatOutput, public Parented<TLC5971> {
public:
void set_channel(uint8_t channel) { this->channel_ = channel; }
void set_channel(uint16_t channel) { this->channel_ = channel; }
protected:
void write_state(float state) override;
uint8_t channel_;
uint16_t channel_;
};
} // namespace tlc5971