From 4040308b03d3c4625a68daace7cab713c69f6dff Mon Sep 17 00:00:00 2001 From: caternuson Date: Fri, 13 Dec 2019 14:33:26 -0800 Subject: [PATCH 1/5] some fixes --- faux_write.py | 5 +++++ neopixel_spi.py | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 faux_write.py diff --git a/faux_write.py b/faux_write.py new file mode 100644 index 0000000..63904e7 --- /dev/null +++ b/faux_write.py @@ -0,0 +1,5 @@ +def neopixel_write(): + """This is a stub function to satisfy the base NeoPixel library. + It should never be called. + """ + raise RuntimeError("Function should never be called.") \ No newline at end of file diff --git a/neopixel_spi.py b/neopixel_spi.py index e01e2e2..888918d 100644 --- a/neopixel_spi.py +++ b/neopixel_spi.py @@ -43,6 +43,8 @@ * Adafruit's Bus Device library: https://github.com/adafruit/Adafruit_CircuitPython_BusDevice """ +import sys +sys.modules['neopixel_write'] = __import__('faux_write') from neopixel import NeoPixel __version__ = "0.0.0-auto.0" @@ -96,7 +98,7 @@ def __init__(self, spi, n, *, bpp=3, brightness=1.0, auto_write=True, pixel_orde except AttributeError: # use nominal freq = self.FREQ - self.RESET = bytes([0]*round(freq*self.TRST)) + self.RESET = bytes([0]*round(freq * self.TRST / 8)) self.n = n if pixel_order is None: self.order = GRBW From ec36b9be13d3015e3bc933555416e71a38f22eeb Mon Sep 17 00:00:00 2001 From: caternuson Date: Fri, 13 Dec 2019 22:22:20 -0800 Subject: [PATCH 2/5] different approach --- examples/neopixel_spi_simpletest.py | 24 +++++++++++++++++++++++- faux_write.py | 5 ----- neopixel_spi.py | 16 +++++++++++++++- 3 files changed, 38 insertions(+), 7 deletions(-) delete mode 100644 faux_write.py diff --git a/examples/neopixel_spi_simpletest.py b/examples/neopixel_spi_simpletest.py index 1755e10..0e430e9 100644 --- a/examples/neopixel_spi_simpletest.py +++ b/examples/neopixel_spi_simpletest.py @@ -1 +1,23 @@ -"""Eventual example for NeoPixel SPI""" +import time +import board +import neopixel_spi as neopixel + +NUM_PIXELS = 12 +PIXEL_ORDER = neopixel.GRB +COLORS = (0xFF0000, 0x00FF00, 0x0000FF) +DELAY = 0.1 + +spi = board.SPI() + +pixels = neopixel.NeoPixel_SPI(spi, + NUM_PIXELS, + pixel_order=PIXEL_ORDER, + auto_write=False) + +while True: + for color in COLORS: + for i in range(NUM_PIXELS): + pixels[i] = color + pixels.show() + time.sleep(DELAY) + pixels.fill(0) \ No newline at end of file diff --git a/faux_write.py b/faux_write.py deleted file mode 100644 index 63904e7..0000000 --- a/faux_write.py +++ /dev/null @@ -1,5 +0,0 @@ -def neopixel_write(): - """This is a stub function to satisfy the base NeoPixel library. - It should never be called. - """ - raise RuntimeError("Function should never be called.") \ No newline at end of file diff --git a/neopixel_spi.py b/neopixel_spi.py index 888918d..1951c68 100644 --- a/neopixel_spi.py +++ b/neopixel_spi.py @@ -43,8 +43,16 @@ * Adafruit's Bus Device library: https://github.com/adafruit/Adafruit_CircuitPython_BusDevice """ +# The following creates a mock neopixel_write module to allow importing +# the CircuitPython NeoPixel module without actually providing neopixel_write. +#pylint: disable=wrong-import-position import sys -sys.modules['neopixel_write'] = __import__('faux_write') +from types import ModuleType +mock_neopixel_write = ModuleType('mock_neopixel_write') +exec('def neopixel_write(): pass', mock_neopixel_write.__dict__) +sys.modules['neopixel_write'] = mock_neopixel_write +#pylint: enable=wrong-import-position + from neopixel import NeoPixel __version__ = "0.0.0-auto.0" @@ -60,6 +68,12 @@ GRBW = (1, 0, 2, 3) """Green Red Blue White""" +def neopixel_write(): + """This is a stub function to satisfy the base NeoPixel library. + It should never be called. + """ + raise RuntimeError("Function should never be called.") + class NeoPixel_SPI(NeoPixel): """ A sequence of neopixels. From 49d3713eb2a12c45623e41c7e42f1bbc21f8fae4 Mon Sep 17 00:00:00 2001 From: caternuson Date: Fri, 13 Dec 2019 22:25:45 -0800 Subject: [PATCH 3/5] remove local attempt --- neopixel_spi.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/neopixel_spi.py b/neopixel_spi.py index 1951c68..76ee3d2 100644 --- a/neopixel_spi.py +++ b/neopixel_spi.py @@ -48,9 +48,9 @@ #pylint: disable=wrong-import-position import sys from types import ModuleType -mock_neopixel_write = ModuleType('mock_neopixel_write') -exec('def neopixel_write(): pass', mock_neopixel_write.__dict__) -sys.modules['neopixel_write'] = mock_neopixel_write +mock_module = ModuleType('mock_neopixel_write') +exec('def neopixel_write(): pass', mock_module.__dict__) +sys.modules['neopixel_write'] = mock_module #pylint: enable=wrong-import-position from neopixel import NeoPixel @@ -68,12 +68,6 @@ GRBW = (1, 0, 2, 3) """Green Red Blue White""" -def neopixel_write(): - """This is a stub function to satisfy the base NeoPixel library. - It should never be called. - """ - raise RuntimeError("Function should never be called.") - class NeoPixel_SPI(NeoPixel): """ A sequence of neopixels. From bd479e9222ca77f766b0768879a3ef8d2a52a858 Mon Sep 17 00:00:00 2001 From: caternuson Date: Fri, 13 Dec 2019 22:29:52 -0800 Subject: [PATCH 4/5] for the linter --- neopixel_spi.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/neopixel_spi.py b/neopixel_spi.py index 76ee3d2..21c94bf 100644 --- a/neopixel_spi.py +++ b/neopixel_spi.py @@ -45,13 +45,13 @@ # The following creates a mock neopixel_write module to allow importing # the CircuitPython NeoPixel module without actually providing neopixel_write. -#pylint: disable=wrong-import-position +#pylint: disable=wrong-import-position, exec-used import sys from types import ModuleType -mock_module = ModuleType('mock_neopixel_write') -exec('def neopixel_write(): pass', mock_module.__dict__) -sys.modules['neopixel_write'] = mock_module -#pylint: enable=wrong-import-position +MOCK_MODULE = ModuleType('mock_neopixel_write') +exec('def neopixel_write(): pass', MOCK_MODULE.__dict__) +sys.modules['neopixel_write'] = MOCK_MODULE +#pylint: enable=wrong-import-position, exec-used from neopixel import NeoPixel From d7d2fd9259caecbafd3d9dfc19bafb11b46ae8d0 Mon Sep 17 00:00:00 2001 From: caternuson Date: Fri, 13 Dec 2019 22:34:54 -0800 Subject: [PATCH 5/5] lint the example --- examples/neopixel_spi_simpletest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/neopixel_spi_simpletest.py b/examples/neopixel_spi_simpletest.py index 0e430e9..3757406 100644 --- a/examples/neopixel_spi_simpletest.py +++ b/examples/neopixel_spi_simpletest.py @@ -20,4 +20,4 @@ pixels[i] = color pixels.show() time.sleep(DELAY) - pixels.fill(0) \ No newline at end of file + pixels.fill(0)