1
0
mirror of https://github.com/esphome/esphome.git synced 2025-03-15 15:18:16 +00:00

fix: update split_to_int_vector_ to accept delimiter as a pointer for improved flexibility

This commit is contained in:
Oliver Kleinecke 2025-02-19 11:56:42 +01:00
parent 8901631602
commit 35ca6dafc0
2 changed files with 4 additions and 3 deletions

View File

@ -278,7 +278,8 @@ bool DynamicLampComponent::add_timer(std::string lamp_list_str, bool timer_activ
} }
std::vector<bool> DynamicLampComponent::build_lamp_list_from_list_str_(std::string lamp_list_str) { std::vector<bool> DynamicLampComponent::build_lamp_list_from_list_str_(std::string lamp_list_str) {
std::vector<uint8_t> lamp_list_vector = this->split_to_int_vector_(lamp_list_str, ","); std::string delimiter = ",";
std::vector<uint8_t> lamp_list_vector = this->split_to_int_vector_(lamp_list_str, &delimiter);
std::vector<bool> lamp_list; std::vector<bool> lamp_list;
memset(&lamp_list, 0, 16); memset(&lamp_list, 0, 16);
if (lamp_list_vector.size() > 16) { if (lamp_list_vector.size() > 16) {
@ -336,7 +337,7 @@ void DynamicLampComponent::restore_lamp_values_(uint8_t lamp_number) {
this->active_lamps_[lamp_number].active = false; this->active_lamps_[lamp_number].active = false;
} }
std::vector<uint8_t> DynamicLampComponent::split_to_int_vector_(std::string lamp_list_str, std::string& delimiter) { std::vector<uint8_t> DynamicLampComponent::split_to_int_vector_(std::string lamp_list_str, std::string* delimiter) {
std::vector<uint8_t> tokens; std::vector<uint8_t> tokens;
std::stringstream sstream; std::stringstream sstream;
sstream << std::string_view(lamp_list_str); sstream << std::string_view(lamp_list_str);

View File

@ -118,7 +118,7 @@ class DynamicLampComponent : public Component {
bool write_state_(uint8_t lamp_number, float state); bool write_state_(uint8_t lamp_number, float state);
uint8_t get_lamp_index_by_name_(std::string lamp_name); uint8_t get_lamp_index_by_name_(std::string lamp_name);
std::array<bool, 16> get_lamp_outputs_by_name_(std::string lamp_name); std::array<bool, 16> get_lamp_outputs_by_name_(std::string lamp_name);
std::vector<uint8_t> split_to_int_vector_(std::string lamp_list_str, std::string& delimiter); std::vector<uint8_t> split_to_int_vector_(std::string lamp_list_str, std::string* delimiter);
std::vector<bool> build_lamp_list_from_list_str_(std::string lamp_list_str); std::vector<bool> build_lamp_list_from_list_str_(std::string lamp_list_str);
CombinedLamp active_lamps_[16]; CombinedLamp active_lamps_[16];