From b06d677a36c45448f20be74728a7d8742616417b Mon Sep 17 00:00:00 2001 From: "Adrian A. Baumann" Date: Sun, 12 Apr 2026 17:28:34 +0200 Subject: [PATCH] Referenced local variable before assignment --- gaugemqttcontinuous.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/gaugemqttcontinuous.py b/gaugemqttcontinuous.py index 74cc13f..58d2513 100644 --- a/gaugemqttcontinuous.py +++ b/gaugemqttcontinuous.py @@ -341,6 +341,9 @@ status_led_green = [False for _ in range(num_gauges)] _bl_dirty_since = None _BL_SAVE_DELAY_MS = 5000 +_disco_saved_brightness = [100] * num_gauges +_disco_saved_color = [(0, 0, 0)] * num_gauges + def _flush_backlight(client): for i in range(num_gauges): @@ -474,6 +477,8 @@ def _publish(topic, payload, retain=False): def on_message(topic, payload): + global _disco_end_time, _disco_saved_brightness, _disco_saved_color + global backlight_brightness, backlight_color if client_ref is None: return topic = topic.decode() @@ -506,8 +511,10 @@ def on_message(topic, payload): return if topic == T_DISCO: - global _disco_end_time _disco_end_time = utime.ticks_ms() + 5000 + for i in range(num_gauges): + _disco_saved_brightness[i] = backlight_brightness[i] + _disco_saved_color[i] = backlight_color[i] info("Disco mode started") return @@ -853,13 +860,11 @@ def main(): while True: try: now = utime.ticks_ms() - global backlight_brightness, backlight_color if _disco_end_time > 0 and utime.ticks_diff(_disco_end_time, now) <= 0: _disco_end_time = 0 - set_backlight_brightness(0, backlight_brightness[0]) for i in range(num_gauges): - set_backlight_color(i, *backlight_color[i], backlight_brightness[i]) + set_backlight_color(i, *_disco_saved_color[i], _disco_saved_brightness[i]) info("Disco mode ended") elif _disco_end_time > 0: r = urandom.getrandbits(8)