This commit is contained in:
Vincent Hanewinkel 2025-08-14 21:15:00 +02:00
parent 4d66ea6650
commit 6d09c7bc0b

View File

@ -1,25 +1,51 @@
import sys
import pysmu import pysmu
from PyQt5.QtWidgets import QApplication
from GUI import MainWindow
from DeviceController import DeviceController from DeviceController import DeviceController
from GUI import MainWindow, startGUI
import os
def main():
# --- Setup --- # 1) Geräte einsammeln (pysmu nur hier benutzen)
sess = pysmu.Session() sess = pysmu.Session()
sess.add_all() sess.add_all()
controllers = {dev.serial: DeviceController(dev) for dev in sess.devices} controllers = {dev.serial: DeviceController(dev) for dev in sess.devices}
serials = list(controllers.keys()) serials = list(controllers.keys())
print(serials) print("Gefundene Geräte:", serials)
startGUI() # Optional: Modi setzen
for serial in serials:
for i, serial in enumerate(serials):
c = controllers[serial] c = controllers[serial]
print(c) c.set_mode(0, pysmu.Mode.SIMV) # CH A z. B.
c.set_mode(0, pysmu.Mode.SIMV) # CH A Hi-Z c.set_mode(1, pysmu.Mode.HI_Z) # CH B z. B.
c.set_mode(1, pysmu.Mode.HI_Z) # CH B Hi-Z
MainWindow.add_list_item(MainWindow, serials[i], i, c.start, c.stop)
# 2) GUI erstellen
app = QApplication(sys.argv)
win = MainWindow()
# Kleine Helfer, damit die ListItem-Buttons nur Controller.start/stop aufrufen
def make_on_start(ctrl):
return lambda _idx: ctrl.start()
def make_on_stop(ctrl):
return lambda _idx: ctrl.stop()
# 3) Liste befüllen (auf der INSTANZ, nicht auf der Klasse!)
for i, serial in enumerate(serials):
ctrl = controllers[serial]
win.add_list_item(
text=serial,
index=i,
on_start=make_on_start(ctrl),
on_stop=make_on_stop(ctrl),
)
# 4) Start
win.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
# # Beispiel: Gerät 1 starten, Gerät 2 später starten/stoppen # # Beispiel: Gerät 1 starten, Gerät 2 später starten/stoppen