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)
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)
def meas_stop(self): self.timer.stop() self.stop_all_flow() Keithley2400.close_inst() ai518p_api.set_stop() QtGui.QMessageBox.information(self,u'提示', u'本次测试完成!')
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)
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)
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)
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'))
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
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)
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))
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)
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)
def closeEvent(self, event): Keithley2400.close_inst()