# HG changeset patch # User drewp@bigasterisk.com # Date 1446927899 28800 # Node ID 75717a0be824cba7ca51ad10ae018c7616e8b85b # Parent 6a1462822c56d3250e53b43e8ca5e7f7d788f4f3 ledoutput support for piNode Ignore-this: 3c803f823e2db77285885395db892835 diff -r 6a1462822c56 -r 75717a0be824 service/piNode/devices.py --- a/service/piNode/devices.py Sat Nov 07 10:40:28 2015 -0800 +++ b/service/piNode/devices.py Sat Nov 07 12:24:59 2015 -0800 @@ -177,6 +177,36 @@ 'pred': ROOM['color'], }] + +@register +class LedOutput(DeviceType): + deviceType = ROOM['LedOutput'] + + def setup(self): + self.pi.set_mode(self.pinNumber, pigpio.OUTPUT) + self.pi.set_PWM_frequency(self.pinNumber, 200) + self.pi.set_PWM_dutycycle(self.pinNumber, 0) + + def outputPatterns(self): + return [(self.uri, ROOM['brightness'], None)] + + def sendOutput(self, statements): + assert len(statements) == 1 + assert statements[0][:2] == (self.uri, ROOM['brightness']) + v = int(float(statements[0][2]) * 255) + self.pi.set_PWM_dutycycle(self.pinNumber, v) + + def outputWidgets(self): + return [{ + 'element': 'output-slider', + 'min': 0, + 'max': 1, + 'step': 1 / 255, + 'subj': self.uri, + 'pred': ROOM['brightness'], + }] + + @register class OnboardTemperature(DeviceType): deviceType = ROOM['OnboardTemperature']