import sys, pysmu from functools import partial from PyQt5.QtWidgets import QApplication from SessionManager import SessionManager from DeviceController import DeviceController from GUI import MainWindow def main(): # 1) Session + Devices sess = pysmu.Session() sess.add_all() sm = SessionManager(sess) devices = list(sess.devices) print("Gefundene Geräte:", [d.serial for d in devices]) controllers = [DeviceController(sm, dev) for dev in devices] # Optional: Modi setzen (A/B) for c in controllers: c.set_mode("A", pysmu.Mode.SIMV) c.set_mode("B", pysmu.Mode.HI_Z) # 2) GUI app = QApplication(sys.argv) win = MainWindow() # 3) Liste + Buttons for i, ctrl in enumerate(controllers): w = win.add_list_item(ctrl.serial, i) # 'checked' wird in der Lambda abgefangen, wir übergeben nur (ctrl, w) w.btn_start.clicked.connect(lambda checked=False, c=ctrl, ww=w: (c.start(), ww.set_running(True))) w.btn_stop.clicked.connect (lambda checked=False, c=ctrl, ww=w: (c.stop(), ww.set_running(False))) win.show() sys.exit(app.exec_()) if __name__ == "__main__": main()