parent
5d2810cacf
commit
5cf2022bbc
@ -0,0 +1,33 @@ |
|||||||
|
import gex |
||||||
|
|
||||||
|
class Neopixel(gex.Unit): |
||||||
|
""" |
||||||
|
Raw access to a neopixel strip. |
||||||
|
""" |
||||||
|
|
||||||
|
def _type(self): |
||||||
|
return 'NEOPIXEL' |
||||||
|
|
||||||
|
def get_len(self): |
||||||
|
""" Get the neopixel strip length """ |
||||||
|
resp = self.query(0x04) |
||||||
|
pp = gex.PayloadParser(resp) |
||||||
|
return pp.u16() |
||||||
|
|
||||||
|
def load(self, colors, reverse=True): |
||||||
|
""" |
||||||
|
Load colors to the strip. |
||||||
|
|
||||||
|
The numbers are normally 0xRRGGBB |
||||||
|
If 'reverse' is false, they're treated as little-endian: 0xBBGGRR. |
||||||
|
""" |
||||||
|
pb = gex.PayloadBuilder(endian='big' if reverse else 'little') |
||||||
|
for c in colors: |
||||||
|
pb.u24(c) |
||||||
|
self.send(0x01, pb.close()) |
||||||
|
|
||||||
|
def clear(self): |
||||||
|
""" |
||||||
|
Reset the strip (set all to black) |
||||||
|
""" |
||||||
|
self.send(0x00) |
@ -1,17 +0,0 @@ |
|||||||
import gex |
|
||||||
|
|
||||||
class Pin(gex.Unit): |
|
||||||
def _type(self): |
|
||||||
return 'PIN' |
|
||||||
|
|
||||||
def on_event(self, event:int, payload): |
|
||||||
pass |
|
||||||
|
|
||||||
def off(self): |
|
||||||
self.send(0x00) |
|
||||||
|
|
||||||
def on(self): |
|
||||||
self.send(0x01) |
|
||||||
|
|
||||||
def toggle(self): |
|
||||||
self.send(0x02) |
|
Loading…
Reference in new issue