Interface SMU

    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default IMeter asAmmeter()
      Configures the SMU to act as an ammeter, returning an IMeter representation of itself.
      default VMeter asVoltmeter()
      Configures the SMU to act as a voltmeter, returning a VMeter representation of itself.
      int getAverageCount()
      Returns the number of measurements used for averaging by the SMU.
      AMode getAverageMode()
      Returns the averaging mode of the SMU.
      default java.util.List<Instrument.Parameter<?>> getConfigurationParameters​(java.lang.Class<?> target)  
      double getCurrent()
      Returns the current either being injected or measured by the SMU.
      default double getCurrent​(double integrationTime)
      Takes a current measurement using a specified one-off integration time.
      double getCurrentLimit()
      Returns the limit for currents output when sourcing voltage (compliance value).
      double getCurrentRange()
      Returns the range of allowed values for currents being sourced or measured by the SMU.
      static java.lang.String getDescription()  
      double getIntegrationTime()
      Returns the integration time used for each individual measurement.
      default IVPoint getIVPoint()
      Returns a combined voltage and current measurement.
      double getMeasureRange()
      Returns the range of allowed values for the quantity being measured by the SMU.
      double getMeasureValue()
      Returns the value of whichever parameter is set as measure currently
      SMU.OffMode getOffMode()
      Returns the mode used by the SMU channel when turned off.
      double getOutputLimit()
      Returns the limit for the measured quantity (compliance value).
      Source getSource()
      Returns the current source mode of the SMU (VOLTAGE OR CURRENT)
      double getSourceRange()
      Returns the range of allowed values for the quantity being sourced by the SMU.
      double getSourceValue()
      Returns the value of whichever parameter is set as source currently
      Terminals getTerminals()
      Returns the type of the set of terminals currently being used on the SMU.
      TType getTerminalType​(Terminals terminals)
      Returns what type of connector is used for the given terminal.
      double getVoltage()
      Returns the voltage either being applied or measured by the SMU.
      default double getVoltage​(double integrationTime)
      Takes a voltage measurement using a specified one-off integration time.
      double getVoltageLimit()
      Returns the limit on voltages output when sourcing current (compliance value).
      double getVoltageRange()
      Returns the range of allowed values for voltages being sourced or measured by the SMU.
      boolean isAutoRangingCurrent()
      Returns whether the SMU is currently determining its current range automatically.
      boolean isAutoRangingMeasure()
      Returns whether the SMU is currently determining its measure range automatically.
      boolean isAutoRangingSource()
      Returns whether the SMU is set to automatically determine the source range to use.
      boolean isAutoRangingVoltage()
      Returns whether the SMU is automatically determining the range to use for voltages.
      boolean isFourProbeEnabled()
      Returns whether the device is currently configured to use all four probes.
      boolean isLineFilterEnabled()
      Returns whether the voltmeter is using any line-frequency filtering
      boolean isOn()
      Checks whether the output of the SMU is currently enabled
      default double pulseVoltage​(double pulseVoltage, double offTime, double measureDelay)
      Pulses the voltage output of the SMU, returning the measured current value after a set amount of time before returning voltage to base.
      void setAverageCount​(int count)
      Sets how many measurements the SMU should average over.
      void setAverageMode​(AMode mode)
      Sets the averaging mode of the SMU.
      default void setAveraging​(AMode mode, int count)
      Sets both the averaging mode and count together.
      void setCurrent​(double current)
      Sets the current value to be applied by the SMU (switching to current source mode if not already)
      void setCurrentLimit​(double current)
      Sets the limit for currents output when sourcing voltage (compliance value).
      void setCurrentRange​(double value)
      Sets the range of allowed values for currents being sourced or measured by the SMU.
      void setFourProbeEnabled​(boolean fourProbes)
      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.
      void setIntegrationTime​(double time)
      Sets the integration time for each individual measurement, or closest over-estimate possible.
      default void setLimits​(double voltageLimit, double currentLimit)
      Sets the limits (compliance values) for both voltage and current.
      void setLineFilterEnabled​(boolean enabled)
      Sets whether the voltmeter should use any line-frequency filtering (if available)
      void setMeasureRange​(double value)
      Sets the range of allowed values for the quantity being measured by the SMU.
      void setOffMode​(SMU.OffMode mode)
      Sets which mode the SMU channel should use when turned off.
      default void setOn​(boolean on)  
      void setOutputLimit​(double value)
      Sets the limit for the measured quantity (ie compliance value).
      default void setRanges​(double voltageRange, double currentRange)
      Sets the value ranges for both voltage and current.
      void setSource​(Source source)
      Sets the source mode of the SMU (VOLTAGE or CURRENT)
      void setSourceRange​(double value)
      Sets the range of allowed values for the quantity being sourced by the SMU.
      void setSourceValue​(double level)
      Sets the value for whichever parameter is currently being sourced
      void setTerminals​(Terminals terminals)
      Sets which set of terminals should be used on the SMU.
      void setVoltage​(double voltage)
      Sets the voltage value to be applied by the SMU (switching to voltage source mode if not already)
      void setVoltageLimit​(double voltage)
      Sets the limit for voltages output when sourcing current (compliance value).
      void setVoltageRange​(double value)
      Sets the range of allowed values for voltages being sourced or measured by the SMU.
      void turnOff()
      Turns the output of the SMU off
      void turnOn()
      Turns the output of the SMU on
      void useAutoCurrentRange()
      Tells the SMU to automatically determine the range to use for current values.
      void useAutoMeasureRange()
      Tells the SMU to automatically determine the range to use for the measured quantity.
      default void useAutoRanges()
      Tells the SMU to use auto-ranging for both current and voltage.
      void useAutoSourceRange()
      Sets the SMU to automatically determine the source range to use.
      void useAutoVoltageRange()
      Tells the SMU to automatically determine the range it uses for voltages.
    • Method Detail

      • getDescription

        static java.lang.String getDescription()
      • getVoltage

        double getVoltage()
                   throws DeviceException,
                          java.io.IOException
        Returns the voltage either being applied or measured by the 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
      • getVoltage

        default double getVoltage​(double integrationTime)
                           throws DeviceException,
                                  java.io.IOException
        Takes a voltage measurement using a specified one-off integration time.
        Specified by:
        getVoltage in interface VMeter
        Parameters:
        integrationTime - Integration time to use in seconds
        Returns:
        Voltage measurement value, in Volts
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setVoltage

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

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

        default double getCurrent​(double integrationTime)
                           throws DeviceException,
                                  java.io.IOException
        Takes a current measurement using a specified one-off integration time.
        Specified by:
        getCurrent in interface IMeter
        Parameters:
        integrationTime - Integration time to use in seconds
        Returns:
        Current measurement value, in Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setCurrent

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

        default double pulseVoltage​(double pulseVoltage,
                                    double offTime,
                                    double measureDelay)
                             throws DeviceException,
                                    java.io.IOException
        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

        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:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isOn

        boolean isOn()
              throws DeviceException,
                     java.io.IOException
        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 Switch
        Specified by:
        isOn in interface VMeter
        Specified by:
        isOn in interface VSource
        Returns:
        Is the output on?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getSource

        Source getSource()
                  throws DeviceException,
                         java.io.IOException
        Returns the current source mode of the SMU (VOLTAGE OR CURRENT)
        Returns:
        Source mode
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setSource

        void setSource​(Source source)
                throws DeviceException,
                       java.io.IOException
        Sets the source mode of the SMU (VOLTAGE or CURRENT)
        Parameters:
        source - Source mode to set
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setSourceValue

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

        double getSourceValue()
                       throws DeviceException,
                              java.io.IOException
        Returns the value of whichever parameter is set as source currently
        Returns:
        Value of source
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getMeasureValue

        double getMeasureValue()
                        throws DeviceException,
                               java.io.IOException
        Returns the value of whichever parameter is set as measure currently
        Returns:
        Value of measure
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isFourProbeEnabled

        boolean isFourProbeEnabled()
                            throws DeviceException,
                                   java.io.IOException
        Returns whether the device is currently configured to use all four probes.
        Returns:
        Are all probes to be used?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setFourProbeEnabled

        void setFourProbeEnabled​(boolean fourProbes)
                          throws DeviceException,
                                 java.io.IOException
        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.
        Parameters:
        fourProbes - Should it use all four probes?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setAveraging

        default void setAveraging​(AMode mode,
                                  int count)
                           throws DeviceException,
                                  java.io.IOException
        Sets both the averaging mode and count together.
        Parameters:
        mode - Averaging mode
        count - Averaging count
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getAverageCount

        int getAverageCount()
                     throws DeviceException,
                            java.io.IOException
        Returns the number of measurements used for averaging by the SMU.
        Specified by:
        getAverageCount in interface IMeter
        Specified by:
        getAverageCount in interface VMeter
        Returns:
        Number of measurements
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setAverageCount

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

        double getSourceRange()
                       throws DeviceException,
                              java.io.IOException
        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.
        Returns:
        Range value, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setSourceRange

        void setSourceRange​(double value)
                     throws DeviceException,
                            java.io.IOException
        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.
        Parameters:
        value - Range value, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • useAutoSourceRange

        void useAutoSourceRange()
                         throws DeviceException,
                                java.io.IOException
        Sets the SMU to automatically determine the source range to use.
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isAutoRangingSource

        boolean isAutoRangingSource()
                             throws DeviceException,
                                    java.io.IOException
        Returns whether the SMU is set to automatically determine the source range to use.
        Returns:
        Automatic?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getMeasureRange

        double getMeasureRange()
                        throws DeviceException,
                               java.io.IOException
        Returns the range of allowed values for the quantity being measured by the SMU.
        Returns:
        Range value, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setMeasureRange

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

        void useAutoMeasureRange()
                          throws DeviceException,
                                 java.io.IOException
        Tells the SMU to automatically determine the range to use for the measured quantity.
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isAutoRangingMeasure

        boolean isAutoRangingMeasure()
                              throws DeviceException,
                                     java.io.IOException
        Returns whether the SMU is currently determining its measure range automatically.
        Returns:
        Is it automatic?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getVoltageRange

        double getVoltageRange()
                        throws DeviceException,
                               java.io.IOException
        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 VMeter
        Returns:
        Range value, in Volts
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setVoltageRange

        void setVoltageRange​(double value)
                      throws DeviceException,
                             java.io.IOException
        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 VMeter
        Parameters:
        value - Range value, in Volts
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • useAutoVoltageRange

        void useAutoVoltageRange()
                          throws DeviceException,
                                 java.io.IOException
        Tells the SMU to automatically determine the range it uses for voltages.
        Specified by:
        useAutoVoltageRange in interface VMeter
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isAutoRangingVoltage

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

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

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

        void useAutoCurrentRange()
                          throws DeviceException,
                                 java.io.IOException
        Tells the SMU to automatically determine the range to use for current values.
        Specified by:
        useAutoCurrentRange in interface IMeter
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isAutoRangingCurrent

        boolean isAutoRangingCurrent()
                              throws DeviceException,
                                     java.io.IOException
        Returns whether the SMU is currently determining its current range automatically.
        Specified by:
        isAutoRangingCurrent in interface IMeter
        Returns:
        Is it automatic?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getOutputLimit

        double getOutputLimit()
                       throws DeviceException,
                              java.io.IOException
        Returns the limit for the measured quantity (compliance value).
        Returns:
        The limit, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setOutputLimit

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

        double getVoltageLimit()
                        throws DeviceException,
                               java.io.IOException
        Returns the limit on voltages output when sourcing current (compliance value).
        Returns:
        The limit, in Volts
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setVoltageLimit

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

        double getCurrentLimit()
                        throws DeviceException,
                               java.io.IOException
        Returns the limit for currents output when sourcing voltage (compliance value).
        Returns:
        The limit, in Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setCurrentLimit

        void setCurrentLimit​(double current)
                      throws DeviceException,
                             java.io.IOException
        Sets the limit for currents output when sourcing voltage (compliance value).
        Parameters:
        current - The limit, in Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getIntegrationTime

        double getIntegrationTime()
                           throws DeviceException,
                                  java.io.IOException
        Returns the integration time used for each individual measurement.
        Specified by:
        getIntegrationTime in interface IMeter
        Specified by:
        getIntegrationTime in interface VMeter
        Returns:
        Integration time, in seconds
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setIntegrationTime

        void setIntegrationTime​(double time)
                         throws DeviceException,
                                java.io.IOException
        Sets the integration time for each individual measurement, or closest over-estimate possible.
        Specified by:
        setIntegrationTime in interface IMeter
        Specified by:
        setIntegrationTime in interface VMeter
        Parameters:
        time - Integration time, in seconds
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getTerminalType

        TType getTerminalType​(Terminals terminals)
                       throws DeviceException,
                              java.io.IOException
        Returns what type of connector is used for the given terminal.
        Specified by:
        getTerminalType in interface VMeter
        Parameters:
        terminals - Which terminal
        Returns:
        Terminal type (TRIAX, PHOENIX, BNC or BANANA)
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getTerminals

        Terminals getTerminals()
                        throws DeviceException,
                               java.io.IOException
        Returns the type of the set of terminals currently being used on the SMU.
        Specified by:
        getTerminals in interface VMeter
        Returns:
        The type of terminals being used
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setTerminals

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

        SMU.OffMode getOffMode()
                        throws DeviceException,
                               java.io.IOException
        Returns the mode used by the SMU channel when turned off.
        Returns:
        Mode being used
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setOffMode

        void setOffMode​(SMU.OffMode mode)
                 throws DeviceException,
                        java.io.IOException
        Sets which mode the SMU channel should use when turned off.
        Parameters:
        mode - Mode to use
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isLineFilterEnabled

        boolean isLineFilterEnabled()
                             throws DeviceException,
                                    java.io.IOException
        Returns whether the voltmeter is using any line-frequency filtering
        Specified by:
        isLineFilterEnabled in interface IMeter
        Specified by:
        isLineFilterEnabled in interface VMeter
        Returns:
        Using line filter?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setLineFilterEnabled

        void setLineFilterEnabled​(boolean enabled)
                           throws DeviceException,
                                  java.io.IOException
        Sets whether the voltmeter should use any line-frequency filtering (if available)
        Specified by:
        setLineFilterEnabled in interface IMeter
        Specified by:
        setLineFilterEnabled in interface VMeter
        Parameters:
        enabled - Use line filter?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getIVPoint

        default IVPoint getIVPoint()
                            throws DeviceException,
                                   java.io.IOException
        Returns a combined voltage and current measurement.
        Specified by:
        getIVPoint in interface IVMeter
        Returns:
        Voltage and Current
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • asVoltmeter

        default VMeter asVoltmeter()
                            throws java.io.IOException,
                                   DeviceException
        Configures the SMU to act as a voltmeter, returning a VMeter representation of itself.
        Returns:
        This SMU, as a VMeter
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • asAmmeter

        default IMeter asAmmeter()
                          throws java.io.IOException,
                                 DeviceException
        Configures the SMU to act as an ammeter, returning an IMeter representation of itself.
        Returns:
        This SMU, as an IMeter
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setRanges

        default void setRanges​(double voltageRange,
                               double currentRange)
                        throws DeviceException,
                               java.io.IOException
        Sets the value ranges for both voltage and current.
        Specified by:
        setRanges in interface IVMeter
        Parameters:
        voltageRange - Range to use for voltage
        currentRange - Range to use for current
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • useAutoRanges

        default void useAutoRanges()
                            throws DeviceException,
                                   java.io.IOException
        Tells the SMU to use auto-ranging for both current and voltage.
        Specified by:
        useAutoRanges in interface IVMeter
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setLimits

        default void setLimits​(double voltageLimit,
                               double currentLimit)
                        throws DeviceException,
                               java.io.IOException
        Sets the limits (compliance values) for both voltage and current.
        Parameters:
        voltageLimit - Limit for voltage when not being sourced
        currentLimit - Limit for current when not being sourced
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error