コード例 #1
0
ファイル: agilent_33210A.py プロジェクト: zsurge/qkit
    def __init__(self, name, address):

        Instrument.__init__(self, name, tags=['physical'])

        self._address = address
        self._visainstrument = visa.instrument(self._address)

        self.min_freq = self.get_MIN_frequency()
        self.max_freq = self.get_MAX_frequency()

        self.min_ampl = self.get_MIN_amplitude()
        self.max_ampl = self.get_MAX_amplitude()

        self.min_offs = self.get_MIN_offset()
        self.max_offs = self.get_MAX_offset()

        self.set_default()  #reset

        self.add_function('set_default')
        self.add_function('get_frequency')
        self.add_function('set_frequency')
        self.add_function('get_function')
        self.add_function('set_function')
        self.add_function('get_amplitude')
        self.add_function('set_amplitude')
        self.add_function('get_output')
        self.add_function('set_output')
        self.add_function('get_offset')
        self.add_function('set_offset')
        self.add_function('get_voltage_units')
        self.add_function('set_voltage_units')
        self.add_function('get_output_load')
        self.add_function('set_output_load')
コード例 #2
0
    def __init__(self, name, address, reset = False):
        '''
        Initializes the HP 3245A source, and communicates with the wrapper.

        Input:
            name (string)    : name of the instrument
            address (string) : GPIB address
            reset (bool)     : resets to default values

        Output:
            None
        '''
        # Initialize wrapper functions
        logging.info(__name__ + ' : Initializing instrument HP_3245A')
        Instrument.__init__(self, name, tags=['physical'])
                
        self._address = address
        self._visainstrument = visa.instrument(self._address)

        # Implement parameters
        self.add_parameter("current", type=float, units='A', flags=Instrument.FLAG_GETSET)
        self.add_parameter("voltage", type=float, units='V', flags=Instrument.FLAG_GETSET)

        self.add_function('reset')
        self.add_function('clear_memory')
        self.add_function('set_channel')
        self.add_function('set_terminal')
        self.add_function('set_output_type')
        self.add_function('set_impedance')
        self.add_function('set_resolution')
        self.add_function('set_autorange')
        #self.add_function('set_current')
        #self.add_function('set_voltage')

        self.reset()
コード例 #3
0
ファイル: Tektronix_PWS4205.py プロジェクト: zsurge/qkit
    def __init__(self, name, address, reset=False):
        '''
        Initializes the Tektronix_PWS4205, and communicates with the wrapper.

        Input:
          name (string)    : name of the instrument
          address (string) : GPIB or USB address
          reset (bool)     : resets to default values, default=False
        '''
        logging.info(__name__ + ' : Initializing instrument Tektronix_PWS4205')
        Instrument.__init__(self, name, tags=['physical'])

        # Add some global constants
        self._address = address
        self._visainstrument = visa.instrument(self._address)
        self._name = name

        self.add_parameter('voltage',
                           flags=Instrument.FLAG_GETSET,
                           units='V',
                           minval=0,
                           maxval=20,
                           type=float)
        self.add_parameter('setvoltage',
                           flags=Instrument.FLAG_GET,
                           units='V',
                           minval=0,
                           maxval=20,
                           type=float)
        self.add_parameter('current',
                           flags=Instrument.FLAG_GETSET,
                           units='A',
                           minval=0,
                           maxval=5,
                           type=float)
        self.add_parameter('setcurrent',
                           flags=Instrument.FLAG_GET,
                           units='A',
                           minval=0,
                           maxval=5,
                           type=float)
        self.add_parameter('status', flags=Instrument.FLAG_GETSET, type=bool)

        self.add_function('reset')
        self.add_function('on')
        self.add_function('off')
        self.add_function('ramp_current')

        #        self.add_function('exec_tsl_script')
        #        self.add_function('exec_tsl_script_with_return')
        #        self.add_function('get_tsl_script_return')

        #self.add_function ('get_all')

        #self._visainstrument.write('beeper.beep(0.5,1000)')
        if (reset):
            self.reset()
        else:
            self.get_all()
コード例 #4
0
    def __init__(self, name, address, model='Anritsu'):
        '''
        Initializes the Anritsu_MG37022, and communicates with the wrapper.
        
        Input:
            name (string)    : name of the instrument
            address (string) : GPIB address
        '''
        logging.info(__name__ + ' : Initializing instrument')
        Instrument.__init__(self, name, tags=['physical'])

        self._address = address
        self._model = model
        self._visainstrument = visa.instrument(self._address)
        self._slope = None  #set _slope to True if frequency dependent power compensation is requested
        sleep(1)

        # Implement parameters
        self.add_parameter('frequency',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=20e9,
                           units='Hz',
                           tags=['sweep'])
        if ("MG3692C" not in self.ask("*IDN?").split(",")):
            self.add_parameter('phase_offset',
                               type=float,
                               flags=Instrument.FLAG_GETSET,
                               minval=-360,
                               maxval=360,
                               units='deg')
        self.add_parameter('slope',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=100,
                           units='dB@10GHz')
        self.add_parameter(
            'power',
            type=float,
            flags=Instrument.FLAG_GETSET,
            minval=-130,
            maxval=29,  #29dBm possible, this is security JB
            units='dBm',
            tags=['sweep'])
        self.add_parameter('status', type=bool, flags=Instrument.FLAG_GETSET)
        self.add_parameter('high_power',
                           type=bool,
                           flags=Instrument.FLAG_GETSET)

        # Implement functions
        self.add_function('get_all')
        self.get_all()
コード例 #5
0
ファイル: Keysight_E8267D.py プロジェクト: weiyangliu/qkit
    def __init__(self, name, address, reset=False):
        '''
        Initializes the Keysight_E8267D, and communicates with the wrapper.

        Input:
          name (string)    : name of the instrument
          address (string) : GPIB address
          reset (bool)     : resets to default values, default=False
        '''
        logging.info(__name__ + ' : Initializing instrument Keysight_E8267D')
        Instrument.__init__(self, name, tags=['physical'])

        # Add some global constants
        self._address = address
        self._visainstrument = visa.instrument(self._address)

        self.add_parameter('power',
                           flags=Instrument.FLAG_GETSET,
                           units='dBm',
                           minval=-135,
                           maxval=25,
                           type=float)
        self.add_parameter('phase',
                           flags=Instrument.FLAG_GETSET,
                           units='rad',
                           minval=-numpy.pi,
                           maxval=numpy.pi,
                           type=float)
        self.add_parameter('frequency',
                           flags=Instrument.FLAG_GETSET,
                           units='Hz',
                           minval=1e5,
                           maxval=13e9,
                           type=float)
        self.add_parameter('status', flags=Instrument.FLAG_GETSET, type=bool)

        self.add_function('reset')
        self.add_function('get_all')

        if (reset):
            self.reset()
        else:
            self.get_all()

        print(
            'this is a copy of the Agilent E8257D driver, thourough testing of this driver in combination with the Keysight E8267D has NOT been done! proceed with caution!'
        )
        print(
            'The max. output power and the frequency range depend on the order option of the Keysight E8267D! '
        )
