コード例 #1
0
    def __init__(self, temp_control_comp):
        super(SimplePlot, self).__init__()
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.sock.settimeout(0.5)

        self.tcc = temp_control_comp

        # Set up the user interface from Designer.
        self.gui = Ui_temp_control()
        self.gui.setupUi(self)

        # Init local variables
        self.scale = 1E-8
        self.active = False
        self.start = None
        self.ramp_start = 0
        self.ramp = {}
        self.ramp['time'] = {}
        self.ramp['temp'] = {}
        self.ramp['step'] = {}
        # Set up plot (using pretty much all the possible options)
        self.plots_l = ['temperature', 'setpoint']
        self.plots_r = ['dutycycle']
        self.plotter = DataPlotter(
            self.plots_l, right_plotlist=self.plots_r, parent=self,
            left_log=False, title='Temperature control',
            yaxis_left_label='Temperature', yaxis_right_label='Dutycycle',
            xaxis_label='Time since start [s]',
            legend='right', left_thickness=[2, 3], right_thickness=2,
            left_colors=['firebrick', 'darkolivegreen'],
            right_colors=['darksalmon'])
        self.gui.horizontalLayout.removeWidget(self.gui.place_holder_qwt)
        self.gui.place_holder_qwt.setParent(None)
        self.gui.horizontalLayout.addWidget(self.plotter.plot)

        # Connect signals
        QtCore.QObject.connect(self.gui.start_ramp_button,
                               QtCore.SIGNAL('clicked()'),
                               self.on_start_ramp)
        QtCore.QObject.connect(self.gui.stop_ramp_button,
                               QtCore.SIGNAL('clicked()'),
                               self.on_stop_ramp)
        QtCore.QObject.connect(self.gui.start_button,
                               QtCore.SIGNAL('clicked()'),
                               self.on_start)
        QtCore.QObject.connect(self.gui.stop_button,
                               QtCore.SIGNAL('clicked()'),
                               self.on_stop)
        QtCore.QObject.connect(self.gui.quit_button,
                               QtCore.SIGNAL('clicked()'),
                               QtCore.QCoreApplication.instance().quit)
        QtCore.QObject.connect(self.gui.new_setpoint,
                               QtCore.SIGNAL('returnPressed()'),
                               self.update_setpoint)
コード例 #2
0
    def __init__(self, temp_control_comp):
        super(SimplePlot, self).__init__()

        self.tcc = temp_control_comp

        # Set up the user interface from Designer.
        self.gui = Ui_temp_control()
        self.gui.setupUi(self)

        # Init local variables
        self.scale = 1e-8
        self.active = False
        self.start = None
        self.ramp_start = 0
        self.ramp = {}
        self.ramp["time"] = {}
        self.ramp["temp"] = {}
        self.ramp["step"] = {}
        # Set up plot (using pretty much all the possible options)
        self.plots_l = ["temperature", "setpoint"]
        self.plots_r = ["dutycycle"]
        self.plotter = DataPlotter(
            self.plots_l,
            right_plotlist=self.plots_r,
            parent=self,
            left_log=False,
            title="Temperature control",
            yaxis_left_label="Temperature",
            yaxis_right_label="Dutycycle",
            xaxis_label="Time since start [s]",
            legend="right",
            left_thickness=[2, 3],
            right_thickness=2,
            left_colors=["firebrick", "darkolivegreen"],
            right_colors=["darksalmon"],
        )
        self.gui.horizontalLayout.removeWidget(self.gui.place_holder_qwt)
        self.gui.place_holder_qwt.setParent(None)
        self.gui.horizontalLayout.addWidget(self.plotter.plot)

        # Connect signals
        QtCore.QObject.connect(self.gui.start_ramp_button, QtCore.SIGNAL("clicked()"), self.on_start_ramp)
        QtCore.QObject.connect(self.gui.stop_ramp_button, QtCore.SIGNAL("clicked()"), self.on_stop_ramp)
        QtCore.QObject.connect(self.gui.start_button, QtCore.SIGNAL("clicked()"), self.on_start)
        QtCore.QObject.connect(self.gui.stop_button, QtCore.SIGNAL("clicked()"), self.on_stop)
        QtCore.QObject.connect(
            self.gui.quit_button, QtCore.SIGNAL("clicked()"), QtCore.QCoreApplication.instance().quit
        )
        QtCore.QObject.connect(self.gui.new_setpoint, QtCore.SIGNAL("returnPressed()"), self.update_setpoint)
