From c4b5a9435269d85de7e14b5b4a4b9d84a53ee083 Mon Sep 17 00:00:00 2001 From: John Pickup Date: Fri, 16 Jun 2023 07:22:52 +0100 Subject: [PATCH] next step on display --- lib/ovenDisplay.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/ovenDisplay.py b/lib/ovenDisplay.py index 0eed90b..e367db7 100644 --- a/lib/ovenDisplay.py +++ b/lib/ovenDisplay.py @@ -1,7 +1,17 @@ import threading,logging,json,time,datetime from oven import Oven +from displayhatmini import DisplayHATMini log = logging.getLogger(__name__) +try: + from PIL import Image, ImageDraw, ImageFont +except ImportError: + print("""This example requires PIL/Pillow, try: + +sudo apt install python3-pil + +""") + class OvenDisplay(threading.Thread): def __init__(self,oven,ovenWatcher): self.last_profile = None @@ -11,6 +21,14 @@ class OvenDisplay(threading.Thread): self.observers = [] threading.Thread.__init__(self) self.daemon = True + # display HAT setup + self.width = DisplayHATMini.WIDTH + self.height = DisplayHATMini.HEIGHT + self.buffer = Image.new("RGB", (width, height)) + self.draw = ImageDraw.Draw(buffer) + self.displayhatmini = DisplayHATMini(buffer) + self.displayhatmini.set_led(0.05, 0.05, 0.05) + # oven setup self.oven = oven self.ovenWatcher = ovenWatcher ovenWatcher.add_observer(self) @@ -26,10 +44,14 @@ class OvenDisplay(threading.Thread): def update_display(self, oven_state): log.info(oven_state) + self.text(oven_state, (25, 25), 15, (255, 255, 255)) + def send(self,oven_state): self.update_display(oven_state) - + def text(self, text, position, size, color): + fnt = ImageFont.load_default() + self.draw.text(position, text, font=fnt, fill=color) \ No newline at end of file