Exemplo n.º 1
0
class RiHandler(object):

    def __init__(self, ui):
        self.ui = ui
        self.ui.ri_ui.measure_ri_button.clicked.connect(self.measure_ri)
        self.executor = None

    def _connect(self):
        if self.executor is not None:
            return self.executor # Reuse previously opened object (and socket)
        try:
            ip_port = str(self.ui.ipField.text()).split(":")
            ip = ip_port[0]
            port = int(ip_port[1])
            self.executor = SocketExecutor(ip, port) # Do connection
        except IndexError:
            QtGui.QMessageBox.information(self.ui.centralwidget,
                    "IP no especificado",
                    "Es necesario especificar un IP y puerto en el formato IP:puerto")

    def measure_ri(self):
        self._connect()
        smu = int(self.ui.ri_ui.smu_lineedit.text())
        current = float(self.ui.ri_ui.current_ri_lineedit.text())
        current_compliance = float(self.ui.ri_ui.compliance_ri_lineedit.text())
        self.executor.execute_command("RI {smu}, {current}, {current_compliance}".format(smu=smu, current=current, 
                    current_compliance=current_compliance))
Exemplo n.º 2
0
 def _connect(self):
     if self.executor is not None:
         return self.executor # Reuse previously opened object (and socket)
     try:
         ip_port = str(self.ui.ipField.text()).split(":")
         ip = ip_port[0]
         port = int(ip_port[1])
         self.executor = SocketExecutor(ip, port) # Do connection
     except IndexError:
         QtGui.QMessageBox.information(self.ui.centralwidget,
                 "IP no especificado",
                 "Es necesario especificar un IP y puerto en el formato IP:puerto")
Exemplo n.º 3
0
def retrieve_data_single(ip, port, fname):
    executor = SocketExecutor(ip, port, expect_reply=False, endline="\n")
    executor.execute_command(":FORM:DATA ASC") # Set data to ASCII

    data = executor.ask(":CALC1:DATA:FDAT?")
    data = data.split(",")
    data = [float(i) for i in data]
    write_vector(data, fname + "_freqdata.csv")

    freq_data = executor.ask(":SENS1:FREQ:DATA?")
    freq_data = freq_data.split(",")
    freq_data = [float(i) for i in freq_data]
    write_vector(freq_data, fname + "_freqdata.csv")

    executor.close()
Exemplo n.º 4
0
def poll_for_data(ip, port, ui, active):
    executor = SocketExecutor(ip, port)
    while True:
        executor.execute_command("SP")
        is_ready = executor.get_data()
        is_ready = is_ready.replace("\0","")
        if 0b00000001 & int(is_ready):
            # Data is ready. Break out of this loop 
            break
        time.sleep(1)
    # Retrieve data and save it to file
    for element in active:
        print "Run once per channel"
        combo = element['combo']
        ch = int(str(combo.objectName())[3:4])
        template = "DO 'CH{ch}T'"
        cmd = template.format(ch=ch)
        data = executor.ask(cmd)
        with open(str(ui.fileField.text())+ str(ch) + ".csv",'w+') as f:
            data = data.split(",")
            for line in data:
                f.write(line+"\r\n")

    executor.close()