コード例 #6
0
    def __init__(self, name, address, reset=False):
        '''
        Initializes the HP_81110A, and communicates with the wrapper.

        Input:
            name (string)    : name of the instrument
            address (string) : GPIB address
            reset (bool)     : resets to default values, default=false

        Output:
            None
        '''

        Instrument.__init__(self, name, tags=['physical'])

        self._address = address
        self._visainstrument = visa.instrument(self._address)
        self._channels = self._get_number_of_channels()

        self.add_parameter('delay', type=float,
            flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET,
            channels=(1, self._channels), minval=0.0, maxval=999, units='sec',channel_prefix='ch%d_')
        self.add_parameter('width', type=float,
            flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET,
            channels=(1, self._channels), minval=-6.25e-9, maxval=999.5, units='sec',channel_prefix='ch%d_')
        self.add_parameter('high', type=float,
            flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET,
            channels=(1, self._channels), minval=-9.90, maxval=10.0, units='Volts',channel_prefix='ch%d_')
        self.add_parameter('low', type=float,
            flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET,
            channels=(1, self._channels), minval=-10.0, maxval=9.90, units='Volts',channel_prefix='ch%d_')
        self.add_parameter('status', type=str, channels=(1, self._channels),
            flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET,channel_prefix='ch%d_')
        self.add_parameter('add_channels', type=str,
            flags=Instrument.FLAG_GETSET)# | Instrument.FLAG_GET_AFTER_SET)
        self.add_parameter('display', type=str,
            flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET)
        self.add_parameter('frequency', type=float, 
            flags=Instrument.FLAG_GETSET, units = 'Hz')

        self.add_function('reset')
        self.add_function('get_all')
        self.add_function('set_mode_triggered')
        self.add_function('set_mode_continuous')
        self.add_function('set_mode_gated')

        if reset:
            self.reset()
        else:
            self.get_all()
コード例 #7
0
ファイル: Oxford_ITC503.py プロジェクト: zsurge/qkit
 def __init__(self, name, address):
     """
     Initializes VISA communication with the instrument Keithley 2636A.
     
     Parameters
     ----------
     name: string
         Name of the instrument (driver).
     address: string
         IP address for the communication with the instrument.
     
     Returns
     -------
     None
     
     Examples
     --------
     
     >>> import qkit
     QKIT configuration initialized -> available as qkit.cfg[...]
     
     >>> qkit.start()
     Starting QKIT framework ... -> qkit.core.startup
     Loading module ... S10_logging.py
     Loading module ... S12_lockfile.py
     Loading module ... S14_setup_directories.py
     Loading module ... S20_check_for_updates.py
     Loading module ... S25_info_service.py
     Loading module ... S30_qkit_start.py
     Loading module ... S65_load_RI_service.py
     Loading module ... S70_load_visa.py
     Loading module ... S80_load_file_service.py
     Loading module ... S85_init_measurement.py
     Loading module ... S98_started.py
     Loading module ... S99_init_user.py
     
     >>> ITC503 = qkit.instruments.create('ITC503', 'Oxford_ITC503', address='ASRL1::INSTR')
     """
     self.__name__ = __name__
     # Start VISA communication
     logging.info(
         __name__ +
         ': Initializing instrument Oxford ITC 503 temperature control')
     Instrument.__init__(self, name, tags=['physical'])
     self._address = address
     self._visainstrument = visa.instrument(self._address)
     self._visainstrument.read_termination = '\r'
コード例 #8
0
    def __init__(self, name, address, reset=False):
        '''
        Initializes the Agilent_E8257D, and communicates with the wrapper.

        Input:
          name (string)    : name of the instrument
          address (string) : GPIB address
          reset (bool)     : resets to default values, default=False
        '''
        logging.info(__name__ + ' : Initializing instrument Agilent_E8257D')
        Instrument.__init__(self, name, tags=['physical'])

        # Add some global constants
        self._address = address
        self._visainstrument = visa.instrument(self._address)

        self.add_parameter('power',
                           flags=Instrument.FLAG_GETSET,
                           units='dBm',
                           minval=-135,
                           maxval=16,
                           type=float)
        self.add_parameter('phase',
                           flags=Instrument.FLAG_GETSET,
                           units='rad',
                           minval=-numpy.pi,
                           maxval=numpy.pi,
                           type=float)
        self.add_parameter('frequency',
                           flags=Instrument.FLAG_GETSET,
                           units='Hz',
                           minval=1e5,
                           maxval=40e9,
                           type=float)
        self.add_parameter('status', flags=Instrument.FLAG_GETSET, type=bool)

        self.add_function('reset')
        self.add_function('get_all')

        if (reset):
            self.reset()
        else:
            self.get_all()
コード例 #9
0
ファイル: EA_PS9360.py プロジェクト: zsurge/qkit
    def __init__(self, name, address, reset=False):
        """
        creates the "driver object" of the EA_PS9360 current source
        :param name: name of the device in qkit
        :param address: "TCPIP0::10.22.197.93::5028::SOCKET"
        :param reset: bool device reset
        """
        self.__name__ = __name__
        # Start VISA communication
        logging.info(__name__ + ': Initializing instrument EA_PS900')
        Instrument.__init__(self, name, tags=['physical'])
        self._address = address
        self._visainstrument = visa.instrument(self._address,
                                               read_termination='\n',
                                               write_termination='\n')

        self.add_parameter('bias_voltage',
                           type=float,
                           flags=Instrument.FLAG_GETSET)
        self.add_parameter('bias_current',
                           type=float,
                           flags=Instrument.FLAG_GETSET)
        self.add_parameter('power', type=float, flags=Instrument.FLAG_GETSET)
        self.add_parameter('output', type=bool, flags=Instrument.FLAG_GETSET)
        self.add_parameter('measure_voltage',
                           type=float,
                           flags=Instrument.FLAG_GET)
        self.add_parameter('measure_current',
                           type=float,
                           flags=Instrument.FLAG_GET)

        self.add_function('set_remote_control')
        self.add_function('reset')
        self.add_function('ramp_voltage')
        self.add_function('ramp_current')

        if reset:
            self.reset()
        else:
            self.set_remote_control(True)
コード例 #10
0
ファイル: Keysight_N5173B.py プロジェクト: zsurge/qkit
    def __init__(self, name, address, reset=False):
        '''
        Initializes the Keysight_N5173B, and communicates with the wrapper.

        Input:
          name (string)    : name of the instrument
          address (string) : GPIB address
          reset (bool)     : resets to default values, default=False
        '''
        logging.info(__name__ + ' : Initializing instrument Keysight_N5173B')
        Instrument.__init__(self, name, tags=['physical'])

        self._address = address
        self._visainstrument = visa.instrument(self._address)

        # Implement parameters
        self.add_parameter('power',
                           flags=Instrument.FLAG_GETSET,
                           units='dBm',
                           minval=-20,
                           maxval=30,
                           type=float)
        #self.add_parameter('phase',
        #    flags=Instrument.FLAG_GETSET, units='rad', minval=-numpy.pi, maxval=numpy.pi, type=types.FloatType)
        self.add_parameter('frequency',
                           flags=Instrument.FLAG_GETSET,
                           units='Hz',
                           minval=9e3,
                           maxval=20e9,
                           type=float)
        self.add_parameter('status', flags=Instrument.FLAG_GETSET, type=bool)

        self.add_function('reset')
        self.add_function('get_all')

        if (reset):
            self.reset()
        else:
            self.get_all()
