Now it works!
This commit is contained in:
parent
945e816b17
commit
f9cf01dfcb
|
@ -2,7 +2,6 @@ import logging
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import threading
|
import threading
|
||||||
from dataclasses import dataclass
|
|
||||||
|
|
||||||
|
|
||||||
from queue import Queue
|
from queue import Queue
|
||||||
|
@ -148,36 +147,12 @@ class ledPulse:
|
||||||
self.worker.start()
|
self.worker.start()
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
self.worker.stop()
|
self.queue.put(([], [], []))
|
||||||
self.worker.join()
|
self.worker.join()
|
||||||
if self.supported:
|
if self.supported:
|
||||||
self.pwm.stop()
|
self.pwm.stop()
|
||||||
self.worker = None
|
self.worker = None
|
||||||
|
|
||||||
def loop(self):
|
|
||||||
|
|
||||||
while True:
|
|
||||||
item = self.queue.get()
|
|
||||||
|
|
||||||
# Initial loop
|
|
||||||
self.log.debug('running initial steps')
|
|
||||||
for value, delay in item[0]:
|
|
||||||
self.setValue(value)
|
|
||||||
time.sleep(delay)
|
|
||||||
|
|
||||||
self.log.debug('running main loop')
|
|
||||||
while True:
|
|
||||||
for value, delay in item[1]:
|
|
||||||
self.setValue(value)
|
|
||||||
time.sleep(delay)
|
|
||||||
if not self.queue.empty()
|
|
||||||
break
|
|
||||||
|
|
||||||
self.log.debug('running final steps')
|
|
||||||
for value, delay in item[2]:
|
|
||||||
self.setValue(value)
|
|
||||||
time.sleep(delay)
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# PLUGINS METHODS
|
# PLUGINS METHODS
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import logging
|
import logging
|
||||||
import threading
|
import threading
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
class ledWorker(threading.Thread):
|
class ledWorker(threading.Thread):
|
||||||
|
@ -18,49 +19,28 @@ class ledWorker(threading.Thread):
|
||||||
self.stop_event = threading.Event()
|
self.stop_event = threading.Event()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
item = self.parent.queue.get()
|
item = self.parent.queue.get()
|
||||||
|
# Empty item, we exit
|
||||||
# Initial
|
if item == ([], [], []):
|
||||||
if self.initialMode:
|
|
||||||
self.log.debug('running initial step')
|
|
||||||
vals = self.initialValues()
|
|
||||||
for value, delay in vals:
|
|
||||||
self.setValue(value)
|
|
||||||
time.sleep(delay)
|
|
||||||
print('end initial step')
|
|
||||||
self.log.debug('end initial step')
|
|
||||||
|
|
||||||
vals = self.cycleValues()
|
|
||||||
while True:
|
|
||||||
if self.worker.stop_event.is_set():
|
|
||||||
# self.worker._started.clear()
|
|
||||||
self.worker.stop_event.clear()
|
|
||||||
self.log.debug("bailing out from infinite loop")
|
|
||||||
return
|
|
||||||
|
|
||||||
if self.worker.changed.is_set():
|
|
||||||
self.changed.clear()
|
|
||||||
self.log.debug("parameters changed, recalculate values...")
|
|
||||||
break
|
break
|
||||||
for step in range(len(vals)):
|
|
||||||
value, delay = vals[step]
|
# Initial loop
|
||||||
self.setValue(value)
|
self.log.debug('running initial steps')
|
||||||
|
for value, delay in item[0]:
|
||||||
|
self.parent.setValue(value)
|
||||||
time.sleep(delay)
|
time.sleep(delay)
|
||||||
|
|
||||||
# Final
|
self.log.debug('running main loop')
|
||||||
if self.finalMode:
|
while True:
|
||||||
print('running final step')
|
for value, delay in item[1]:
|
||||||
self.log.debug('running final step')
|
self.parent.setValue(value)
|
||||||
vals = self.finalValues()
|
time.sleep(delay)
|
||||||
for value, delay in vals:
|
if not self.parent.queue.empty():
|
||||||
|
break
|
||||||
|
|
||||||
|
self.log.debug('running final steps')
|
||||||
|
for value, delay in item[2]:
|
||||||
self.setValue(value)
|
self.setValue(value)
|
||||||
time.sleep(delay)
|
time.sleep(delay)
|
||||||
print('end final step')
|
|
||||||
self.log.debug('end final step')
|
|
||||||
self.log.debug(f"running {self.name} main loop...")
|
|
||||||
self.parent.loop()
|
|
||||||
|
|
||||||
def stop(self):
|
|
||||||
self.stop_event.set()
|
|
||||||
self.log.debug(f"stopping {self.name}...")
|
|
||||||
|
|
Loading…
Reference in New Issue