コード例 #3
0
ファイル: temp_control.py プロジェクト: JNRiedel/PyExpLabSys
class SimplePlot(QWidget):
    """Simple example with a Qwt plot in a Qt GUI"""
    def __init__(self, temp_control_comp):
        super(SimplePlot, self).__init__()

        self.tcc = temp_control_comp

        # Set up the user interface from Designer.
        self.gui = Ui_temp_control()
        self.gui.setupUi(self)

        # Init local variables
        self.scale = 1E-8
        self.active = False
        self.start = None
        self.ramp_start = 0
        self.ramp = {}
        self.ramp['time'] = {}
        self.ramp['temp'] = {}
        self.ramp['step'] = {}
        # Set up plot (using pretty much all the possible options)
        self.plots_l = ['temperature', 'setpoint']
        self.plots_r = ['power']
        self.plotter = DataPlotter(
            self.plots_l, right_plotlist=self.plots_r, parent=self,
            left_log=False, title='Temperature control',
            yaxis_left_label='Temperature', yaxis_right_label='Power',
            xaxis_label='Time since start [s]',
            legend='right', left_thickness=[2, 3], right_thickness=2,
            left_colors=['firebrick', 'darkolivegreen'],
            right_colors=['darksalmon'])
        self.gui.horizontalLayout.removeWidget(self.gui.place_holder_qwt)
        self.gui.place_holder_qwt.setParent(None)
        self.gui.horizontalLayout.addWidget(self.plotter.plot)

        # Connect signals
        QtCore.QObject.connect(self.gui.start_ramp_button,
                               QtCore.SIGNAL('clicked()'),
                               self.on_start_ramp)        
        QtCore.QObject.connect(self.gui.standby_button,
                               QtCore.SIGNAL('clicked()'),
                               self.on_standby)        
        QtCore.QObject.connect(self.gui.start_button,
                               QtCore.SIGNAL('clicked()'),
                               self.on_start)
        QtCore.QObject.connect(self.gui.stop_button,
                               QtCore.SIGNAL('clicked()'),
                               self.on_stop)
        QtCore.QObject.connect(self.gui.quit_button,
                               QtCore.SIGNAL('clicked()'),
                               QtCore.QCoreApplication.instance().quit)
        QtCore.QObject.connect(self.gui.new_setpoint,
                               QtCore.SIGNAL('returnPressed()'),
                               self.update_setpoint)
    def on_start(self):
        """Start button method"""
        print 'start pressed'
        if not self.active:
            self.start = time.time()
            self.active = True
            # Reset plot
            for key in self.plotter.data.keys():
                self.plotter.data[key] = []

            QtCore.QTimer.singleShot(0, self.plot_iteration)

    def on_standby(self):
        """Standby button method"""
        self.sputtergun.goto_standby = True

    def update_setpoint(self):
        """Standby button method"""
        new_setpoint = self.gui.new_setpoint.text()
        try:
            float(new_setpoint)
        except ValueError:
            new_setpoint = str(self.tcc.status['setpoint'])
        self.gui.new_setpoint.setProperty("text", new_setpoint)
        data = 'set_setpoint' + str(new_setpoint)
        host = '130.225.87.213'
        port = 9999
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        sock.settimeout(0.2)
        sock.sendto(data, (host, port))
        received = sock.recv(1024)


    def on_start_ramp(self):
        """Start temperature ramp"""
        self.ramp_start = time.time()
        for i in range(0,5):
            self.ramp['time'][i] = int(self.gui.temperature_ramp.item(i,0).text())
            self.ramp['temp'][i] = int(self.gui.temperature_ramp.item(i,1).text())
            self.ramp['step'][i] = int(self.gui.temperature_ramp.item(i,2).checkState()) == 2
        data = 'set_ramp' +  pickle.dumps(self.ramp)
        host = '130.225.87.213'
        port = 9999
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        sock.settimeout(0.2)
        sock.sendto(data, (host, port))
        received = sock.recv(1024)


    def on_stop(self):
        """Stop button method"""
        print 'stop pressed'
        self.active = False

    def plot_iteration(self):
        """method that emulates a single data gathering and plot update"""
        elapsed = time.time() - self.start
        if self.tcc.status['connected'] is True:
            self.gui.current.setProperty("text", str(self.tcc.status['current']) + 'A')
            self.gui.voltage.setProperty("text", str(self.tcc.status['voltage']) + 'V')
            self.gui.temperature.setProperty("text", str(self.tcc.status['temperature']) + 'C')
            self.gui.power.setProperty("text", str(self.tcc.status['power']) + 'W')
            self.gui.resistance.setProperty("text", '{0:.3f}Ohm'.format(self.tcc.status['resistance']))
            self.gui.setpoint.setProperty("text", str(self.tcc.status['setpoint']) + 'C')

        else:
            self.gui.current.setProperty("text", '-')
            self.gui.voltage.setProperty("text", '-')
            self.gui.temperature.setProperty("text", '-')
            self.gui.power.setProperty("text", '-')
            self.gui.resistance.setProperty("text", '-')
            self.gui.setpoint.setProperty("text", '-')
        try:
            if self.tcc.status['temp_connected'] is True:
                self.plotter.add_point('temperature', (elapsed, self.tcc.status['temperature']))
            if self.tcc.status['connected'] is True:
                self.plotter.add_point('setpoint', (elapsed, self.tcc.status['setpoint']))
                self.plotter.add_point('power', (elapsed, self.tcc.status['power']))
        except TypeError:
            pass

        if self.active:
            # Under normal curcumstances we would not add a delay
            QtCore.QTimer.singleShot(500, self.plot_iteration)
