From e7e02b73b063279ed1c56cb32ef8eabdc67efac3 Mon Sep 17 00:00:00 2001 From: waltem01 Date: Thu, 23 Nov 2023 08:49:47 +0100 Subject: [PATCH] threaded api, parallel to matrix --- API/main.py | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/API/main.py b/API/main.py index ddc9c7f..4ce6167 100644 --- a/API/main.py +++ b/API/main.py @@ -3,42 +3,47 @@ from deps.samplebase import SampleBase from rgbmatrix import graphics from flask import Flask, jsonify -import time - +from waitress import serve +import time, threading app = Flask(__name__) +display_text = "" count = 0 @app.route('/api/test', methods=['GET']) def get_data(): - app.matrix.text = f"Test #{++count}" - data = {"success": True} + global display_text, count + count = count + 1 + display_text = f"Test #{count}" + + data = {"success": True, "count": count, "text": display_text} return jsonify(data) class Text(SampleBase): def __init__(self, *args, **kwargs): super(Text, self).__init__(*args, **kwargs) - self.text = "" def run(self): - offscreen_canvas = self.matrix.CreateFrameCanvas() - font = graphics.Font() - font.LoadFont("deps/fonts/9x18B.bdf") - text_color = graphics.Color(255, 255, 255) + self.font = graphics.Font() + self.font.LoadFont("deps/fonts/9x18B.bdf") + self.color = graphics.Color(255, 255, 255) + self.canvas = self.matrix.CreateFrameCanvas() while True: - offscreen_canvas.Clear() - graphics.DrawText(offscreen_canvas, font, 0, 18, text_color, self.text) - offscreen_canvas = self.matrix.SwapOnVSync(offscreen_canvas) + self.update() + time.sleep(.05) - time.sleep(0.05) + def update(self): + self.canvas.Clear() + graphics.DrawText(self.canvas, self.font, 0, 18, self.color, display_text) + self.canvas = self.matrix.SwapOnVSync(self.canvas) if __name__ == "__main__": - app.matrix = Text() - app.run(debug=True) + text = Text() + threading.Thread(target=lambda: serve(app, host="0.0.0.0", port=8080)).start() - if not app.matrix.process(): - app.matrix.print_help() + if not text.process(): + text.print_help()