-
Notifications
You must be signed in to change notification settings - Fork 9
SMU
public abstract class SMU extends VISADevice
Abstract 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, IOException
Returns 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, IOException
Returns 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, IOException
Sets 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, IOException
Sets 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, IOException
Turns the output of the SMU on
-
Exceptions:
-
DeviceException
— Upon incompatibility with device -
IOException
— Upon communications error
-
public abstract void turnOff() throws DeviceException, IOException
Turns the output of the SMU off
-
Exceptions:
-
DeviceException
— Upon incompatibility with device -
IOException
— Upon communications error
-
public abstract boolean isOn() throws DeviceException, IOException
Checks 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, IOException
Sets 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, IOException
Returns 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, IOException
Sets 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, IOException
Returns 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, IOException
Returns 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, IOException
Performs 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, IOException
Performs 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, IOException
Performs 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, IOException
Performs 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, IOException
Performs 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, DeviceException
Performs 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 Source
Enumeration of source modes
-
Values:
-
VOLTAGE
— Voltage source mode -
CURRENT
— Current source mode
-
public class DataPoint
Class 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 ProgressMonitor
Structure 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
- Power Supplies
- Pre-Amplifiers
- Writing New Drivers