def __init__(self, D1, D2, pflux, sgen, lags=20, BW=1e6, lsamples=1e4, mTypeNames=('ON12', 'ON11', 'ON21', 'ON22', 'OFF21', 'OFF12'), corrAvg=1): ''' D1, D2, pgen, pstar D1,2: Digitizer 1,2 object pgen: Flux Pump (Anritzu pulsed mode) sgen: Signal Generator pstar: Trigger source (PXI-Star) ''' self.D1 = D1 self.D2 = D2 self.f1 = D1.freq self.f2 = D2.freq self.D1w = self.D1.digitizer self.D2w = self.D2.digitizer self.sgen = sgen self.pflux = pflux self.pstar = nit() self.corrAvg = corrAvg self.lags = lags self.BW = BW self.mTypeNames = mTypeNames self.mTypes = {} self.lsamples = lsamples self.pstar.send_many_triggers(10) self.doBG = False self.doHist2d = False self.doRaw = False self.doCorrel = True self.num = 0 # number of missed triggers in a row for mName in mTypeNames: self.mTypes[mName] = meastype(D1, D2, lags, mName, self.corrAvg)
def __init__(self, D1, D2, pflux, sgen, lags=20, BW=1e6, lsamples=1e4, corrAvg=1): ''' D1, D2, pgen, pstar D1,2: Digitizer 1,2 object pgen: Flux Pump (Anritzu pulsed mode) sgen: Signal Generator pstar: Trigger source (PXI-Star) ''' # Make some object references self.D1 = D1 self.D2 = D2 self.D1w = self.D1.digitizer self.D2w = self.D2.digitizer self.sgen = sgen self.pflux = pflux self.pstar = nit() self.corrAvg = corrAvg self.lags = lags self.BW = BW self.lsamples = lsamples self.pstar.send_many_triggers(10) self.doBG = False self.doHist2d = False self.doRaw = False self.doCorrel = True self.num = 0 # number of missed triggers in a row # Define the different measurement types here: self.driveON = meastype(D1, D2, lags, 'ON', self.corrAvg) # Pump drive ON self.driveOFF = meastype(D1, D2, lags, 'OFF', self.corrAvg) # Pump drive off
def __init__(self, D1, D2, pflux, sgen, lags=20, BW=1e6, lsamples=1e4, corrAvg=1, doHist2d=False): ''' D1, D2, pgen, pstar D1,2: Digitizer 1,2 object pgen: Flux Pump (Anritzu pulsed mode) sgen: Signal Generator pstar: Trigger source (PXI-Star) ''' # Make some object references self.D1 = D1 self.D2 = D2 self.D1w = self.D1.digitizer self.D2w = self.D2.digitizer self.sgen = sgen self.pflux = pflux self.pstar = nit() self.corrAvg = corrAvg self.lags = lags self.BW = BW self.lsamples = lsamples self.pstar.send_many_triggers(10) self._takeBG = True self.num = 0 # number of missed triggers in a row self.doHist2d = doHist2d # Define the different measurement types here: self.driveON = meastype(D1, D2, lags, 'ON', self.corrAvg) # Pump drive ON self.driveOFF = meastype(D1, D2, lags, 'OFF', self.corrAvg) # Pump drive off # self.driveOFFf1 = meastype(D1, D2, lags, 'f1') # Pump drive off & Probe Signal f1 # self.driveOFFf2 = meastype(D1, D2, lags, 'f2') # Pump drive off & Probe Signal f2 if doHist2d: # hdf5 format is desired, files would become too large to address in 32bit pass
Created on Fri Apr 15 21:19:35 2016 @author: Morran or Lumi """ # code to test digitizer e.v.t. kill some sidebands from AfDigi import instrument as AfDig # Digitizer driver from nirack import nit # load PXI trigger from time import sleep, time import numpy as np from matplotlib import pyplot as plt #from ctypes import c_int, c_long, c_float, c_double, c_ulong, POINTER, byref #from ctypes import WinDLL, c_char_p, Structure, c_void_p, c_short #, create_string_buffer # trigger = nit() #D = WinDLL('afDigitizerDll_32') #class afDigitizerBufferIQ_t(Structure): # pass # #afDigitizerBufferIQ_t._fields_ = [ # ('iBuffer', POINTER(c_float)), # ('qBuffer', POINTER(c_float)), # ('samples', c_ulong), # ('userData', c_void_p)] # #session=c_long() #print D.afDigitizerDll_CreateObject(byref(session)) #ses=session.value #D.afDigitizerDll_BootInstrument(session, '3011D1', '3036D1', False)
from dummydriver import instrument as dummy from keithley2000 import instrument as key2000 # from AnritzuSig import instrument as AnSigGen from AfSgen import instrument as AfSigGen from SRsim import instrument as sim900c from Sim928 import instrument as sim928c # from Yoko import instrument as yoko from AfDigi import instrument as AfDig # Digitizer driver import gc # Garbage memory collection # from IQcorr import Process as CorrProc # Handle Correlation measurements # import sys # from RSZNB20 import instrument as ZNB20 import os from nirack import nit pstar = nit(adress="PXI7::15::INSTR") thisfile = __file__ filen_0 = '2012D1' folder = 'data_Oct02\\' folder = folder + filen_0 + '\\' # in one new folder if not os.path.exists(folder): os.makedirs(folder) sim900 = sim900c('GPIB0::12::INSTR') vm = key2000('GPIB0::29::INSTR') # Digitizer setup lags = 1000 BW = 1e4 lsamples = 5e3
def do_measurement(self, pstar): ''' Arms the digitizer, Sends a Trigger via the refered object pstar, downloads the data. ''' self.init_trigger_buff() sleep(0.020) pstar.send_software_trigger() self.wait_capture_complete() self.get_data_complete() if __name__ == '__main__': ''' Test code to see if this Driver works on its own ''' from nirack import nit pstar = nit() lags = 30 BW = 10e6 lsamples = 1e5 corrAvg = 1 f1 = 4.799999e9 D1 = instrument(adressDigi='3036D1', adressLo='3011D1', LoPosAB=1, LoRef=2, name='D1 Lags (sec)', cfreq=f1, inputlvl=-6, start=(-lags / BW), stop=(lags / BW), pt=(lags * 2 - 1), nSample=lsamples, sampFreq=BW) D1.do_measurement(pstar) print D1.cIQ # D1.setup_captmem() # D1.init_trigger() # pstar.send_software_trigger()