import time
import struct
import threading
+import digitalio
from PIL import Image
import numpy
from recordclass import recordclass
Rectangle = recordclass("Rectangle", "x1 y1 x2 y2")
displays = []
+BACKLIGHT_IN_OUT = 1
+BACKLIGHT_PWM = 2
+
# pylint: disable=unnecessary-pass, unused-argument
# pylint: disable=too-many-instance-attributes
self._rowstart = rowstart
self._rotation = rotation
self._auto_brightness = auto_brightness
- self._brightness = brightness
+ self._brightness = 1.0
self._auto_refresh = auto_refresh
self._initialize(init_sequence)
self._buffer = Image.new("RGB", (width, height))
if self._auto_refresh:
self.auto_refresh = True
+ self._backlight_type = None
+ if backlight_pin is not None:
+ self._backlight_type = BACKLIGHT_IN_OUT
+ self._backlight = digitalio.DigitalInOut(backlight_pin)
+ self._backlight.switch_to_output()
+ self.brightness = brightness
+
# pylint: enable=too-many-locals
def _initialize(self, init_sequence):
@brightness.setter
def brightness(self, value):
- self._brightness = value
+ print("Brightness set")
+ if 0 <= float(value) <= 1.0:
+ self._brightness = value
+ if self._backlight_type == BACKLIGHT_IN_OUT:
+ self._backlight.value = int(round(self._brightness))
+ print(int(round(self._brightness)))
+ # PWM not currently implemented
+ else:
+ raise ValueError("Brightness must be between 0.0 and 1.0")
@property
def auto_brightness(self):