import PySide6.QtWidgets as QTW import numpy as np import struct import socket import sys class Window(QTW.QWidget): def __init__(self): super().__init__() self.genLayout = QTW.QHBoxLayout() self.genButton = QTW.QPushButton("Generate") self.genButton.pressed.connect(self.genFileDialog) self.genLabel = QTW.QLabel("Not generated") self.genLayout.addWidget(self.genButton) self.genLayout.addWidget(self.genLabel) self.paramLayout = QTW.QHBoxLayout() self.typeGenLabel = QTW.QLabel("Type: ") self.typeGenCombo = QTW.QComboBox() self.typeGenCombo.addItem("Rect") self.typeGenCombo.addItem("Sinc") self.typeGenCombo.addItem("Triangle") self.sigWidthLabel = QTW.QLabel("Width (us): ") self.sigWidthEdit = QTW.QSpinBox() self.sigWidthEdit.setMaximum(1000000) self.sigWidthEdit.setValue(1000) self.delayLabel = QTW.QLabel("Delay (us): ") self.delayEdit = QTW.QSpinBox() self.delayEdit.setMaximum(1000000) self.delayEdit.setValue(500) self.frontsLabel = QTW.QLabel("Fronts (us): ") self.frontsEdit = QTW.QSpinBox() self.frontsEdit.setMaximum(100) self.frontsEdit.setValue(2) self.numLabel = QTW.QLabel("Repeats: ") self.numEdit = QTW.QSpinBox() self.numEdit.setMaximum(1000) self.numEdit.setValue(5) self.paramLayout.addWidget(self.typeGenLabel) self.paramLayout.addWidget(self.typeGenCombo) self.paramLayout.addWidget(self.sigWidthLabel) self.paramLayout.addWidget(self.sigWidthEdit) self.paramLayout.addWidget(self.delayLabel) self.paramLayout.addWidget(self.delayEdit) self.paramLayout.addWidget(self.frontsLabel) self.paramLayout.addWidget(self.frontsEdit) self.paramLayout.addWidget(self.numLabel) self.paramLayout.addWidget(self.numEdit) self.loadLayout = QTW.QHBoxLayout() self.loadFileEdit = QTW.QLineEdit() self.loadFileButton = QTW.QToolButton() self.freqLabel = QTW.QLabel("Central freq (kHz): ") self.freqEdit = QTW.QSpinBox() self.freqEdit.setMaximum(50000) self.freqEdit.setValue(2950) self.loadButton = QTW.QPushButton("Load") self.loadLabel = QTW.QLabel("Not loaded") self.syncLayout = QTW.QHBoxLayout() self.syncButton = QTW.QPushButton("Sync Alone Test") self.syncButton.pressed.connect(self.syncAlone) self.loadLayout.addWidget(self.freqLabel) self.loadLayout.addWidget(self.freqEdit) self.loadLayout.addWidget(self.loadButton) self.loadLayout.addWidget(self.loadLabel) self.syncLayout.addWidget(self.syncButton) self.loadButton.pressed.connect(self.loadFileDialog) self.mainlayout = QTW.QVBoxLayout() self.mainlayout.addLayout(self.genLayout) self.mainlayout.addLayout(self.paramLayout) self.mainlayout.addLayout(self.loadLayout) self.mainlayout.addLayout(self.syncLayout) self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.setLayout(self.mainlayout) def syncAlone(self): self.sock.connect(('rp-f0cf82.local', 5005)) buffer = struct.pack('