Add n3 step rate functionality to patterns

This commit is contained in:
2025-09-18 20:35:21 +12:00
parent 1275d60aaa
commit 748ad4b507
2 changed files with 36 additions and 27 deletions

View File

@@ -18,6 +18,10 @@ def main():
settings = Settings()
print(settings)
if settings.get("color_order", "rgb") == "rbg":
color_order = (1, 5, 3)
else:
color_order = (1, 3, 5)
patterns = Patterns(settings["led_pin"], settings["num_leds"], selected="off")
sta_if = network.WLAN(network.STA_IF)
@@ -42,28 +46,28 @@ def main():
last_msg = msg
if last_msg:
try:
data = json.loads(last_msg)
defaults = data.get("d", {})
bar = data.get(settings.get("name"), {})
# try:
data = json.loads(last_msg)
defaults = data.get("d", {})
bar = data.get(settings.get("name"), {})
patterns.brightness = bar.get("brightness", defaults.get("brightness", patterns.brightness))
patterns.delay = bar.get("delay", defaults.get("delay", patterns.delay))
colors = bar.get("colors", defaults.get("colors", patterns.colors))
patterns.colors = [tuple(int(color[i:i+2], 16) for i in settings.color_order) for color in colors]
patterns.n1 = bar.get("n1", defaults.get("n1", patterns.n1))
patterns.n2 = bar.get("n2", defaults.get("n2", patterns.n2))
patterns.step = bar.get("pattern_step", defaults.get("step", patterns.step))
selected_pattern = bar.get("pattern", defaults.get("pattern", "off"))
if selected_pattern in patterns.patterns:
# Run the selected pattern ONCE in response to this message. Do not auto-tick elsewhere.
patterns.patterns[selected_pattern]()
else:
print(f"Pattern {selected_pattern} not found")
except Exception as ex:
print(f"Failed to load espnow data {last_msg}: {ex}")
continue
patterns.brightness = bar.get("brightness", defaults.get("brightness", patterns.brightness))
patterns.delay = bar.get("delay", defaults.get("delay", patterns.delay))
patterns.colors = bar.get("colors", defaults.get("colors", patterns.colors))
patterns.n1 = bar.get("n1", defaults.get("n1", patterns.n1))
patterns.n2 = bar.get("n2", defaults.get("n2", patterns.n2))
patterns.n3 = bar.get("n3", defaults.get("n3", patterns.n3))
patterns.step = bar.get("pattern_step", defaults.get("step", patterns.step))
selected_pattern = bar.get("pattern", defaults.get("pattern", "off"))
if selected_pattern in patterns.patterns:
# Run the selected pattern ONCE in response to this message. Do not auto-tick elsewhere.
patterns.patterns[selected_pattern]()
else:
print(f"Pattern {selected_pattern} not found")
# except Exception as ex:
# print(f"Failed to load espnow data {last_msg}: {ex}")
# continue
main()