MainCode/adalm1000_logger.py aktualisiert

Remove QQueue from the import line.

Use collections.deque or queue.Queue instead.
(C)
This commit is contained in:
Jan 2025-06-30 01:02:29 +02:00
parent c2780a0fc5
commit 0b7ea8c3c8

View File

@ -13,9 +13,9 @@ from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout, QH
QGridLayout, QLabel, QPushButton, QLineEdit, QFrame, QGridLayout, QLabel, QPushButton, QLineEdit, QFrame,
QCheckBox, QMessageBox, QFileDialog, QProgressBar) QCheckBox, QMessageBox, QFileDialog, QProgressBar)
from PyQt5.QtCore import (Qt, QTimer, pyqtSignal, pyqtSlot, QObject, QThread, from PyQt5.QtCore import (Qt, QTimer, pyqtSignal, pyqtSlot, QObject, QThread,
QMutex, QMutexLocker, QQueue) QMutex, QMutexLocker)
from PyQt5.QtGui import QColor, QPalette from PyQt5.QtGui import QColor, QPalette
from collections import deque
import pysmu import pysmu
import matplotlib import matplotlib
matplotlib.use('Qt5Agg') matplotlib.use('Qt5Agg')
@ -54,8 +54,8 @@ class MeasurementThread(QThread):
def run(self): def run(self):
"""Main measurement loop with enhanced error handling.""" """Main measurement loop with enhanced error handling."""
self._running = True self._running = True
voltage_window = QQueue() voltage_window = deque()
current_window = QQueue() current_window = deque()
self.status_signal.emit("Measurement started") self.status_signal.emit("Measurement started")
@ -76,11 +76,11 @@ class MeasurementThread(QThread):
raw_current = np.mean([s[0][1] for s in samples]) raw_current = np.mean([s[0][1] for s in samples])
if voltage_window.size() >= self.filter_window_size: if voltage_window.size() >= self.filter_window_size:
voltage_window.dequeue() voltage_window.append
current_window.dequeue() current_window.append
voltage_window.enqueue(raw_voltage) voltage_window.append(raw_voltage)
current_window.enqueue(raw_current) current_window.append(raw_current)
voltage = np.mean(list(voltage_window)) voltage = np.mean(list(voltage_window))
current = np.mean(list(current_window)) current = np.mean(list(current_window))
@ -297,10 +297,10 @@ class BatteryTester(QMainWindow):
self.error_signal.connect(self.handle_device_error) self.error_signal.connect(self.handle_device_error)
# Initialize data buffers # Initialize data buffers
self.time_data = QQueue() self.time_data = deque()
self.voltage_data = QQueue() self.voltage_data = deque()
self.current_data = QQueue() self.current_data = deque()
self.phase_data = QQueue() self.phase_data = deque()
# Test variables # Test variables
self.test_phase = "Ready" self.test_phase = "Ready"
@ -879,13 +879,13 @@ class BatteryTester(QMainWindow):
def update_measurements(self, voltage: float, current: float, current_time: float): def update_measurements(self, voltage: float, current: float, current_time: float):
"""Update measurements in the UI.""" """Update measurements in the UI."""
if self.time_data.size() > 10000: # Limit data points if self.time_data.size() > 10000: # Limit data points
self.time_data.dequeue() self.time_data.append
self.voltage_data.dequeue() self.voltage_data.append
self.current_data.dequeue() self.current_data.append
self.time_data.enqueue(current_time) self.time_data.append(current_time)
self.voltage_data.enqueue(voltage) self.voltage_data.append(voltage)
self.current_data.enqueue(current) self.current_data.append(current)
# Update UI # Update UI
self.voltage_label.setText(f"{voltage:.4f}") self.voltage_label.setText(f"{voltage:.4f}")