Initial commit
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# display/__init__.py
|
||||
|
||||
import logging
|
||||
from datetime import datetime
|
||||
from PIL import Image
|
||||
|
||||
from .epd4in2 import EPD, epdconfig
|
||||
from .image_maker import eInkImage
|
||||
|
||||
logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Display:
|
||||
|
||||
def __init__(self) -> None:
|
||||
self.image = eInkImage()
|
||||
self.e_Paper = self._start_up()
|
||||
|
||||
def _start_up(self) -> EPD:
|
||||
try:
|
||||
epd = EPD()
|
||||
epd.init()
|
||||
epd.Clear()
|
||||
return epd
|
||||
except Exception as e:
|
||||
logging.error(f"eInk Display not found! | {e}")
|
||||
|
||||
@staticmethod
|
||||
def _wait_until(timestamp: str, absolute_date: datetime) -> None:
|
||||
while (
|
||||
not timestamp in datetime.today().time().strftime("%H:%M:%S")
|
||||
and absolute_date >= datetime.today()
|
||||
):
|
||||
pass
|
||||
return
|
||||
|
||||
@staticmethod
|
||||
def exit():
|
||||
epdconfig.module_exit()
|
||||
|
||||
def refresh(self, image: Image.Image, date: datetime, first: bool) -> None:
|
||||
try:
|
||||
self.e_Paper.Init_4Gray()
|
||||
if not first:
|
||||
self._wait_until(":00", date)
|
||||
self.e_Paper.display_4Gray(self.e_Paper.getbuffer_4Gray(image))
|
||||
self.e_Paper.sleep()
|
||||
except Exception as e:
|
||||
logging.error(f"Failed displaying image - ERROR: {e}")
|
||||
Reference in New Issue
Block a user