def __init__(self, adressDigi='3036D1', adressLo='3011D1', LoPosAB=1, LoRef=0, name='D', cfreq=4.57e9, inputlvl=30, start=4.43e9, stop=0, pt=1, nSample=1e6, sampFreq=1e5, buffmode=True): self.ADCFAIL = False self.capture_ref = None self.ADCoverflow = 0 self.buffmode = buffmode self.bandwidth = sampFreq self.removeDCoff = 0 self.LoPos = LoPosAB # Lo Above (1) or Below (0) self.freq = cfreq self.nSamples = int(nSample) # Samples taken/trigger self.inputLvl = inputlvl self.Overload = 0 self.LoRef = LoRef # 0=ocxo, 1=int 2=extDaisy, 3=extTerminated self.trig_source = 8 # 8=Star, 32=SW, 35=internal self.adressLo = adressLo self.adressDigi = adressDigi self.name = name self.start = start self.stop = stop self.pt = pt self.lin = np.linspace(self.start, self.stop, self.pt) self.digitizer = PXIDigitizer_wrapper.afDigitizer_BS() self.prep_data() self.performOpen() self.set_settings() if self.buffmode: self.setup_buffer()
def performOpen(self): if hasattr(self, 'digitizer'): ''' If Digitizer exists then close it first and then reopen it ''' self.performClose() self.digitizer = PXIDigitizer_wrapper.afDigitizer_BS() try: # self.digitizer.create_object() self.digitizer.boot_instrument(self.adressLo, self.adressDigi) print 'Digitizer ', self.name, ' started' except PXIDigitizer_wrapper.Error as e: print "Digitizer start failed" self.digitizer.close_instrument() self.digitizer.destroy_object() raise Exception(e)
def performOpen(self, options={}): """Perform the operation of opening the instrument connection""" # check communication try: # open connection self.digitizer = PXIDigitizer_wrapper.afDigitizer_BS() self.digitizer.create_object() # get address strings sVisaDigitizer = self.dComCfg['address'] sVisaLO = self.getValue('Local oscillator VISA') # keep track of number of samples and old I,Q,R and theta values self.nSamples = int(self.getValue('Number of samples')) self.nTriggers = int(self.getValue('Number of triggers')) self.nAverages_per_trigger = int(self.getValue('Averages per trigger')) self.Overload = 0 self.cAvgSignal = None self.cAvgSignal2 = None self.cTrace = None self.vPTrace = None self.vPowerMeanUnAvg = None self.MeanMag = None self.MeanPhas = None self.vMeanUnAvg = None self.cRaw = None self.dPower = None self.bRaw = self.getValue('Retrive raw data') self.bCollectHistogram = self.getValue('Collect IQ Histogram') self.nAbove = 0 self.bSetBandWidth = self.getValue('Set IQ Bandwidth manually') self.dBandWidthAim = self.getValue('IQ Bandwidth') self.dBandWidthAcc = self.getValue('IQ Bandwidth') self.bCutTrace = self.getValue('Cut out part of the trace') self.nStartSample = int(self.getValue('Start Sample')) self.nStopSample = int(self.getValue('Stop Sample')) self.nHistPath = self.getValue('Histogram path') self.dFreq = self.getValue('RF Frequency') self.nBins = 0 self.sHistPath = self.getValue('Histogram path') # boot instruments self.digitizer.boot_instrument(sVisaLO, sVisaDigitizer) # set modulation mode to generic self.digitizer.modulation_mode_set(5) except PXIDigitizer_wrapper.Error as e: # re-cast afdigitizer errors as a generic communication error msg = str(e) raise InstrumentDriver.CommunicationError(msg)