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 classSMU.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 IMeterasAmmeter()Configures the SMU to act as an ammeter, returning an IMeter representation of itself.default VMeterasVoltmeter()Configures the SMU to act as a voltmeter, returning a VMeter representation of itself.intgetAverageCount()Returns the number of measurements used for averaging by the SMU.AModegetAverageMode()Returns the averaging mode of the SMU.default java.util.List<Instrument.Parameter<?>>getConfigurationParameters(java.lang.Class<?> target)doublegetCurrent()Returns the current either being injected or measured by the SMU.default doublegetCurrent(double integrationTime)Takes a current measurement using a specified one-off integration time.doublegetCurrentLimit()Returns the limit for currents output when sourcing voltage (compliance value).doublegetCurrentRange()Returns the range of allowed values for currents being sourced or measured by the SMU.static java.lang.StringgetDescription()doublegetIntegrationTime()Returns the integration time used for each individual measurement.default IVPointgetIVPoint()Returns a combined voltage and current measurement.doublegetMeasureRange()Returns the range of allowed values for the quantity being measured by the SMU.doublegetMeasureValue()Returns the value of whichever parameter is set as measure currentlySMU.OffModegetOffMode()Returns the mode used by the SMU channel when turned off.doublegetOutputLimit()Returns the limit for the measured quantity (compliance value).SourcegetSource()Returns the current source mode of the SMU (VOLTAGE OR CURRENT)doublegetSourceRange()Returns the range of allowed values for the quantity being sourced by the SMU.doublegetSourceValue()Returns the value of whichever parameter is set as source currentlyTerminalsgetTerminals()Returns the type of the set of terminals currently being used on the SMU.TTypegetTerminalType(Terminals terminals)Returns what type of connector is used for the given terminal.doublegetVoltage()Returns the voltage either being applied or measured by the SMU.default doublegetVoltage(double integrationTime)Takes a voltage measurement using a specified one-off integration time.doublegetVoltageLimit()Returns the limit on voltages output when sourcing current (compliance value).doublegetVoltageRange()Returns the range of allowed values for voltages being sourced or measured by the SMU.booleanisAutoRangingCurrent()Returns whether the SMU is currently determining its current range automatically.booleanisAutoRangingMeasure()Returns whether the SMU is currently determining its measure range automatically.booleanisAutoRangingSource()Returns whether the SMU is set to automatically determine the source range to use.booleanisAutoRangingVoltage()Returns whether the SMU is automatically determining the range to use for voltages.booleanisFourProbeEnabled()Returns whether the device is currently configured to use all four probes.booleanisLineFilterEnabled()Returns whether the voltmeter is using any line-frequency filteringbooleanisOn()Checks whether the output of the SMU is currently enableddefault doublepulseVoltage(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.voidsetAverageCount(int count)Sets how many measurements the SMU should average over.voidsetAverageMode(AMode mode)Sets the averaging mode of the SMU.default voidsetAveraging(AMode mode, int count)Sets both the averaging mode and count together.voidsetCurrent(double current)Sets the current value to be applied by the SMU (switching to current source mode if not already)voidsetCurrentLimit(double current)Sets the limit for currents output when sourcing voltage (compliance value).voidsetCurrentRange(double value)Sets the range of allowed values for currents being sourced or measured by the SMU.voidsetFourProbeEnabled(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.voidsetIntegrationTime(double time)Sets the integration time for each individual measurement, or closest over-estimate possible.default voidsetLimits(double voltageLimit, double currentLimit)Sets the limits (compliance values) for both voltage and current.voidsetLineFilterEnabled(boolean enabled)Sets whether the voltmeter should use any line-frequency filtering (if available)voidsetMeasureRange(double value)Sets the range of allowed values for the quantity being measured by the SMU.voidsetOffMode(SMU.OffMode mode)Sets which mode the SMU channel should use when turned off.default voidsetOn(boolean on)voidsetOutputLimit(double value)Sets the limit for the measured quantity (ie compliance value).default voidsetRanges(double voltageRange, double currentRange)Sets the value ranges for both voltage and current.voidsetSource(Source source)Sets the source mode of the SMU (VOLTAGE or CURRENT)voidsetSourceRange(double value)Sets the range of allowed values for the quantity being sourced by the SMU.voidsetSourceValue(double level)Sets the value for whichever parameter is currently being sourcedvoidsetTerminals(Terminals terminals)Sets which set of terminals should be used on the SMU.voidsetVoltage(double voltage)Sets the voltage value to be applied by the SMU (switching to voltage source mode if not already)voidsetVoltageLimit(double voltage)Sets the limit for voltages output when sourcing current (compliance value).voidsetVoltageRange(double value)Sets the range of allowed values for voltages being sourced or measured by the SMU.voidturnOff()Turns the output of the SMU offvoidturnOn()Turns the output of the SMU onvoiduseAutoCurrentRange()Tells the SMU to automatically determine the range to use for current values.voiduseAutoMeasureRange()Tells the SMU to automatically determine the range to use for the measured quantity.default voiduseAutoRanges()Tells the SMU to use auto-ranging for both current and voltage.voiduseAutoSourceRange()Sets the SMU to automatically determine the source range to use.voiduseAutoVoltageRange()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.IOExceptionReturns the voltage either being applied or measured by the SMU.- Specified by:
getVoltagein interfaceVMeter- Specified by:
getVoltagein 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.IOExceptionTakes a voltage measurement using a specified one-off integration time.- Specified by:
getVoltagein 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.IOExceptionSets the voltage value to be applied by the SMU (switching to voltage source mode if not already)- Specified by:
setVoltagein interfaceVSource- Parameters:
voltage- Value to set- Throws:
DeviceException- Upon incompatibility with devicejava.io.IOException- Upon communications error
-
getCurrent
double getCurrent() throws DeviceException, java.io.IOExceptionReturns the current either being injected or measured by the SMU.- Specified by:
getCurrentin interfaceIMeter- Specified by:
getCurrentin 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.IOExceptionTakes a current measurement using a specified one-off integration time.- Specified by:
getCurrentin 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.IOExceptionSets the current value to be applied by the SMU (switching to current source mode if not already)- Specified by:
setCurrentin 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.IOExceptionPulses 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.IOExceptionTurns the output of the SMU on- Specified by:
turnOnin interfaceIMeter- Specified by:
turnOnin interfaceISource- Specified by:
turnOnin interfaceSwitch- Specified by:
turnOnin interfaceVMeter- Specified by:
turnOnin interfaceVSource- Throws:
DeviceException- Upon incompatibility with devicejava.io.IOException- Upon communications error
-
turnOff
void turnOff() throws DeviceException, java.io.IOExceptionTurns the output of the SMU off- Specified by:
turnOffin interfaceIMeter- Specified by:
turnOffin interfaceISource- Specified by:
turnOffin interfaceSwitch- Specified by:
turnOffin interfaceVMeter- Specified by:
turnOffin 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:
setOnin interfaceSwitch- Throws:
java.io.IOExceptionDeviceException
-
isOn
boolean isOn() throws DeviceException, java.io.IOExceptionChecks whether the output of the SMU is currently enabled- Specified by:
isOnin interfaceIMeter- Specified by:
isOnin interfaceISource- Specified by:
isOnin interfaceSwitch- Specified by:
isOnin interfaceVMeter- Specified by:
isOnin 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.IOExceptionSets 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.IOExceptionReturns 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.IOExceptionReturns 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.IOExceptionReturns 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.IOExceptionSets 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:
getAverageModein interfaceIMeter- Specified by:
getAverageModein 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:
setAverageModein interfaceIMeter- Specified by:
setAverageModein interfaceVMeter- Parameters:
mode- Mode to use- Throws:
DeviceException- Upon incompatibility with devicejava.io.IOException- Upon communications error
-
getAverageCount
int getAverageCount() throws DeviceException, java.io.IOExceptionReturns the number of measurements used for averaging by the SMU.- Specified by:
getAverageCountin interfaceIMeter- Specified by:
getAverageCountin 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.IOExceptionSets how many measurements the SMU should average over.- Specified by:
setAverageCountin interfaceIMeter- Specified by:
setAverageCountin interfaceVMeter- Parameters:
count- Number of measurements- Throws:
DeviceException- Upon incompatibility with devicejava.io.IOException- Upon communications error
-
getSourceRange
double getSourceRange() throws DeviceException, java.io.IOExceptionReturns 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.IOExceptionSets 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.IOExceptionSets 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.IOExceptionReturns 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.IOExceptionReturns 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.IOExceptionSets 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.IOExceptionTells 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.IOExceptionReturns 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.IOExceptionReturns 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:
getVoltageRangein 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.IOExceptionSets 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:
setVoltageRangein 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.IOExceptionTells the SMU to automatically determine the range it uses for voltages.- Specified by:
useAutoVoltageRangein interfaceVMeter- Throws:
DeviceException- Upon incompatibility with devicejava.io.IOException- Upon communications error
-
isAutoRangingVoltage
boolean isAutoRangingVoltage() throws DeviceException, java.io.IOExceptionReturns whether the SMU is automatically determining the range to use for voltages.- Specified by:
isAutoRangingVoltagein interfaceVMeter- Returns:
- Is it automatic?
- Throws:
DeviceException- Upon incompatibility with devicejava.io.IOException- Upon communications error
-
getCurrentRange
double getCurrentRange() throws DeviceException, java.io.IOExceptionReturns the range of allowed values for currents being sourced or measured by the SMU.- Specified by:
getCurrentRangein 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.IOExceptionSets the range of allowed values for currents being sourced or measured by the SMU.- Specified by:
setCurrentRangein 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.IOExceptionTells the SMU to automatically determine the range to use for current values.- Specified by:
useAutoCurrentRangein interfaceIMeter- Throws:
DeviceException- Upon incompatibility with devicejava.io.IOException- Upon communications error
-
isAutoRangingCurrent
boolean isAutoRangingCurrent() throws DeviceException, java.io.IOExceptionReturns whether the SMU is currently determining its current range automatically.- Specified by:
isAutoRangingCurrentin interfaceIMeter- Returns:
- Is it automatic?
- Throws:
DeviceException- Upon incompatibility with devicejava.io.IOException- Upon communications error
-
getOutputLimit
double getOutputLimit() throws DeviceException, java.io.IOExceptionReturns 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.IOExceptionSets 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.IOExceptionReturns 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.IOExceptionSets 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.IOExceptionReturns 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.IOExceptionSets 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.IOExceptionReturns the integration time used for each individual measurement.- Specified by:
getIntegrationTimein interfaceIMeter- Specified by:
getIntegrationTimein 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.IOExceptionSets the integration time for each individual measurement, or closest over-estimate possible.- Specified by:
setIntegrationTimein interfaceIMeter- Specified by:
setIntegrationTimein 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:
getTerminalTypein 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:
getTerminalsin 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:
setTerminalsin 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.IOExceptionReturns whether the voltmeter is using any line-frequency filtering- Specified by:
isLineFilterEnabledin interfaceIMeter- Specified by:
isLineFilterEnabledin 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.IOExceptionSets whether the voltmeter should use any line-frequency filtering (if available)- Specified by:
setLineFilterEnabledin interfaceIMeter- Specified by:
setLineFilterEnabledin 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:
getIVPointin 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.IOExceptionSets the value ranges for both voltage and current.- Specified by:
setRangesin 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.IOExceptionTells the SMU to use auto-ranging for both current and voltage.- Specified by:
useAutoRangesin interfaceIVMeter- Throws:
DeviceException- Upon incompatibility with devicejava.io.IOException- Upon communications error
-
setLimits
default void setLimits(double voltageLimit, double currentLimit) throws DeviceException, java.io.IOExceptionSets 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:
getConfigurationParametersin interfaceInstrument- Specified by:
getConfigurationParametersin interfaceVMeter
-
-