コード例 #4
0
class SimplePlot(QWidget):
    """Simple example with a Qwt plot in a Qt GUI"""

    def __init__(self, temp_control_comp):
        super(SimplePlot, self).__init__()

        self.tcc = temp_control_comp

        # Set up the user interface from Designer.
        self.gui = Ui_temp_control()
        self.gui.setupUi(self)

        # Init local variables
        self.scale = 1e-8
        self.active = False
        self.start = None
        self.ramp_start = 0
        self.ramp = {}
        self.ramp["time"] = {}
        self.ramp["temp"] = {}
        self.ramp["step"] = {}
        # Set up plot (using pretty much all the possible options)
        self.plots_l = ["temperature", "setpoint"]
        self.plots_r = ["dutycycle"]
        self.plotter = DataPlotter(
            self.plots_l,
            right_plotlist=self.plots_r,
            parent=self,
            left_log=False,
            title="Temperature control",
            yaxis_left_label="Temperature",
            yaxis_right_label="Dutycycle",
            xaxis_label="Time since start [s]",
            legend="right",
            left_thickness=[2, 3],
            right_thickness=2,
            left_colors=["firebrick", "darkolivegreen"],
            right_colors=["darksalmon"],
        )
        self.gui.horizontalLayout.removeWidget(self.gui.place_holder_qwt)
        self.gui.place_holder_qwt.setParent(None)
        self.gui.horizontalLayout.addWidget(self.plotter.plot)

        # Connect signals
        QtCore.QObject.connect(self.gui.start_ramp_button, QtCore.SIGNAL("clicked()"), self.on_start_ramp)
        QtCore.QObject.connect(self.gui.stop_ramp_button, QtCore.SIGNAL("clicked()"), self.on_stop_ramp)
        QtCore.QObject.connect(self.gui.start_button, QtCore.SIGNAL("clicked()"), self.on_start)
        QtCore.QObject.connect(self.gui.stop_button, QtCore.SIGNAL("clicked()"), self.on_stop)
        QtCore.QObject.connect(
            self.gui.quit_button, QtCore.SIGNAL("clicked()"), QtCore.QCoreApplication.instance().quit
        )
        QtCore.QObject.connect(self.gui.new_setpoint, QtCore.SIGNAL("returnPressed()"), self.update_setpoint)

    def on_start(self):
        """Start button method"""
        print "start pressed"
        if not self.active:
            self.start = time.time()
            self.active = True
            # Reset plot
            for key in self.plotter.data.keys():
                self.plotter.data[key] = []

            QtCore.QTimer.singleShot(0, self.plot_iteration)

    def update_setpoint(self):
        """Standby button method"""
        new_setpoint = self.gui.new_setpoint.text()
        try:
            float(new_setpoint)
        except ValueError:
            new_setpoint = str(self.tcc.status["setpoint"])
        self.gui.new_setpoint.setProperty("text", new_setpoint)
        data = "raw_wn#setpoint:float:" + str(new_setpoint)
        host = "10.54.7.47"
        port = 8500
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        sock.settimeout(0.2)
        sock.sendto(data, (host, port))
        received = sock.recv(1024)
        print received

    def on_start_ramp(self):
        """Start temperature ramp"""
        self.ramp_start = time.time()
        for i in range(0, 11):
            self.ramp["time"][i] = int(self.gui.temperature_ramp.item(i, 0).text())
            self.ramp["temp"][i] = int(self.gui.temperature_ramp.item(i, 1).text())
            self.ramp["step"][i] = int(self.gui.temperature_ramp.item(i, 2).checkState()) == 2
        data = "raw_wn#ramp:str:" + pickle.dumps(self.ramp)
        print data
        host = "10.54.7.47"
        port = 8500
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        sock.settimeout(0.2)
        sock.sendto(data, (host, port))
        received = sock.recv(1024)

    def on_stop_ramp(self):
        """Start temperature ramp"""
        data = "raw_wn#ramp:str:stop"
        host = "10.54.7.47"
        port = 8500
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        sock.settimeout(0.2)
        sock.sendto(data, (host, port))
        received = sock.recv(1024)

    def on_stop(self):
        """Stop button method"""
        print "stop pressed"
        self.active = False

    def plot_iteration(self):
        """method that emulates a single data gathering and plot update"""
        elapsed = time.time() - self.start
        if self.tcc.status["connected"] is True:
            self.gui.temperature.setProperty("text", str(self.tcc.status["temperature"]) + "C")
            self.gui.power.setProperty("text", str(self.tcc.status["dutycycle"]) + "W")
            self.gui.setpoint.setProperty("text", str(self.tcc.status["setpoint"]) + "C")

        else:
            self.gui.current.setProperty("text", "-")
            self.gui.voltage.setProperty("text", "-")
            self.gui.temperature.setProperty("text", "-")
            self.gui.power.setProperty("text", "-")
            self.gui.resistance.setProperty("text", "-")
            self.gui.setpoint.setProperty("text", "-")
        try:
            if self.tcc.status["temp_connected"] is True:
                self.plotter.add_point("temperature", (elapsed, self.tcc.status["temperature"]))
            if self.tcc.status["connected"] is True:
                self.plotter.add_point("setpoint", (elapsed, self.tcc.status["setpoint"]))
                self.plotter.add_point("dutycycle", (elapsed, self.tcc.status["dutycycle"]))
        except TypeError:
            pass

        if self.active:
            # Under normal curcumstances we would not add a delay
            QtCore.QTimer.singleShot(500, self.plot_iteration)
