diff --git a/Controll.py b/Controll.py index f42e3c1..675f6f7 100644 --- a/Controll.py +++ b/Controll.py @@ -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() + # Optional: Modi setzen + for serial in serials: + c = controllers[serial] + c.set_mode(0, pysmu.Mode.SIMV) # CH A z. B. + c.set_mode(1, pysmu.Mode.HI_Z) # CH B z. B. -for i, serial in enumerate(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) + # 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