From 4dd64a8d1d69d438a2a57a5589e9fdc18e927cb4 Mon Sep 17 00:00:00 2001 From: Roy Hooper Date: Sat, 18 Jan 2020 16:35:54 -0500 Subject: [PATCH 1/3] implementation that makes buf behave the way we want, i think --- neopixel.py | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/neopixel.py b/neopixel.py index aca77d5..6760b24 100644 --- a/neopixel.py +++ b/neopixel.py @@ -112,9 +112,11 @@ def __init__(self, pin, n, *, bpp=3, brightness=1.0, auto_write=True, pixel_orde order[pixel_order] = order_chars[char_no] pixel_order = ''.join(order) - super().__init__(n, bytearray(self.n * bpp), + self._buf = bytearray(self.n * bpp) + self._rawbuf = bytearray(self.n * bpp) + super().__init__(n, self._buf, brightness=brightness, - rawbuf=bytearray(self.n * bpp), + rawbuf=_rawbuf, byteorder=pixel_order, auto_write=auto_write) @@ -148,8 +150,23 @@ def show(self): The colors may or may not be showing after this function returns because it may be done asynchronously.""" - neopixel_write(self.pin, self.buf) + neopixel_write(self.pin, self._buf) def fill(self, color): """Colors all pixels the given ***color***.""" _pixelbuf.fill(self, color) + + @property + def buf(self): + """ + Get or set the unadjusted buffer. + """ + return self._rawbuf + + @buf.setter + def buf(self, value): + """ + Update the unadjusted buffer. + """ + self._rawbuf[:] = value[:] + self.brightness = self.brightness From aab9f509b1d1cf7c307945b5ba88a4997314fcd2 Mon Sep 17 00:00:00 2001 From: Roy Hooper Date: Sat, 18 Jan 2020 16:37:02 -0500 Subject: [PATCH 2/3] fix rawbuf on init --- neopixel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/neopixel.py b/neopixel.py index 6760b24..7b65dd2 100644 --- a/neopixel.py +++ b/neopixel.py @@ -116,7 +116,7 @@ def __init__(self, pin, n, *, bpp=3, brightness=1.0, auto_write=True, pixel_orde self._rawbuf = bytearray(self.n * bpp) super().__init__(n, self._buf, brightness=brightness, - rawbuf=_rawbuf, + rawbuf=self._rawbuf, byteorder=pixel_order, auto_write=auto_write) From 76c12a7d6bad389f4b76fb972c7163bad9e3c8ae Mon Sep 17 00:00:00 2001 From: Roy Hooper Date: Sat, 18 Jan 2020 16:47:49 -0500 Subject: [PATCH 3/3] fix lint --- neopixel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/neopixel.py b/neopixel.py index 7b65dd2..e879e72 100644 --- a/neopixel.py +++ b/neopixel.py @@ -169,4 +169,4 @@ def buf(self, value): Update the unadjusted buffer. """ self._rawbuf[:] = value[:] - self.brightness = self.brightness + self.brightness = self.brightness # pylint: disable=attribute-defined-outside-init