import time from PyQt5.QtCore import QThread, pyqtSignal from protocol.TCP.RTDTC import RTDTCClient from protocol.TCP.Analog import AnalogClient from protocol.FF.FFSimulate import FFSimulate from protocol.Hart.HartSimulate import HartSimulate from utils import Globals class FFThread(QThread): getExpandedSignal = pyqtSignal() refreshViewSignal = pyqtSignal() def __init__(self, FFCom, window):#向线程中传递参数,以便在run方法中使用 super(FFThread, self).__init__() self.FFCom = FFCom self.window = window self.isPause = False self.isRun = True self.finished.connect(self.deleteLater) def __del__(self): self.wait() def start(self): self.isRun = True self.isPause = False super(FFThread, self).start() def run(self):#重写run方法 while self.isRun: time.sleep(0.5) if not self.isPause: # expandedParams = self.window.getExpandedParams() self.getExpandedSignal.emit() self.FFCom.refreshParams(self.window.expandedParams) self.refreshViewSignal.emit() def pause(self): self.isPause = True def reStart(self): self.isPause = False def quitThread(self): self.isRun = False self.quit() self.wait() class AnalogThread(FFThread): # getValueList = pyqtSignal() def __init__(self, window):#向线程中传递参数,以便在run方法中使用 super(AnalogThread, self).__init__(None, window) self.AnalogCom = AnalogClient('192.168.4.218:6541') def run(self):#重写run方法 while self.isRun: time.sleep(1) if not self.isPause: try: self.AnalogCom.writeData(self.window.realList) except Exception as e: print(e) class RTDTCThread(FFThread): # getValueList = pyqtSignal() def __init__(self, window):#向线程中传递参数,以便在run方法中使用 super(RTDTCThread, self).__init__(None, window) self.RTDTCCom = RTDTCClient('127.0.0.1:6350') def run(self):#重写run方法 while self.isRun: time.sleep(1) if not self.isPause: try: self.RTDTCCom.writeData(self.window.mvList) except Exception as e: print(e) class FFSimulateThread(FFThread): def __init__(self, window):#向线程中传递参数,以便在run方法中使用 super(FFSimulateThread, self).__init__(None, window) self.FFSimulate = FFSimulate() # print(self.FFSimulate, 111) def run(self): while self.isRun: time.sleep(0.5) if not self.isPause: try: self.window.valueList = self.FFSimulate.readValue() except Exception as e: print(e) class HartSimulateThread(FFThread): def __init__(self, window):#向线程中传递参数,以便在run方法中使用 super(HartSimulateThread, self).__init__(None, window) self.HartSimulate = HartSimulate() # print(self.HartSimulate, 111) def run(self): while self.isRun: time.sleep(1) if not self.isPause: try: self.window.valueList = self.HartSimulate.readValue() except Exception as e: print(e)