--- /dev/null
+"""
+"""
+
+from logging import Logger
+
+import PIL
+from PIL import Image
+
+from drivers.epd12in48b import EPD, EPD_HEIGHT, EPD_WIDTH
+
+logger = Logger(__name__)
+
+
+class Display:
+
+ def __init__(self) -> None:
+ self.width = EPD_WIDTH
+ self.height = EPD_HEIGHT
+ self.epaper = EPD()
+
+ def render(self, black: Image, red: Image):
+ logger.info("Init display")
+ self.epaper.init()
+ logger.info("Update display")
+ self.epaper.display(black, red)
+ logger.info("Sleep display")
+ self.epaper.sleep()
+
+ def calibrate(self, iterations=1):
+ logger.info("Init display for calibration")
+ self.epaper.init()
+
+ white = Image.new('1', (self.width, self.height), 'white')
+ black = Image.new('1', (self.width, self.height), 'black')
+
+ logger.info('Calibrating e-paper display')
+ for i in range(iterations):
+ logger.info('black')
+ self.epaper.display(black, white)
+ logger.info('red')
+ self.epaper.display(white, black)
+ logger.info('white')
+ self.epaper.display(white, white)
+ logger.info(f'#{i + 1} of {iterations} complete')
+
+ self.epaper.sleep()
+
self.EPD_M2_BUSY_PIN = epdconfig.EPD_M2_BUSY_PIN\r
self.EPD_S2_BUSY_PIN = epdconfig.EPD_S2_BUSY_PIN\r
\r
+ def init(self):\r
+ self.Init()\r
+\r
def Init(self):\r
print("EPD init...")\r
epdconfig.module_init()\r
epdconfig.digital_write(self.EPD_M1S1_RST_PIN, 1) \r
epdconfig.digital_write(self.EPD_M2S2_RST_PIN, 1) \r
time.sleep(0.2) \r
+\r
+ def sleep(self):\r
+ self.EPD_Sleep()\r
\r
def EPD_Sleep(self):\r
self.M1S1M2S2_SendCommand(0X02) \r