Package jisa.devices.smu
Class KeithleySCPI
- java.lang.Object
-
- jisa.visa.VISADevice
-
- jisa.devices.smu.KeithleySCPI
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
KeithleySCPI.Source
-
Nested classes/interfaces inherited from interface jisa.devices.interfaces.Instrument
Instrument.AutoQuantity<S>, Instrument.OptionalQuantity<S>, Instrument.Parameter<S>, Instrument.Setter<S>, Instrument.TableQuantity
-
Nested classes/interfaces inherited from interface jisa.devices.interfaces.SMU
SMU.OffMode
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
C_MEASURE_CURRENT
protected static java.lang.String
C_MEASURE_RESISTANCE
protected static java.lang.String
C_MEASURE_VOLTAGE
protected static java.lang.String
C_QUERY_AVG_COUNT
protected static java.lang.String
C_QUERY_AVG_MODE
protected static java.lang.String
C_QUERY_AVG_STATE
protected static java.lang.String
C_QUERY_LFR
protected static java.lang.String
C_QUERY_LIMIT
protected static java.lang.String
C_QUERY_MEAS_AUTO_RANGE
protected static java.lang.String
C_QUERY_MEAS_RANGE
protected static java.lang.String
C_QUERY_MEAS_RANGE_MAX
protected static java.lang.String
C_QUERY_MEAS_RANGE_MIN
protected static java.lang.String
C_QUERY_NPLC
protected static java.lang.String
C_QUERY_OFF_STATE
protected static java.lang.String
C_QUERY_OUTPUT_STATE
protected static java.lang.String
C_QUERY_PROBE_MODE
protected static java.lang.String
C_QUERY_SOURCE_FUNCTION
protected static java.lang.String
C_QUERY_SOURCE_VALUE_MAX
protected static java.lang.String
C_QUERY_SOURCE_VALUE_MIN
protected static java.lang.String
C_QUERY_SRC_AUTO_RANGE
protected static java.lang.String
C_QUERY_SRC_RANGE
protected static java.lang.String
C_QUERY_SRC_RANGE_MAX
protected static java.lang.String
C_QUERY_SRC_RANGE_MIN
protected static java.lang.String
C_QUERY_TERMINALS
protected static java.lang.String
C_SET_AVG_COUNT
protected static java.lang.String
C_SET_AVG_MODE
protected static java.lang.String
C_SET_AVG_STATE
protected static java.lang.String
C_SET_LIMIT
protected static java.lang.String
C_SET_MEAS_AUTO_RANGE
protected static java.lang.String
C_SET_MEAS_RANGE
protected static java.lang.String
C_SET_NPLC
protected static java.lang.String
C_SET_OFF_STATE
protected static java.lang.String
C_SET_OUTPUT_STATE
protected static java.lang.String
C_SET_PROBE_MODE
protected static java.lang.String
C_SET_SOURCE_FUNCTION
protected static java.lang.String
C_SET_SOURCE_VALUE
protected static java.lang.String
C_SET_SRC_AUTO_RANGE
protected static java.lang.String
C_SET_SRC_RANGE
protected static java.lang.String
C_SET_TERMINALS
protected double
iLimit
protected double
LINE_FREQUENCY
protected static java.lang.String
OFF_GUARD
protected static java.lang.String
OFF_HIGH_Z
protected static java.lang.String
OFF_NORMAL
protected static java.lang.String
OFF_ZERO
protected static java.lang.String
OUTPUT_OFF
protected static java.lang.String
OUTPUT_ON
protected static java.lang.String
TERMS_FRONT
protected static java.lang.String
TERMS_REAR
protected double
vLimit
-
Fields inherited from class jisa.visa.VISADevice
C_IDN, CR_TERMINATOR, CRLF_TERMINATOR, DEFAULT_EOI, DEFAULT_EOS, DEFAULT_TIMEOUT, EOS_RETURN, LF_TERMINATOR
-
-
Constructor Summary
Constructors Constructor Description KeithleySCPI(Address address)
KeithleySCPI(Address address, java.lang.Class<? extends Driver> prefDriver)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
disableAveraging()
int
getAverageCount()
Returns the number of measurements used for averaging by the SMU.AMode
getAverageMode()
Returns the averaging mode of the SMU.double
getCurrent()
Returns the current either being injected or measured by the SMU.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.double
getIntegrationTime()
Returns the integration time used for each individual measurement.KeithleySCPI.Source
getMeasureMode()
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)KeithleySCPI.Source
getSourceMode()
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.double
getVoltage()
Returns the voltage either being applied or measured by the SMU.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
isOn()
Checks whether the output of the SMU is currently enabledvoid
mario()
protected double
measureCurrent()
protected double
measureVoltage()
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.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 limit)
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 fourProbe)
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.void
setMeasureRange(double value)
Sets the range of allowed values for the quantity being measured by the SMU.void
setOutputLimit(double limit)
Sets the limit for the measured quantity (ie compliance value).void
setOutputState(boolean on)
void
setSource(KeithleySCPI.Source mode)
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 value)
Sets the value for whichever parameter is currently being sourcedvoid
setSourceValue(KeithleySCPI.Source type, double value)
void
setTerminals(Terminals terminals)
Sets which set of terminals should be used on the SMU.void
setVoltage(double voltage)
Sets the voltage value to be applied by the SMU (switching to voltage source mode if not already)void
setVoltageLimit(double limit)
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.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.void
youDidIt()
-
Methods inherited from class jisa.visa.VISADevice
addAutoRemove, checkLimit, checkLimit, clearBuffers, close, getAddress, getConnection, getIDN, getName, manuallyClearReadBuffer, query, queryDouble, queryInt, read, read, readBytes, readDouble, readInt, setIOLimit, setReadBufferSize, setReadTerminator, setReadTerminator, setRetryCount, setTimeout, setWriteTerminator, write, writeBytes
-
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
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.SMU
asAmmeter, asVoltmeter, getConfigurationParameters, getCurrent, getIVPoint, getTerminalType, getVoltage, isLineFilterEnabled, setAveraging, setLimits, setLineFilterEnabled, setOffMode, setOn, setRanges, useAutoRanges
-
Methods inherited from interface jisa.devices.interfaces.VMeter
waitForStableVoltage
-
-
-
-
Field Detail
-
C_MEASURE_VOLTAGE
protected static final java.lang.String C_MEASURE_VOLTAGE
- See Also:
- Constant Field Values
-
C_MEASURE_CURRENT
protected static final java.lang.String C_MEASURE_CURRENT
- See Also:
- Constant Field Values
-
C_MEASURE_RESISTANCE
protected static final java.lang.String C_MEASURE_RESISTANCE
- See Also:
- Constant Field Values
-
C_SET_SOURCE_FUNCTION
protected static final java.lang.String C_SET_SOURCE_FUNCTION
- See Also:
- Constant Field Values
-
C_SET_OUTPUT_STATE
protected static final java.lang.String C_SET_OUTPUT_STATE
- See Also:
- Constant Field Values
-
C_QUERY_SOURCE_FUNCTION
protected static final java.lang.String C_QUERY_SOURCE_FUNCTION
- See Also:
- Constant Field Values
-
C_QUERY_OUTPUT_STATE
protected static final java.lang.String C_QUERY_OUTPUT_STATE
- See Also:
- Constant Field Values
-
C_SET_SOURCE_VALUE
protected static final java.lang.String C_SET_SOURCE_VALUE
- See Also:
- Constant Field Values
-
C_QUERY_SOURCE_VALUE_MIN
protected static final java.lang.String C_QUERY_SOURCE_VALUE_MIN
- See Also:
- Constant Field Values
-
C_QUERY_SOURCE_VALUE_MAX
protected static final java.lang.String C_QUERY_SOURCE_VALUE_MAX
- See Also:
- Constant Field Values
-
C_SET_TERMINALS
protected static final java.lang.String C_SET_TERMINALS
- See Also:
- Constant Field Values
-
C_QUERY_TERMINALS
protected static final java.lang.String C_QUERY_TERMINALS
- See Also:
- Constant Field Values
-
C_SET_PROBE_MODE
protected static final java.lang.String C_SET_PROBE_MODE
- See Also:
- Constant Field Values
-
C_QUERY_PROBE_MODE
protected static final java.lang.String C_QUERY_PROBE_MODE
- See Also:
- Constant Field Values
-
C_SET_AVG_COUNT
protected static final java.lang.String C_SET_AVG_COUNT
- See Also:
- Constant Field Values
-
C_QUERY_AVG_COUNT
protected static final java.lang.String C_QUERY_AVG_COUNT
- See Also:
- Constant Field Values
-
C_SET_AVG_MODE
protected static final java.lang.String C_SET_AVG_MODE
- See Also:
- Constant Field Values
-
C_QUERY_AVG_MODE
protected static final java.lang.String C_QUERY_AVG_MODE
- See Also:
- Constant Field Values
-
C_SET_AVG_STATE
protected static final java.lang.String C_SET_AVG_STATE
- See Also:
- Constant Field Values
-
C_QUERY_AVG_STATE
protected static final java.lang.String C_QUERY_AVG_STATE
- See Also:
- Constant Field Values
-
C_SET_SRC_RANGE
protected static final java.lang.String C_SET_SRC_RANGE
- See Also:
- Constant Field Values
-
C_QUERY_SRC_RANGE
protected static final java.lang.String C_QUERY_SRC_RANGE
- See Also:
- Constant Field Values
-
C_QUERY_SRC_RANGE_MIN
protected static final java.lang.String C_QUERY_SRC_RANGE_MIN
- See Also:
- Constant Field Values
-
C_QUERY_SRC_RANGE_MAX
protected static final java.lang.String C_QUERY_SRC_RANGE_MAX
- See Also:
- Constant Field Values
-
C_SET_SRC_AUTO_RANGE
protected static final java.lang.String C_SET_SRC_AUTO_RANGE
- See Also:
- Constant Field Values
-
C_QUERY_SRC_AUTO_RANGE
protected static final java.lang.String C_QUERY_SRC_AUTO_RANGE
- See Also:
- Constant Field Values
-
C_SET_MEAS_RANGE
protected static final java.lang.String C_SET_MEAS_RANGE
- See Also:
- Constant Field Values
-
C_QUERY_MEAS_RANGE
protected static final java.lang.String C_QUERY_MEAS_RANGE
- See Also:
- Constant Field Values
-
C_QUERY_MEAS_RANGE_MIN
protected static final java.lang.String C_QUERY_MEAS_RANGE_MIN
- See Also:
- Constant Field Values
-
C_QUERY_MEAS_RANGE_MAX
protected static final java.lang.String C_QUERY_MEAS_RANGE_MAX
- See Also:
- Constant Field Values
-
C_SET_MEAS_AUTO_RANGE
protected static final java.lang.String C_SET_MEAS_AUTO_RANGE
- See Also:
- Constant Field Values
-
C_QUERY_MEAS_AUTO_RANGE
protected static final java.lang.String C_QUERY_MEAS_AUTO_RANGE
- See Also:
- Constant Field Values
-
C_SET_NPLC
protected static final java.lang.String C_SET_NPLC
- See Also:
- Constant Field Values
-
C_QUERY_NPLC
protected static final java.lang.String C_QUERY_NPLC
- See Also:
- Constant Field Values
-
C_SET_OFF_STATE
protected static final java.lang.String C_SET_OFF_STATE
- See Also:
- Constant Field Values
-
C_QUERY_OFF_STATE
protected static final java.lang.String C_QUERY_OFF_STATE
- See Also:
- Constant Field Values
-
C_SET_LIMIT
protected static final java.lang.String C_SET_LIMIT
- See Also:
- Constant Field Values
-
C_QUERY_LIMIT
protected static final java.lang.String C_QUERY_LIMIT
- See Also:
- Constant Field Values
-
C_QUERY_LFR
protected static final java.lang.String C_QUERY_LFR
- See Also:
- Constant Field Values
-
OFF_NORMAL
protected static final java.lang.String OFF_NORMAL
- See Also:
- Constant Field Values
-
OFF_ZERO
protected static final java.lang.String OFF_ZERO
- See Also:
- Constant Field Values
-
OFF_HIGH_Z
protected static final java.lang.String OFF_HIGH_Z
- See Also:
- Constant Field Values
-
OFF_GUARD
protected static final java.lang.String OFF_GUARD
- See Also:
- Constant Field Values
-
OUTPUT_ON
protected static final java.lang.String OUTPUT_ON
- See Also:
- Constant Field Values
-
OUTPUT_OFF
protected static final java.lang.String OUTPUT_OFF
- See Also:
- Constant Field Values
-
TERMS_FRONT
protected static final java.lang.String TERMS_FRONT
- See Also:
- Constant Field Values
-
TERMS_REAR
protected static final java.lang.String TERMS_REAR
- See Also:
- Constant Field Values
-
LINE_FREQUENCY
protected final double LINE_FREQUENCY
-
vLimit
protected double vLimit
-
iLimit
protected double iLimit
-
-
Constructor Detail
-
KeithleySCPI
public KeithleySCPI(Address address, java.lang.Class<? extends Driver> prefDriver) throws java.io.IOException, DeviceException
- Throws:
java.io.IOException
DeviceException
-
KeithleySCPI
public KeithleySCPI(Address address) throws java.io.IOException, DeviceException
- Throws:
java.io.IOException
DeviceException
-
-
Method Detail
-
setFourProbeEnabled
public void setFourProbeEnabled(boolean fourProbe) throws java.io.IOException
Description copied from interface:SMU
Sets whether the SMU should apply source using FORCE probes and measure using separate SENSE probes or whether is should do both with the FORCE probes.- Specified by:
setFourProbeEnabled
in interfaceSMU
- Parameters:
fourProbe
- Should it use all four probes?- Throws:
java.io.IOException
- Upon communications error
-
isFourProbeEnabled
public boolean isFourProbeEnabled() throws java.io.IOException
Description copied from interface:SMU
Returns whether the device is currently configured to use all four probes.- Specified by:
isFourProbeEnabled
in interfaceSMU
- Returns:
- Are all probes to be used?
- Throws:
java.io.IOException
- Upon communications error
-
getAverageMode
public AMode getAverageMode()
Description copied from interface:SMU
Returns the averaging mode of the SMU.- Specified by:
getAverageMode
in interfaceIMeter
- Specified by:
getAverageMode
in interfaceSMU
- Specified by:
getAverageMode
in interfaceVMeter
- Returns:
- Mode being used
-
setAverageMode
public void setAverageMode(AMode mode) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Sets the averaging mode of the SMU.- Specified by:
setAverageMode
in interfaceIMeter
- Specified by:
setAverageMode
in interfaceSMU
- Specified by:
setAverageMode
in interfaceVMeter
- Parameters:
mode
- Mode to use- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
getAverageCount
public int getAverageCount()
Description copied from interface:SMU
Returns the number of measurements used for averaging by the SMU.- Specified by:
getAverageCount
in interfaceIMeter
- Specified by:
getAverageCount
in interfaceSMU
- Specified by:
getAverageCount
in interfaceVMeter
- Returns:
- Number of measurements
-
setAverageCount
public void setAverageCount(int count) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Sets how many measurements the SMU should average over.- Specified by:
setAverageCount
in interfaceIMeter
- Specified by:
setAverageCount
in interfaceSMU
- Specified by:
setAverageCount
in interfaceVMeter
- Parameters:
count
- Number of measurements- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
getSourceRange
public double getSourceRange() throws java.io.IOException
Description copied from interface:SMU
Returns the range of allowed values for the quantity being sourced by the SMU. A value of n indicates a range of -n to +n.- Specified by:
getSourceRange
in interfaceSMU
- Returns:
- Range value, in Volts or Amps
- Throws:
java.io.IOException
- Upon communications error
-
setSourceRange
public void setSourceRange(double value) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Sets the range of allowed values for the quantity being sourced by the SMU. A value of n indicates a range of -n to +n.- Specified by:
setSourceRange
in interfaceSMU
- Parameters:
value
- Range value, in Volts or Amps- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
useAutoSourceRange
public void useAutoSourceRange() throws java.io.IOException
Description copied from interface:SMU
Sets the SMU to automatically determine the source range to use.- Specified by:
useAutoSourceRange
in interfaceSMU
- Throws:
java.io.IOException
- Upon communications error
-
isAutoRangingSource
public boolean isAutoRangingSource() throws java.io.IOException
Description copied from interface:SMU
Returns whether the SMU is set to automatically determine the source range to use.- Specified by:
isAutoRangingSource
in interfaceSMU
- Returns:
- Automatic?
- Throws:
java.io.IOException
- Upon communications error
-
getMeasureRange
public double getMeasureRange() throws java.io.IOException
Description copied from interface:SMU
Returns the range of allowed values for the quantity being measured by the SMU.- Specified by:
getMeasureRange
in interfaceSMU
- Returns:
- Range value, in Volts or Amps
- Throws:
java.io.IOException
- Upon communications error
-
setMeasureRange
public void setMeasureRange(double value) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Sets the range of allowed values for the quantity being measured by the SMU.- Specified by:
setMeasureRange
in interfaceSMU
- Parameters:
value
- Range value, in Volts or Amps- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
useAutoMeasureRange
public void useAutoMeasureRange() throws java.io.IOException
Description copied from interface:SMU
Tells the SMU to automatically determine the range to use for the measured quantity.- Specified by:
useAutoMeasureRange
in interfaceSMU
- Throws:
java.io.IOException
- Upon communications error
-
isAutoRangingMeasure
public boolean isAutoRangingMeasure() throws java.io.IOException
Description copied from interface:SMU
Returns whether the SMU is currently determining its measure range automatically.- Specified by:
isAutoRangingMeasure
in interfaceSMU
- Returns:
- Is it automatic?
- Throws:
java.io.IOException
- Upon communications error
-
getVoltageRange
public double getVoltageRange() throws java.io.IOException
Description copied from interface:SMU
Returns the range of allowed values for voltages being sourced or measured by the SMU. A value of n indicates a range of -n to +n.- Specified by:
getVoltageRange
in interfaceSMU
- Specified by:
getVoltageRange
in interfaceVMeter
- Returns:
- Range value, in Volts
- Throws:
java.io.IOException
- Upon communications error
-
setVoltageRange
public void setVoltageRange(double value) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Sets the range of allowed values for voltages being sourced or measured by the SMU. A value of n indicates a range of -n to +n.- Specified by:
setVoltageRange
in interfaceSMU
- Specified by:
setVoltageRange
in interfaceVMeter
- Parameters:
value
- Range value, in Volts- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
useAutoVoltageRange
public void useAutoVoltageRange() throws java.io.IOException
Description copied from interface:SMU
Tells the SMU to automatically determine the range it uses for voltages.- Specified by:
useAutoVoltageRange
in interfaceSMU
- Specified by:
useAutoVoltageRange
in interfaceVMeter
- Throws:
java.io.IOException
- Upon communications error
-
isAutoRangingVoltage
public boolean isAutoRangingVoltage() throws java.io.IOException
Description copied from interface:SMU
Returns whether the SMU is automatically determining the range to use for voltages.- Specified by:
isAutoRangingVoltage
in interfaceSMU
- Specified by:
isAutoRangingVoltage
in interfaceVMeter
- Returns:
- Is it automatic?
- Throws:
java.io.IOException
- Upon communications error
-
getCurrentRange
public double getCurrentRange() throws java.io.IOException
Description copied from interface:SMU
Returns the range of allowed values for currents being sourced or measured by the SMU.- Specified by:
getCurrentRange
in interfaceIMeter
- Specified by:
getCurrentRange
in interfaceSMU
- Returns:
- Range value, inAmps
- Throws:
java.io.IOException
- Upon communications error
-
setCurrentRange
public void setCurrentRange(double value) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Sets the range of allowed values for currents being sourced or measured by the SMU.- Specified by:
setCurrentRange
in interfaceIMeter
- Specified by:
setCurrentRange
in interfaceSMU
- Parameters:
value
- Range value, in Amps- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
useAutoCurrentRange
public void useAutoCurrentRange() throws java.io.IOException
Description copied from interface:SMU
Tells the SMU to automatically determine the range to use for current values.- Specified by:
useAutoCurrentRange
in interfaceIMeter
- Specified by:
useAutoCurrentRange
in interfaceSMU
- Throws:
java.io.IOException
- Upon communications error
-
isAutoRangingCurrent
public boolean isAutoRangingCurrent() throws java.io.IOException
Description copied from interface:SMU
Returns whether the SMU is currently determining its current range automatically.- Specified by:
isAutoRangingCurrent
in interfaceIMeter
- Specified by:
isAutoRangingCurrent
in interfaceSMU
- Returns:
- Is it automatic?
- Throws:
java.io.IOException
- Upon communications error
-
getVoltageLimit
public double getVoltageLimit() throws java.io.IOException
Description copied from interface:SMU
Returns the limit on voltages output when sourcing current (compliance value).- Specified by:
getVoltageLimit
in interfaceSMU
- Returns:
- The limit, in Volts
- Throws:
java.io.IOException
- Upon communications error
-
setVoltageLimit
public void setVoltageLimit(double limit) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Sets the limit for voltages output when sourcing current (compliance value).- Specified by:
setVoltageLimit
in interfaceSMU
- Parameters:
limit
- The limit, in Volts- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
getCurrentLimit
public double getCurrentLimit() throws java.io.IOException
Description copied from interface:SMU
Returns the limit for currents output when sourcing voltage (compliance value).- Specified by:
getCurrentLimit
in interfaceSMU
- Returns:
- The limit, in Amps
- Throws:
java.io.IOException
- Upon communications error
-
setCurrentLimit
public void setCurrentLimit(double limit) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Sets the limit for currents output when sourcing voltage (compliance value).- Specified by:
setCurrentLimit
in interfaceSMU
- Parameters:
limit
- The limit, in Amps- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
getOutputLimit
public double getOutputLimit() throws java.io.IOException
Description copied from interface:SMU
Returns the limit for the measured quantity (compliance value).- Specified by:
getOutputLimit
in interfaceSMU
- Returns:
- The limit, in Volts or Amps
- Throws:
java.io.IOException
- Upon communications error
-
setOutputLimit
public void setOutputLimit(double limit) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Sets the limit for the measured quantity (ie compliance value).- Specified by:
setOutputLimit
in interfaceSMU
- Parameters:
limit
- The limit to use, in Volts or Amps- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
getIntegrationTime
public double getIntegrationTime() throws java.io.IOException
Description copied from interface:SMU
Returns the integration time used for each individual measurement.- Specified by:
getIntegrationTime
in interfaceIMeter
- Specified by:
getIntegrationTime
in interfaceSMU
- Specified by:
getIntegrationTime
in interfaceVMeter
- Returns:
- Integration time, in seconds
- Throws:
java.io.IOException
- Upon communications error
-
setIntegrationTime
public void setIntegrationTime(double time) throws java.io.IOException
Description copied from interface:SMU
Sets the integration time for each individual measurement, or closest over-estimate possible.- Specified by:
setIntegrationTime
in interfaceIMeter
- Specified by:
setIntegrationTime
in interfaceSMU
- Specified by:
setIntegrationTime
in interfaceVMeter
- Parameters:
time
- Integration time, in seconds- Throws:
java.io.IOException
- Upon communications error
-
measureVoltage
protected double measureVoltage() throws java.io.IOException, DeviceException
- Throws:
java.io.IOException
DeviceException
-
measureCurrent
protected double measureCurrent() throws java.io.IOException, DeviceException
- Throws:
java.io.IOException
DeviceException
-
disableAveraging
protected void disableAveraging() throws java.io.IOException
- Throws:
java.io.IOException
-
getVoltage
public double getVoltage() throws DeviceException, java.io.IOException
Description copied from interface:SMU
Returns the voltage either being applied or measured by the SMU.- Specified by:
getVoltage
in interfaceSMU
- Specified by:
getVoltage
in interfaceVMeter
- Specified by:
getVoltage
in interfaceVSource
- Returns:
- Voltage value
- Throws:
DeviceException
- Upon incompatibility with devicejava.io.IOException
- Upon communications error
-
setVoltage
public void setVoltage(double voltage) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Sets the voltage value to be applied by the SMU (switching to voltage source mode if not already)- Specified by:
setVoltage
in interfaceSMU
- Specified by:
setVoltage
in interfaceVSource
- Parameters:
voltage
- Value to set- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
pulseVoltage
public double pulseVoltage(double pulseVoltage, double offTime, double measureDelay) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Pulses the voltage output of the SMU, returning the measured current value after a set amount of time before returning voltage to base. By default controlled and timed by computer but should be overridden in SMUs that support internal timing mechanisms.1. Turn off voltage output 2. Wait for offTime seconds 3. V set to puleVoltage 4. Wait for measureDelay seconds 5. I measured 6. V set to baseVoltage 7. Turn off voltage output 8. Return previously measured current value
- Specified by:
pulseVoltage
in interfaceSMU
- 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:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
getCurrent
public double getCurrent() throws java.io.IOException, DeviceException
Description copied from interface:SMU
Returns the current either being injected or measured by the SMU.- Specified by:
getCurrent
in interfaceIMeter
- Specified by:
getCurrent
in interfaceISource
- Specified by:
getCurrent
in interfaceSMU
- Returns:
- Current value
- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
setCurrent
public void setCurrent(double current) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Sets the current value to be applied by the SMU (switching to current source mode if not already)- Specified by:
setCurrent
in interfaceISource
- Specified by:
setCurrent
in interfaceSMU
- Parameters:
current
- Value to set- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
turnOn
public void turnOn() throws java.io.IOException
Description copied from interface:SMU
Turns the output of the SMU on- Specified by:
turnOn
in interfaceIMeter
- Specified by:
turnOn
in interfaceISource
- Specified by:
turnOn
in interfaceSMU
- Specified by:
turnOn
in interfaceSwitch
- Specified by:
turnOn
in interfaceVMeter
- Specified by:
turnOn
in interfaceVSource
- Throws:
java.io.IOException
- Upon communications error
-
turnOff
public void turnOff() throws java.io.IOException
Description copied from interface:SMU
Turns the output of the SMU off- Specified by:
turnOff
in interfaceIMeter
- Specified by:
turnOff
in interfaceISource
- Specified by:
turnOff
in interfaceSMU
- Specified by:
turnOff
in interfaceSwitch
- Specified by:
turnOff
in interfaceVMeter
- Specified by:
turnOff
in interfaceVSource
- Throws:
java.io.IOException
- Upon communications error
-
setOutputState
public void setOutputState(boolean on) throws java.io.IOException
- Throws:
java.io.IOException
-
getSource
public Source getSource() throws java.io.IOException
Description copied from interface:SMU
Returns the current source mode of the SMU (VOLTAGE OR CURRENT)
-
setSource
public void setSource(KeithleySCPI.Source mode) throws java.io.IOException, DeviceException
- Throws:
java.io.IOException
DeviceException
-
setSource
public void setSource(Source source) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Sets the source mode of the SMU (VOLTAGE or CURRENT)- Specified by:
setSource
in interfaceSMU
- Parameters:
source
- Source mode to set- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
getSourceMode
public KeithleySCPI.Source getSourceMode() throws java.io.IOException
- Throws:
java.io.IOException
-
getMeasureMode
public KeithleySCPI.Source getMeasureMode() throws java.io.IOException
- Throws:
java.io.IOException
-
isOn
public boolean isOn() throws java.io.IOException
Description copied from interface:SMU
Checks whether the output of the SMU is currently enabled- Specified by:
isOn
in interfaceIMeter
- Specified by:
isOn
in interfaceISource
- Specified by:
isOn
in interfaceSMU
- Specified by:
isOn
in interfaceSwitch
- Specified by:
isOn
in interfaceVMeter
- Specified by:
isOn
in interfaceVSource
- Returns:
- Is the output on?
- Throws:
java.io.IOException
- Upon communications error
-
setSourceValue
public void setSourceValue(double value) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Sets the value for whichever parameter is currently being sourced- Specified by:
setSourceValue
in interfaceSMU
- Parameters:
value
- The level to set- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
getSourceValue
public double getSourceValue() throws DeviceException, java.io.IOException
Description copied from interface:SMU
Returns the value of whichever parameter is set as source currently- Specified by:
getSourceValue
in interfaceSMU
- Returns:
- Value of source
- Throws:
DeviceException
- Upon incompatibility with devicejava.io.IOException
- Upon communications error
-
getMeasureValue
public double getMeasureValue() throws DeviceException, java.io.IOException
Description copied from interface:SMU
Returns the value of whichever parameter is set as measure currently- Specified by:
getMeasureValue
in interfaceSMU
- Returns:
- Value of measure
- Throws:
DeviceException
- Upon incompatibility with devicejava.io.IOException
- Upon communications error
-
setSourceValue
public void setSourceValue(KeithleySCPI.Source type, double value) throws java.io.IOException, DeviceException
- Throws:
java.io.IOException
DeviceException
-
youDidIt
public void youDidIt() throws java.io.IOException
- Throws:
java.io.IOException
-
mario
public void mario() throws java.io.IOException
- Throws:
java.io.IOException
-
getTerminals
public Terminals getTerminals() throws java.io.IOException
Description copied from interface:SMU
Returns the type of the set of terminals currently being used on the SMU.- Specified by:
getTerminals
in interfaceSMU
- Specified by:
getTerminals
in interfaceVMeter
- Returns:
- The type of terminals being used
- Throws:
java.io.IOException
- Upon communications error
-
setTerminals
public void setTerminals(Terminals terminals) throws java.io.IOException, DeviceException
Description copied from interface:SMU
Sets which set of terminals should be used on the SMU.- Specified by:
setTerminals
in interfaceSMU
- Specified by:
setTerminals
in interfaceVMeter
- Parameters:
terminals
- Which type of terminals to use- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
getOffMode
public SMU.OffMode getOffMode() throws java.io.IOException, DeviceException
Description copied from interface:SMU
Returns the mode used by the SMU channel when turned off.- Specified by:
getOffMode
in interfaceSMU
- Returns:
- Mode being used
- Throws:
java.io.IOException
- Upon communications errorDeviceException
- Upon incompatibility with device
-
-