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
from PyQt5.QtWidgets import QApplication
from GUI import MainWindow
from DeviceController import DeviceController
from GUI import MainWindow, startGUI
import os
def main():
# 1) Geräte einsammeln (pysmu nur hier benutzen)
sess = pysmu.Session()
sess.add_all()
# --- Setup ---
sess = pysmu.Session()
sess.add_all()
controllers = {dev.serial: DeviceController(dev) for dev in sess.devices}
serials = list(controllers.keys())
print(serials)
controllers = {dev.serial: DeviceController(dev) for dev in sess.devices}
serials = list(controllers.keys())
print("Gefundene Geräte:", serials)
startGUI()
for i, serial in enumerate(serials):
# Optional: Modi setzen
for serial in serials:
c = controllers[serial]
print(c)
c.set_mode(0, pysmu.Mode.SIMV) # CH A Hi-Z
c.set_mode(1, pysmu.Mode.HI_Z) # CH B Hi-Z
MainWindow.add_list_item(MainWindow, serials[i], i, c.start, c.stop)
c.set_mode(0, pysmu.Mode.SIMV) # CH A z. B.
c.set_mode(1, pysmu.Mode.HI_Z) # CH B z. B.
# 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