39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import pysmu, os
|
|
from session_manager import SessionManager
|
|
from device_worker import DeviceWorker
|
|
|
|
class MultiLogger:
|
|
def __init__(self, outdir="./logs",
|
|
filter_window_size=10, interval=0.1):
|
|
self.outdir = outdir
|
|
self.filter_window_size = filter_window_size
|
|
self.interval = interval
|
|
|
|
self.sess = pysmu.Session()
|
|
self.sess.add_all()
|
|
self.sm = SessionManager(self.sess)
|
|
|
|
self.devices = list(self.sess.devices)
|
|
self.workers = [DeviceWorker(self.sm, dev, outdir,
|
|
filter_window_size, interval) for dev in self.devices]
|
|
|
|
def set_default_modes(self):
|
|
# wie gehabt: A/B-Modi setzen
|
|
for w in self.workers:
|
|
try:
|
|
w.set_mode("A", pysmu.Mode.SIMV)
|
|
w.set_mode("B", pysmu.Mode.HI_Z)
|
|
except Exception as e:
|
|
print(f"[{w.serial}] Mode-Set-Fehler: {e}")
|
|
|
|
def start_all(self):
|
|
for w in self.workers:
|
|
w.start()
|
|
|
|
def stop_all(self):
|
|
for w in self.workers:
|
|
w.stop()
|
|
|
|
def shutdown(self):
|
|
for w in self.workers:
|
|
w.shutdown() |