Revert "dashboard: queue latest relay target states"
This reverts commit e1bbe2c135.
This commit is contained in:
@@ -541,6 +541,7 @@ static void relay_button_event_cb(lv_event_t *event)
|
|||||||
pending_relay_previous_state[index] = previous_state;
|
pending_relay_previous_state[index] = previous_state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Latest-state queue: rapid taps overwrite this relay's desired target.
|
||||||
pending_relay_state[index] = next_state;
|
pending_relay_state[index] = next_state;
|
||||||
relay_command_pending[index] = true;
|
relay_command_pending[index] = true;
|
||||||
|
|
||||||
@@ -574,6 +575,8 @@ static void process_pending_relay_command()
|
|||||||
bool next_state = pending_relay_state[index];
|
bool next_state = pending_relay_state[index];
|
||||||
bool previous_state = pending_relay_previous_state[index];
|
bool previous_state = pending_relay_previous_state[index];
|
||||||
|
|
||||||
|
// Clear before posting. If the user taps again after this command returns,
|
||||||
|
// the new desired state will be queued as a fresh command.
|
||||||
relay_command_pending[index] = false;
|
relay_command_pending[index] = false;
|
||||||
|
|
||||||
bool ok = post_relay_state(relay_id, next_state);
|
bool ok = post_relay_state(relay_id, next_state);
|
||||||
@@ -581,7 +584,8 @@ static void process_pending_relay_command()
|
|||||||
if (ok) {
|
if (ok) {
|
||||||
set_label_text_if_changed(system_status_label, last_system_status_text, "Relay command sent");
|
set_label_text_if_changed(system_status_label, last_system_status_text, "Relay command sent");
|
||||||
} else {
|
} else {
|
||||||
if (!relay_command_pending[index]) {
|
// Only revert if no newer desired state was queued for this relay.
|
||||||
|
if (!relay_command_pending[index] && index >= 0 && index < relay_count) {
|
||||||
relay_states[index] = previous_state;
|
relay_states[index] = previous_state;
|
||||||
update_relay_buttons();
|
update_relay_buttons();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user