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