コード例 #5
0
class SimplePlot(QWidget):
    """Simple example with a Qwt plot in a Qt GUI"""
    def __init__(self, temp_control_comp):
        super(SimplePlot, self).__init__()
        self.controller_hostname = config.controller_hostname
        self.controller_pull_port = config.controller_pull_port
        self.tcc = temp_control_comp

        # Set up the user interface from Designer.
        self.gui = Ui_temp_control()
        self.gui.setupUi(self)

        # Init local variables
        self.scale = 1E-8
        self.active = False
        self.start = None
        self.ramp_start = 0
        self.ramp = {}
        self.ramp['time'] = {}
        self.ramp['temp'] = {}
        self.ramp['step'] = {}
        # Set up plot (using pretty much all the possible options)
        self.plots_l = ['temperature', 'setpoint']
        self.plots_r = ['power']
        self.plotter = DataPlotter(
            self.plots_l, right_plotlist=self.plots_r, parent=self,
            left_log=False, title='Temperature control',
            yaxis_left_label='Temperature', yaxis_right_label='Power',
            xaxis_label='Time since start [s]',
            legend='right', left_thickness=[2, 3], right_thickness=2,
            left_colors=['firebrick', 'darkolivegreen'],
            right_colors=['darksalmon'])
        self.gui.horizontalLayout.removeWidget(self.gui.place_holder_qwt)
        self.gui.place_holder_qwt.setParent(None)
        self.gui.horizontalLayout.addWidget(self.plotter.plot)

        # Connect signals
        QtCore.QObject.connect(self.gui.start_ramp_button,
                               QtCore.SIGNAL('clicked()'),
                               self.on_start_ramp)        
        QtCore.QObject.connect(self.gui.stop_ramp_button,
                               QtCore.SIGNAL('clicked()'),
                               self.on_stop_ramp)        
        QtCore.QObject.connect(self.gui.start_button,
                               QtCore.SIGNAL('clicked()'),
                               self.on_start)
        QtCore.QObject.connect(self.gui.stop_button,
                               QtCore.SIGNAL('clicked()'),
                               self.on_stop)
        QtCore.QObject.connect(self.gui.quit_button,
                               QtCore.SIGNAL('clicked()'),
                               QtCore.QCoreApplication.instance().quit)
        QtCore.QObject.connect(self.gui.new_setpoint,
                               QtCore.SIGNAL('returnPressed()'),
                               self.update_setpoint)
    def on_start(self):
        """Start button method"""
        print('start pressed')
        if not self.active:
            self.start = time.time()
            self.active = True
            # Reset plot
            for key in self.plotter.data.keys():
                self.plotter.data[key] = []

            QtCore.QTimer.singleShot(0, self.plot_iteration)

    def update_setpoint(self):
        """Standby button method"""
        new_setpoint = self.gui.new_setpoint.text()
        try:
            float(new_setpoint)
        except ValueError:
            new_setpoint = str(self.tcc.status['setpoint'])
        self.gui.new_setpoint.setProperty("text", new_setpoint)
        data = 'setpoint' + str(new_setpoint)
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        sock.settimeout(0.2)
        sock.sendto(data, (self.controller_hostname, self.controller_pull_port))
        received = sock.recv(1024)


    def on_start_ramp(self):
        """Start temperature ramp"""
        self.ramp_start = time.time()
        for i in range(0,11):
            self.ramp['time'][i] = int(self.gui.temperature_ramp.item(i,0).text())
            self.ramp['temp'][i] = int(self.gui.temperature_ramp.item(i,1).text())
            self.ramp['step'][i] = int(self.gui.temperature_ramp.item(i,2).checkState()) == 2
        data = 'ramp' +  pickle.dumps(self.ramp)
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        sock.settimeout(0.2)
        sock.sendto(data, (self.controller_hostname, self.controller_pull_port))
        received = sock.recv(1024)

    def on_stop_ramp(self):
        """Start temperature ramp"""
        data = 'stop_ramp'
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        sock.settimeout(0.2)
        sock.sendto(data, (self.controller_hostname, self.controller_pull_port))
        received = sock.recv(1024)

    def on_stop(self):
        """Stop button method"""
        print 'stop pressed'
        self.active = False

    def plot_iteration(self):
        """method that emulates a single data gathering and plot update"""
        elapsed = time.time() - self.start
        if self.tcc.status['connected'] is True:
            self.gui.current.setProperty("text", str(self.tcc.status['current']) + 'A')
            self.gui.voltage.setProperty("text", str(self.tcc.status['voltage']) + 'V')
            self.gui.temperature.setProperty("text", str(self.tcc.status['temperature']) + 'C')
            self.gui.power.setProperty("text", str(self.tcc.status['power']) + 'W')
            self.gui.resistance.setProperty("text", '{0:.3f}Ohm'.format(self.tcc.status['resistance']))
            self.gui.setpoint.setProperty("text", str(self.tcc.status['setpoint']) + 'C')

        else:
            self.gui.current.setProperty("text", '-')
            self.gui.voltage.setProperty("text", '-')
            self.gui.temperature.setProperty("text", '-')
            self.gui.power.setProperty("text", '-')
            self.gui.resistance.setProperty("text", '-')
            self.gui.setpoint.setProperty("text", '-')
        try:
            if self.tcc.status['temp_connected'] is True:
                self.plotter.add_point('temperature', (elapsed, self.tcc.status['temperature']))
            if self.tcc.status['connected'] is True:
                self.plotter.add_point('setpoint', (elapsed, self.tcc.status['setpoint']))
                self.plotter.add_point('power', (elapsed, self.tcc.status['power']))
        except TypeError:
            pass

        if self.active:
            # Under normal curcumstances we would not add a delay
            QtCore.QTimer.singleShot(500, self.plot_iteration)