From dc7b02f329660a716a180c6a17ea15fc265d4527 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Wed, 6 Apr 2022 09:27:36 -0400 Subject: neopixel: Support arbitrary RGBW strings in color_order config Signed-off-by: Kevin O'Connor --- klippy/extras/neopixel.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'klippy/extras/neopixel.py') diff --git a/klippy/extras/neopixel.py b/klippy/extras/neopixel.py index d4dabf9f..abca823e 100644 --- a/klippy/extras/neopixel.py +++ b/klippy/extras/neopixel.py @@ -12,8 +12,6 @@ RESET_MIN_TIME=.000050 MAX_MCU_SIZE = 500 # Sanity check on LED chain length -COLOR_FORMATS = ["RGB", "GRB", "BRG", "BGR", "RGBW", "GRBW"] - class PrinterNeoPixel: def __init__(self, config): self.printer = printer = config.get_printer() @@ -25,8 +23,9 @@ class PrinterNeoPixel: self.oid = self.mcu.create_oid() self.pin = pin_params['pin'] self.mcu.register_config_callback(self.build_config) - formats = {v: v for v in COLOR_FORMATS} - color_order = config.getchoice("color_order", formats, "GRB") + color_order = config.get("color_order", "GRB") + if sorted(color_order) not in (sorted("RGB"), sorted("RGBW")): + raise config.error("Invalid color_order '%s'" % (color_order,)) if 'W' in color_order: color_index = [color_order.index(c) for c in "RGBW"] else: -- cgit v1.2.3-70-g09d2