From d135c8c24f53296df34d26c7275a6d7970dc8bdf Mon Sep 17 00:00:00 2001 From: siinus Date: Fri, 5 Mar 2021 21:01:06 +0200 Subject: [PATCH] Add second ticker program --- pyleds/program/siinus/HzTick.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 pyleds/program/siinus/HzTick.py diff --git a/pyleds/program/siinus/HzTick.py b/pyleds/program/siinus/HzTick.py new file mode 100644 index 0000000..7c9e3a0 --- /dev/null +++ b/pyleds/program/siinus/HzTick.py @@ -0,0 +1,24 @@ +from lib.Program import Program +import time + + +def name(): + return '1Hz tick' + + +# Tick seconds like analog clock +class HzTick(Program): + def run(self, args: [] = None) -> None: + + while self.get_loop().status(): + second = time.localtime().tm_sec + second_pixel = int(self._lm.count_pixels() / 60 * second) + color_arr = args['color'] + for i in range(self._lm.count_pixels()): + self._lm.set_pixel_color(i, (color_arr[0] << 16) | (color_arr[1] << 8) | color_arr[2]) + self._lm.set_pixel_color(second_pixel, 255) + + self._lm.show() + + # Needs accurate time calculation to tick exactly when real second is passed + time.sleep(1)