ddeeds / background_modes_1754207047971.py
sudotheworld's picture
Upload 56 files
70a50c3 verified
import threading, time, itertools
from patterns import STROKE_MODES
class ModeRunner(threading.Thread):
def __init__(self, controller):
super().__init__(daemon=True)
self.controller=controller
self._mode=None
self._stop=threading.Event()
def set_mode(self,name):
self._mode=name; self._stop.clear()
def stop(self):
self._stop.set(); self.controller.stop()
def run(self):
while True:
if not self._mode or self._mode not in STROKE_MODES:
time.sleep(0.5); continue
for dur,spd,ctr,span in itertools.cycle(STROKE_MODES[self._mode]):
if self._stop.is_set() or not self._mode:
break
self.controller.move(spd,ctr,span); time.sleep(dur)