MCSMU - OE-FET/JISA GitHub Wiki
Reference: Multi-Channel SMU (MCSMU)
public abstract class MCSMU extends SMU
Abstract class to define the standard functionality of source measure units with multiple channels.
This page was generated from the JavaDoc for the MCSMU
class.
All Methods
getVoltage
public abstract double getVoltage(int channel) throws DeviceException, IOException
Returns the voltage of the specified channel
- Parameters:
channel
— Channel number - Returns: Voltage, in Volts
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
public double getVoltage() throws DeviceException, IOException
Returns the voltage of the first channel
- Returns: Voltage, in Volts
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
getCurrent
public abstract double getCurrent(int channel) throws DeviceException, IOException
Returns the current of the specified channel
- Parameters:
channel
— Channel number - Returns: Current, in Amps
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
public double getCurrent() throws DeviceException, IOException
Returns the current of the first channel
- Returns: Current, in Amps
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
setVoltage
public abstract void setVoltage(int channel, double voltage) throws DeviceException, IOException
Sets the specified channel to source a the given voltage (when turned on)
- Parameters:
channel
— Channel numbervoltage
— Voltage to source, in Volts
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
public void setVoltage(double voltage) throws DeviceException, IOException
Sets the first channel to source a the given voltage (when turned on)
- Parameters:
voltage
— Voltage to source, in Volts - Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
setCurrent
public abstract void setCurrent(int channel, double current) throws DeviceException, IOException
Sets the specified channel to source a the given current (when turned on)
- Parameters:
channel
— Channel numbercurrent
— Current to source, in Amps
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
public void setCurrent(double current) throws DeviceException, IOException
Sets the first channel to source a the given current (when turned on)
- Parameters:
current
— Current to source, in Amps - Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
turnOn
public abstract void turnOn(int channel) throws DeviceException, IOException
Enables output on the specified channel
- Parameters:
channel
— Channel number - Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
public void turnOn() throws DeviceException, IOException
Enables output on the first channel
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
turnOff
public abstract void turnOff(int channel) throws DeviceException, IOException
Disables output on the specified channel
- Parameters:
channel
— Channel number - Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
public void turnOff() throws DeviceException, IOException
Disables output on the first channel
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
isOn
public abstract boolean isOn(int channel) throws DeviceException, IOException
Returns whether the specified channel currently has its output enabled
- Parameters:
channel
— Channel number - Returns: Is it enabled?
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
public boolean isOn() throws DeviceException, IOException
Returns whether the first channel currently has its output enabled
- Returns: Is it enabled?
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
setSource
public abstract void setSource(int channel, Source source) throws DeviceException, IOException
Sets the source mode of the specified channel
- Parameters:
channel
— Channel numbersource
— VOLTAGE or CURRENT
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
public void setSource(Source source) throws DeviceException, IOException
Sets the source mode of the first channel
- Parameters:
source
— VOLTAGE or CURRENT - Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
getSource
public abstract Source getSource(int channel) throws DeviceException, IOException
Returns the source mode of the specified channel
- Parameters:
channel
— Channel number - Returns: Source mode (VOLTAGE or CURRENT)
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
public Source getSource() throws DeviceException, IOException
Returns the source mode of the first channel
- Returns: Source mode (VOLTAGE or CURRENT)
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
setBias
public abstract void setBias(int channel, double level) throws DeviceException, IOException
Sets the level of whichever quantity is being sourced on the specified channel
- Parameters:
channel
— Channel numberlevel
— Volts or Amps
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
public void setBias(double level) throws DeviceException, IOException
Sets the level of whichever quantity is being sourced on the first channel
- Parameters:
level
— Volts or Amps - Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
getSourceValue
public abstract double getSourceValue(int channel) throws DeviceException, IOException
Returns the value of whichever quantity is being sourced on the specified channel
- Parameters:
channel
— Channel number - Returns: Voltage or Current, in Volts or Amps
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
public double getSourceValue() throws DeviceException, IOException
Returns the value of whichever quantity is being sourced on the first channel
- Returns: Voltage or Current, in Volts or Amps
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
getMeasureValue
public abstract double getMeasureValue(int channel) throws DeviceException, IOException
Returns the value of whichever quantity is being measured on the specified channel
- Parameters:
channel
— Channel number - Returns: Voltage or Current, in Volts or Amps
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
public double getMeasureValue() throws DeviceException, IOException
Returns the value of whichever quantity is being measured on the first channel
- Returns: Voltage or Current, in Volts or Amps
- Exceptions:
DeviceException
— Upon device compatibility errorIOException
— Upon communications error
getNumChannels
public abstract int getNumChannels()
Returns the number of channels this SMU has.
- Returns: Number of channels
getChannel
public SMU getChannel(int channel) throws DeviceException
Returns a virtual SMU object to control the specified channel of the MCSMU
- Parameters:
channel
— Channel number - Returns: Virtual SMU
- Exceptions:
DeviceException
— If channel does not exist
doLinearSweep
public SMU.DataPoint[] doLinearSweep(int channel, 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:
channel
— Channel number to do sweep onsource
— VOLTAGE or CURRENTmin
— Minimum source valuemax
— Maximum source valuenumSteps
— Number of steps in sweepdelay
— Amount of time, in milliseconds, to wait before taking each measurementsymmetric
— 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 deviceIOException
— Upon communications error
public SMU.DataPoint[] doLinearSweep(int channel, 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:
channel
— Channel number to do sweep onsource
— VOLTAGE or CURRENTmin
— Minimum source valuemax
— Maximum source valuenumSteps
— Number of steps in sweepdelay
— Amount of time, in milliseconds, to wait before taking each measurementsymmetric
— 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 deviceIOException
— Upon communications error
doLogarithmicSweep
public SMU.DataPoint[] doLogarithmicSweep(int channel, 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:
channel
— Channel number to do sweep onsource
— VOLTAGE or CURRENTmin
— Minimum source valuemax
— Maximum source valuenumSteps
— Number of steps in sweepdelay
— Amount of time, in milliseconds, to wait before taking each measurementsymmetric
— 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 deviceIOException
— Upon communications error
doSweep
public SMU.DataPoint[] doSweep(int channel, 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:
channel
— Channel number to do sweep onsource
— VOLTAGE or CURRENTvalues
— Array of values to use in the sweepdelay
— Amount of time, in milliseconds, to wait before taking each measurementsymmetric
— 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 deviceIOException
— Upon communications error
createMultiSweep
public Sweep createMultiSweep()
Creates an MCSMU.Sweep object allowing the configuration and execution of a multi-channel sweep
- Returns: Sweep
Enums and Sub-Classes
Structures used by the MCSMU
class.
DataPoint
public class DataPoint
Structure to hold I-V data from a multi-channel sweep
VirtualSMU
public class VirtualSMU extends SMU
Class for controlling an MCSMU channel as if it were a separate SMU
Sweep
public abstract class Sweep
Class for configuring then executing multi-channel sweeps