コード例 #11
0
    def __init__(self, name, address, reset=False):
        """
        Initializes VISA communication with the instrument Yokogawa GS820.

        Parameters
        ----------
        name: string
            Name of the instrument (driver).
        address: string
            Serial address for the communication with the instrument.
        reset: bool, optional
            Resets the instrument to default conditions. Default is False.

        Returns
        -------
        None

        Examples
        --------
        >>> import qkit
        QKIT configuration initialized -> available as qkit.cfg[...]

        >>> qkit.start()
        Starting QKIT framework ... -> qkit.core.startup
        Loading module ... S10_logging.py
        Loading module ... S12_lockfile.py
        Loading module ... S14_setup_directories.py
        Loading module ... S20_check_for_updates.py
        Loading module ... S25_info_service.py
        Loading module ... S30_qkit_start.py
        Loading module ... S65_load_RI_service.py
        Loading module ... S70_load_visa.py
        Loading module ... S80_load_file_service.py
        Loading module ... S85_init_measurement.py
        Loading module ... S98_started.py
        Loading module ... S99_init_user.py

        >>> TM = qkit.instruments.create('TM', 'Teslameter_FM302', address='ASRL1::INSTR')
        Initialized the file info database (qkit.fid) in 0.000 seconds.
        """
        self.__name__ = __name__
        # Start VISA communication
        Instrument.__init__(self, name, tags=['physical'])
        self._address = address
        self._visainstrument = visa.instrument(self._address)
        # Set termination characters (necessary for Ethernet communication)
        if LooseVersion(
                visa.__version__) < LooseVersion("1.5.0"):  # pyvisa 1.4
            self._visainstrument.term_chars = '\n'
        else:  # pyvisa 1.5
            self._visainstrument.write_termination = '\n'
            self._visainstrument.read_termination = '\r\n'
        if reset:
            self.reset()
        self.add_parameter('coupling',
                           type=int,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=1)
        self.add_parameter('filter',
                           type=int,
                           flags=Instrument.FLAG_GETSET,
                           minval=1,
                           maxval=64)
        self.add_parameter('integration_time',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=100e-3,
                           maxval=5,
                           unit='s')
        self.add_parameter('gain',
                           type=int,
                           flags=Instrument.FLAG_GETSET,
                           minval=1,
                           maxval=100)
        self.add_parameter('relative',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=-70,
                           maxval=70,
                           units='T')
        self.add_parameter('zero',
                           type=int,
                           flags=Instrument.FLAG_GETSET,
                           minval=-39320,
                           maxval=26213)
        self.add_parameter('value',
                           type=float,
                           flags=Instrument.FLAG_GET,
                           minval=-1.,
                           maxval=1.,
                           units='T')
        self.add_function('reset')
コード例 #12
0
ファイル: Agilent_VNA_E5071C.py プロジェクト: zsurge/qkit
    def __init__(self, name, address, channel_index=1):
        '''
        Initializes 

        Input:
            name (string)    : name of the instrument
            address (string) : GPIB address
        '''

        logging.info(__name__ + ' : Initializing instrument')
        Instrument.__init__(self, name, tags=['physical'])

        self._address = address
        self._visainstrument = visa.instrument(self._address)

        if qkit.visa.qkit_visa_version > 1:
            # we have to define the read termination chars manually for the newer version
            idn = self._visainstrument.query('*IDN?')
            self._visainstrument.read_termination = idn[len(idn.strip()):]

        self._zerospan = False
        self._freqpoints = 0
        self._ci = channel_index
        self._start = 0
        self._stop = 0
        self._nop = 0

        # Implement parameters
        self.add_parameter('nop',
                           type=int,
                           flags=Instrument.FLAG_GETSET,
                           minval=2,
                           maxval=1601,
                           tags=['sweep'])

        self.add_parameter('bandwidth',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=1e9,
                           units='Hz',
                           tags=['sweep'])

        self.add_parameter('averages',
                           type=int,
                           flags=Instrument.FLAG_GETSET,
                           minval=1,
                           maxval=1024,
                           tags=['sweep'])

        self.add_parameter('Average', type=bool, flags=Instrument.FLAG_GETSET)

        self.add_parameter('centerfreq',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=8.5e9,
                           units='Hz',
                           tags=['sweep'])

        self.add_parameter('startfreq',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=8.5e9,
                           units='Hz',
                           tags=['sweep'])

        self.add_parameter('stopfreq',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=8.5e9,
                           units='Hz',
                           tags=['sweep'])

        self.add_parameter('span',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=8.5e9,
                           units='Hz',
                           tags=['sweep'])

        self.add_parameter('power',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=-55,
                           maxval=10,
                           units='dBm',
                           tags=['sweep'])

        self.add_parameter('zerospan', type=bool, flags=Instrument.FLAG_GETSET)

        self.add_parameter('channel_index',
                           type=int,
                           flags=Instrument.FLAG_GETSET)

        self.add_parameter('edel',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=1e-3,
                           units='s',
                           tags=['sweep'])

        self.add_parameter('sweeptime',
                           type=float,
                           flags=Instrument.FLAG_GET,
                           minval=0,
                           maxval=1e3,
                           units='s',
                           tags=['sweep'])

        self.add_parameter('sweeptime_averages',
                           type=float,
                           flags=Instrument.FLAG_GET,
                           units='s',
                           tags=['sweep'])
        self.add_parameter('sweep_mode',
                           type=str,
                           flags=Instrument.FLAG_GETSET,
                           tags=['sweep'])

        #Triggering Stuff
        self.add_parameter('trigger_source',
                           type=str,
                           flags=Instrument.FLAG_GETSET)

        # Implement functions
        self.add_function('get_freqpoints')
        self.add_function('get_tracedata')
        self.add_function('init')
        self.add_function('avg_clear')
        #self.add_function('avg_status')
        self.add_function('def_trig')
        self.add_function('get_sweeptime')
        self.add_function('get_sweeptime_averages')
        self.add_function('ready')
        self.add_function('start_measurement')
        self.get_all()
