mirror of
https://github.com/esphome/esphome.git
synced 2025-09-06 13:22:19 +01:00
fix: refactor available_outputs handling in DynamicLamp to use add_available_output method
This commit is contained in:
@@ -18,5 +18,6 @@ CONFIG_SCHEMA = cv.Schema({
|
|||||||
async def to_code(config):
|
async def to_code(config):
|
||||||
var = cg.new_Pvariable(config[CONF_ID])
|
var = cg.new_Pvariable(config[CONF_ID])
|
||||||
await cg.register_component(var, config)
|
await cg.register_component(var, config)
|
||||||
cg.add(var.set_available_outputs(config[CONF_AVAILABLE_OUTPUTS]))
|
for outputPointer in config.get(CONF_AVAILABLE_OUTPUTS):
|
||||||
|
cg.add(var.add_available_output(outputPointer))
|
||||||
cg.add(var.set_save_mode(config[CONF_SAVE_MODE]))
|
cg.add(var.set_save_mode(config[CONF_SAVE_MODE]))
|
||||||
|
@@ -93,39 +93,18 @@ void DynamicLamp::set_save_mode(uint8_t save_mode) {
|
|||||||
this->save_mode_ = save_mode;
|
this->save_mode_ = save_mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DynamicLamp::set_available_outputs(std::list<*FloatOutput> output_list) {
|
void DynamicLamp::add_available_output(FloatOutput &output) {
|
||||||
uint8_t counter = 0;
|
uint8_t counter = 0;
|
||||||
/*
|
while (this->available_outputs_[counter].active) {
|
||||||
std::vector<std::string> v;
|
|
||||||
|
|
||||||
char * token = strtok (&output_list[0],",");
|
|
||||||
while (token != NULL)
|
|
||||||
{
|
|
||||||
v.push_back(token);
|
|
||||||
token = strtok (NULL, ",");
|
|
||||||
}
|
|
||||||
for ( std::string s : v )
|
|
||||||
{
|
|
||||||
this->available_outputs_[counter] = LinkedOutput{
|
|
||||||
true,
|
|
||||||
static_cast<std::string>(this->trim_(s)),
|
|
||||||
counter,
|
|
||||||
0, 0, 1.0, false
|
|
||||||
};
|
|
||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
std::list<*FloatOutput>::iterator output_it;
|
|
||||||
for (output_it = data.begin(); output_it != data.end(); ++output_it){
|
|
||||||
this->available_outputs_[counter] = LinkedOutput{
|
this->available_outputs_[counter] = LinkedOutput{
|
||||||
true,
|
true,
|
||||||
static_cast<std::string>(this->trim_(output_it.id)),
|
output,
|
||||||
counter,
|
counter,
|
||||||
0, 0, 1.0, false
|
0, 0, 1.0, false
|
||||||
};
|
|
||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t DynamicLamp::add_lamp() {
|
uint8_t DynamicLamp::add_lamp() {
|
||||||
uint8_t i = 0;
|
uint8_t i = 0;
|
||||||
|
@@ -20,7 +20,7 @@ enum LinkedOutputModeIdx : uint8_t {
|
|||||||
|
|
||||||
struct LinkedOutput {
|
struct LinkedOutput {
|
||||||
bool active = false;
|
bool active = false;
|
||||||
std::string output_id;
|
FloatOutput &output;
|
||||||
uint8_t output_index;
|
uint8_t output_index;
|
||||||
uint8_t mode = 0;
|
uint8_t mode = 0;
|
||||||
optional<float> min_value;
|
optional<float> min_value;
|
||||||
@@ -38,7 +38,7 @@ class DynamicLamp : public Component {
|
|||||||
void setup() override;
|
void setup() override;
|
||||||
void loop() override;
|
void loop() override;
|
||||||
void dump_config() override;
|
void dump_config() override;
|
||||||
void set_available_outputs(std::list<*FloatOutput> output_list);
|
void add_available_output(FloatOutput &output);
|
||||||
void set_save_mode(uint8_t save_mode);
|
void set_save_mode(uint8_t save_mode);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
Reference in New Issue
Block a user