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

refactor: rename methods for clarity and update timer action parameter

This commit is contained in:
Oliver Kleinecke 2025-02-18 16:54:18 +01:00
parent 48a66234d6
commit 95dfdcb176
2 changed files with 10 additions and 9 deletions

View File

@ -214,7 +214,7 @@ std::array<bool, 16> DynamicLampComponent::get_lamp_outputs(uint8_t lamp_number)
return bool_array; return bool_array;
} }
uint8_t DynamicLampComponent::get_lamp_index_by_name(std::string lamp_name) { uint8_t DynamicLampComponent::get_lamp_index_by_name_(std::string lamp_name) {
uint8_t i = 0; uint8_t i = 0;
for (i = 0; i < this->lamp_count_; i++) { for (i = 0; i < this->lamp_count_; i++) {
if (this->active_lamps_[i].name == lamp_name) { if (this->active_lamps_[i].name == lamp_name) {
@ -226,23 +226,23 @@ uint8_t DynamicLampComponent::get_lamp_index_by_name(std::string lamp_name) {
return 255; return 255;
} }
std::array<bool, 16> DynamicLampComponent::get_lamp_outputs_by_name(std::string lamp_name) { std::array<bool, 16> DynamicLampComponent::get_lamp_outputs_by_name_(std::string lamp_name) {
uint8_t lamp_index = this->get_lamp_index_by_name(lamp_name); uint8_t lamp_index = this->get_lamp_index_by_name(lamp_name);
if (lamp_index == 255) { if (lamp_index == 255) {
std::array<bool, 16> bool_array; std::array<bool, 16> bool_array;
return bool_array; return bool_array;
} }
return this->get_lamp_outputs(i); return this->get_lamp_outputs(lamp_index);
} }
bool DynamicLampComponent::add_timer(std::string lamp_list_str, bool timer_active, uint8_t mode, uint8_t hour, bool DynamicLampComponent::add_timer(std::string lamp_list_str, bool timer_active, uint8_t action, uint8_t hour,
uint8_t minute, bool monday, bool tuesday, bool wednesday, bool thursday, uint8_t minute, bool monday, bool tuesday, bool wednesday, bool thursday,
bool friday, bool saturday, bool sunday) { bool friday, bool saturday, bool sunday) {
LampList lamp_list = this->build_lamp_list_from_list_str_(lamp_list_str); LampList lamp_list = this->build_lamp_list_from_list_str_(lamp_list_str);
DynamicLampTimer new_timer; DynamicLampTimer new_timer;
memcpy(new_timer.lamp_list, &lamp_list, 2); memcpy(new_timer.lamp_list, &lamp_list, 2);
new_timer.active = timer_active; new_timer.active = timer_active;
new_timer.mode = mode; new_timer.action = action;
new_timer.hour = hour; new_timer.hour = hour;
new_timer.minute = minute; new_timer.minute = minute;
new_timer.monday = monday; new_timer.monday = monday;
@ -273,14 +273,14 @@ LampList DynamicLampComponent::build_lamp_list_from_list_str_(std::string lamp_l
if (lamp_list_vector.size() > 16) { if (lamp_list_vector.size() > 16) {
ESP_LOGW(TAG, "Too many lamps in list, only 16 supported!"); ESP_LOGW(TAG, "Too many lamps in list, only 16 supported!");
this->status_set_warning(); this->status_set_warning();
return false; return LampList();
} }
LampList lamp_list; LampList lamp_list;
for (uint8_t i = 0; i < lamp_list_vector.size(); i++) { for (uint8_t i = 0; i < lamp_list_vector.size(); i++) {
if (lamp_list_vector[i] > 15) { if (lamp_list_vector[i] > 15) {
ESP_LOGW(TAG, "Lamp index %" PRIu8 " is out of range, only [0-15] supported!", lamp_list_vector[i]); ESP_LOGW(TAG, "Lamp index %" PRIu8 " is out of range, only [0-15] supported!", lamp_list_vector[i]);
this->status_set_warning(); this->status_set_warning();
return false; return LampList();
} }
switch (lamp_list_vector[i]) { switch (lamp_list_vector[i]) {
case 0: case 0:

View File

@ -88,7 +88,7 @@ struct LampList {
}; };
struct DynamicLampTimer { struct DynamicLampTimer {
unsigned char validation[3] = { "D", "L", "T" }; unsigned char validation[3] = { "DLT" };
uint8_t lamp_list[2]; uint8_t lamp_list[2];
uint8_t action : 3; uint8_t action : 3;
uint8_t hour : 5; uint8_t hour : 5;
@ -123,7 +123,6 @@ class DynamicLampComponent : public Component {
void add_output_to_lamp(std::string lamp_name, LinkedOutput *output); void add_output_to_lamp(std::string lamp_name, LinkedOutput *output);
void remove_output_from_lamp(std::string lamp_name, LinkedOutput *output); void remove_output_from_lamp(std::string lamp_name, LinkedOutput *output);
std::array<bool, 16> get_lamp_outputs(uint8_t lamp_number); std::array<bool, 16> get_lamp_outputs(uint8_t lamp_number);
std::array<bool, 16> get_lamp_outputs_by_name(std::string lamp_name);
bool add_timer(std::string lamp_name, bool timer_active, uint8_t mode, uint8_t hour, bool add_timer(std::string lamp_name, bool timer_active, uint8_t mode, uint8_t hour,
uint8_t minute, bool monday, bool tuesday, bool wednesday, bool thursday, uint8_t minute, bool monday, bool tuesday, bool wednesday, bool thursday,
bool friday, bool saturday, bool sunday); bool friday, bool saturday, bool sunday);
@ -136,6 +135,8 @@ class DynamicLampComponent : public Component {
void restore_lamp_values_(uint8_t lamp_number); void restore_lamp_values_(uint8_t lamp_number);
void set_lamp_values_(uint8_t lamp_number, bool active, uint16_t selected_outputs, uint8_t mode, uint8_t mode_value); void set_lamp_values_(uint8_t lamp_number, bool active, uint16_t selected_outputs, uint8_t mode, uint8_t mode_value);
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);
std::array<bool, 16> get_lamp_outputs_by_name_(std::string lamp_name);
std::vector<std::string> split_to_int_array_(const std::string& s, const std::string& delimiter); std::vector<std::string> split_to_int_array_(const std::string& s, const std::string& delimiter);
LampList build_lamp_list_from_list_str_(std::string lamp_list_str); LampList build_lamp_list_from_list_str_(std::string lamp_list_str);