def __init__(self, name='hp83620a', pad=12, sad=0): Gpib.__init__(self, name=name, pad=pad, sad=sad) self.write('SYST:LANG SCPI') # set language to SCPI time.sleep(0.2) self.idstr = self.idstring() self.mult = self.get_mult() logger.debug("ID for synth : %s; Multiplier set to: %s" % (self.idstr, self.mult))
def take_readings(self, nrdgs=2): self.write('T3') #single trigger mode time.sleep(self.asksleep) volt = numpy.zeros(nrdgs, dtype=float) for i in range(nrdgs): self.trigger() time.sleep(self.asksleep) rdg = float(self.read()) volt[i] = rdg logger.debug("%d, %s" % (i, rdg)) self.write('T1') time.sleep(self.asksleep) return volt.mean(), volt.std()
def measure(self, nrdgs=2): rdg = numpy.zeros(nrdgs, dtype='float') for i in range(nrdgs): self.write('QM') meas = self.read() #print meas args = meas.split(',') if len(args) != 4: raise BeamPatternGeneralError("fluke", "Error in measurement") else: val, unit, state, attribute = args val = float(val) rdg[i] = val logger.debug("Voltage read: %.5f" % val) return rdg.mean(), rdg.std()
def _set_position(self, axis, feedrate, numsteps): """ Given a feedrate and number of steps move the stage to the number of steps """ if axis not in ('X', 'Y', 'x', 'y'): logger.error("Only X & Y axes can be moved") return self.write('I %s F%d D%d *' % (axis.upper(), feedrate, numsteps)) time.sleep(0.25) # count = 0 # while self.command_in_progress(): # time.sleep(0.5) # count += 1 # if count % 4 == 0: # print "Command in progress, Time = %.2f seconds" % (count*0.5) # time.sleep(0.5) logger.debug("Position set")
def take_readings(self, nrdgs=2): self.write('NRDGS %d,SYN' % nrdgs) time.sleep(self.asksleep) self.write('TRIG HOLD') time.sleep(self.asksleep) self.trigger() volt = numpy.zeros(nrdgs, dtype=float) time.sleep(self.asksleep * 10) for i in range(nrdgs): try: rdg = self.readuntil() logger.debug("%d, %s" % (i, rdg)) volt[i] = float(rdg) except ValueError: volt[i] = 0.0 time.sleep(self.asksleep) #self.write('TRIG AUTO') #time.sleep(self.asksleep) self.write('TRIG AUTO') time.sleep(self.asksleep) self.write('NRDGS %d,AUTO' % nrdgs) time.sleep(self.asksleep) return volt.mean(), volt.std()
def take_readings(self, nrdgs=2): self.write('NRDGS %d,SYN' % nrdgs) time.sleep(self.asksleep) self.write('TRIG HOLD') time.sleep(self.asksleep) self.trigger() volt = numpy.zeros(nrdgs, dtype=float) time.sleep(self.asksleep*10) for i in range(nrdgs): try: rdg = self.readuntil() logger.debug("%d, %s" % (i, rdg)) volt[i] = float(rdg) except ValueError: volt[i] = 0.0 time.sleep(self.asksleep) #self.write('TRIG AUTO') #time.sleep(self.asksleep) self.write('TRIG AUTO') time.sleep(self.asksleep) self.write('NRDGS %d,AUTO' % nrdgs) time.sleep(self.asksleep) return volt.mean(), volt.std()
def get_power_level(self): """Get RF power level in dBm""" power = float(self.ask('SOUR:POW:LEVEL?')) logger.debug("Power = %g dBm" % power) return power
def __init__(self, name='hp3457a', pad=22, sad=0, asksleep=0.01): Gpib.__init__(self, name=name, pad=pad, sad=sad) self.asksleep = asksleep self.idstr = self.idstring() logger.debug("Multimeter Id: %s" % self.idstr)