fix
This commit is contained in:
parent
5602c20cb3
commit
72df5f7691
@ -40,47 +40,36 @@ class DeviceWorker:
|
|||||||
|
|
||||||
def _reader_loop(self):
|
def _reader_loop(self):
|
||||||
print(f"[{self.serial}] Reader gestartet (interval={self.interval}, n={self.filter_window_size})")
|
print(f"[{self.serial}] Reader gestartet (interval={self.interval}, n={self.filter_window_size})")
|
||||||
|
filter_window_size = 10
|
||||||
|
interval = 0.1
|
||||||
|
last_log = 0.0
|
||||||
|
current_direction = 1 # falls du das brauchst wie im Single-Logger
|
||||||
last_log = 0.0
|
last_log = 0.0
|
||||||
while not self._stop_evt.is_set():
|
while not self._stop_evt.is_set():
|
||||||
try:
|
|
||||||
cmd, _ = self._cmdq.get_nowait()
|
|
||||||
if cmd == "start":
|
|
||||||
self._running = True
|
|
||||||
print(f"[{self.serial}] RUNNING")
|
|
||||||
elif cmd == "stop":
|
|
||||||
self._running = False
|
|
||||||
print(f"[{self.serial}] STOPPED")
|
|
||||||
except queue.Empty:
|
|
||||||
pass
|
|
||||||
|
|
||||||
if not self._running:
|
if not self._running:
|
||||||
time.sleep(0.05)
|
time.sleep(0.05); continue
|
||||||
continue
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# WÄHLE HIER DIE SIGNATUR, DIE DEIN SINGLE-LOGGER NUTZT:
|
# exakt wie im Single-Logger:
|
||||||
# Beispiel A (deine Datei ließ 'read(n, 500, True)' vermuten):
|
samples = self.dev.read(filter_window_size, 500, True)
|
||||||
samples = self.dev.read(self.filter_window_size, 500, True)
|
|
||||||
# Beispiel B (andere pysmu-Versionen):
|
|
||||||
# samples = self.dev.read(self.filter_window_size, -1)
|
|
||||||
|
|
||||||
if not samples:
|
if not samples:
|
||||||
time.sleep(self.interval)
|
time.sleep(interval)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
vA = statistics.mean(row[0] for row in samples)
|
# WICHTIG: gleiche Indizes wie in deinem Logger!
|
||||||
vB = statistics.mean(row[2] for row in samples)
|
raw_voltage = float(np.mean([s[1][0] for s in samples])) # VB
|
||||||
|
raw_current = float(np.mean([s[0][1] for s in samples])) * current_direction # IA
|
||||||
|
|
||||||
now = time.time()
|
now = time.time()
|
||||||
if now - last_log >= 1.0:
|
if now - last_log >= 1.0: # 1 Hz loggen
|
||||||
self._writer_q.put((now, vA, vB))
|
self._writer_q.put((now, raw_voltage, raw_current))
|
||||||
last_log = now
|
last_log = now
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"[{self.serial}] Read-Fehler: {e}")
|
print(f"[{self.serial}] Read-Fehler: {e}")
|
||||||
time.sleep(0.05)
|
time.sleep(0.05)
|
||||||
|
|
||||||
time.sleep(max(0.05, self.interval))
|
time.sleep(max(0.05, interval))
|
||||||
|
|
||||||
def _writer_loop(self):
|
def _writer_loop(self):
|
||||||
try:
|
try:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user