]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
less cute pixel splitting
authorladyada <limor@ladyada.net>
Fri, 31 Aug 2018 18:05:34 +0000 (14:05 -0400)
committerladyada <limor@ladyada.net>
Fri, 31 Aug 2018 18:05:34 +0000 (14:05 -0400)
src/adafruit_blinka/microcontroller/raspi_23/neopixel.py

index 5e99cf24f4c91750a67dddf6ec6abfb0ecd15cab..381d4f63cc5b8465b6dbf5e5b0d6c82eecef29de 100644 (file)
@@ -57,11 +57,12 @@ def neopixel_write(gpio, buf):
         raise RuntimeError("Raspberry Pi neopixel support is for one strip only!")
 
     # assign all colors!
-    # bad way
-    pixels = zip(*[iter(buf)]*3)
-    for i, pixel in enumerate(pixels):
-        #print(pixel)
-        ws.ws2811_led_set(channel, i, pixel[0]<<16 | pixel[1] << 8 | pixel[2])
+    for i in range(len(buf) // 3):
+        r = buf[3*i] & 0xFF
+        g = buf[3*i+1] & 0xFF
+        b = buf[3*i+2] & 0xFF
+        pixel = (r << 16) | (g << 8) | b
+        ws.ws2811_led_set(channel, i, pixel)
     
     resp = ws.ws2811_render(_led_strip)
     if resp != ws.WS2811_SUCCESS: