コード例 #1
0
ファイル: VI_main.py プロジェクト: cygnushan/measurement
 def on_VI_start_clicked(self):
     print "start"
     self.index = 0
     self.temp_index = 0
     self.meas_mode = 0
     self.runtime = 0
     self.measure_times = 1
     self.temp_flag = 0
     self.stable_time = 0
     self.dataX = []
     self.dataY = []
     self.dataX.append([])
     self.dataY.append([])
     
     self.xls_name = str(self.save_path.text() + '/'+ self.sample_id.text() + '-'+ time.strftime("%m%d%H%M")+ ".xls")
     self.xls_init()
     
     # self.coord_init()
     self.VI_MPL.clear_curve()
     
     Keithley2400.conncet_inst()
     if self.gas_set:
         self.open_flow()
     
     if len(qmdz_const.temp_list) > 0:
         temp_now = ai518p_api.get_now_temp() + 0.5
         self.exp_temp = qmdz_const.temp_list[0]
         ai518p_api.set_518p_constmode(temp_now,self.exp_temp,self.up_slot,self.down_slot)
         
     self.timer.start(1000)
コード例 #2
0
 def on_SC_start_clicked(self):
     """
     Slot documentation goes here.
     """
     # TODO: not implemented yet
     # raise NotImplementedError
     logger.info("test start!")
     self.xls_name = str(self.save_path.text() + '/'+ self.sample_id.text() + '-'+ time.strftime("%m%d%H%M")+ ".xls")
     self.xtime = 0
     self.meas_mode = 0
     self.test_times = 1
     self.c_index = 0
  
     self.dataC = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]
     self.Sens = []
     self.dataS = []
     self.dataX = []
     self.dataY = []
     self.dataX.append([])
     self.dataY.append([])
     self.Rt_MPL.clear_curve()
     self.SC_MPL.clear_curve()
     
     self.get_inst_conf()
     
     if self.vi_mode:
         Keithley2400.measure_voltage(self.src_curr, self.vlimit, self.meas_type)
     else:
         Keithley2400.measure_current(self.src_vol, self.ilimit, self.meas_type)        
     # self.ref_time = int(time.time())
     self.timer.start(1000)
コード例 #3
0
ファイル: VI_main.py プロジェクト: cygnushan/measurement
 def meas_stop(self):
     self.timer.stop()
     self.stop_all_flow()
     
     Keithley2400.close_inst()
     ai518p_api.set_stop()
      
     QtGui.QMessageBox.information(self,u'提示', u'本次测试完成!')   
コード例 #4
0
 def RT_plot(self):
     if self.vi_mode:
         vol,curr,res = Keithley2400.read_vdata()
     else:
         vol,curr,res = Keithley2400.read_idata()
     self.now_R.setText(str(res))
     self.RT_dataY.append(res)
     if len(self.RT_dataY) == 1:
         self.RT_MPL.generateData(self.RT_dataX, self.RT_dataY, self.log_flag, type=1)
     else:
         self.RT_MPL.generateData(self.RT_dataX, self.RT_dataY, self.log_flag, type=0)
コード例 #5
0
    def on_ST_start_clicked(self):
        """
        Slot documentation goes here.
        """
        # TODO: not implemented yet
        # raise NotImplementedError
        logger.info("test start!")
        self.xls_name = str(self.save_path.text() + '/'+ self.sample_id.text() + '-'+ time.strftime("%m%d%H%M")+ ".xls")
        self.xtime = 0
        self.meas_mode = 0
        self.temp_index = 0
        self.test_times = 1
        self.temp_flag = 0
        self.stable_time = 0

        self.t1_set_flag = 0
        self.t2_set_flag = 0
        self.t3_set_flag = 0
        self.t4_set_flag = 0        
        
        self.Sens = []
        self.dataS = []
        self.dataX = []
        self.dataY = []
        self.dataX.append([])
        self.dataY.append([])
        
        self.Rt_MPL.clear_curve()
        self.RT_MPL.clear_curve()
        self.ST_MPL.clear_curve()
        
        self.get_inst_conf()
        if self.get_gas_conf() == False:
            return
        
        if self.RT_test:
            if len(qmdz_const.temp_list) > 0:
                temp_start = ai518p_api.get_now_temp() + 0.5
                temp_end = qmdz_const.temp_list[-1]
                ai518p_api.set_518p_constmode(temp_start,temp_end,self.up_slot,self.down_slot)
        else:
            if len(qmdz_const.temp_list) > 0:
                temp_now = ai518p_api.get_now_temp() + 0.5
                self.exp_temp = qmdz_const.temp_list[0]
                ai518p_api.set_518p_constmode(temp_now,self.exp_temp,self.up_slot,self.down_slot)

        if self.vi_mode:
            Keithley2400.measure_voltage(self.src_curr, self.vlimit, self.meas_type)
        else:
            Keithley2400.measure_current(self.src_vol, self.ilimit, self.meas_type)
        
        self.ref_time = int(time.time())
        self.timer.start(1000)
コード例 #6
0
 def get_resistance(self):
     if self.vi_mode:
         vol,curr,res = Keithley2400.read_vdata()
     else:
         vol,curr,res = Keithley2400.read_idata()
     self.now_R.setText(str(res))
     self.dataY[self.c_index].append(res)
     if len(self.dataX[self.c_index]) == 1:
         self.Rt_MPL.generateData(self.dataX[self.c_index], self.dataY[self.c_index],
                                  style=qmdz_const.color_list[self.c_index], 
                                  label='C' + str(self.c_index+1), type=1)
     else:
         self.Rt_MPL.generateData(self.dataX[self.c_index], self.dataY[self.c_index], type=0)
コード例 #7
0
 def get_sys_state(self):
     if Valve_Ctrl.get_pcb_state():
         self.pcb_sta.setPixmap(QtGui.QPixmap(":/icon/icons/dlb.png"))
     else:
         QtGui.QMessageBox.warning(self, u'警告', u"电路板未连接!")
         logger.warning("PCB isn't connected!")
         self.pcb_sta.setPixmap(QtGui.QPixmap(":/icon/icons/nodlb.png"))
     
     self.temprature = ai518p_api.get_now_temp()
     if self.temprature != "":
         self.now_T.setText(str(self.temprature))
         self.ai518_sta.setPixmap(QtGui.QPixmap(":/icon/icons/wky.png"))
     else:
         QtGui.QMessageBox.warning(self, u'警告', u"温控仪未连接!")
         logger.warning("AI518P isn't connected!")
         self.ai518_sta.setPixmap(QtGui.QPixmap(":/icon/icons/nowky.png"))
         
     instState = Keithley2400.conncet_inst()
     if instState:
         self.inst_sta.setPixmap(QtGui.QPixmap(":/icon/icons/yb.png"))     
     else:
         QtGui.QMessageBox.warning(self, u'警告', u"仪表2400未连接!")
         logger.warning("2400 isn't connected!")
         self.inst_sta.setPixmap(QtGui.QPixmap(":/icon/icons/noyb.png"))  
         
     self.flow_port = read_config(qmdz_const.SYS_CONF_PATH, 'HMTS48', 'port') 
     self.flow1_addr =  read_config(qmdz_const.SYS_CONF_PATH, 'HMTS48', 'flow1_addr')
     self.flow1_range =  int(read_config(qmdz_const.SYS_CONF_PATH, 'HMTS48', 'flow1_range'))
     self.flow2_addr =  read_config(qmdz_const.SYS_CONF_PATH, 'HMTS48', 'flow2_addr')
     self.flow2_range = int(read_config(qmdz_const.SYS_CONF_PATH, 'HMTS48', 'flow2_range'))
     self.flow3_addr =  read_config(qmdz_const.SYS_CONF_PATH, 'HMTS48', 'flow3_addr') 
     self.flow3_range =  int(read_config(qmdz_const.SYS_CONF_PATH, 'HMTS48', 'flow3_range')) 
コード例 #8
0
ファイル: VI_main.py プロジェクト: cygnushan/measurement
 def vi_meas(self):
     print self.irange, self.vlimit
     if self.index < len(qmdz_const.VI_ILIST):
         i_out = qmdz_const.VI_ILIST[self.index]
         if float(i_out) == 0:
             meas_V = meas_I = meas_R = 0
         else:
             meas_V,meas_I,meas_R = Keithley2400.measure_voltage(i_out, self.vlimit, qmdz_const.MEAS_MODE)
         self.now_v.setText(str(meas_V))
         self.now_I.setText(str(meas_I))
         self.now_R.setText(str(meas_R))
         
         self.dataX[self.temp_index].append(float(i_out))
         self.dataY[self.temp_index].append(float(meas_V))
         print "dataX:",self.dataX
         print "dataY:",self.dataY
         if len(self.dataX[self.temp_index]) == 1:
             if len(qmdz_const.temp_list) > 0:
                 self.VI_MPL.generateData(self.dataX[self.temp_index], self.dataY[self.temp_index],
                                          style=qmdz_const.color_list[self.temp_index], 
                                          label=str(qmdz_const.temp_list[self.temp_index])+u'\u2103', type=1)
             else:
                 self.VI_MPL.generateData(self.dataX[self.temp_index], self.dataY[self.temp_index],
                                          style=qmdz_const.color_list[self.temp_index], 
                                          label=str(self.temprature)+u'\u2103', type=1)
         else:
             self.VI_MPL.generateData(self.dataX[self.temp_index], self.dataY[self.temp_index], type=0)
     else:
         self.measure_times += 1
         self.index = -1
コード例 #9
0
    def read_conf(self):
        ai518p_port = read_config(SYS_CONF_PATH, 'AI518P', 'port')
        self.com_518p.setCurrentIndex(int(ai518p_port[-1]) - 1)
        self.s48_port = read_config(SYS_CONF_PATH, 'HMTS48', 'port')
        self.com_flowmeter.setCurrentIndex(int(self.s48_port[-1]) - 1)
        pcb_port = read_config(SYS_CONF_PATH, 'PCB', 'port')
        self.com_pcb.setCurrentIndex(int(pcb_port[-1]) - 1)
        inst2400_port = Keithley2400.get_gpibport()
        if inst2400_port:
            self.com_2400.setItemText(0, inst2400_port)
        else:
            self.com_2400.setItemText(0, 'NA')

        ai518p_baud = read_config(SYS_CONF_PATH, 'AI518P', 'baud')
        self.baud_518p.setCurrentIndex(int(ai518p_baud) / 9600 / 2)
        s48_baud = read_config(SYS_CONF_PATH, 'HMTS48', 'baud')
        self.baud_flowmeter.setCurrentIndex(int(s48_baud) / 9600 / 2)
        pcb_baud = read_config(SYS_CONF_PATH, 'PCB', 'baud')
        self.baud_pcb.setCurrentIndex(int(pcb_baud) / 9600 / 2)

        self.addr_518p = self.ai518p_addr.currentIndex() + 1
        self.addr_flowmeter = self.flowmeter_addr.currentIndex() + 1

        flow1 = read_config(SYS_CONF_PATH, 'HMTS48', 'flow1_range')
        self.range1.setCurrentIndex(flow_index[flow1])
        flow2 = read_config(SYS_CONF_PATH, 'HMTS48', 'flow2_range')
        self.range2.setCurrentIndex(flow_index[flow2])
        flow3 = read_config(SYS_CONF_PATH, 'HMTS48', 'flow3_range')
        self.range3.setCurrentIndex(flow_index[flow3])

        flow_addr = self.flowmeter_addr.currentIndex() + 1
        self.flowapi = C_S48(self.s48_port, flow_addr)
