39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
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() |