コード例 #13
0
    def __init__(self, name, address, channel_index = 1):
        '''
        Initializes 

        Input:
            name (string)    : name of the instrument
            address (string) : GPIB address
        '''
        
        logging.info(__name__ + ' : Initializing instrument')
        Instrument.__init__(self, name, tags=['physical'])

        self._address = address
        self._visainstrument = visa.instrument(self._address)
        self._zerospan = False
        self._freqpoints = 0
        self._ci = channel_index 
        self._pi = 2 # port_index, similar to self._ci
        self._start = 0
        self._stop = 0
        self._nop = 0

        # Implement parameters
        self.add_parameter('nop', type=int,
            flags=Instrument.FLAG_GETSET,
            minval=2, maxval=20001,
            tags=['sweep'])
            
        self.add_parameter('bandwidth', type=float,
            flags=Instrument.FLAG_GETSET,
            minval=0, maxval=1e9,
            units='Hz', tags=['sweep']) 

        self.add_parameter('averages', type=int,
            flags=Instrument.FLAG_GETSET,
            minval=1, maxval=1024, tags=['sweep'])                    

        self.add_parameter('Average', type=bool,
            flags=Instrument.FLAG_GETSET)   
                    
        self.add_parameter('centerfreq', type=float,
            flags=Instrument.FLAG_GETSET,
            minval=0, maxval=20e9,
            units='Hz', tags=['sweep'])

        self.add_parameter('cwfreq', type=float,
            flags=Instrument.FLAG_GETSET,
            minval=0, maxval=20e9,
            units='Hz', tags=['sweep'])
            
        self.add_parameter('startfreq', type=float,
            flags=Instrument.FLAG_GETSET,
            minval=0, maxval=20e9,
            units='Hz', tags=['sweep'])            
            
        self.add_parameter('stopfreq', type=float,
            flags=Instrument.FLAG_GETSET,
            minval=0, maxval=20e9,
            units='Hz', tags=['sweep'])                        
            
        self.add_parameter('span', type=float,
            flags=Instrument.FLAG_GETSET,
            minval=0, maxval=20e9,
            units='Hz', tags=['sweep'])        
            
        self.add_parameter('power', type=float,
            flags=Instrument.FLAG_GETSET,
            minval=-85, maxval=10,
            units='dBm', tags=['sweep'])

        self.add_parameter('startpower', type=float,
            flags=Instrument.FLAG_GETSET,
            minval=-85, maxval=10,
            units='dBm')

        self.add_parameter('stoppower', type=float,
            flags=Instrument.FLAG_GETSET,
            minval=-85, maxval=10,
            units='dBm')

        self.add_parameter('cw', type=bool,
            flags=Instrument.FLAG_GETSET)

        self.add_parameter('zerospan', type=bool,
            flags=Instrument.FLAG_GETSET)
            
        self.add_parameter('channel_index', type=int,
            flags=Instrument.FLAG_GETSET)

        self.add_parameter('sweeptime', type=float,   #added by MW
            flags=Instrument.FLAG_GET,
            minval=0, maxval=1e3,
            units='s', tags=['sweep'])
            
        self.add_parameter('sweeptime_averages', type=float,   #JB
            flags=Instrument.FLAG_GET,
            minval=0, maxval=1e3,
            units='s', tags=['sweep'])
    
        self.add_parameter('edel', type=float, # legacy name for parameter. This corresponds to the VNA's port extension values.
            flags=Instrument.FLAG_GETSET, 
            minval=-10, maxval=10,
            units='s', tags=['sweep'],
            channels=(1, self._pi), channel_prefix = 'port%d_') # the channel option for qtlab's Instument class is used here to easily address the two VNA ports
  
        self.add_parameter('edel_status', type=bool, # legacy name for parameter. This corresponds to the VNA's port extension values.
            flags=Instrument.FLAG_GETSET)
                   
        self.add_parameter('sweep_mode', type=str,  #JDB This parameter switches on/off hold. The hold function below does the same job, this is just for code compatibility to the agilent and anritsu drivers.
            flags=Instrument.FLAG_GETSET,tags=['sweep']) 
                    
        self.add_parameter('sweep_type', type=str,
            flags=Instrument.FLAG_GETSET,tags=['sweep'])

        self.add_parameter('active_trace', type=int,
            flags=Instrument.FLAG_GETSET)
                    
        #Triggering Stuff
        self.add_parameter('trigger_source', type=str,
            flags=Instrument.FLAG_GETSET)
        
        # Implement functions
        self.add_function('get_freqpoints')
        self.add_function('get_tracedata')
        self.add_function('init')
        self.add_function('avg_clear')
        self.add_function('avg_status')
        self.add_function('def_trig')
        self.add_function('get_hold')
        self.add_function('hold')
        self.add_function('get_sweeptime')
        self.add_function('get_sweeptime_averages')
        self.add_function('pre_measurement')
        self.add_function('start_measurement')
        self.add_function('ready')
        self.add_function('post_measurement')

        self.get_all()
コード例 #14
0
ファイル: Tektronix_AWG520.py プロジェクト: zsurge/qkit
    def __init__(self, name, address, reset=False, clock=1e9, numpoints=1000):
        '''
        Initializes the AWG520.

        Input:
            name (string)    : name of the instrument
            address (string) : GPIB address
            reset (bool)     : resets to default values, default=false
            numpoints (int)  : sets the number of datapoints

        Output:
            None
        '''
        logging.debug(__name__ + ' : Initializing instrument')
        Instrument.__init__(self, name, tags=['physical'])

        self._address = address
        self._visainstrument = visa.instrument(self._address)
        self._values = {}
        self._values['files'] = {}
        self._clock = clock
        self._numpoints = numpoints

        # Add parameters
        self.add_parameter('trigger_mode',
                           type=str,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET)
        self.add_parameter('trigger_impedance',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           minval=49,
                           maxval=2e3,
                           units='Ohm')
        self.add_parameter('trigger_level',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           minval=-5,
                           maxval=5,
                           units='Volts')
        self.add_parameter('clock',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           minval=1e6,
                           maxval=1e9,
                           units='Hz')
        self.add_parameter('numpoints',
                           type=int,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           minval=100,
                           maxval=1e9,
                           units='Int')
        self.add_parameter('filename',
                           type=str,
                           flags=Instrument.FLAG_SET,
                           channels=(1, 2),
                           channel_prefix='ch%d_')
        self.add_parameter('amplitude',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, 2),
                           minval=0,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('offset',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, 2),
                           minval=-2,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('marker1_low',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, 2),
                           minval=-2,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('marker1_high',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, 2),
                           minval=-2,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('marker2_low',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, 2),
                           minval=-2,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('marker2_high',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, 2),
                           minval=-2,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('status',
                           type=bool,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, 2),
                           channel_prefix='ch%d_')

        # Add functions
        self.add_function('reset')
        self.add_function('get_all')
        self.add_function('clear_waveforms')
        self.add_function('set_trigger_mode_on')
        self.add_function('set_trigger_mode_off')
        self.add_function('set_trigger_impedance_1e3')
        self.add_function('set_trigger_impedance_50')

        if reset:
            self.reset()
        else:
            self.get_all()
コード例 #15
0
ファイル: RS_FSUP.py プロジェクト: JoaoBarbosa9/qkit
    def __init__(self, name, address, channel_index = 1):
        '''
        Initializes 

        Input:
            name (string)    : name of the instrument
            address (string) : GPIB address
        '''
        
        logging.info(__name__ + ' : Initializing instrument')
        Instrument.__init__(self, name, tags=['physical'])

        self._address = address
        self._visainstrument = visa.instrument(self._address)

        # Implement parameters

        self.add_parameter('averages', type=int,
            flags=Instrument.FLAG_GETSET,
            minval=0, maxval=32767, tags=['sweep'])    

        self.add_parameter('centerfreq', type=float,
            flags=Instrument.FLAG_GETSET,
            minval=0, maxval=26.5e9,
            tags=['sweep'])

        self.add_parameter('nop', type=float,
            flags=Instrument.FLAG_GETSET,
            minval=155, maxval=30001,
            tags=['sweep'])
        self.add_parameter('freqspan', type=float,
            flags=Instrument.FLAG_GETSET,tags=['sweep'])                    

        self.add_parameter('powerunit', type=str,
            flags=Instrument.FLAG_GETSET,tags=['sweep']) 

        self.add_parameter('startfreq', type=float,
            flags=Instrument.FLAG_GETSET,tags=['sweep']) 

        self.add_parameter('stopfreq', type=float,
            flags=Instrument.FLAG_GETSET,tags=['sweep']) 

        self.add_parameter('sweeptime', type=float,
            flags=Instrument.FLAG_GETSET,tags=['sweep'])

        self.add_parameter('resolutionBW', type=float,
            flags=Instrument.FLAG_GETSET,tags=['sweep'])

        self.add_parameter('videoBW', type=float,
            flags=Instrument.FLAG_GETSET,tags=['sweep'])        
            
        self.add_parameter('sweeptime_averages', type=float,
            flags=Instrument.FLAG_GET,tags=['sweep'])

        self.add_parameter('sweeptime_auto', type=float,
            flags=Instrument.FLAG_GETSET,tags=['sweep'])    

        self.add_parameter('freqpoints', type=float,
            flags=Instrument.FLAG_GET,tags=['sweep'])    

        self.add_parameter('active_traces', type=int, flags=Instrument.FLAG_GET)    
                
        # Implement functions
        self.add_function('set_continuous_sweep_mode')
        #self.add_function('set_freq_center')
        #self.add_function('set_freq_span')
        self.add_function('set_marker')
        self.add_function('start_measurement')
        self.add_function('ready')
        self.add_function('set_powerunit')
        self.add_function('get_marker_level')
        self.add_function('get_trace_name')
        self.add_function('get_y_unit')
        #self.add_function('avg_clear')
        #self.add_function('avg_status')
        
        self.get_all()
