Class KeithleySCPI

    • Method Detail

      • setFourProbeEnabled

        public void setFourProbeEnabled​(boolean fourProbe)
                                 throws java.io.IOException
        Description copied from interface: SMU
        Sets whether the SMU should apply source using FORCE probes and measure using separate SENSE probes or whether is should do both with the FORCE probes.
        Specified by:
        setFourProbeEnabled in interface SMU
        Parameters:
        fourProbe - Should it use all four probes?
        Throws:
        java.io.IOException - Upon communications error
      • isFourProbeEnabled

        public boolean isFourProbeEnabled()
                                   throws java.io.IOException
        Description copied from interface: SMU
        Returns whether the device is currently configured to use all four probes.
        Specified by:
        isFourProbeEnabled in interface SMU
        Returns:
        Are all probes to be used?
        Throws:
        java.io.IOException - Upon communications error
      • getAverageCount

        public int getAverageCount()
        Description copied from interface: SMU
        Returns the number of measurements used for averaging by the SMU.
        Specified by:
        getAverageCount in interface IMeter
        Specified by:
        getAverageCount in interface SMU
        Specified by:
        getAverageCount in interface VMeter
        Returns:
        Number of measurements
      • setAverageCount

        public void setAverageCount​(int count)
                             throws java.io.IOException,
                                    DeviceException
        Description copied from interface: SMU
        Sets how many measurements the SMU should average over.
        Specified by:
        setAverageCount in interface IMeter
        Specified by:
        setAverageCount in interface SMU
        Specified by:
        setAverageCount in interface VMeter
        Parameters:
        count - Number of measurements
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • getSourceRange

        public double getSourceRange()
                              throws java.io.IOException
        Description copied from interface: SMU
        Returns the range of allowed values for the quantity being sourced by the SMU. A value of n indicates a range of -n to +n.
        Specified by:
        getSourceRange in interface SMU
        Returns:
        Range value, in Volts or Amps
        Throws:
        java.io.IOException - Upon communications error
      • setSourceRange

        public void setSourceRange​(double value)
                            throws java.io.IOException,
                                   DeviceException
        Description copied from interface: SMU
        Sets the range of allowed values for the quantity being sourced by the SMU. A value of n indicates a range of -n to +n.
        Specified by:
        setSourceRange in interface SMU
        Parameters:
        value - Range value, in Volts or Amps
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • useAutoSourceRange

        public void useAutoSourceRange()
                                throws java.io.IOException
        Description copied from interface: SMU
        Sets the SMU to automatically determine the source range to use.
        Specified by:
        useAutoSourceRange in interface SMU
        Throws:
        java.io.IOException - Upon communications error
      • isAutoRangingSource

        public boolean isAutoRangingSource()
                                    throws java.io.IOException
        Description copied from interface: SMU
        Returns whether the SMU is set to automatically determine the source range to use.
        Specified by:
        isAutoRangingSource in interface SMU
        Returns:
        Automatic?
        Throws:
        java.io.IOException - Upon communications error
      • getMeasureRange

        public double getMeasureRange()
                               throws java.io.IOException
        Description copied from interface: SMU
        Returns the range of allowed values for the quantity being measured by the SMU.
        Specified by:
        getMeasureRange in interface SMU
        Returns:
        Range value, in Volts or Amps
        Throws:
        java.io.IOException - Upon communications error
      • setMeasureRange

        public void setMeasureRange​(double value)
                             throws java.io.IOException,
                                    DeviceException
        Description copied from interface: SMU
        Sets the range of allowed values for the quantity being measured by the SMU.
        Specified by:
        setMeasureRange in interface SMU
        Parameters:
        value - Range value, in Volts or Amps
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • useAutoMeasureRange

        public void useAutoMeasureRange()
                                 throws java.io.IOException
        Description copied from interface: SMU
        Tells the SMU to automatically determine the range to use for the measured quantity.
        Specified by:
        useAutoMeasureRange in interface SMU
        Throws:
        java.io.IOException - Upon communications error
      • isAutoRangingMeasure

        public boolean isAutoRangingMeasure()
                                     throws java.io.IOException
        Description copied from interface: SMU
        Returns whether the SMU is currently determining its measure range automatically.
        Specified by:
        isAutoRangingMeasure in interface SMU
        Returns:
        Is it automatic?
        Throws:
        java.io.IOException - Upon communications error
      • getVoltageRange

        public double getVoltageRange()
                               throws java.io.IOException
        Description copied from interface: SMU
        Returns the range of allowed values for voltages being sourced or measured by the SMU. A value of n indicates a range of -n to +n.
        Specified by:
        getVoltageRange in interface SMU
        Specified by:
        getVoltageRange in interface VMeter
        Returns:
        Range value, in Volts
        Throws:
        java.io.IOException - Upon communications error
      • setVoltageRange

        public void setVoltageRange​(double value)
                             throws java.io.IOException,
                                    DeviceException
        Description copied from interface: SMU
        Sets the range of allowed values for voltages being sourced or measured by the SMU. A value of n indicates a range of -n to +n.
        Specified by:
        setVoltageRange in interface SMU
        Specified by:
        setVoltageRange in interface VMeter
        Parameters:
        value - Range value, in Volts
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • useAutoVoltageRange

        public void useAutoVoltageRange()
                                 throws java.io.IOException
        Description copied from interface: SMU
        Tells the SMU to automatically determine the range it uses for voltages.
        Specified by:
        useAutoVoltageRange in interface SMU
        Specified by:
        useAutoVoltageRange in interface VMeter
        Throws:
        java.io.IOException - Upon communications error
      • isAutoRangingVoltage

        public boolean isAutoRangingVoltage()
                                     throws java.io.IOException
        Description copied from interface: SMU
        Returns whether the SMU is automatically determining the range to use for voltages.
        Specified by:
        isAutoRangingVoltage in interface SMU
        Specified by:
        isAutoRangingVoltage in interface VMeter
        Returns:
        Is it automatic?
        Throws:
        java.io.IOException - Upon communications error
      • getCurrentRange

        public double getCurrentRange()
                               throws java.io.IOException
        Description copied from interface: SMU
        Returns the range of allowed values for currents being sourced or measured by the SMU.
        Specified by:
        getCurrentRange in interface IMeter
        Specified by:
        getCurrentRange in interface SMU
        Returns:
        Range value, inAmps
        Throws:
        java.io.IOException - Upon communications error
      • setCurrentRange

        public void setCurrentRange​(double value)
                             throws java.io.IOException,
                                    DeviceException
        Description copied from interface: SMU
        Sets the range of allowed values for currents being sourced or measured by the SMU.
        Specified by:
        setCurrentRange in interface IMeter
        Specified by:
        setCurrentRange in interface SMU
        Parameters:
        value - Range value, in Amps
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • useAutoCurrentRange

        public void useAutoCurrentRange()
                                 throws java.io.IOException
        Description copied from interface: SMU
        Tells the SMU to automatically determine the range to use for current values.
        Specified by:
        useAutoCurrentRange in interface IMeter
        Specified by:
        useAutoCurrentRange in interface SMU
        Throws:
        java.io.IOException - Upon communications error
      • isAutoRangingCurrent

        public boolean isAutoRangingCurrent()
                                     throws java.io.IOException
        Description copied from interface: SMU
        Returns whether the SMU is currently determining its current range automatically.
        Specified by:
        isAutoRangingCurrent in interface IMeter
        Specified by:
        isAutoRangingCurrent in interface SMU
        Returns:
        Is it automatic?
        Throws:
        java.io.IOException - Upon communications error
      • getVoltageLimit

        public double getVoltageLimit()
                               throws java.io.IOException
        Description copied from interface: SMU
        Returns the limit on voltages output when sourcing current (compliance value).
        Specified by:
        getVoltageLimit in interface SMU
        Returns:
        The limit, in Volts
        Throws:
        java.io.IOException - Upon communications error
      • setVoltageLimit

        public void setVoltageLimit​(double limit)
                             throws java.io.IOException,
                                    DeviceException
        Description copied from interface: SMU
        Sets the limit for voltages output when sourcing current (compliance value).
        Specified by:
        setVoltageLimit in interface SMU
        Parameters:
        limit - The limit, in Volts
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • getCurrentLimit

        public double getCurrentLimit()
                               throws java.io.IOException
        Description copied from interface: SMU
        Returns the limit for currents output when sourcing voltage (compliance value).
        Specified by:
        getCurrentLimit in interface SMU
        Returns:
        The limit, in Amps
        Throws:
        java.io.IOException - Upon communications error
      • setCurrentLimit

        public void setCurrentLimit​(double limit)
                             throws java.io.IOException,
                                    DeviceException
        Description copied from interface: SMU
        Sets the limit for currents output when sourcing voltage (compliance value).
        Specified by:
        setCurrentLimit in interface SMU
        Parameters:
        limit - The limit, in Amps
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • getOutputLimit

        public double getOutputLimit()
                              throws java.io.IOException
        Description copied from interface: SMU
        Returns the limit for the measured quantity (compliance value).
        Specified by:
        getOutputLimit in interface SMU
        Returns:
        The limit, in Volts or Amps
        Throws:
        java.io.IOException - Upon communications error
      • setOutputLimit

        public void setOutputLimit​(double limit)
                            throws java.io.IOException,
                                   DeviceException
        Description copied from interface: SMU
        Sets the limit for the measured quantity (ie compliance value).
        Specified by:
        setOutputLimit in interface SMU
        Parameters:
        limit - The limit to use, in Volts or Amps
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • getIntegrationTime

        public double getIntegrationTime()
                                  throws java.io.IOException
        Description copied from interface: SMU
        Returns the integration time used for each individual measurement.
        Specified by:
        getIntegrationTime in interface IMeter
        Specified by:
        getIntegrationTime in interface SMU
        Specified by:
        getIntegrationTime in interface VMeter
        Returns:
        Integration time, in seconds
        Throws:
        java.io.IOException - Upon communications error
      • setIntegrationTime

        public void setIntegrationTime​(double time)
                                throws java.io.IOException
        Description copied from interface: SMU
        Sets the integration time for each individual measurement, or closest over-estimate possible.
        Specified by:
        setIntegrationTime in interface IMeter
        Specified by:
        setIntegrationTime in interface SMU
        Specified by:
        setIntegrationTime in interface VMeter
        Parameters:
        time - Integration time, in seconds
        Throws:
        java.io.IOException - Upon communications error
      • disableAveraging

        protected void disableAveraging()
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • getVoltage

        public double getVoltage()
                          throws DeviceException,
                                 java.io.IOException
        Description copied from interface: SMU
        Returns the voltage either being applied or measured by the SMU.
        Specified by:
        getVoltage in interface SMU
        Specified by:
        getVoltage in interface VMeter
        Specified by:
        getVoltage in interface VSource
        Returns:
        Voltage value
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setVoltage

        public void setVoltage​(double voltage)
                        throws java.io.IOException,
                               DeviceException
        Description copied from interface: SMU
        Sets the voltage value to be applied by the SMU (switching to voltage source mode if not already)
        Specified by:
        setVoltage in interface SMU
        Specified by:
        setVoltage in interface VSource
        Parameters:
        voltage - Value to set
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • pulseVoltage

        public double pulseVoltage​(double pulseVoltage,
                                   double offTime,
                                   double measureDelay)
                            throws java.io.IOException,
                                   DeviceException
        Description copied from interface: SMU
        Pulses the voltage output of the SMU, returning the measured current value after a set amount of time before returning voltage to base. By default controlled and timed by computer but should be overridden in SMUs that support internal timing mechanisms.

        1. Turn off voltage output 2. Wait for offTime seconds 3. V set to puleVoltage 4. Wait for measureDelay seconds 5. I measured 6. V set to baseVoltage 7. Turn off voltage output 8. Return previously measured current value

        Specified by:
        pulseVoltage in interface SMU
        Parameters:
        pulseVoltage - Voltage to pulse
        offTime - Time to wait at base voltage before pulse
        measureDelay - Time to wait at pulse voltage before current measurement
        Returns:
        Current measurement taken during pulse
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • getCurrent

        public double getCurrent()
                          throws java.io.IOException,
                                 DeviceException
        Description copied from interface: SMU
        Returns the current either being injected or measured by the SMU.
        Specified by:
        getCurrent in interface IMeter
        Specified by:
        getCurrent in interface ISource
        Specified by:
        getCurrent in interface SMU
        Returns:
        Current value
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • setCurrent

        public void setCurrent​(double current)
                        throws java.io.IOException,
                               DeviceException
        Description copied from interface: SMU
        Sets the current value to be applied by the SMU (switching to current source mode if not already)
        Specified by:
        setCurrent in interface ISource
        Specified by:
        setCurrent in interface SMU
        Parameters:
        current - Value to set
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • turnOn

        public void turnOn()
                    throws java.io.IOException
        Description copied from interface: SMU
        Turns the output of the SMU on
        Specified by:
        turnOn in interface IMeter
        Specified by:
        turnOn in interface ISource
        Specified by:
        turnOn in interface SMU
        Specified by:
        turnOn in interface Switch
        Specified by:
        turnOn in interface VMeter
        Specified by:
        turnOn in interface VSource
        Throws:
        java.io.IOException - Upon communications error
      • turnOff

        public void turnOff()
                     throws java.io.IOException
        Description copied from interface: SMU
        Turns the output of the SMU off
        Specified by:
        turnOff in interface IMeter
        Specified by:
        turnOff in interface ISource
        Specified by:
        turnOff in interface SMU
        Specified by:
        turnOff in interface Switch
        Specified by:
        turnOff in interface VMeter
        Specified by:
        turnOff in interface VSource
        Throws:
        java.io.IOException - Upon communications error
      • setOutputState

        public void setOutputState​(boolean on)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • getSource

        public Source getSource()
                         throws java.io.IOException
        Description copied from interface: SMU
        Returns the current source mode of the SMU (VOLTAGE OR CURRENT)
        Specified by:
        getSource in interface SMU
        Returns:
        Source mode
        Throws:
        java.io.IOException - Upon communications error
      • setSource

        public void setSource​(Source source)
                       throws java.io.IOException,
                              DeviceException
        Description copied from interface: SMU
        Sets the source mode of the SMU (VOLTAGE or CURRENT)
        Specified by:
        setSource in interface SMU
        Parameters:
        source - Source mode to set
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • getSourceMode

        public KeithleySCPI.Source getSourceMode()
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • getMeasureMode

        public KeithleySCPI.Source getMeasureMode()
                                           throws java.io.IOException
        Throws:
        java.io.IOException
      • isOn

        public boolean isOn()
                     throws java.io.IOException
        Description copied from interface: SMU
        Checks whether the output of the SMU is currently enabled
        Specified by:
        isOn in interface IMeter
        Specified by:
        isOn in interface ISource
        Specified by:
        isOn in interface SMU
        Specified by:
        isOn in interface Switch
        Specified by:
        isOn in interface VMeter
        Specified by:
        isOn in interface VSource
        Returns:
        Is the output on?
        Throws:
        java.io.IOException - Upon communications error
      • setSourceValue

        public void setSourceValue​(double value)
                            throws java.io.IOException,
                                   DeviceException
        Description copied from interface: SMU
        Sets the value for whichever parameter is currently being sourced
        Specified by:
        setSourceValue in interface SMU
        Parameters:
        value - The level to set
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • getSourceValue

        public double getSourceValue()
                              throws DeviceException,
                                     java.io.IOException
        Description copied from interface: SMU
        Returns the value of whichever parameter is set as source currently
        Specified by:
        getSourceValue in interface SMU
        Returns:
        Value of source
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getMeasureValue

        public double getMeasureValue()
                               throws DeviceException,
                                      java.io.IOException
        Description copied from interface: SMU
        Returns the value of whichever parameter is set as measure currently
        Specified by:
        getMeasureValue in interface SMU
        Returns:
        Value of measure
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • youDidIt

        public void youDidIt()
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • mario

        public void mario()
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • getTerminals

        public Terminals getTerminals()
                               throws java.io.IOException
        Description copied from interface: SMU
        Returns the type of the set of terminals currently being used on the SMU.
        Specified by:
        getTerminals in interface SMU
        Specified by:
        getTerminals in interface VMeter
        Returns:
        The type of terminals being used
        Throws:
        java.io.IOException - Upon communications error
      • setTerminals

        public void setTerminals​(Terminals terminals)
                          throws java.io.IOException,
                                 DeviceException
        Description copied from interface: SMU
        Sets which set of terminals should be used on the SMU.
        Specified by:
        setTerminals in interface SMU
        Specified by:
        setTerminals in interface VMeter
        Parameters:
        terminals - Which type of terminals to use
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device
      • getOffMode

        public SMU.OffMode getOffMode()
                               throws java.io.IOException,
                                      DeviceException
        Description copied from interface: SMU
        Returns the mode used by the SMU channel when turned off.
        Specified by:
        getOffMode in interface SMU
        Returns:
        Mode being used
        Throws:
        java.io.IOException - Upon communications error
        DeviceException - Upon incompatibility with device