Interface MCSMU

    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default void checkChannel​(int channel)  
      default <I extends Instrument>
      java.util.List<I>
      get​(java.lang.Class<I> type)
      Returns a list of all sub-instruments this instrument contains that can be considered to be of the given instrument type.
      default int getAverageCount()
      Returns how many measurements the SMU is using to perform its averaging on the default channel.
      int getAverageCount​(int channel)
      Returns how many measurements the SMU is using to perform its averaging on the specified channel.
      default AMode getAverageMode()
      Returns which averaging mode the SMU is currently using for measurements on the default channel.
      AMode getAverageMode​(int channel)
      Returns which averaging mode the SMU is currently using for measurements on the specified channel.
      default SMU getChannel​(int channel)
      Returns a virtual SMU object to control the specified channel of the MCSMU
      default java.lang.Class<SMU> getChannelClass()  
      default java.util.List<SMU> getChannels()  
      default double getCurrent()
      Returns the current of the default channel
      double getCurrent​(int channel)
      Returns the current of the specified channel
      default double getCurrentLimit()
      Returns the limit (compliance) on current when not being sourced on the default channel.
      double getCurrentLimit​(int channel)
      Returns the limit (compliance) on current when not being sourced on the specified channel.
      default double getCurrentRange()
      Returns the range being used for voltage values on the default channel.
      double getCurrentRange​(int channel)
      Returns the range being used for current values on the specified channel.
      static java.lang.String getDescription()  
      default double getIntegrationTime()
      Returns the integration time used for measurements on the default channel.
      double getIntegrationTime​(int channel)
      Returns the integration time used for measurements on the specified channel.
      default IVPoint getIVPoint()
      Returns a combined voltage and current measurement from the default channel.
      default IVPoint getIVPoint​(int channel)
      Returns a combined voltage and current measurement from the specified channel.
      default MCIVPoint getMCIVPoint()
      Returns combined voltage and current measurements for each channel.
      default double getMeasureRange()
      Returns the range being used for the measured quantity on the default channel.
      double getMeasureRange​(int channel)
      Returns the range being used for the measured quantity on the specified channel.
      default double getMeasureValue()
      Returns the value of whichever quantity is being measured on the default channel
      double getMeasureValue​(int channel)
      Returns the value of whichever quantity is being measured on the specified channel
      java.lang.String getName​(int channel)  
      int getNumChannels()
      Returns the number of channels this SMU has.
      default SMU.OffMode getOffMode()
      Returns the mode used by the SMU channel when turned off.
      SMU.OffMode getOffMode​(int channel)  
      default double getOutputLimit()
      Returns the limit (compliance) on whichever quantity is not being sourced on the default channel.
      double getOutputLimit​(int channel)
      Returns the limit (compliance) on whichever quantity is not being sourced on the specified channel.
      default Source getSource()
      Returns the source mode of the default channel
      Source getSource​(int channel)
      Returns the source mode of the specified channel
      default double getSourceRange()
      Returns the range being used for the sourced quantity on the default channel.
      double getSourceRange​(int channel)
      Returns the range being used for the sourced quantity on the specified channel.
      default double getSourceValue()
      Returns the value of whichever quantity is being sourced on the default channel
      double getSourceValue​(int channel)
      Returns the value of whichever quantity is being sourced on the specified channel
      default <I extends Instrument>
      I
      getSubInstrument​(java.lang.Class<I> type, int index)  
      default java.util.List<java.lang.Class<? extends Instrument>> getSubInstrumentTypes()
      Returns a list of all the different classes of sub-instruments that this instrument contains.
      default Terminals getTerminals()
      Returns the type of the set of terminals currently being used on the SMU.
      Terminals getTerminals​(int channel)  
      TType getTerminalType​(int channel, Terminals terminals)  
      default TType getTerminalType​(Terminals terminals)
      Returns what type of connector is used for the given terminal.
      default double getVoltage()
      Returns the voltage of the default channel
      double getVoltage​(int channel)
      Returns the voltage of the specified channel
      default double getVoltageLimit()
      Returns the limit (compliance) on voltage when not being sourced on the default channel.
      double getVoltageLimit​(int channel)
      Returns the limit (compliance) on voltage when not being sourced on the specified channel.
      default double getVoltageRange()
      Returns the range being used for voltage values on the default channel.
      double getVoltageRange​(int channel)
      Returns the range being used for voltage values on the specified channel.
      default boolean isAutoRangingCurrent()
      Returns whether auto-ranging is being used for voltage values on the default channel.
      boolean isAutoRangingCurrent​(int channel)
      Returns whether auto-ranging is being used for current values on the specified channel.
      default boolean isAutoRangingMeasure()
      Returns whether auto-ranging is being used for the measured quantity on the default channel.
      boolean isAutoRangingMeasure​(int channel)
      Returns whether auto-ranging is being used for the measured quantity on the specified channel.
      default boolean isAutoRangingSource()
      Returns whether auto-ranging is being used for the source quantity on the default channel.
      boolean isAutoRangingSource​(int channel)
      Returns whether auto-ranging is being used for the source quantity on the specified channel.
      default boolean isAutoRangingVoltage()
      Returns whether auto-ranging is being used for voltage values on the default channel.
      boolean isAutoRangingVoltage​(int channel)
      Returns whether auto-ranging is being used for voltage values on the specified channel.
      default boolean isFourProbeEnabled()
      Returns whether the device is currently configured to use all four probes on the default channel.
      boolean isFourProbeEnabled​(int channel)
      Returns whether the device is currently configured to use all four probes on the specified channel.
      default boolean isLineFilterEnabled()
      Returns whether the voltmeter is using any line-frequency filtering
      boolean isLineFilterEnabled​(int channel)
      Returns whether the voltmeter is using any line-frequency filtering
      default boolean isOn()
      Returns whether the default channel currently has its output enabled
      boolean isOn​(int channel)
      Returns whether the specified channel currently has its output enabled
      default void setAverageCount​(int count)
      Sets how many measurements to use when averaging on all channels.
      void setAverageCount​(int channel, int count)
      Sets how many measurements to use when averaging on the specified channel.
      void setAverageMode​(int channel, AMode mode)
      Sets which type of averaging the SMU should use when making a measurement on the specified channel.
      default void setAverageMode​(AMode mode)
      Sets which type of averaging the SMU should use when making a measurement on all channels.
      default void setAveraging​(int channel, AMode mode, int count)
      Sets both the averaging mode and count together for the specified channel.
      default void setAveraging​(AMode mode, int count)
      Sets both the averaging mode and count together for all channels.
      void setBias​(int channel, double level)
      Sets the level of whichever quantity is being sourced on the specified channel
      default void setCurrent​(double current)
      Sets the default channel to source the given current (when turned on)
      void setCurrent​(int channel, double current)
      Sets the specified channel to source the given current (when turned on)
      default void setCurrentLimit​(double value)
      Sets the limit (compliance) on current when not being sourced on the all channels.
      void setCurrentLimit​(int channel, double value)
      Sets the limit (compliance) on current when not being sourced on the specified channel.
      default void setCurrentRange​(double value)
      Sets the range (and thus precision) to use for current values on all channels.
      void setCurrentRange​(int channel, double value)
      Sets the range (and thus precision) to use for current values on the specified channel.
      default 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 on all channels.
      void setFourProbeEnabled​(int channel, 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 on the specified channel.
      default void setIntegrationTime​(double time)
      Sets the integration time to use for measurements on all channels.
      void setIntegrationTime​(int channel, double time)
      Sets the integration time to use for measurements on the specified channel.
      default void setLimits​(double voltageLimit, double currentLimit)
      Sets the limits for both voltage and current (when not being sourced) on all channels.
      default void setLimits​(int channel, double voltageLimit, double currentLimit)
      Sets the limits for both voltage and current (when not being sourced) on the specified channel.
      default void setLineFilterEnabled​(boolean enabled)
      Sets whether the voltmeter should use any line-frequency filtering (if available)
      void setLineFilterEnabled​(int channel, boolean enabled)
      Sets whether the voltmeter should use any line-frequency filtering (if available)
      default void setMeasureRange​(double value)
      Sets the range (and thus precision) to use for the measured quantity on all channels.
      void setMeasureRange​(int channel, double value)
      Sets the range (and thus precision) to use for the measured quantity on the given channel.
      void setOffMode​(int channel, SMU.OffMode mode)  
      default void setOffMode​(SMU.OffMode mode)
      Sets which mode the SMU channel should use when turned off.
      default void setOutputLimit​(double value)
      Sets the limit (compliance) on whichever quantity is not being sourced on all channels.
      void setOutputLimit​(int channel, double value)
      Sets the limit (compliance) on whichever quantity is not being sourced on the given channel.
      default void setRanges​(double voltageRange, double currentRange)
      Sets both the voltage and current ranges to use on all channels.
      default void setRanges​(int channel, double voltageRange, double currentRange)
      Sets both the voltage and current ranges to use on the specified channel.
      void setSource​(int channel, Source source)
      Sets the source mode of the specified channel
      default void setSource​(Source source)
      Sets the source mode of all channels
      default void setSourceRange​(double value)
      Sets the range (and thus precision) to use for the sourced quantity on all channels.
      void setSourceRange​(int channel, double value)
      Sets the range (and thus precision) to use for the sourced quantity on the given channel.
      default void setSourceValue​(double level)
      Sets the level of whichever quantity is being sourced on all channels
      void setTerminals​(int channel, Terminals terminals)  
      default void setTerminals​(Terminals terminals)
      Sets which set of terminals should be used on the SMU.
      default void setVoltage​(double voltage)
      Sets the default channel to source the given voltage (when turned on)
      void setVoltage​(int channel, double voltage)
      Sets the specified channel to source the given voltage (when turned on)
      default void setVoltageLimit​(double value)
      Sets the limit (compliance) on voltage when not being sourced on all channels.
      void setVoltageLimit​(int channel, double value)
      Sets the limit (compliance) on voltage values when not being sourced on the specified channel.
      default void setVoltageRange​(double value)
      Sets the range (and thus precision) to use for voltage values on all channels.
      void setVoltageRange​(int channel, double value)
      Sets the range (and thus precision) to use for voltage values on the specified channel.
      default void turnOff()
      Disables output on all channels
      void turnOff​(int channel)
      Disables output on the specified channel
      default void turnOn()
      Enables output on all channels
      void turnOn​(int channel)
      Enables output on the specified channel
      default void useAutoCurrentRange()
      Tells the SMU to use auto-ranging for voltage values on all channels.
      void useAutoCurrentRange​(int channel)
      Tells the SMU to use auto-ranging for current values on the specified channel.
      default void useAutoMeasureRange()
      Tells the SMU to use auto-ranging for the measured quantity on all channels.
      void useAutoMeasureRange​(int channel)
      Tells the SMU to use auto-ranging for the measured quantity on the specified channel.
      default void useAutoRanges()
      Tells the SMU to use auto-ranging for both voltage and current on all channels.
      default void useAutoRanges​(int channel)
      Tells the SMU to use auto-ranging for both voltage and current on the specified channel.
      default void useAutoSourceRange()
      Tells the SMU to use auto-ranging for the sourced quantity on all channels.
      void useAutoSourceRange​(int channel)
      Tells the SMU to use auto-ranging for the sourced quantity on the specified channel.
      default void useAutoVoltageRange()
      Tells the SMU to use auto-ranging for voltage values on all channels.
      void useAutoVoltageRange​(int channel)
      Tells the SMU to use auto-ranging for voltage values on the specified channel.
    • Method Detail

      • getDescription

        static java.lang.String getDescription()
      • getSubInstrumentTypes

        default java.util.List<java.lang.Class<? extends Instrument>> getSubInstrumentTypes()
        Description copied from interface: MultiInstrument
        Returns a list of all the different classes of sub-instruments that this instrument contains.
        Specified by:
        getSubInstrumentTypes in interface MultiInstrument
        Returns:
        List of sub-instrument classes
      • get

        default <I extends Instrument> java.util.List<I> get​(java.lang.Class<I> type)
        Description copied from interface: MultiInstrument
        Returns a list of all sub-instruments this instrument contains that can be considered to be of the given instrument type.
        Specified by:
        get in interface MultiInstrument
        Type Parameters:
        I - Instrument class
        Parameters:
        type - The class object of sub-instrument to return
        Returns:
        List of sub-instruments matching the given class
      • getName

        java.lang.String getName​(int channel)
      • getVoltage

        double getVoltage​(int channel)
                   throws DeviceException,
                          java.io.IOException
        Returns the voltage of the specified channel
        Parameters:
        channel - Channel number
        Returns:
        Voltage, in Volts
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • getVoltage

        default double getVoltage()
                           throws DeviceException,
                                  java.io.IOException
        Returns the voltage of the default channel
        Specified by:
        getVoltage in interface SMU
        Specified by:
        getVoltage in interface VMeter
        Specified by:
        getVoltage in interface VSource
        Returns:
        Voltage, in Volts
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • setVoltage

        default void setVoltage​(double voltage)
                         throws DeviceException,
                                java.io.IOException
        Sets the default channel to source the given voltage (when turned on)
        Specified by:
        setVoltage in interface SMU
        Specified by:
        setVoltage in interface VSource
        Parameters:
        voltage - Voltage to source, in Volts
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • getCurrent

        double getCurrent​(int channel)
                   throws DeviceException,
                          java.io.IOException
        Returns the current of the specified channel
        Parameters:
        channel - Channel number
        Returns:
        Current, in Amps
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • getCurrent

        default double getCurrent()
                           throws DeviceException,
                                  java.io.IOException
        Returns the current of the default channel
        Specified by:
        getCurrent in interface IMeter
        Specified by:
        getCurrent in interface ISource
        Specified by:
        getCurrent in interface SMU
        Returns:
        Current, in Amps
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • setCurrent

        default void setCurrent​(double current)
                         throws DeviceException,
                                java.io.IOException
        Sets the default channel to source the given current (when turned on)
        Specified by:
        setCurrent in interface ISource
        Specified by:
        setCurrent in interface SMU
        Parameters:
        current - Current to source, in Amps
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • setVoltage

        void setVoltage​(int channel,
                        double voltage)
                 throws DeviceException,
                        java.io.IOException
        Sets the specified channel to source the given voltage (when turned on)
        Parameters:
        channel - Channel number
        voltage - Voltage to source, in Volts
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • setCurrent

        void setCurrent​(int channel,
                        double current)
                 throws DeviceException,
                        java.io.IOException
        Sets the specified channel to source the given current (when turned on)
        Parameters:
        channel - Channel number
        current - Current to source, in Amps
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • turnOn

        void turnOn​(int channel)
             throws DeviceException,
                    java.io.IOException
        Enables output on the specified channel
        Parameters:
        channel - Channel number
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • turnOff

        void turnOff​(int channel)
              throws DeviceException,
                     java.io.IOException
        Disables output on the specified channel
        Parameters:
        channel - Channel number
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • isOn

        boolean isOn​(int channel)
              throws DeviceException,
                     java.io.IOException
        Returns whether the specified channel currently has its output enabled
        Parameters:
        channel - Channel number
        Returns:
        Is it enabled?
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • isOn

        default boolean isOn()
                      throws DeviceException,
                             java.io.IOException
        Returns whether the default channel currently has its output 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 it enabled?
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • setSource

        void setSource​(int channel,
                       Source source)
                throws DeviceException,
                       java.io.IOException
        Sets the source mode of the specified channel
        Parameters:
        channel - Channel number
        source - VOLTAGE or CURRENT
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • getSource

        Source getSource​(int channel)
                  throws DeviceException,
                         java.io.IOException
        Returns the source mode of the specified channel
        Parameters:
        channel - Channel number
        Returns:
        Source mode (VOLTAGE or CURRENT)
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • getSource

        default Source getSource()
                          throws DeviceException,
                                 java.io.IOException
        Returns the source mode of the default channel
        Specified by:
        getSource in interface SMU
        Returns:
        Source mode (VOLTAGE or CURRENT)
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • setSource

        default void setSource​(Source source)
                        throws DeviceException,
                               java.io.IOException
        Sets the source mode of all channels
        Specified by:
        setSource in interface SMU
        Parameters:
        source - VOLTAGE or CURRENT
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • setBias

        void setBias​(int channel,
                     double level)
              throws DeviceException,
                     java.io.IOException
        Sets the level of whichever quantity is being sourced on the specified channel
        Parameters:
        channel - Channel number
        level - Volts or Amps
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • setSourceValue

        default void setSourceValue​(double level)
                             throws DeviceException,
                                    java.io.IOException
        Sets the level of whichever quantity is being sourced on all channels
        Specified by:
        setSourceValue in interface SMU
        Parameters:
        level - Volts or Amps
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • getSourceValue

        double getSourceValue​(int channel)
                       throws DeviceException,
                              java.io.IOException
        Returns the value of whichever quantity is being sourced on the specified channel
        Parameters:
        channel - Channel number
        Returns:
        Voltage or Current, in Volts or Amps
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • getSourceValue

        default double getSourceValue()
                               throws DeviceException,
                                      java.io.IOException
        Returns the value of whichever quantity is being sourced on the default channel
        Specified by:
        getSourceValue in interface SMU
        Returns:
        Voltage or Current, in Volts or Amps
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • getMeasureValue

        double getMeasureValue​(int channel)
                        throws DeviceException,
                               java.io.IOException
        Returns the value of whichever quantity is being measured on the specified channel
        Parameters:
        channel - Channel number
        Returns:
        Voltage or Current, in Volts or Amps
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • getMeasureValue

        default double getMeasureValue()
                                throws DeviceException,
                                       java.io.IOException
        Returns the value of whichever quantity is being measured on the default channel
        Specified by:
        getMeasureValue in interface SMU
        Returns:
        Voltage or Current, in Volts or Amps
        Throws:
        DeviceException - Upon device compatibility error
        java.io.IOException - Upon communications error
      • getNumChannels

        int getNumChannels()
        Returns the number of channels this SMU has.
        Returns:
        Number of channels
      • setFourProbeEnabled

        void setFourProbeEnabled​(int channel,
                                 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 on the specified channel.
        Parameters:
        channel - Channel number
        fourProbes - Should it use all four probes?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setFourProbeEnabled

        default 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 on all channels.
        Specified by:
        setFourProbeEnabled in interface SMU
        Parameters:
        fourProbes - Should it use all four probes?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isFourProbeEnabled

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

        default boolean isFourProbeEnabled()
                                    throws DeviceException,
                                           java.io.IOException
        Returns whether the device is currently configured to use all four probes on the default channel.
        Specified by:
        isFourProbeEnabled in interface SMU
        Returns:
        Are all probes to be used?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setAverageMode

        void setAverageMode​(int channel,
                            AMode mode)
                     throws DeviceException,
                            java.io.IOException
        Sets which type of averaging the SMU should use when making a measurement on the specified channel.
        Parameters:
        channel - Channel number
        mode - Averaging mode
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setAverageCount

        void setAverageCount​(int channel,
                             int count)
                      throws DeviceException,
                             java.io.IOException
        Sets how many measurements to use when averaging on the specified channel.
        Parameters:
        channel - Channel number
        count - Averaging count
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setAveraging

        default void setAveraging​(int channel,
                                  AMode mode,
                                  int count)
                           throws DeviceException,
                                  java.io.IOException
        Sets both the averaging mode and count together for the specified channel.
        Parameters:
        channel - Channel number
        mode - Averaging mode
        count - Averaging count
        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 for all channels.
        Specified by:
        setAveraging in interface SMU
        Parameters:
        mode - Averaging mode
        count - Averaging count
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getAverageCount

        int getAverageCount​(int channel)
                     throws DeviceException,
                            java.io.IOException
        Returns how many measurements the SMU is using to perform its averaging on the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Averaging count
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getAverageCount

        default int getAverageCount()
                             throws DeviceException,
                                    java.io.IOException
        Returns how many measurements the SMU is using to perform its averaging on the default channel.
        Specified by:
        getAverageCount in interface IMeter
        Specified by:
        getAverageCount in interface SMU
        Specified by:
        getAverageCount in interface VMeter
        Returns:
        Averaging count
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setAverageCount

        default void setAverageCount​(int count)
                              throws DeviceException,
                                     java.io.IOException
        Sets how many measurements to use when averaging on all channels.
        Specified by:
        setAverageCount in interface IMeter
        Specified by:
        setAverageCount in interface SMU
        Specified by:
        setAverageCount in interface VMeter
        Parameters:
        count - Averaging count
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getAverageMode

        AMode getAverageMode​(int channel)
                      throws DeviceException,
                             java.io.IOException
        Returns which averaging mode the SMU is currently using for measurements on the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Averaging mode
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getAverageMode

        default AMode getAverageMode()
                              throws DeviceException,
                                     java.io.IOException
        Returns which averaging mode the SMU is currently using for measurements on the default channel.
        Specified by:
        getAverageMode in interface IMeter
        Specified by:
        getAverageMode in interface SMU
        Specified by:
        getAverageMode in interface VMeter
        Returns:
        Averaging mode
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setAverageMode

        default void setAverageMode​(AMode mode)
                             throws DeviceException,
                                    java.io.IOException
        Sets which type of averaging the SMU should use when making a measurement on all channels.
        Specified by:
        setAverageMode in interface IMeter
        Specified by:
        setAverageMode in interface SMU
        Specified by:
        setAverageMode in interface VMeter
        Parameters:
        mode - Averaging mode
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setSourceRange

        void setSourceRange​(int channel,
                            double value)
                     throws DeviceException,
                            java.io.IOException
        Sets the range (and thus precision) to use for the sourced quantity on the given channel.
        Parameters:
        channel - Channel number
        value - Range value, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getSourceRange

        double getSourceRange​(int channel)
                       throws DeviceException,
                              java.io.IOException
        Returns the range being used for the sourced quantity on the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Range value, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getSourceRange

        default double getSourceRange()
                               throws DeviceException,
                                      java.io.IOException
        Returns the range being used for the sourced quantity on the default channel.
        Specified by:
        getSourceRange in interface SMU
        Returns:
        Range value, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setSourceRange

        default void setSourceRange​(double value)
                             throws DeviceException,
                                    java.io.IOException
        Sets the range (and thus precision) to use for the sourced quantity on all channels.
        Specified by:
        setSourceRange in interface SMU
        Parameters:
        value - Range value, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • useAutoSourceRange

        void useAutoSourceRange​(int channel)
                         throws DeviceException,
                                java.io.IOException
        Tells the SMU to use auto-ranging for the sourced quantity on the specified channel.
        Parameters:
        channel - Channel number
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • useAutoSourceRange

        default void useAutoSourceRange()
                                 throws DeviceException,
                                        java.io.IOException
        Tells the SMU to use auto-ranging for the sourced quantity on all channels.
        Specified by:
        useAutoSourceRange in interface SMU
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isAutoRangingSource

        boolean isAutoRangingSource​(int channel)
                             throws DeviceException,
                                    java.io.IOException
        Returns whether auto-ranging is being used for the source quantity on the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Auto-ranging in use?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isAutoRangingSource

        default boolean isAutoRangingSource()
                                     throws DeviceException,
                                            java.io.IOException
        Returns whether auto-ranging is being used for the source quantity on the default channel.
        Specified by:
        isAutoRangingSource in interface SMU
        Returns:
        Auto-ranging in use?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setMeasureRange

        void setMeasureRange​(int channel,
                             double value)
                      throws DeviceException,
                             java.io.IOException
        Sets the range (and thus precision) to use for the measured quantity on the given channel.
        Parameters:
        channel - Channel number
        value - Range value, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getMeasureRange

        double getMeasureRange​(int channel)
                        throws DeviceException,
                               java.io.IOException
        Returns the range being used for the measured quantity on the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Range value, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getMeasureRange

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

        default void setMeasureRange​(double value)
                              throws DeviceException,
                                     java.io.IOException
        Sets the range (and thus precision) to use for the measured quantity on all channels.
        Specified by:
        setMeasureRange in interface SMU
        Parameters:
        value - Range value, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • useAutoMeasureRange

        void useAutoMeasureRange​(int channel)
                          throws DeviceException,
                                 java.io.IOException
        Tells the SMU to use auto-ranging for the measured quantity on the specified channel.
        Parameters:
        channel - Channel number
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • useAutoMeasureRange

        default void useAutoMeasureRange()
                                  throws DeviceException,
                                         java.io.IOException
        Tells the SMU to use auto-ranging for the measured quantity on all channels.
        Specified by:
        useAutoMeasureRange in interface SMU
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isAutoRangingMeasure

        boolean isAutoRangingMeasure​(int channel)
                              throws DeviceException,
                                     java.io.IOException
        Returns whether auto-ranging is being used for the measured quantity on the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Auto-ranging in use?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isAutoRangingMeasure

        default boolean isAutoRangingMeasure()
                                      throws DeviceException,
                                             java.io.IOException
        Returns whether auto-ranging is being used for the measured quantity on the default channel.
        Specified by:
        isAutoRangingMeasure in interface SMU
        Returns:
        Auto-ranging in use?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setVoltageRange

        void setVoltageRange​(int channel,
                             double value)
                      throws DeviceException,
                             java.io.IOException
        Sets the range (and thus precision) to use for voltage values on the specified channel.
        Parameters:
        channel - Channel number
        value - Range, in Volts
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getVoltageRange

        double getVoltageRange​(int channel)
                        throws DeviceException,
                               java.io.IOException
        Returns the range being used for voltage values on the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Range, in Volts
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getVoltageRange

        default double getVoltageRange()
                                throws DeviceException,
                                       java.io.IOException
        Returns the range being used for voltage values on the default channel.
        Specified by:
        getVoltageRange in interface SMU
        Specified by:
        getVoltageRange in interface VMeter
        Returns:
        Range, in Volts
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setVoltageRange

        default void setVoltageRange​(double value)
                              throws DeviceException,
                                     java.io.IOException
        Sets the range (and thus precision) to use for voltage values on all channels.
        Specified by:
        setVoltageRange in interface SMU
        Specified by:
        setVoltageRange in interface VMeter
        Parameters:
        value - Range, in Volts
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • useAutoVoltageRange

        void useAutoVoltageRange​(int channel)
                          throws DeviceException,
                                 java.io.IOException
        Tells the SMU to use auto-ranging for voltage values on the specified channel.
        Parameters:
        channel - Channel number
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • useAutoVoltageRange

        default void useAutoVoltageRange()
                                  throws DeviceException,
                                         java.io.IOException
        Tells the SMU to use auto-ranging for voltage values on all channels.
        Specified by:
        useAutoVoltageRange in interface SMU
        Specified by:
        useAutoVoltageRange in interface VMeter
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isAutoRangingVoltage

        boolean isAutoRangingVoltage​(int channel)
                              throws DeviceException,
                                     java.io.IOException
        Returns whether auto-ranging is being used for voltage values on the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Auto-ranging in use?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isAutoRangingVoltage

        default boolean isAutoRangingVoltage()
                                      throws DeviceException,
                                             java.io.IOException
        Returns whether auto-ranging is being used for voltage values on the default channel.
        Specified by:
        isAutoRangingVoltage in interface SMU
        Specified by:
        isAutoRangingVoltage in interface VMeter
        Returns:
        Auto-ranging in use?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setCurrentRange

        void setCurrentRange​(int channel,
                             double value)
                      throws DeviceException,
                             java.io.IOException
        Sets the range (and thus precision) to use for current values on the specified channel.
        Parameters:
        channel - Channel number
        value - Range, in Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getCurrentRange

        double getCurrentRange​(int channel)
                        throws DeviceException,
                               java.io.IOException
        Returns the range being used for current values on the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Range, in Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getCurrentRange

        default double getCurrentRange()
                                throws DeviceException,
                                       java.io.IOException
        Returns the range being used for voltage values on the default channel.
        Specified by:
        getCurrentRange in interface IMeter
        Specified by:
        getCurrentRange in interface SMU
        Returns:
        Range, in Volts
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setCurrentRange

        default void setCurrentRange​(double value)
                              throws DeviceException,
                                     java.io.IOException
        Sets the range (and thus precision) to use for current values on all channels.
        Specified by:
        setCurrentRange in interface IMeter
        Specified by:
        setCurrentRange in interface SMU
        Parameters:
        value - Range, in Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • useAutoCurrentRange

        void useAutoCurrentRange​(int channel)
                          throws DeviceException,
                                 java.io.IOException
        Tells the SMU to use auto-ranging for current values on the specified channel.
        Parameters:
        channel - Channel number
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • useAutoCurrentRange

        default void useAutoCurrentRange()
                                  throws DeviceException,
                                         java.io.IOException
        Tells the SMU to use auto-ranging for voltage values on all channels.
        Specified by:
        useAutoCurrentRange in interface IMeter
        Specified by:
        useAutoCurrentRange in interface SMU
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isAutoRangingCurrent

        boolean isAutoRangingCurrent​(int channel)
                              throws DeviceException,
                                     java.io.IOException
        Returns whether auto-ranging is being used for current values on the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Auto-ranging in use?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • isAutoRangingCurrent

        default boolean isAutoRangingCurrent()
                                      throws DeviceException,
                                             java.io.IOException
        Returns whether auto-ranging is being used for voltage values on the default channel.
        Specified by:
        isAutoRangingCurrent in interface IMeter
        Specified by:
        isAutoRangingCurrent in interface SMU
        Returns:
        Auto-ranging in use?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setOutputLimit

        void setOutputLimit​(int channel,
                            double value)
                     throws DeviceException,
                            java.io.IOException
        Sets the limit (compliance) on whichever quantity is not being sourced on the given channel.
        Parameters:
        channel - Channel number
        value - Limit, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getOutputLimit

        double getOutputLimit​(int channel)
                       throws DeviceException,
                              java.io.IOException
        Returns the limit (compliance) on whichever quantity is not being sourced on the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Limit, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getOutputLimit

        default double getOutputLimit()
                               throws DeviceException,
                                      java.io.IOException
        Returns the limit (compliance) on whichever quantity is not being sourced on the default channel.
        Specified by:
        getOutputLimit in interface SMU
        Returns:
        Limit, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setOutputLimit

        default void setOutputLimit​(double value)
                             throws DeviceException,
                                    java.io.IOException
        Sets the limit (compliance) on whichever quantity is not being sourced on all channels.
        Specified by:
        setOutputLimit in interface SMU
        Parameters:
        value - Limit, in Volts or Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setVoltageLimit

        void setVoltageLimit​(int channel,
                             double value)
                      throws DeviceException,
                             java.io.IOException
        Sets the limit (compliance) on voltage values when not being sourced on the specified channel.
        Parameters:
        channel - Channel number
        value - Limit, in Volts
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getVoltageLimit

        double getVoltageLimit​(int channel)
                        throws DeviceException,
                               java.io.IOException
        Returns the limit (compliance) on voltage when not being sourced on the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Limit, in Volts
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getVoltageLimit

        default double getVoltageLimit()
                                throws DeviceException,
                                       java.io.IOException
        Returns the limit (compliance) on voltage when not being sourced on the default channel.
        Specified by:
        getVoltageLimit in interface SMU
        Returns:
        Limit, in Volts
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setVoltageLimit

        default void setVoltageLimit​(double value)
                              throws DeviceException,
                                     java.io.IOException
        Sets the limit (compliance) on voltage when not being sourced on all channels.
        Specified by:
        setVoltageLimit in interface SMU
        Parameters:
        value - Limit, in Volts
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setCurrentLimit

        void setCurrentLimit​(int channel,
                             double value)
                      throws DeviceException,
                             java.io.IOException
        Sets the limit (compliance) on current when not being sourced on the specified channel.
        Parameters:
        channel - Channel number
        value - Limit, in Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getCurrentLimit

        double getCurrentLimit​(int channel)
                        throws DeviceException,
                               java.io.IOException
        Returns the limit (compliance) on current when not being sourced on the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Limit, in Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getCurrentLimit

        default double getCurrentLimit()
                                throws DeviceException,
                                       java.io.IOException
        Returns the limit (compliance) on current when not being sourced on the default channel.
        Specified by:
        getCurrentLimit in interface SMU
        Returns:
        Limit, in Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setCurrentLimit

        default void setCurrentLimit​(double value)
                              throws DeviceException,
                                     java.io.IOException
        Sets the limit (compliance) on current when not being sourced on the all channels.
        Specified by:
        setCurrentLimit in interface SMU
        Parameters:
        value - Limit, in Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setIntegrationTime

        void setIntegrationTime​(int channel,
                                double time)
                         throws DeviceException,
                                java.io.IOException
        Sets the integration time to use for measurements on the specified channel.
        Parameters:
        channel - Channel number
        time - Integration time, in seconds
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getIntegrationTime

        double getIntegrationTime​(int channel)
                           throws DeviceException,
                                  java.io.IOException
        Returns the integration time used for measurements on the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Integration time, in seconds
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setIntegrationTime

        default void setIntegrationTime​(double time)
                                 throws DeviceException,
                                        java.io.IOException
        Sets the integration time to use for measurements on all channels.
        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:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getTerminalType

        default TType getTerminalType​(Terminals terminals)
                               throws DeviceException,
                                      java.io.IOException
        Description copied from interface: SMU
        Returns what type of connector is used for the given terminal.
        Specified by:
        getTerminalType in interface SMU
        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

        default Terminals getTerminals()
                                throws DeviceException,
                                       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:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setTerminals

        default void setTerminals​(Terminals terminals)
                           throws DeviceException,
                                  java.io.IOException
        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:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getOffMode

        default SMU.OffMode getOffMode()
                                throws DeviceException,
                                       java.io.IOException
        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:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setOffMode

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

        boolean isLineFilterEnabled​(int channel)
                             throws DeviceException,
                                    java.io.IOException
        Returns whether the voltmeter is using any line-frequency filtering
        Parameters:
        channel - Channel number
        Returns:
        Using line filter?
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setLineFilterEnabled

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

        default IVPoint getIVPoint​(int channel)
                            throws DeviceException,
                                   java.io.IOException
        Returns a combined voltage and current measurement from the specified channel.
        Parameters:
        channel - Channel number
        Returns:
        Voltage and current
        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 from the default channel.
        Specified by:
        getIVPoint in interface IVMeter
        Specified by:
        getIVPoint in interface SMU
        Returns:
        Voltage and current
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getMCIVPoint

        default MCIVPoint getMCIVPoint()
                                throws DeviceException,
                                       java.io.IOException
        Returns combined voltage and current measurements for each channel.
        Returns:
        Voltages and currents
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setRanges

        default void setRanges​(int channel,
                               double voltageRange,
                               double currentRange)
                        throws DeviceException,
                               java.io.IOException
        Sets both the voltage and current ranges to use on the specified channel.
        Parameters:
        channel - Channel number
        voltageRange - Voltage range, in Volts
        currentRange - Current range, in Amps
        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 both the voltage and current ranges to use on all channels.
        Specified by:
        setRanges in interface IVMeter
        Specified by:
        setRanges in interface SMU
        Parameters:
        voltageRange - Voltage range, in Volts
        currentRange - Current range, in Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • useAutoRanges

        default void useAutoRanges​(int channel)
                            throws DeviceException,
                                   java.io.IOException
        Tells the SMU to use auto-ranging for both voltage and current on the specified channel.
        Parameters:
        channel - Channel number
        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 voltage and current on all channels.
        Specified by:
        useAutoRanges in interface IVMeter
        Specified by:
        useAutoRanges in interface SMU
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • setLimits

        default void setLimits​(int channel,
                               double voltageLimit,
                               double currentLimit)
                        throws DeviceException,
                               java.io.IOException
        Sets the limits for both voltage and current (when not being sourced) on the specified channel.
        Parameters:
        channel - Channel number
        voltageLimit - Voltage limit, in Volts
        currentLimit - Current limit, in Amps
        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 for both voltage and current (when not being sourced) on all channels.
        Specified by:
        setLimits in interface SMU
        Parameters:
        voltageLimit - Voltage limit, in Volts
        currentLimit - Current limit, in Amps
        Throws:
        DeviceException - Upon incompatibility with device
        java.io.IOException - Upon communications error
      • getChannel

        default SMU getChannel​(int channel)
        Returns a virtual SMU object to control the specified channel of the MCSMU
        Parameters:
        channel - Channel number
        Returns:
        Virtual SMU
        Throws:
        DeviceException - If channel does not exist
      • getChannels

        default java.util.List<SMU> getChannels()
      • getChannelClass

        default java.lang.Class<SMU> getChannelClass()