コード例 #16
0
    def __init__(self, name, address, channel_index=1):
        '''
        Initializes 

        Input:
            name (string)    : name of the instrument
            address (string) : GPIB address
        '''

        logging.info(__name__ + ' : Initializing instrument')
        Instrument.__init__(self, name, tags=['physical'])

        self._address = address
        self._visainstrument = visa.instrument(self._address)
        self._zerospan = False
        self._freqpoints = 0
        self._ci = channel_index
        self._start = 0
        self._stop = 0
        self._nop = 0

        # Implement parameters
        self.add_parameter('nop',
                           type=int,
                           flags=Instrument.FLAG_GETSET,
                           minval=1,
                           maxval=25000,
                           tags=['sweep'])

        self.add_parameter('bandwidth',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=1e9,
                           units='Hz',
                           tags=['sweep'])

        self.add_parameter('averages',
                           type=int,
                           flags=Instrument.FLAG_GETSET,
                           minval=1,
                           maxval=1024,
                           tags=['sweep'])

        self.add_parameter('Average', type=bool, flags=Instrument.FLAG_GETSET)

        self.add_parameter('centerfreq',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=20e9,
                           units='Hz',
                           tags=['sweep'])

        self.add_parameter('cwfreq',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=20e9,
                           units='Hz',
                           tags=['sweep'])

        self.add_parameter('startfreq',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=20e9,
                           units='Hz',
                           tags=['sweep'])

        self.add_parameter('stopfreq',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=20e9,
                           units='Hz',
                           tags=['sweep'])

        self.add_parameter('span',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=20e9,
                           units='Hz',
                           tags=['sweep'])

        self.add_parameter('power',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=-30,
                           maxval=15,
                           units='dBm',
                           tags=['sweep'])

        self.add_parameter('cw', type=bool, flags=Instrument.FLAG_GETSET)

        self.add_parameter('zerospan', type=bool, flags=Instrument.FLAG_GETSET)

        self.add_parameter('channel_index',
                           type=int,
                           flags=Instrument.FLAG_GETSET)

        self.add_parameter('source_attenuation',
                           type=int,
                           flags=Instrument.FLAG_GETSET,
                           channels=(1, 2),
                           minval=0,
                           maxval=60,
                           units='dB',
                           tags=['sweep'])

        self.add_parameter('source_power_start',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           channels=(1, 2),
                           minval=-2.9e1,
                           maxval=3e1,
                           units='dBm',
                           tags=['sweep'])

        self.add_parameter('source_power_stop',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           channels=(1, 2),
                           minval=-2.9e1,
                           maxval=3e1,
                           units='dBm',
                           tags=['sweep'])

        self.add_parameter('calibration_state',
                           type=bool,
                           flags=Instrument.FLAG_GETSET)

        self.add_parameter('sweep_type',
                           type=str,
                           flags=Instrument.FLAG_GETSET,
                           tags=['sweep'])

        self.add_parameter('power_nop',
                           type=int,
                           flags=Instrument.FLAG_GETSET,
                           channels=(1, 2),
                           minval=0,
                           maxval=60,
                           tags=['sweep'])

        self.add_parameter('avg_type',
                           type=str,
                           flags=Instrument.FLAG_GETSET,
                           tags=['sweep'])

        self.add_parameter(
            'edel',
            type=float,  #added by MW
            flags=Instrument.FLAG_GETSET,
            minval=-1,
            maxval=1,
            units='s',
            tags=['sweep'])

        self.add_parameter(
            'sweeptime',
            type=float,  #JB
            flags=Instrument.FLAG_GET,
            minval=0,
            maxval=1e-3,
            units='s',
            tags=['sweep'])

        self.add_parameter(
            'sweeptime_averages',
            type=float,  #JB
            flags=Instrument.FLAG_GET,
            minval=0,
            maxval=1e-3,
            units='s',
            tags=['sweep'])

        self.add_parameter('sweep_mode',
                           type=str,
                           flags=Instrument.FLAG_GETSET,
                           tags=['sweep'])

        #Triggering Stuff
        self.add_parameter('trigger_source',
                           type=str,
                           flags=Instrument.FLAG_GETSET)

        # Implement functions
        self.add_function('get_freqpoints')
        self.add_function('get_tracedata')
        self.add_function('init')
        self.add_function('returnToLocal')
        self.add_function('set_edel_auto')
        self.add_function('pre_measurement')
        self.add_function('start_measurement')
        self.add_function('ready')
        self.add_function('post_measurement')
        self.add_function('avg_clear')
        self.add_function('avg_status')

        #self._oldspan = self.get_span()
        #self._oldnop = self.get_nop()
        #if self._oldspan==0.002:
        #  self.set_zerospan(True)

        self.get_all()
コード例 #17
0
    def __init__(self, name, address, comp_mode=False, channel_index=1):
        '''
        Initializes 

        Input:
            name (string)    : name of the instrument
            address (string) : GPIB address
        '''

        logging.info(__name__ + ' : Initializing instrument')
        Instrument.__init__(self, name, tags=['physical'])

        self._address = address
        self._comp_mode = comp_mode
        self._visainstrument = visa.instrument(self._address)

        # Implement parameters
        self.add_parameter('centerfreq',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=0,
                           maxval=26.5e9,
                           tags=['sweep'])

        self.add_parameter('nop',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=155,
                           maxval=30001,
                           tags=['sweep'])
        self.add_parameter('freqspan',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           tags=['sweep'])

        self.add_parameter('powerunit',
                           type=str,
                           flags=Instrument.FLAG_GETSET,
                           tags=['sweep'])

        self.add_parameter('startfreq',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           tags=['sweep'])

        self.add_parameter('stopfreq',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           tags=['sweep'])

        self.add_parameter('sweeptime',
                           type=float,
                           flags=Instrument.FLAG_GET,
                           tags=['sweep'])

        self.add_parameter('resolutionBW',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           tags=['sweep'])

        self.add_parameter('videoBW',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           tags=['sweep'])
コード例 #18
0
ファイル: Yokogawa_GS200.py プロジェクト: milulya/qkit
    def __init__(self, name, address, reset=False):
        '''
        Initializes the Yokogawa GS200, and communicates with the wrapper.

        Input:
            name (string)    : name of the instrument
            address (string) : GPIB address
            reset (bool)     : resets to default values

        Output:
            None
        '''
        # Initialize wrapper functions
        logging.info(__name__ + ' : Initializing instrument Yokogawa_GS200')
        Instrument.__init__(self, name, tags=['physical'])

        # Add some global constants
        self._address = address
        self._visainstrument = visa.instrument(self._address)

        # Set termination characters (nessecarry for Ethernet communication)
        if LooseVersion(
                visa.__version__) < LooseVersion("1.5.0"):  # pyvisa 1.4
            self._visainstrument.term_chars = ''
        else:  # pyvisa 1.8
            self._visainstrument.read_termination = ''
            self._visainstrument.write_termination = ''

        # Add parameters to wrapper

