-
Notifications
You must be signed in to change notification settings - Fork 11
SMU
public abstract class SMU extends VISADeviceAbstract class to define the standard functionality of source measure units.
This page is created from the JavaDoc of the SMU abstract class, detailing all the standard SMU methods, what they do (or should do if you are implementing an SMU-derived class).
In plain English, this page details all the methods that you can use on any Source Measure Unit object, regardless of make and model.
These are methods that all SMU classes are required to implement.
public abstract double getVoltage() throws DeviceException, IOExceptionReturns the voltage either being applied or measured by the SMU.
- Returns: Voltage value
-
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public abstract double getCurrent() throws DeviceException, IOExceptionReturns the current either being injected or measured by the SMU.
- Returns: Current value
-
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public abstract void setVoltage(double voltage) throws DeviceException, IOExceptionSets the voltage value to be applied by the SMU (switching to voltage source mode if not already)
-
Parameters:
voltage— Value to set -
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public abstract void setCurrent(double current) throws DeviceException, IOExceptionSets the current value to be applied by the SMU (switching to current source mode if not already)
-
Parameters:
current— Value to set -
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public abstract void turnOn() throws DeviceException, IOExceptionTurns the output of the SMU on
-
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public abstract void turnOff() throws DeviceException, IOExceptionTurns the output of the SMU off
-
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public abstract boolean isOn() throws DeviceException, IOExceptionChecks whether the output of the SMU is currently enabled
- Returns: Is the output on?
-
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public abstract void setSource(Source source) throws DeviceException, IOExceptionSets the source mode of the SMU (VOLTAGE or CURRENT)
-
Parameters:
source— Source mode to set -
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public abstract Source getSource() throws DeviceException, IOExceptionReturns the current source mode of the SMU (VOLTAGE OR CURRENT)
- Returns: Source mode
-
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public abstract void setBias(double level) throws DeviceException, IOExceptionSets the value for whichever parameter is currently being sourced
-
Parameters:
level— The level to set -
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public abstract double getSourceValue() throws DeviceException, IOExceptionReturns the value of whichever parameter is set as source currently
- Returns: Value of source
-
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public abstract double getMeasureValue() throws DeviceException, IOExceptionReturns the value of whichever parameter is set as measure currently
- Returns: Value of measure
-
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
These are methods with an implementation given in SMU. All deriving classes will inherit these implementations, giving them this basic functionality for "free". However, developers may wish to override these still if the specific device being developed for has a more efficient means of performing these actions.
public DataPoint[] doLinearSweep(Source source, double min, double max, int numSteps, long delay, boolean symmetric) throws DeviceException, IOExceptionPerforms a linear sweep of either VOLTAGE or CURRENT, returning the V-I data points as an array of DataPoint objects
-
Parameters:
-
source— VOLTAGE or CURRENT -
min— Minimum source value -
max— Maximum source value -
numSteps— Number of steps in sweep -
delay— Amount of time, in milliseconds, to wait before taking each measurement -
symmetric— Should we sweep back to starting point after sweeping forwards?
-
- Returns: Array of DataPoint objects containing I-V data points
-
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public DataPoint[] doLinearSweep(Source source, double min, double max, int numSteps, long delay, boolean symmetric, ProgressMonitor onUpdate) throws DeviceException, IOExceptionPerforms a linear sweep of either VOLTAGE or CURRENT, returning the V-I data points as an array of DataPoint objects whilst allowing you to keep track of the sweep's progress via a ProgressMonitor object.
-
Parameters:
-
source— VOLTAGE or CURRENT -
min— Minimum source value -
max— Maximum source value -
numSteps— Number of steps in sweep -
delay— Amount of time, in milliseconds, to wait before taking each measurement -
symmetric— Should we sweep back to starting point after sweeping forwards? -
onUpdate— Method to run each time a new measurement is completed
-
- Returns: Array of DataPoint objects containing I-V data points
-
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public DataPoint[] doLogarithmicSweep(Source source, double min, double max, int numSteps, long delay, boolean symmetric) throws DeviceException, IOExceptionPerforms a logarithmic sweep of either VOLTAGE or CURRENT, returning V-I data points as an array of DataPoint objects.
-
Parameters:
-
source— VOLTAGE or CURRENT -
min— Minimum source value -
max— Maximum source value -
numSteps— Number of steps in sweep -
delay— Amount of time, in milliseconds, to wait before taking each measurement -
symmetric— Should we sweep back to starting point after sweeping forwards?
-
- Returns: Array of DataPoint objects containing V-I data points
-
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public DataPoint[] doLogarithmicSweep(Source source, double min, double max, int numSteps, long delay, boolean symmetric, ProgressMonitor onUpdate) throws DeviceException, IOExceptionPerforms a logarithmic sweep of either VOLTAGE or CURRENT, returning V-I data points as an array of DataPoint objects whilst allowing you to keep track of the sweep's progress via a ProgressMonitor object.
-
Parameters:
-
source— VOLTAGE or CURRENT -
min— Minimum source value -
max— Maximum source value -
numSteps— Number of steps in sweep -
delay— Amount of time, in milliseconds, to wait before taking each measurement -
symmetric— Should we sweep back to starting point after sweeping forwards? -
onUpdate— Method ot run each time a new measurement is completed
-
- Returns: Array of DataPoint objects containing V-I data points
-
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public DataPoint[] doSweep(Source source, double[] values, long delay, boolean symmetric, ProgressMonitor onUpdate) throws DeviceException, IOExceptionPerforms a logarithmic sweep of either VOLTAGE or CURRENT, returning V-I data points as an array of DataPoint objects whilst allowing you to keep track of the sweep's progress via a ProgressMonitor object.
-
Parameters:
-
source— VOLTAGE or CURRENT -
values— Array of values to use in the sweep -
delay— Amount of time, in milliseconds, to wait before taking each measurement -
symmetric— Should we sweep back to starting point after sweeping forwards? -
onUpdate— Method ot run each time a new measurement is completed
-
- Returns: Array of DataPoint objects containing V-I data points
-
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
public DataPoint[] doSweep(Source source, double[] values, boolean symmetric, long delay) throws IOException, DeviceExceptionPerforms a logarithmic sweep of either VOLTAGE or CURRENT, returning V-I data points as an array of DataPoint objects whilst allowing you to keep track of the sweep's progress via a ProgressMonitor object.
-
Parameters:
-
source— VOLTAGE or CURRENT -
values— Array of values to use in the sweep -
delay— Amount of time, in milliseconds, to wait before taking each measurement -
symmetric— Should we sweep back to starting point after sweeping forwards?
-
- Returns: Array of DataPoint objects containing V-I data points
-
Exceptions:
-
DeviceException— Upon incompatibility with device -
IOException— Upon communications error
-
These are structures pertinent to and used by SMU objects.
public enum SourceEnumeration of source modes
-
Values:
-
VOLTAGE— Voltage source mode -
CURRENT— Current source mode
-
public class DataPointClass to contain voltage-current data points
-
Parameters:
-
voltage— Voltage value in data-point (in Volts) -
current— Current value in data-point (in Amps)
-
public interface ProgressMonitorStructure for defining what to do on each update
- Getting Started
- Object Orientation
- Choosing a Language
- Using JISA in Java
- Using JISA in Python
- Using JISA in Kotlin
- Exceptions
- Functions as Objects
- Instrument Basics
- SMUs
- Thermometers (and old TCs)
- PID and Temperature Controllers
- Lock-Ins
- Cameras
- Power Supplies
- Pre-Amplifiers
- Writing New Drivers