"""
main matrix run dot file
"""
#==============================================================================#
# Tilt mode
import time
from hardware import hardware as hw
from hardware import dot_mat
# import mode_clock
from tools.face_side import side_mode
from tools.timer import Timer as GTIME
from tools.time_format import set_et
import mode_bounce
from machine import Timer
# testing out pixel draw functionality
# dot_mat.test_draw()
#==============================================================================#
# TIMER
class DotMan:
"""timer"""
def __init__(self):
self.it = time.ticks_ms()
self.t_dur = 60*5
self.side = 0
self.t_sw = GTIME()
self.t_timer = GTIME()
#==============================================================================#
# timer to check side every 1 second
def side_check(self):
new_side = side_mode.loop()
if new_side:
if new_side in [1,3]:
print('Reset SW')
self.t_sw.start()
if new_side == 2:
print('Timer')
self.t_timer.start()
def loop(self):
if side_mode.side in [1,3]:
et = self.t_sw.time_elapsed()
# et = et*1000
set_et(et)
is_even = (et % 2 == 0)
elif side_mode.side == 2:
et = self.t_timer.time_remain()
set_et(et)
# elif side_mode.side == 3:
# t_now = mode_clock.clock.loop()
elif side_mode.side == 4:
mode_bounce.mode_bounce.loop()
dot_man = DotMan()
# check side every second
def side_check_cb(timer):
dot_man.side_check()
tim_side = Timer(0)
tim_side.init(period=1000, mode=Timer.PERIODIC, callback=side_check_cb)
#==============================================================================#
# Main run loop
hz_loop = 10
while True:
dot_man.loop()
time.sleep(1/hz_loop)