diff --git a/rpi/ProotState.py b/rpi/ProotState.py index 3e525fd..a3ee884 100644 --- a/rpi/ProotState.py +++ b/rpi/ProotState.py @@ -1,5 +1,3 @@ -import time -import random from PIL import Image class ProotState: @@ -82,28 +80,13 @@ class ProotState: matrix.SwapOnVSync(self.frame_canvas_prootScreen_3) -def update_screen(blinkFrameCanvases, matrix): + def update_screen(blinkFrameCanvases, matrix): - proot_state = ProotState() - - if proot_state.get_blinks_frames_ready(): - # TODO move blinking animation writing logic to the ProotState class - matrix.SwapOnVSync(blinkFrameCanvases[proot_state.next_blink_frame_number()]) - else: - proot_state.set_ProotScreen(matrix) - - -def interrupt_timer(blinkFrameCanvases, matrix): - while True: - update_screen(blinkFrameCanvases, matrix) - time.sleep(0.01) - - -def random_blinks(): - while True: - time.sleep(random.randint(3, 5)) - proot_state = ProotState() if proot_state.get_blinks_frames_ready(): - proot_state.blink() \ No newline at end of file + # TODO move blinking animation writing logic to the ProotState class + matrix.SwapOnVSync(blinkFrameCanvases[proot_state.next_blink_frame_number()]) + else: + proot_state.set_ProotScreen(matrix) + diff --git a/rpi/antRender.py b/rpi/antRender.py index 54b97f6..e92699e 100644 --- a/rpi/antRender.py +++ b/rpi/antRender.py @@ -2,6 +2,8 @@ from rgbmatrix import RGBMatrix, RGBMatrixOptions import Point2D import ProotState +import time +import random from PIL import Image import paho.mqtt.client as mqtt import time @@ -28,8 +30,27 @@ print("configuring matrix took: " + str(endT - startT) + " ms") blinkFrameCanvases = [] +def interrupt_timer(): + global blinkFrameCanvases, matrix + proot_state = ProotState() + + while True: + proot_state.update_screen(blinkFrameCanvases, matrix) + time.sleep(0.01) + + +def random_blinks(): + while True: + time.sleep(random.randint(3, 5)) + + proot_state = ProotState() + + if proot_state.get_blinks_frames_ready(): + proot_state.blink() + + # Create and start screen update interrupts -screen_update_thread = threading.Thread(target=ProotState.interrupt_timer(blinkFrameCanvases, matrix)) +screen_update_thread = threading.Thread(target=ProotState.interrupt_timer) screen_update_thread.start() # Create and start random blinks interrupts @@ -100,6 +121,7 @@ endT = curr_time = round(time.time()*1000) print("populating matrices for each blink frame took: " + str(endT - startT) + " ms") proot_state = ProotState.ProotState() +proot_state.set_matrix(matrix) proot_state.set_blinks_frames_ready(True) proot_state.blink()