#        self.add_parameter('source_function',
#            flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET,
#            type=str, units='')

#
#        self.add_parameter('operation_mode',
#            flags=Instrument.FLAG_SET,
#            type=str, units='')

        self.add_parameter('source_mode',
                           flags=Instrument.FLAG_GETSET,
                           type=str,
                           units='')
        #
        #        self.add_parameter('source_range',
        #            flags=Instrument.FLAG_GETSET ,
        #            units='', type=str)
        #
        self.add_parameter('output',
                           flags=Instrument.FLAG_GETSET,
                           units='',
                           type=str)

        self.add_parameter('level',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           type=float,
                           units='')

        #        self.add_parameter('voltage_protection',
        #            flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET,
        #            type=float, units='V')
        #
        #        self.add_parameter('current_protection',
        #            flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET,
        #            type=float, units='A')
        #
        #        self.add_parameter('4W',
        #            flags=Instrument.FLAG_GETSET ,
        #            units='', type=str)
        #
        #        self.add_parameter('ramp_wait_time',
        #            flags=Instrument.FLAG_GET,
        #            type=float, units = 's')

        # Add functions to wrapper

        self.add_function('reset')
        self.add_function('get_all')
        #self.add_function('set_range_auto')
        #self.add_function('set_defaults')
        self.add_function('ramp_current')
        #self.add_function('ramp_ch2_current')

        if reset:
            self.reset()
コード例 #19
0
 def reconnect(self):
     self._visainstrument = visa.instrument(self._address)
コード例 #20
0
ファイル: Agilent_DSO.py プロジェクト: zsurge/qkit
    def __init__(self, name, address):
        '''
        
        Input:
            name (string)
            address (string): VISA address of the device
        '''

        Instrument.__init__(self, name, tags=['physical'])
        self._address = address
        self._visainstrument = visa.instrument(self._address)

        # number of channels
        self._numchs = 4

        # initialize virtual instrument
        self.add_parameter('points',
                           flags=Instrument.FLAG_GETSET,
                           units='',
                           type=int,
                           minval=16,
                           maxval=524288)
        self.add_parameter('segments',
                           flags=Instrument.FLAG_GETSET,
                           units='',
                           type=int)
        self.add_parameter('averages',
                           flags=Instrument.FLAG_GETSET,
                           units='',
                           type=int,
                           minval=1,
                           maxval=4096)
        self.add_parameter('average_enabled',
                           flags=Instrument.FLAG_GETSET,
                           units='',
                           type=bool)

        self.add_parameter('samplerate',
                           flags=Instrument.FLAG_GETSET,
                           units='Hz',
                           type=float)
        self.add_parameter('bandwidth',
                           flags=Instrument.FLAG_GETSET,
                           units='Hz',
                           type=float)
        self.add_parameter('acqmode', flags=Instrument.FLAG_GET, type=str)
        self.add_function('acqmode_realtime')
        self.add_function('acqmode_peakdetect')
        self.add_function('acqmode_highres')
        self.add_function('acqmode_segmented')

        self.add_parameter('refclock', flags=Instrument.FLAG_GETSET, type=bool)
        self.add_parameter('xoffset',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           units='s',
                           type=float)
        self.add_parameter('xrange',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           units='s',
                           type=float)

        self.add_parameter('yoffset',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           units='V',
                           type=float,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_')
        self.add_parameter('yrange',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           units='V',
                           type=float,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_')

        self.add_function('reset')
        self.add_function('preset')
        self.add_function('clear_status')
        self.add_function('get_error')
        self.add_function('message')
        self.add_function('acq_digitize')
        self.add_function('acq_run')
        self.add_function('acq_single')
        self.add_function('acq_stop')
        self.add_function('get_triggered')
        self.add_function('get_done')
        self.add_function('get_completedpercent')
        self.add_function('get_averages_acquired')
        self.add_function('autoscale')
        self.add_function('get_data_old')
        self.add_function('get_data')
        self.add_function('restart_average')
        self.add_function('get_completed')
        self.add_function('get_meas_phase')
        self.add_function('get_meas_vamp')
        self.add_function('get_meas_vrms')
        self.add_function('get_meas_frequency')

        # to do: functions to setup maths on the oscilloscope
        # to do: histogram functions
        # to do: marker stuff
        # to do: measurements
        # to do: trigger setup functions

        # initialize physical instrument
        self._visainstrument.write(':SYST:HEAD OFF')
        self._visainstrument.write(':SYST:LONG OFF')
        self._visainstrument.write(':WAV:BYT LSBF')  # faster
コード例 #21
0
ファイル: Yokogawa_GS820.py プロジェクト: zsurge/qkit
    def __init__(self, name, address, reset=False):
        '''
        Initializes the Yokogawa GS820, and communicates with the wrapper.

        Input:
            name (string)    : name of the instrument
            address (string) : GPIB address
            reset (bool)     : resets to default values

        Output:
            None
        '''
        # Initialize wrapper functions
        logging.info(__name__ + ' : Initializing instrument Yokogawa_GS820')
        Instrument.__init__(self, name, tags=['physical'])

        # Add some global constants
        self._address = address
        self._numchs = 2
        self._visainstrument = visa.instrument(self._address)

        # Add parameters to wrapper
        self.add_parameter('source_range',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_',
                           units='',
                           type=str)
        self.add_parameter('sense_range',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_',
                           units='',
                           type=str)
        self.add_parameter('source_mode',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_',
                           type=str,
                           units='')
        self.add_parameter('sense_mode',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_',
                           type=str,
                           units='')
        self.add_parameter('source_trig',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_',
                           type=str,
                           units='')
        self.add_parameter('sense_trig',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_',
                           type=str,
                           units='')
        self.add_parameter('source_delay',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_',
                           type=float,
                           minval=15e-6,
                           maxval=3600,
                           units='s')
        self.add_parameter('sense_delay',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_',
                           type=float,
                           minval=15e-6,
                           maxval=3600,
                           units='s')
        self.add_parameter('sweep_mode',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_',
                           type=str,
                           units='')
        self.add_parameter('4W',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_',
                           type=str,
                           units='')
        self.add_parameter('level',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_',
                           type=float,
                           units='')
        self.add_parameter('value',
                           flags=Instrument.FLAG_GET,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_',
                           type=float,
                           units='')
        self.add_parameter('output',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchs),
                           channel_prefix='ch%d_',
                           type=str,
                           units='')
        self.add_parameter('sync',
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           type=str,
                           units='')

        # Add functions to wrapper
        self.add_function('reset')
        self.add_function('get_all')
        self.add_function('set_range_auto')
        self.add_function('set_defaults')
        self.add_function('ramp_ch1_current')
        self.add_function('ramp_ch2_current')

        if reset:
            self.reset()
        else:
            self.get_all()
            self.set_defaults()
コード例 #22
0
ファイル: Yokogawa_GS210.py プロジェクト: weiyangliu/qkit
    def __init__(self, name, address, reset=False):
        '''
        Initializes the Yokogawa GS200, and communicates with the wrapper.

        Input:
            name (string)    : name of the instrument
            address (string) : GPIB address
            reset (bool)     : resets to default values

        Output:
            None
        '''
        # Initialize wrapper functions
        logging.info(__name__ + ' : Initializing instrument Yokogawa_GS200')
        Instrument.__init__(self, name, tags=['physical'])

        # Add some global constants
        self._address = address
        #self._numchs = 1
        self.ramp_wait_time = 0.5
        self._visainstrument = visa.instrument(self._address)
        
        #self._visainstrument.write(':SYST:REM')
        

        # Add parameters to wrapper
        
        self.add_parameter('operation_mode',
            flags=Instrument.FLAG_SET,
            type=str, units='')

        self.add_parameter('source_mode',
            flags=Instrument.FLAG_GETSET,
            type=str, units='')

        self.add_parameter('source_range',
            flags=Instrument.FLAG_GETSET ,
            units='', type=str)
            
        self.add_parameter('output',
            flags=Instrument.FLAG_GETSET ,
            units='', type=str)
        
        self.add_parameter('level', 
            flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET,
            type=float, units='')

        self.add_parameter('voltage_protection', 
            flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET,
            type=float, units='V')

        self.add_parameter('current_protection', 
            flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET,
            type=float, units='A')
            
        self.add_parameter('4W',
            flags=Instrument.FLAG_GETSET ,
            units='', type=str)

        self.add_parameter('ramp_wait_time', 
            flags=Instrument.FLAG_GET,
            type=float, units = 's')
          



        # Add functions to wrapper
        
        self.add_function('reset')
        self.add_function('get_all')
        self.add_function('set_defaults')


        
        if reset:
            self.reset()
        else:
            self.get_all()
            self.set_defaults()
コード例 #23
0
ファイル: Tektronix_AWG7062.py プロジェクト: zsurge/qkit
    def __init__(self,
                 name,
                 address,
                 reset=False,
                 clock=6e9,
                 numpoints=1000,
                 numchannels=2):
        '''
        Initializes the AWG7062.

        Input:
            name (string)    : name of the instrument
            address (string) : GPIB address
            reset (bool)     : resets to default values, default=false
            numpoints (int)  : sets the number of datapoints

        Output:
            None
        '''
        logging.debug(__name__ + ' : Initializing instrument')
        Instrument.__init__(self, name, tags=['physical'])

        self._address = address
        self._visainstrument = visa.instrument(self._address)
        self._values = {}
        self._values['files'] = {}
        self._clock = clock
        self._numpoints = numpoints
        self._numchannels = numchannels

        # Add parameters
        self.add_parameter('waveform',
                           type=str,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchannels),
                           channel_prefix='ch%d_')
        self.add_parameter('output',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchannels),
                           channel_prefix='ch%d_')
        self.add_parameter('wlist', type=str, flags=Instrument.FLAG_GET)
        self.add_parameter('trigger_mode',
                           type=str,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET)
        self.add_parameter('trigger_impedance',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           minval=49,
                           maxval=2e3,
                           units='Ohm')
        self.add_parameter('trigger_level',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           minval=-5,
                           maxval=5,
                           units='Volts')
        self.add_parameter('trigger_source',
                           type=str,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET)
        self.add_parameter('clock',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           minval=1e6,
                           maxval=6e9,
                           units='Hz')
        self.add_parameter('clock_source',
                           type=str,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET)
        self.add_parameter('numpoints',
                           type=int,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           minval=100,
                           maxval=1e9,
                           units='Int')
        self.add_parameter('filename',
                           type=str,
                           flags=Instrument.FLAG_SET,
                           channels=(1, self._numchannels),
                           channel_prefix='ch%d_')
        self.add_parameter('direct_output',
                           type=bool,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchannels),
                           channel_prefix='ch%d_')
        self.add_parameter('amplitude',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchannels),
                           minval=0,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('offset',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchannels),
                           minval=-2,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('marker1_low',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchannels),
                           minval=-2,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('marker1_high',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchannels),
                           minval=-2,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('marker2_low',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchannels),
                           minval=-2,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('marker2_high',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchannels),
                           minval=-2,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('status',
                           type=bool,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchannels),
                           channel_prefix='ch%d_')
        self.add_parameter('runmode', type=str, flags=Instrument.FLAG_GETSET)
        self.add_parameter('seq_length',
                           type=int,
                           flags=Instrument.FLAG_GETSET)
        self.add_parameter('seq_position', type=int, flags=Instrument.FLAG_GET)

        # Add functions
        self.add_function('reset')
        self.add_function('wait')
        self.add_function('get_all')
        self.add_function('clear_waveforms')
        self.add_function('set_trigger_mode')
        self.add_function('set_sequence_mode')
        self.add_function('set_trigger_impedance_1e3')
        self.add_function('set_trigger_impedance_50')
        self.add_function('get_error')
        self.add_function('load_settings')
        self.add_function('save_settings')

        # sequence manipulation functions (do not display all waveforms in the user interface)
        self.add_function('wfm_send')
        self.add_function('wfm_import')
        self.add_function('get_seq_loop')
        self.add_function('set_seq_loop')
        self.add_function('get_seq_goto')
        self.add_function('set_seq_goto')
        self.add_function('get_seq_twait')
        self.add_function('set_seq_twait')
        self.add_function('wfm_assign')
        self.add_function('run')
        self.add_function('wait')
        self.add_function('force_event')
        self.add_function('force_trigger')
        self.add_function('set_seq_jump')
        self.add_function('read_queue')
        self.add_function('jump_to')

        # Make Load/Delete Waveform functions for each channel
        for ch in range(1, 5):
            self._add_load_waveform_func(ch)
            self._add_del_loaded_waveform_func(ch)

        if reset:
            self.reset()
        else:
            self.get_all()
