mirror of
https://github.com/esphome/esphome.git
synced 2025-03-15 07:08:20 +00:00
fix: reduce timer capacity from 256 to 64 in DynamicLampComponent
This commit is contained in:
parent
628e89cf70
commit
cedf4caf4f
@ -259,13 +259,13 @@ bool DynamicLampComponent::add_timer(std::string timer_desc, std::string lamp_li
|
|||||||
new_timer.timer_desc, lamp_list_str.c_str(), new_timer.active, new_timer.action, new_timer.hour, new_timer.minute, new_timer.monday,
|
new_timer.timer_desc, lamp_list_str.c_str(), new_timer.active, new_timer.action, new_timer.hour, new_timer.minute, new_timer.monday,
|
||||||
new_timer.tuesday, new_timer.wednesday, new_timer.thursday, new_timer.friday, new_timer.saturday, new_timer.sunday);
|
new_timer.tuesday, new_timer.wednesday, new_timer.thursday, new_timer.friday, new_timer.saturday, new_timer.sunday);
|
||||||
uint8_t save_slot;
|
uint8_t save_slot;
|
||||||
for (save_slot = 0; save_slot < 256; save_slot++) {
|
for (save_slot = 0; save_slot < 64; save_slot++) {
|
||||||
if (this->timers_[save_slot].in_use != true) {
|
if (this->timers_[save_slot].in_use != true) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (save_slot == 256) {
|
if (save_slot == 64) {
|
||||||
ESP_LOGW(TAG, "No more timer slots available, max 256 timers supported!");
|
ESP_LOGW(TAG, "No more timer slots available, max 64 timers supported!");
|
||||||
this->status_set_warning();
|
this->status_set_warning();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -299,7 +299,7 @@ std::vector<bool> DynamicLampComponent::build_lamp_list_from_list_str_(std::stri
|
|||||||
|
|
||||||
void DynamicLampComponent::read_fram_timers_to_log() {
|
void DynamicLampComponent::read_fram_timers_to_log() {
|
||||||
DynamicLampTimer timer;
|
DynamicLampTimer timer;
|
||||||
for (uint8_t i = 0; i < 256; i++) {
|
for (uint8_t i = 0; i < 64; i++) {
|
||||||
this->fram_->read((0x4000 + (i * 64)), reinterpret_cast<unsigned char *>(&timer), 64);
|
this->fram_->read((0x4000 + (i * 64)), reinterpret_cast<unsigned char *>(&timer), 64);
|
||||||
if (timer.validation_bytes[0] == 'V' && timer.validation_bytes[1] == 'D' && timer.validation_bytes[2] == 'L' && timer.validation_bytes[3] == 'T' && timer.in_use == true) {
|
if (timer.validation_bytes[0] == 'V' && timer.validation_bytes[1] == 'D' && timer.validation_bytes[2] == 'L' && timer.validation_bytes[3] == 'T' && timer.in_use == true) {
|
||||||
std::string lamp_names_str = "";
|
std::string lamp_names_str = "";
|
||||||
@ -329,7 +329,7 @@ void DynamicLampComponent::read_fram_timers_to_log() {
|
|||||||
|
|
||||||
void DynamicLampComponent::read_initialized_timers_to_log() {
|
void DynamicLampComponent::read_initialized_timers_to_log() {
|
||||||
DynamicLampTimer timer;
|
DynamicLampTimer timer;
|
||||||
for (uint8_t i = 0; i < 256; i++) {
|
for (uint8_t i = 0; i < 64; i++) {
|
||||||
if (this->timers_[i].in_use == true) {
|
if (this->timers_[i].in_use == true) {
|
||||||
timer = this->timers_[i];
|
timer = this->timers_[i];
|
||||||
std::string lamp_names_str = "";
|
std::string lamp_names_str = "";
|
||||||
@ -397,7 +397,7 @@ void DynamicLampComponent::restore_lamp_settings_() {
|
|||||||
void DynamicLampComponent::restore_timers_() {
|
void DynamicLampComponent::restore_timers_() {
|
||||||
switch (this->save_mode_) {
|
switch (this->save_mode_) {
|
||||||
case SupportedSaveModes::SAVE_MODE_NONE:
|
case SupportedSaveModes::SAVE_MODE_NONE:
|
||||||
for (uint8_t i = 0; i < 256; i++) {
|
for (uint8_t i = 0; i < 64; i++) {
|
||||||
this->timers_[i] = DynamicLampTimer();
|
this->timers_[i] = DynamicLampTimer();
|
||||||
this->timers_[i].in_use = false;
|
this->timers_[i].in_use = false;
|
||||||
}
|
}
|
||||||
@ -409,13 +409,13 @@ void DynamicLampComponent::restore_timers_() {
|
|||||||
break;
|
break;
|
||||||
case SupportedSaveModes::SAVE_MODE_FRAM:
|
case SupportedSaveModes::SAVE_MODE_FRAM:
|
||||||
DynamicLampTimer timer;
|
DynamicLampTimer timer;
|
||||||
for (uint8_t i = 0; i < 256; i++) {
|
for (uint8_t i = 0; i < 64; i++) {
|
||||||
timer = DynamicLampTimer();
|
timer = DynamicLampTimer();
|
||||||
this->timers_[i] = timer;
|
this->timers_[i] = timer;
|
||||||
this->timers_[i].in_use = false;
|
this->timers_[i].in_use = false;
|
||||||
}
|
}
|
||||||
std::string lamp_names_str;
|
std::string lamp_names_str;
|
||||||
for (uint8_t i = 0; i < 256; i++) {
|
for (uint8_t i = 0; i < 64; i++) {
|
||||||
this->fram_->read((0x4000 + (i * 64)), reinterpret_cast<unsigned char *>(&timer), 64);
|
this->fram_->read((0x4000 + (i * 64)), reinterpret_cast<unsigned char *>(&timer), 64);
|
||||||
if (timer.validation_bytes[0] == 'V' && timer.validation_bytes[1] == 'D' && timer.validation_bytes[2] == 'L' && timer.validation_bytes[3] == 'T' && timer.in_use == true) {
|
if (timer.validation_bytes[0] == 'V' && timer.validation_bytes[1] == 'D' && timer.validation_bytes[2] == 'L' && timer.validation_bytes[3] == 'T' && timer.in_use == true) {
|
||||||
this->timers_[i] = timer;
|
this->timers_[i] = timer;
|
||||||
|
@ -128,7 +128,7 @@ class DynamicLampComponent : public Component {
|
|||||||
|
|
||||||
CombinedLamp active_lamps_[16];
|
CombinedLamp active_lamps_[16];
|
||||||
LinkedOutput available_outputs_[16];
|
LinkedOutput available_outputs_[16];
|
||||||
DynamicLampTimer timers_[256];
|
DynamicLampTimer timers_[64];
|
||||||
uint8_t save_mode_;
|
uint8_t save_mode_;
|
||||||
uint8_t lamp_count_ = 0;
|
uint8_t lamp_count_ = 0;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user