Package jisa.devices.interfaces
Interface SMU
-
- All Known Subinterfaces:
MCSMU
- All Known Implementing Classes:
AgilentSPA.ASMU
,DummyMCSMU
,K1234
,K236
,K2400
,K2450
,K2600B
,K6430
,KeithleySCPI
,MCSMU.VirtualSMU
,TestFET
public interface SMU extends IVMeter, IVSource
Interface for defining the standard functionality of Source-Measure Unit (SMU) instruments.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
SMU.OffMode
-
Nested classes/interfaces inherited from interface jisa.devices.interfaces.Instrument
Instrument.AutoQuantity<S>, Instrument.OptionalQuantity<S>, Instrument.Parameter<S>, Instrument.Setter<S>, Instrument.TableQuantity
-
-
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 currentlySMU.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 currentlyTerminals
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 filteringboolean
isOn()
Checks whether the output of the SMU is currently enableddefault 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 sourcedvoid
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 offvoid
turnOn()
Turns the output of the SMU onvoid
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.-
Methods inherited from interface jisa.devices.interfaces.IMeter
waitForStableCurrent
-
Methods inherited from interface jisa.devices.interfaces.Instrument
close, getAddress, getConfigurationParameters, getIDN, getLockObject, getName, setTimeout
-
Methods inherited from interface jisa.devices.interfaces.IVSource
getSetCurrent, getSetVoltage
-
Methods inherited from interface jisa.devices.interfaces.VMeter
waitForStableVoltage
-
-
-
-
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 interfaceVMeter
- Specified by:
getVoltage
in interfaceVSource
- Returns:
- Voltage value
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceVMeter
- Parameters:
integrationTime
- Integration time to use in seconds- Returns:
- Voltage measurement value, in Volts
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceVSource
- Parameters:
voltage
- Value to set- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceIMeter
- Specified by:
getCurrent
in interfaceISource
- Returns:
- Current value
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceIMeter
- Parameters:
integrationTime
- Integration time to use in seconds- Returns:
- Current measurement value, in Amps
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceISource
- Parameters:
current
- Value to set- Throws:
DeviceException
- Upon incompatibility with devicejava.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 pulseoffTime
- Time to wait at base voltage before pulsemeasureDelay
- Time to wait at pulse voltage before current measurement- Returns:
- Current measurement taken during pulse
- Throws:
DeviceException
- Upon incompatibility with devicejava.io.IOException
- Upon communications error
-
turnOn
void turnOn() throws DeviceException, java.io.IOException
Turns the output of the SMU on- Specified by:
turnOn
in interfaceIMeter
- Specified by:
turnOn
in interfaceISource
- Specified by:
turnOn
in interfaceSwitch
- Specified by:
turnOn
in interfaceVMeter
- Specified by:
turnOn
in interfaceVSource
- Throws:
DeviceException
- Upon incompatibility with devicejava.io.IOException
- Upon communications error
-
turnOff
void turnOff() throws DeviceException, java.io.IOException
Turns the output of the SMU off- Specified by:
turnOff
in interfaceIMeter
- Specified by:
turnOff
in interfaceISource
- Specified by:
turnOff
in interfaceSwitch
- Specified by:
turnOff
in interfaceVMeter
- Specified by:
turnOff
in interfaceVSource
- Throws:
DeviceException
- Upon incompatibility with devicejava.io.IOException
- Upon communications error
-
setOn
default void setOn(boolean on) throws java.io.IOException, DeviceException
- Specified by:
setOn
in interfaceSwitch
- Throws:
java.io.IOException
DeviceException
-
isOn
boolean isOn() throws DeviceException, java.io.IOException
Checks whether the output of the SMU is currently enabled- Specified by:
isOn
in interfaceIMeter
- Specified by:
isOn
in interfaceISource
- Specified by:
isOn
in interfaceSwitch
- Specified by:
isOn
in interfaceVMeter
- Specified by:
isOn
in interfaceVSource
- Returns:
- Is the output on?
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 devicejava.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 devicejava.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 devicejava.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 devicejava.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 devicejava.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 devicejava.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 devicejava.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 modecount
- Averaging count- Throws:
DeviceException
- Upon incompatibility with devicejava.io.IOException
- Upon communications error
-
getAverageMode
AMode getAverageMode() throws DeviceException, java.io.IOException
Returns the averaging mode of the SMU.- Specified by:
getAverageMode
in interfaceIMeter
- Specified by:
getAverageMode
in interfaceVMeter
- Returns:
- Mode being used
- Throws:
DeviceException
- Upon incompatibility with devicejava.io.IOException
- Upon communications error
-
setAverageMode
void setAverageMode(AMode mode) throws DeviceException, java.io.IOException
Sets the averaging mode of the SMU.- Specified by:
setAverageMode
in interfaceIMeter
- Specified by:
setAverageMode
in interfaceVMeter
- Parameters:
mode
- Mode to use- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceIMeter
- Specified by:
getAverageCount
in interfaceVMeter
- Returns:
- Number of measurements
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceIMeter
- Specified by:
setAverageCount
in interfaceVMeter
- Parameters:
count
- Number of measurements- Throws:
DeviceException
- Upon incompatibility with devicejava.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 devicejava.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 devicejava.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 devicejava.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 devicejava.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 devicejava.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 devicejava.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 devicejava.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 devicejava.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 interfaceVMeter
- Returns:
- Range value, in Volts
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceVMeter
- Parameters:
value
- Range value, in Volts- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceVMeter
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceVMeter
- Returns:
- Is it automatic?
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceIMeter
- Returns:
- Range value, inAmps
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceIMeter
- Parameters:
value
- Range value, in Amps- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceIMeter
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceIMeter
- Returns:
- Is it automatic?
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 devicejava.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 devicejava.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 devicejava.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 devicejava.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 devicejava.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 devicejava.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 interfaceIMeter
- Specified by:
getIntegrationTime
in interfaceVMeter
- Returns:
- Integration time, in seconds
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceIMeter
- Specified by:
setIntegrationTime
in interfaceVMeter
- Parameters:
time
- Integration time, in seconds- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceVMeter
- Parameters:
terminals
- Which terminal- Returns:
- Terminal type (TRIAX, PHOENIX, BNC or BANANA)
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceVMeter
- Returns:
- The type of terminals being used
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceVMeter
- Parameters:
terminals
- Which type of terminals to use- Throws:
DeviceException
- Upon incompatibility with devicejava.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 devicejava.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 devicejava.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 interfaceIMeter
- Specified by:
isLineFilterEnabled
in interfaceVMeter
- Returns:
- Using line filter?
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceIMeter
- Specified by:
setLineFilterEnabled
in interfaceVMeter
- Parameters:
enabled
- Use line filter?- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceIVMeter
- Returns:
- Voltage and Current
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 devicejava.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 devicejava.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 interfaceIVMeter
- Parameters:
voltageRange
- Range to use for voltagecurrentRange
- Range to use for current- Throws:
DeviceException
- Upon incompatibility with devicejava.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 interfaceIVMeter
- Throws:
DeviceException
- Upon incompatibility with devicejava.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 sourcedcurrentLimit
- Limit for current when not being sourced- Throws:
DeviceException
- Upon incompatibility with devicejava.io.IOException
- Upon communications error
-
getConfigurationParameters
default java.util.List<Instrument.Parameter<?>> getConfigurationParameters(java.lang.Class<?> target)
- Specified by:
getConfigurationParameters
in interfaceInstrument
- Specified by:
getConfigurationParameters
in interfaceVMeter
-
-