from SDT_Device.DTS import DTS import sys from PyQt6 import QtCore from PyQt6.QtCore import Qt from PyQt6.QtWidgets import QApplication, QMainWindow from MainWindow import Ui_MainWindow from pyqtgraph import PlotWidget, plot import pyqtgraph as pg from random import randint import threading import time import struct class MainWindow(QMainWindow, Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) self.show() self.pb_Start1.clicked.connect(self.SendStartPacket1) self.pb_Stop1.clicked.connect(self.SendStopPacket1) self.pushButton_EnableDelaySet.clicked.connect(self.SetEnableDelay) self.pushButton_AverageStepSet.clicked.connect(self.SetAverage) self.pushButton_SampleRangeSet.clicked.connect(self.SetSampleRange) self.comboboxMinVal = 8 for i in range(self.comboboxMinVal, 12): self.comboBox_AverageStepVal.addItem(str(2**i)) ip = "192.168.0.20" port = 5001 self.dts = DTS(ip, port) self.dtsInit() self.x1 = [] self.y1 = [] self.data_line1 = self.graphWidget1.plot(self.x1, self.y1) self.timer = QtCore.QTimer() self.timer.setInterval(250) self.timer.timeout.connect(self.update_plot_data) self.timer.start() self.tick = 0 self.prevDataCount = 0 def SetEnableDelay(self): val = int(self.lineEdit_EnableDelayValue.text()) self.dts.setAvgEnableDelay(0, 10 + val) self.dts.setAvgStart(0, 0) self.dts.setAvgStart(0, 1) def SetAverage(self): val = self.comboBox_AverageStepVal.currentIndex() + self.comboboxMinVal self.dts.setAvgStep(0, val) self.dts.setAvgStart(0, 0) self.dts.setAvgStart(0, 1) def SetSampleRange(self): val = int(self.lineEdit_SampleRangeValue.text()) self.dts.setAvgSampleRange(0, val) self.dts.setAvgStart(0, 0) self.dts.setAvgStart(0, 1) def SendStartPacket1(self): print("Send Start1") self.dts.setAvgStart(0, 1) def SendStopPacket1(self): print("Send Stop1") self.dts.setAvgStart(0, 0) def update_plot_data(self): self.y1 = self.dts.ReadAdcData(0) size = len(self.y1) self.x1 = list(range(size)) self.data_line1.setData(self.x1, self.y1) print(self.dts.dataCount) if self.prevDataCount != self.dts.dataCount[0]: self.prevDataCount = self.dts.dataCount[0] current_time = time.time() formatted_time = time.strftime("%H:%M:%S", time.localtime(current_time)) print(f"[{formatted_time}] dataCount={self.dts.dataCount[0]}") debugData = self.dts.getDebugData() self.lineEdit_TriggerCount.setText(str(debugData[4])) def dtsInit(self): self.dts.setSystemReset() self.comboBox_AverageStepVal.setCurrentText(f"{self.comboboxMinVal}") avgStepVal = self.comboBox_AverageStepVal.currentIndex() + self.comboboxMinVal self.lineEdit_SampleRangeValue.setText("50000") sampleRangeVal = int(self.lineEdit_SampleRangeValue.text()) self.lineEdit_EnableDelayValue.setText("0") enableDelayVal = int(self.lineEdit_EnableDelayValue.text()) ch = 0 self.dts.setAvgEnableDelay(ch, 10 + enableDelayVal) self.dts.setAvgSampleRange(ch, sampleRangeVal) self.dts.setAvgStep(ch, avgStepVal) self.dts.setAvgStart(ch, 0) self.dts.setTimerTick(ch, 100_000_000) def mainInit(): app = QApplication(sys.argv) w = MainWindow() app.exec() if __name__ == "__main__": mainInit() # pyuic6 .\MainWindow.ui -o MainWindow.py