Пример #1
0
 def _set_pwm(self):
     """
     Set pwm values for current settings.
     """
     # adjust color brightness
     color = Color(self._color.r * self._brightness / 255,
                   self._color.g * self._brightness / 255,
                   self._color.b * self._brightness / 255)
     # pwm goes to 0% if led is not on
     if not self._is_on:
         color = Color(0, 0, 0)
     # gamma correction?
     if self._gamma != 1.0:
         # gamma correction with output sized for 12-bit pwm
         pwmValues = color.gamma(gamma=GAMMA, max=4095)
     else:
         # size output for 12-bit pmw with NO gamma correction
         pwmValues = [(x * 4096 / 255) for x in color]
     # scale pwm values based on scale factors
     pwmValues[0] = round(pwmValues[0] * self._scaleR)
     pwmValues[1] = round(pwmValues[1] * self._scaleG)
     pwmValues[2] = round(pwmValues[2] * self._scaleB)
     # finally set the pwm values
     self._device.set_multiple_pwm(pwmValues)