Mercurial > code > home > repos > homeauto
comparison service/piNode/devices.py @ 1094:90bf3f11fc2b
gamma curve on led output
Ignore-this: 338721a341a37881375d99c5a113f9e2
darcs-hash:5524f8c883a11b9ae1b1b52bb18828fce88ed416
author | drewp <drewp@bigasterisk.com> |
---|---|
date | Wed, 11 May 2016 21:45:11 -0700 |
parents | 3d0133cdce90 |
children | 7b5cff542078 |
comparison
equal
deleted
inserted
replaced
1093:e3ae71fbd3bd | 1094:90bf3f11fc2b |
---|---|
398 deviceType = ROOM['LedOutput'] | 398 deviceType = ROOM['LedOutput'] |
399 | 399 |
400 def hostStateInit(self): | 400 def hostStateInit(self): |
401 self.value = 0 | 401 self.value = 0 |
402 self.fv = FilteredValue(self._setPwm) | 402 self.fv = FilteredValue(self._setPwm) |
403 self.gamma = float(self.graph.value(self.uri, ROOM['gamma'], default=1)) | |
403 | 404 |
404 def setup(self): | 405 def setup(self): |
405 setupPwm(self.pi, self.pinNumber) | 406 setupPwm(self.pi, self.pinNumber) |
406 | 407 |
407 def outputPatterns(self): | 408 def outputPatterns(self): |
412 assert statements[0][:2] == (self.uri, ROOM['brightness']) | 413 assert statements[0][:2] == (self.uri, ROOM['brightness']) |
413 self.value = float(statements[0][2]) | 414 self.value = float(statements[0][2]) |
414 self.fv.set(self.value) | 415 self.fv.set(self.value) |
415 | 416 |
416 def _setPwm(self, x): | 417 def _setPwm(self, x): |
417 v = int(x * 255) | 418 v = int((x ** self.gamma)* 255) |
418 self.pi.set_PWM_dutycycle(self.pinNumber, v) | 419 self.pi.set_PWM_dutycycle(self.pinNumber, v) |
419 | 420 |
420 def hostStatements(self): | 421 def hostStatements(self): |
421 return [(self.uri, ROOM['brightness'], Literal(self.value))] | 422 return [(self.uri, ROOM['brightness'], Literal(self.value))] |
422 | 423 |