コード例 #24
0
    def __init__(self, name, address, chpair=None, reset=False, numchannels=4):
        '''
        Initializes the AWG WX1284C
        Input:
            name (string)    : name of the instrument
            address (string) : GPIB address
            reset (bool)     : resets to default values, default=false
            chpair (int)     : number of channel pair (1 for channels 1&2, 2 for channels 3&4)
        Output:
            None
        '''
        logging.debug(__name__ + ' : Initializing instrument at ' + address)
        Instrument.__init__(self, name, tags=['physical'])

        self._address = address
        if visa.qkit_visa_version == 1:
            self._visainstrument = visa.instrument(self._address,
                                                   term_chars="\r\n")
            self._visainstrument.timeout = 2
        else:
            self._visainstrument = visa.instrument(self._address)
            self._visainstrument.timeout = 2000
            self._visainstrument.visalib.set_buffer(
                self._visainstrument.session, vc.VI_READ_BUF, 4000)
            self._visainstrument.visalib.set_buffer(
                self._visainstrument.session, vc.VI_WRITE_BUF, 32000)

            self._visainstrument.read_termination = '\n'
            self._visainstrument.write_termination = '\n'

            #intf_type = self._visainstrument.get_visa_attribute(vc.VI_ATTR_INTF_TYPE)

            if self._visainstrument.get_visa_attribute(
                    vc.VI_ATTR_INTF_TYPE) in (vc.VI_INTF_USB, vc.VI_INTF_GPIB,
                                              vc.VI_INTF_TCPIP):
                self._visainstrument.set_visa_attribute(
                    vc.VI_ATTR_WR_BUF_OPER_MODE, vc.VI_FLUSH_ON_ACCESS)
                self._visainstrument.set_visa_attribute(
                    vc.VI_ATTR_RD_BUF_OPER_MODE, vc.VI_FLUSH_ON_ACCESS)
                if self._visainstrument.get_visa_attribute(
                        vc.VI_ATTR_INTF_TYPE) == vc.VI_INTF_TCPIP:
                    self._visainstrument.set_visa_attribute(
                        vc.VI_ATTR_TERMCHAR_EN, vc.VI_TRUE)

            self._visainstrument.clear()

        self._ins_VISA_INSTR = False  #(self._visainstrument.resource_class == "INSTR") #check whether we have INSTR or SOCKET type

        self._values = {}
        self._values['files'] = {}
        self._clock = 1e9

        if chpair not in [None, 1, 2]:
            raise ValueError("chpair should be 1, 2 or None.")

        if chpair and numchannels != 2:
            raise ValueError("numchannels should be 2.")

        if chpair is None and numchannels != 4:
            raise ValueError("numchannels should be 4.")

        self._numchannels = numchannels
        self._choff = 0

        if chpair == 2:
            self._choff = 2

        if numchannels == 4:
            self.add_parameter('runmode',
                               type=str,
                               flags=Instrument.FLAG_GETSET,
                               channels=(1, 2),
                               channel_prefix='p%d_')
        else:
            self.add_parameter('runmode',
                               type=str,
                               flags=Instrument.FLAG_GETSET)

        self.add_parameter('output',
                           type=bool,
                           flags=Instrument.FLAG_GETSET,
                           channels=(1, self._numchannels),
                           channel_prefix='ch%d_')
        self.add_parameter('marker_output',
                           type=bool,
                           flags=Instrument.FLAG_GETSET,
                           channels=(1, self._numchannels),
                           channel_prefix='ch%d_')
        self.add_parameter(
            'trigger_impedance',
            type=float,  #changed, checked in manual
            flags=Instrument.FLAG_GETSET,
            minval=50,
            maxval=10e3,
            units='Ohm')
        self.add_parameter('trigger_level',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=-5,
                           maxval=5,
                           units='Volts')
        self.add_parameter('clock',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=1e6,
                           maxval=1.25e9,
                           units='Hz')
        self.add_parameter('reference_source',
                           type=str,
                           flags=Instrument.FLAG_GETSET)
        self.add_parameter('reference_source_freq',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           minval=10e6,
                           maxval=100e6,
                           units='Hz')
        self.add_parameter('common_clock',
                           type=bool,
                           flags=Instrument.FLAG_GETSET)
        self.add_parameter('amplitude',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           channels=(1, self._numchannels),
                           minval=0,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('offset',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           channels=(1, self._numchannels),
                           minval=-2,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('marker_high',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           channels=(1, self._numchannels),
                           minval=-2,
                           maxval=2,
                           units='Volts',
                           channel_prefix='ch%d_')
        self.add_parameter('status',
                           type=bool,
                           flags=Instrument.FLAG_GETSET,
                           channels=(1, self._numchannels),
                           channel_prefix='ch%d_')
        self.add_parameter('sync_position',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           units='s')

        if numchannels == 4:
            self.add_parameter('trigger_mode',
                               type=str,
                               flags=Instrument.FLAG_GETSET,
                               channels=(1, 2),
                               channel_prefix='p%d_')
            self.add_parameter('trigger_delay',
                               type=float,
                               flags=Instrument.FLAG_GETSET,
                               channels=(1, 2),
                               channel_prefix='p%d_')
            self.add_parameter('sequence_mode',
                               type=str,
                               flags=Instrument.FLAG_GETSET,
                               channels=(1, 2),
                               channel_prefix='p%d_')
            self.add_parameter('trigger_source',
                               type=str,
                               flags=Instrument.FLAG_GETSET,
                               channels=(1, 2),
                               channel_prefix='p%d_')
            self.add_parameter('trigger_time',
                               type=float,
                               flags=Instrument.FLAG_GETSET,
                               channels=(1, 2),
                               channel_prefix='p%d_')
            self.add_parameter('sync_output',
                               type=bool,
                               flags=Instrument.FLAG_GETSET,
                               channels=(1, 2),
                               channel_prefix='p%d_')
            self.add_parameter('trigger_slope',
                               type=str,
                               flags=Instrument.FLAG_GETSET,
                               channels=(1, 2),
                               channel_prefix='p%d_')

        else:
            self.add_parameter('trigger_mode',
                               type=str,
                               flags=Instrument.FLAG_GETSET)
            self.add_parameter('trigger_delay',
                               type=float,
                               flags=Instrument.FLAG_GETSET)
            self.add_parameter('sequence_mode',
                               type=str,
                               flags=Instrument.FLAG_GETSET)
            self.add_parameter('trigger_source',
                               type=str,
                               flags=Instrument.FLAG_GETSET)
            self.add_parameter('trigger_time',
                               type=float,
                               flags=Instrument.FLAG_GETSET)
            self.add_parameter('sync_output',
                               type=bool,
                               flags=Instrument.FLAG_GETSET)
            self.add_parameter('trigger_slope',
                               type=str,
                               flags=Instrument.FLAG_GETSET)

        # Add functions
        self.add_function('reset')
        self.add_function('fix')
        self.add_function('wait')
        self.add_function('get_all')
        self.add_function('set_seq_length')
        self.add_function('clear_waveforms')

        self.add_function('ask')  #for debug
        self.add_function('write')  #for debug
        self.add_function('define_sequence')
        self.add_function('close')

        if numchannels == 2:
            self.add_function('preset_readout')
            self.add_function('preset_manipulation')

        self.add_function('wfm_send')
        self.add_function('wfm_send2')

        if reset:
            self.reset()
        else:
            self.get_all()
        self.write(":INST1;:MARK:SOUR USER;:INST3;:MARK:SOUR USER")

        print(
            "The device is set up with %i channels. You use the channels %s" %
            (numchannels,
             str(range(self._choff + 1, numchannels + self._choff + 1))))
コード例 #25
0
    def __init__(self, name, address, model='Windfreaktech'):
        '''
        Initializes the Windfreaktech_SynthHD, and communicates with the wrapper.
        
        Input:
            name (string)    : name of the instrument
            address (string) : address
        '''
        logging.info(__name__ + ' : Initializing instrument')
        Instrument.__init__(self, name, tags=['physical'])

        self._address = address
        self._model = model
        self._visainstrument = visa.instrument(self._address)
        if LooseVersion(visa.__version__) < LooseVersion("1.5.0"):
            self._visainstrument.term_chars = '\n'
        else:
            self._visainstrument.write_termination = '\n'
            self._visainstrument.read_termination = '\n'
        self._numchannels = 2
        self._frequency = [None, None, None]
        self._power = [None, None, None]

        # Implement parameters
        self.add_parameter('frequency',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchannels),
                           minval=0,
                           maxval=13.6e9,
                           units='Hz',
                           channel_prefix='ch%d_')

        self.add_parameter('power_level',
                           type=float,
                           flags=Instrument.FLAG_GETSET
                           | Instrument.FLAG_GET_AFTER_SET,
                           channels=(1, self._numchannels),
                           minval=0,
                           maxval=45000,
                           units='arbu',
                           channel_prefix='ch%d_')

        self.add_parameter('power',
                           type=float,
                           flags=Instrument.FLAG_GETSET,
                           channels=(1, self._numchannels),
                           minval=-70,
                           maxval=20,
                           units='dBm',
                           channel_prefix='ch%d_')

        self.add_parameter('status',
                           type=bool,
                           flags=Instrument.FLAG_GETSET,
                           channels=(1, self._numchannels),
                           channel_prefix='ch%d_')

        self.add_function('get_all')
        self.add_function('reload_calibration')
        # self.add_function('set_PLL_frequency')
        # self.add_function('get_PLL_frequency')

        self.reload_calibration()
        self.get_all()
        self.set_PLL_frequency(10e6)