import time from PyQt5.QtCore import QThread, pyqtSignal from UI.TrendManage.ActualTrendWidget import ActualTrend 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)