コード例 #10
0
ファイル: ST_2400.py プロジェクト: cygnushan/measurement
 def on_res_detect_clicked(self):
     R_range = qmdz_const.res_range[self.res_range.currentIndex()]
     print "detect res range:", R_range
     self.voltage,self.current,self.resistance = Keithley2400.measure_ohms_auto(R_range,qmdz_const.MEAS_MODE)
     self.detV.setText(str(self.voltage))
     self.detI.setText(str(self.current))
     self.detR.setText(str(self.resistance))
コード例 #11
0
ファイル: system_set.py プロジェクト: cygnushan/measurement
 def read_conf(self):
     ai518p_port = read_config(SYS_CONF_PATH, 'AI518P', 'port')
     self.com_518p.setCurrentIndex(int(ai518p_port[-1])-1)
     self.s48_port = read_config(SYS_CONF_PATH, 'HMTS48', 'port')
     self.com_flowmeter.setCurrentIndex(int(self.s48_port[-1])-1)
     pcb_port = read_config(SYS_CONF_PATH, 'PCB', 'port')
     self.com_pcb.setCurrentIndex(int(pcb_port[-1])-1)
     inst2400_port = Keithley2400.get_gpibport()
     if inst2400_port:
         self.com_2400.setItemText(0,inst2400_port)
     else:
         self.com_2400.setItemText(0,'NA')
     
     ai518p_baud = read_config(SYS_CONF_PATH, 'AI518P', 'baud')
     self.baud_518p.setCurrentIndex(int(ai518p_baud)/9600/2)
     s48_baud = read_config(SYS_CONF_PATH, 'HMTS48', 'baud')
     self.baud_flowmeter.setCurrentIndex(int(s48_baud)/9600/2)
     pcb_baud = read_config(SYS_CONF_PATH, 'PCB', 'baud')
     self.baud_pcb.setCurrentIndex(int(pcb_baud)/9600/2)
     
     self.addr_518p = self.ai518p_addr.currentIndex()+1
     self.addr_flowmeter = self.flowmeter_addr.currentIndex()+1
     
     flow1 = read_config(SYS_CONF_PATH, 'HMTS48', 'flow1_range')
     self.range1.setCurrentIndex(flow_index[flow1])
     flow2 = read_config(SYS_CONF_PATH, 'HMTS48', 'flow2_range')
     self.range2.setCurrentIndex(flow_index[flow2])
     flow3 = read_config(SYS_CONF_PATH, 'HMTS48', 'flow3_range')
     self.range3.setCurrentIndex(flow_index[flow3])
     
     flow_addr = self.flowmeter_addr.currentIndex() + 1
     self.flowapi = C_S48(self.s48_port, flow_addr)
コード例 #12
0
 def get_resistance(self):
     
     if self.vi_mode:
         vol,curr,res = Keithley2400.read_vdata()
     else:
         vol,curr,res = Keithley2400.read_idata()
     self.now_R.setText(str(res))
     self.dataX[self.temp_index].append(self.xtime)
     self.dataY[self.temp_index].append(res)
     if len(self.dataX[self.temp_index]) == 1:
         if len(qmdz_const.temp_list) > 0:
             self.Rt_MPL.generateData(self.dataX[self.temp_index], self.dataY[self.temp_index],self.log_flag,
                                      style=qmdz_const.color_list[self.temp_index], 
                                      label=str(qmdz_const.temp_list[self.temp_index])+u'\u2103', type=1)
         else:
             self.Rt_MPL.generateData(self.dataX[self.temp_index], self.dataY[self.temp_index],self.log_flag,
                                      style=qmdz_const.color_list[self.temp_index], 
                                      label=str(self.temprature)+u'\u2103', type=1)
     else:
         self.Rt_MPL.generateData(self.dataX[self.temp_index], self.dataY[self.temp_index], self.log_flag, type=0)
コード例 #13
0
 def closeEvent(self, event):
     Keithley2400.close_inst()