comparison service/piNode/devices.py @ 1127:2d6e606cc475

switch neopixel libs. lost the r/g/b remapping feature Ignore-this: d18b5118d63f42db7ee6e6defefa90f2 darcs-hash:b770efaccd10a2e5fdb7626359375c84fedb9ea0
author drewp <drewp@bigasterisk.com>
date Fri, 20 Oct 2017 02:19:53 -0700
parents 77f6117e002f
children d5dec124ccfe
comparison
equal deleted inserted replaced
1126:82046a1c75f3 1127:2d6e606cc475
10 try: 10 try:
11 import pigpio 11 import pigpio
12 except ImportError: 12 except ImportError:
13 pigpio = None 13 pigpio = None
14 import w1thermsensor 14 import w1thermsensor
15 try: 15 import rpi_ws281x
16 import neopixel
17 except ImportError:
18 neopixel = None
19 16
20 def setupPwm(pi, pinNumber, hz=8000): 17 def setupPwm(pi, pinNumber, hz=8000):
21 pi.set_mode(pinNumber, pigpio.OUTPUT) 18 pi.set_mode(pinNumber, pigpio.OUTPUT)
22 # see http://abyz.co.uk/rpi/pigpio/cif.html#gpioCfgClock 19 # see http://abyz.co.uk/rpi/pigpio/cif.html#gpioCfgClock
23 # and http://abyz.co.uk/rpi/pigpio/cif.html#gpioSetPWMfrequency 20 # and http://abyz.co.uk/rpi/pigpio/cif.html#gpioSetPWMfrequency
508 'ledCount': len(self.pixelUris), 505 'ledCount': len(self.pixelUris),
509 'pin': self.pinNumber, 506 'pin': self.pinNumber,
510 'ledType': 'WS2812', 507 'ledType': 'WS2812',
511 'colorOrder': colorOrder 508 'colorOrder': colorOrder
512 } 509 }
513 self.neo = neopixel.Adafruit_NeoPixel(len(self.values), pin=18, strip_type=stripType) 510 self.neo = rpi_ws281x.Adafruit_NeoPixel(len(self.values), pin=18)
514 self.neo.begin() 511 self.neo.begin()
515 512
516 def getColorOrder(self, graph, uri): 513 def getColorOrder(self, graph, uri):
517 colorOrder = graph.value(uri, ROOM['colorOrder'], 514 colorOrder = graph.value(uri, ROOM['colorOrder'],
518 default=ROOM['ledColorOrder/RGB']) 515 default=ROOM['ledColorOrder/RGB'])
519 head, tail = str(colorOrder).rsplit('/', 1) 516 head, tail = str(colorOrder).rsplit('/', 1)
520 if head != str(ROOM['ledColorOrder']): 517 if head != str(ROOM['ledColorOrder']):
521 raise NotImplementedError('%r colorOrder %r' % (uri, colorOrder)) 518 raise NotImplementedError('%r colorOrder %r' % (uri, colorOrder))
522 stripType = getattr(neopixel.ws, 'WS2811_STRIP_%s' % tail) 519 stripType = None
523 return colorOrder, stripType 520 return colorOrder, stripType
524 521
525 def _rgbFromHex(self, h): 522 def _rgbFromHex(self, h):
526 rrggbb = h.lstrip('#') 523 rrggbb = h.lstrip('#')
527 return [int(x, 16) for x in [rrggbb[0:2], rrggbb[2:4], rrggbb[4:6]]] 524 return [int(x, 16) for x in [rrggbb[0:2], rrggbb[2:4], rrggbb[4:6]]]