Instrument Control Lib
Framework to control Oscilloscopes, SMUs, Function Generators and DC Powersupplies via Ethernet.
KEI2600 Class Reference

This class implements the basic functionality of Keithley 2600 series SMU's. More...

#include <KEI2600.h>

Inheritance diagram for KEI2600:
Inheritance graph
Collaboration diagram for KEI2600:
Collaboration graph

Public Member Functions

 KEI2600 (std::string ipAddress, int timeoutInMs, PIL::Logging *logger, SEND_METHOD mode=DIRECT_SEND)
 Constructor initializes the ip address and timeout. Disables the logger. More...
 
 KEI2600 (std::string ipAddress, int timeoutInMs, SEND_METHOD mode)
 Constructor initializes the ip address and timeout. Disables the logger. More...
 
virtual ~KEI2600 ()=default
 
PIL_ERROR_CODE measure (UNIT unit, SMU_CHANNEL channel, double *value, bool checkErrorBuffer) override
 This function measures a certain unit on a specific channel. This function can be used to measure voltage, current, power or resistance. It calls smuX.meausreUNIT(). More...
 
double measurePy (UNIT unit, SMU_CHANNEL channel, bool checkErrorBuffer)
 Measurement method identical to KEI2600::measure, but in this method, the value is directly returned to support the python wrapper. More...
 
PIL_ERROR_CODE turnOn (SMU_CHANNEL channel, bool checkErrorBuffer) override
 Turns on a specific channel of the KEI2600-SMU. More...
 
PIL_ERROR_CODE turnOff (SMU_CHANNEL channel, bool checkErrorBuffer) override
 Turns off a specific channel of the KEI2600-SMU. More...
 
PIL_ERROR_CODE setLevel (UNIT unit, SMU_CHANNEL channel, double level, bool checkErrorBuffer) override
 Sets the level of a certain channel and of a certain unit. It can set the voltage or current on Channel A or Channel B. More...
 
PIL_ERROR_CODE setLimit (UNIT unit, SMU_CHANNEL channel, double limit, bool checkErrorBuffer) override
 Sets the limit of a certain channel of a certain unit. Allowed are power voltage and current. Passing resistance results in a INVALID_ARGUMENTS error code. More...
 
PIL_ERROR_CODE enableMeasureAutoRange (UNIT unit, SMU_CHANNEL channel, bool checkErrorBuffer)
 Sets the SMU in auto-range mode for a certain unit, e.g. voltage or current. More...
 
PIL_ERROR_CODE disableMeasureAutoRange (UNIT unit, SMU_CHANNEL channel, bool checkErrorBuffer)
 Sets the SMU in fixed range measurement mode for a certain unit, e.g. voltage or current. More...
 
PIL_ERROR_CODE enableSourceAutoRange (UNIT unit, SMU_CHANNEL channel, bool checkErrorBuffer)
 Enables source auto-range mode. The SMU immediately changes range to the range most appropriate for the value being sourced if that range is different than the present SMU range. More...
 
PIL_ERROR_CODE disableSourceAutoRange (UNIT unit, SMU_CHANNEL channel, bool checkErrorBuffer)
 Disables source auto-range mode. More...
 
PIL_ERROR_CODE enableMeasureAnalogFilter (SMU_CHANNEL channel, bool checkErrorBuffer)
 Enables the analog filter mode for a certain channel. This engages an approximately 1 Hz analog filter across the current range elements. The analog filter is only active when using the 1 nA and 100 pA measurement ranges. More...
 
PIL_ERROR_CODE disableMeasureAnalogFilter (SMU_CHANNEL channel, bool checkErrorBuffer)
 Disables the analog filter mode of a certain channel. More...
 
PIL_ERROR_CODE setMeasureRange (UNIT unit, SMU_CHANNEL channel, double range, bool checkErrorBuffer)
 Sets the measure range (positive full-scale value of the measurement range of that SMU). Explicitly setting a measure range disables measure auto-ranging for that function. More...
 
PIL_ERROR_CODE setSourceRange (UNIT unit, SMU_CHANNEL channel, double range, bool checkErrorBuffer)
 Assigning a value to this attribute sets the SMU to a fixed range large enough to source the assigned value. The instrument selects the best range for sourcing a value of rangeValue. More...
 
PIL_ERROR_CODE setSenseMode (SMU_CHANNEL channel, SMU_SENSE senseArg, bool checkErrorBuffer)
 Sets the sense mode of a specific channel. LOCAL, REMOTE or CALA is supported. When selecting LOCAL, source-measure operations are performed using a 2-wire local sense connection. If REMOTE is selected, 4-wire remote sense connections are used. CALA is the calibration sense mode. More...
 
PIL_ERROR_CODE setMeasurePLC (SMU_CHANNEL channel, double value, bool checkErrorBuffer)
 Sets the integration apeture for measurements. More...
 
PIL_ERROR_CODE setMeasureLowRange (UNIT unit, SMU_CHANNEL channel, double value, bool checkErrorBuffer)
 Sets the lowest measurement range that is used when the instrument is autoranging. More...
 
PIL_ERROR_CODE setMeasureAutoZero (SMU_CHANNEL channel, AUTOZERO autoZero, bool checkErrorBuffer)
 Enables or disableds automatic updates to the internal reference measurements (autozero) of the instrument. More...
 
PIL_ERROR_CODE setMeasureCount (SMU_CHANNEL channel, int nrOfMeasurements, bool checkErrorBuffer)
 Sets the number of measurements made when a measurement is requested. More...
 
PIL_ERROR_CODE setSourceFunction (SMU_CHANNEL channel, SRC_FUNC srcFunc, bool checkErrorBuffer)
 Set the source function which can bei either voltage or current. More...
 
PIL_ERROR_CODE setSourceOffMode (SMU_CHANNEL channel, SRC_OFF_MODE srcOffMode, bool checkErrorBuffer)
 Sets the source output-off mode. More...
 
PIL_ERROR_CODE setSourceSettling (SMU_CHANNEL channel, SRC_SETTLING srcSettling, bool checkErrorBuffer)
 Set the source settling mode. (See SRC_SETTLING enum for more information) More...
 
PIL_ERROR_CODE enableSourceSink (SMU_CHANNEL channel, bool checkErrorBuffer)
 Turns on the source sink mode. This reduces the source limit inaccuracy that occurs when operating in quadrants II and IV. More...
 
PIL_ERROR_CODE disableSourceSink (SMU_CHANNEL channel, bool checkErrorBuffer)
 Turns off the source sink mode. More...
 
PIL_ERROR_CODE displayMeasureFunction (SMU_CHANNEL channel, SMU_DISPLAY displayMeasureFunc, bool checkErrorBuffer)
 Specify the type of measurement currently displayed. More...
 
PIL_ERROR_CODE enableBeep (bool checkErrorBuffer=true)
 Enable beeper on the SMU. This command is mandatory to play beeping sounds afterwards. More...
 
PIL_ERROR_CODE disableBeep (bool checkErrorBuffer)
 Disable beeper on the SMU. This command is mandatory to play beeping sounds afterwards. More...
 
PIL_ERROR_CODE beep (float timeInSeconds, int frequency, bool checkErrorBuffer)
 Send a beeping sound with a specific duration and frequency to the SMU. More...
 
std::string getLastError ()
 Return last error in error-queue. More...
 
PIL_ERROR_CODE clearErrorBuffer ()
 Clear the error buffer. More...
 
PIL_ERROR_CODE getErrorBufferStatus ()
 Request amount of elements in error queue. If queue is empty return PIL_NO_ERROR otherwise return PIL_ITEM_IN_ERROR_QUEUE. More...
 
PIL_ERROR_CODE performLinearVoltageSweep (SMU_CHANNEL channel, double startVoltage, double stopVoltage, int increaseRate, double current, bool checkErrorBuffer)
 Perform a linear voltage sweep on the SMU. Increases the voltage at the given rate until the stop voltage is arrived. More...
 
PIL_ERROR_CODE sendScript (const std::string &scriptName, const std::string &script, bool checkErrorBuffer)
 Sends the given script to the SMU. The scripts does not get executed. More...
 
PIL_ERROR_CODE sendVectorScript (const std::string &scriptName, const std::vector< std::string > &script, bool checkErrorBuffer)
 Sends the given script to the SMU. The scripts does not get executed. More...
 
PIL_ERROR_CODE executeScript (const std::string &scriptName, bool checkErrorBuffer)
 Executes the script with the given name on the smu. More...
 
PIL_ERROR_CODE sendAndExecuteScript (const std::string &scriptName, const std::string &script, bool checkErrorBuffer)
 Sends and executes the given script. More...
 
PIL_ERROR_CODE sendAndExecuteVectorScript (const std::string &scriptName, const std::vector< std::string > &script, bool checkErrorBuffer)
 Sends and executes the given script. More...
 
PIL_ERROR_CODE executeBufferedScript (bool checkErrorBuffer)
 Executes the buffered script. More...
 
PIL_ERROR_CODE readBuffer (const std::string &bufferName, std::vector< double > *result, bool checkErrorBuffer)
 Reads the complete buffer with the given name. More...
 
std::vector< double > readBufferPy (const std::string &bufferName, bool checkErrorBuffer)
 Reads the complete buffer with the given name. Instead of returning the received error code, a vector containing all values is returned. This method is used in the python wrapper. More...
 
PIL_ERROR_CODE getBufferSize (const std::string &bufferName, int *value, bool checkErrorBuffer)
 Retrieves the size of the buffer with the given name. More...
 
PIL_ERROR_CODE clearBuffer (const std::string &bufferName, bool checkErrorBuffer)
 Clears the buffer with the given name. More...
 
void clearBufferedScript ()
 
- Public Member Functions inherited from SMU
 SMU (std::string ipAddress, int timeoutInMs, SEND_METHOD mode=DIRECT_SEND)
 
 SMU (std::string ipAddress, int timeoutInMs, PIL::Logging *logger, SEND_METHOD mode=DIRECT_SEND)
 
- Public Member Functions inherited from Device
 Device (std::string ipAddress, int timeoutInMs, SEND_METHOD mode=DIRECT_SEND, bool throwException=true)
 Constructor for the Device without passing a logging object. More...
 
 Device (std::string ipAddress, int timeoutInMs, PIL::Logging *logger, SEND_METHOD mode=DIRECT_SEND, bool throwException=true)
 Constructor of Device generates a socket handle without connecting to it. More...
 
 Device (std::string ipAddress, uint16_t srcPort, uint16_t destPort, int timeoutInMs, PIL::Logging *logger, SEND_METHOD mode=DIRECT_SEND, bool throwException=true)
 Base class containing the base functionality of all devices. And parameters to store the name connection type, etc. More...
 
 ~Device ()
 
PIL_ERROR_CODE Connect ()
 Establish a connection to the device. More...
 
PIL_ERROR_CODE Disconnect ()
 Disconnect from the device. More...
 
bool isOpen () const
 Checks if the connection to the device is established. More...
 
bool isBuffered () const
 Checks if the commands sent to the device get buffered. More...
 
std::string getDeviceIdentifier ()
 Gets the name of the currently connected device. More...
 
PIL_ERROR_CODE Exec (const std::string &command, ExecArgs *args=nullptr, char *result=nullptr, bool br=true, int size=1024)
 execute a (SCPI) command More...
 
PIL_ERROR_CODE Exec (const std::string &command, ExecArgs *args, std::string *result, bool br)
 
PIL_ERROR_CODE ExecCommands (std::string &commands)
 
std::string ReturnErrorMessage ()
 
std::string getBufferedScript ()
 Transforms the current buffered script into a string and returns it. More...
 
void changeSendMode (SEND_METHOD mode)
 Changes the send mode of this device, i.e. whether the commands get buffered or sent directly to the device. More...
 
PIL_ERROR_CODE delay (double delayTime)
 Stops the execution for the specified amount of time in seconds. If buffering is enabled, the delay is included in the buffered script. Otherwise this thread sleeps for the given time. More...
 

Public Attributes

std::string CHANNEL_A_BUFFER = "A_M_BUFFER"
 
std::string CHANNEL_B_BUFFER = "B_M_BUFFER"
 

Additional Inherited Members

- Public Types inherited from SMU
enum  SMU_CHANNEL { CHANNEL_A = 'a' , CHANNEL_B = 'b' }
 Used to select which channel of the SMU should be used to measure or supplied. More...
 
enum  UNIT { VOLTAGE = 0 , CURRENT = 1 , RESISTANCE = 2 , POWER = 3 }
 Unit which should be changed or measured. More...
 
enum  AUTOZERO { OFF , ONCE , AUTO }
 
enum  SRC_FUNC { DC_AMPS , DC_VOLTS }
 
enum  SRC_OFF_MODE { OUTPUT_NORMAL , OUTPUT_ZERO , OUTPUT_HIGH_Z }
 
enum  SRC_SETTLING {
  SMOOTH , FAST_RANGE , FAST_POLARITY , DIRECT_IRANGE ,
  SMOOTH_100NA , FAST_ALL
}
 
enum  SMU_DISPLAY { MEASURE_DC_AMPS , MEASURE_DC_VOLTS , MEASURE_OHMS , MEASURE_WATTS }
 
enum  SMU_SENSE { LOCAL , REMOTE , CALIBRATION }
 
- Public Types inherited from Device
enum  SEND_METHOD { DIRECT_SEND = 0 , BUFFER_ENABLED = 1 }
 
- Protected Member Functions inherited from Device
PIL_ERROR_CODE handleErrorsAndLogging (PIL_ERROR_CODE errorCode, bool throwException, PIL::Level logLevel, const std::string &fileName, int line, std::string formatStr,...)
 Handle logging messages, logs it based on the previously passed logging object. If exceptions are enabled throw an exception otherwise return the error code. More...
 
- Static Protected Member Functions inherited from Device
static bool errorOccured (PIL_ERROR_CODE errorCode)
 Checks if a error occured given the error code. More...
 
static PIL_ERROR_CODE postRequest (const std::string &url, std::string &payload)
 Sends a post request to the given url with the given payload. More...
 
static std::string vectorToStringNL (std::vector< std::string > vector)
 Transforms the given vector into a string. Each vector entry will be a line in the resulting string. More...
 
static std::string replaceAllSubstrings (std::string str, const std::string &from, const std::string &to)
 Replaces all substrings in the string with the given replacement string. More...
 
static std::vector< std::string > splitString (const std::string &toSplit, const std::string &delimiter)
 Splits a string by the given delimiter. More...
 
- Protected Attributes inherited from Device
std::string m_IPAddr
 
PIL_ErrorHandle m_ErrorHandle
 
std::string m_DeviceName {}
 
PIL::Socket * m_SocketHandle
 
PIL::Logging * m_Logger
 
int m_destPort = 5025
 
int m_srcPort = 5025
 
bool m_EnableExceptions
 
SEND_METHOD m_SendMode
 
std::vector< std::string > m_BufferedScript
 

Detailed Description

This class implements the basic functionality of Keithley 2600 series SMU's.

Constructor & Destructor Documentation

◆ KEI2600() [1/2]

KEI2600::KEI2600 ( std::string  ipAddress,
int  timeoutInMS,
PIL::Logging *  logger,
SEND_METHOD  mode = DIRECT_SEND 
)
explicit

Constructor initializes the ip address and timeout. Disables the logger.

Authors
Wuhao Liu, Florian Frank
Parameters
ipIP-address of the KEI2600-SMU.
timeoutInMStimeout in milliseconds of the socket.
loggerLogger-object to generate logging messages during the execution.

◆ KEI2600() [2/2]

KEI2600::KEI2600 ( std::string  ipAddress,
int  timeoutInMS,
SEND_METHOD  mode 
)
explicit

Constructor initializes the ip address and timeout. Disables the logger.

Parameters
ipIP-address of the KEI2600-SMU.
timeoutInMStimeout in milliseconds of the socket.

◆ ~KEI2600()

virtual KEI2600::~KEI2600 ( )
virtualdefault

Member Function Documentation

◆ beep()

PIL_ERROR_CODE KEI2600::beep ( float  timeInSeconds,
int  frequency,
bool  checkErrorBuffer 
)

Send a beeping sound with a specific duration and frequency to the SMU.

Parameters
timeInSecondstime in seconds to play the beeping sound.
frequencyfrequency in HZ of the sound to play.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ clearBuffer()

PIL_ERROR_CODE KEI2600::clearBuffer ( const std::string &  bufferName,
bool  checkErrorBuffer 
)

Clears the buffer with the given name.

Parameters
bufferNameThe name of the buffer.
checkErrorBufferWhether to check the error buffer after executing.
Returns
The received error code.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ clearBufferedScript()

void KEI2600::clearBufferedScript ( )

Resets the buffered script to the default. Also resets the number of buffer entries in the measurement buffers.

Here is the caller graph for this function:

◆ clearErrorBuffer()

PIL_ERROR_CODE KEI2600::clearErrorBuffer ( )

Clear the error buffer.

Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ disableBeep()

PIL_ERROR_CODE KEI2600::disableBeep ( bool  checkErrorBuffer)

Disable beeper on the SMU. This command is mandatory to play beeping sounds afterwards.

Parameters
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.

◆ disableMeasureAnalogFilter()

PIL_ERROR_CODE KEI2600::disableMeasureAnalogFilter ( SMU_CHANNEL  smuChannel,
bool  checkErrorBuffer 
)

Disables the analog filter mode of a certain channel.

Parameters
channelselected channel either channel A or channel B.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.

◆ disableMeasureAutoRange()

PIL_ERROR_CODE KEI2600::disableMeasureAutoRange ( UNIT  unit,
SMU_CHANNEL  channel,
bool  checkErrorBuffer 
)

Sets the SMU in fixed range measurement mode for a certain unit, e.g. voltage or current.

Parameters
unitallowed are current and voltage.
channelselected channel either channel A or channel B.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.

◆ disableSourceAutoRange()

PIL_ERROR_CODE KEI2600::disableSourceAutoRange ( UNIT  unit,
SMU_CHANNEL  channel,
bool  checkErrorBuffer 
)

Disables source auto-range mode.

Parameters
unitallowed are current and voltage.
channelselected channel either channel A or channel B.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.

◆ disableSourceSink()

PIL_ERROR_CODE KEI2600::disableSourceSink ( SMU_CHANNEL  channel,
bool  checkErrorBuffer 
)

Turns off the source sink mode.

Parameters
channelchannel on which this operation should be applied (SMU_CHANNEL_A, SMU_CHANNEL_B)
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.

◆ displayMeasureFunction()

PIL_ERROR_CODE KEI2600::displayMeasureFunction ( SMU::SMU_CHANNEL  channel,
SMU_DISPLAY  measureFunc,
bool  checkErrorBuffer 
)

Specify the type of measurement currently displayed.

Parameters
channelchannel on which this operation should be applied (SMU_CHANNEL_A, SMU_CHANNEL_B)
measureFuncshow amps, volts, ohms or watts.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ enableBeep()

PIL_ERROR_CODE KEI2600::enableBeep ( bool  checkErrorBuffer = true)

Enable beeper on the SMU. This command is mandatory to play beeping sounds afterwards.

Parameters
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.

◆ enableMeasureAnalogFilter()

PIL_ERROR_CODE KEI2600::enableMeasureAnalogFilter ( SMU_CHANNEL  channel,
bool  checkErrorBuffer 
)

Enables the analog filter mode for a certain channel. This engages an approximately 1 Hz analog filter across the current range elements. The analog filter is only active when using the 1 nA and 100 pA measurement ranges.

Parameters
channelselected channel either channel A or channel B.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.

◆ enableMeasureAutoRange()

PIL_ERROR_CODE KEI2600::enableMeasureAutoRange ( UNIT  unit,
SMU_CHANNEL  channel,
bool  checkErrorBuffer 
)

Sets the SMU in auto-range mode for a certain unit, e.g. voltage or current.

Parameters
unitallowed are current and voltage.
channelselected channel either channel A or channel B.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.

◆ enableSourceAutoRange()

PIL_ERROR_CODE KEI2600::enableSourceAutoRange ( UNIT  unit,
SMU_CHANNEL  channel,
bool  checkErrorBuffer 
)

Enables source auto-range mode. The SMU immediately changes range to the range most appropriate for the value being sourced if that range is different than the present SMU range.

Parameters
unitallowed are current and voltage.
channelselected channel either channel A or channel B.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.

◆ enableSourceSink()

PIL_ERROR_CODE KEI2600::enableSourceSink ( SMU_CHANNEL  channel,
bool  checkErrorBuffer 
)

Turns on the source sink mode. This reduces the source limit inaccuracy that occurs when operating in quadrants II and IV.

Parameters
channelchannel on which this operation should be applied (SMU_CHANNEL_A, SMU_CHANNEL_B)
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.

◆ executeBufferedScript()

PIL_ERROR_CODE KEI2600::executeBufferedScript ( bool  checkErrorBuffer)

Executes the buffered script.

Parameters
checkErrorBufferWhether to check the error buffer after executing.
Returns
The received error code.
Here is the call graph for this function:

◆ executeScript()

PIL_ERROR_CODE KEI2600::executeScript ( const std::string &  scriptName,
bool  checkErrorBuffer 
)

Executes the script with the given name on the smu.

Parameters
checkErrorBufferif true error buffer status is requested and evaluated.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getBufferSize()

PIL_ERROR_CODE KEI2600::getBufferSize ( const std::string &  bufferName,
int *  value,
bool  checkErrorBuffer 
)

Retrieves the size of the buffer with the given name.

Returns
The received error code.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getErrorBufferStatus()

PIL_ERROR_CODE KEI2600::getErrorBufferStatus ( )

Request amount of elements in error queue. If queue is empty return PIL_NO_ERROR otherwise return PIL_ITEM_IN_ERROR_QUEUE.

Returns
PIL_NO_ERROR if there is no item in the error queue. Otherwise return PIL_ITEM_IN_ERROR_QUEUE. If the queue could not be requested successfully. Return a specific error code.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getLastError()

std::string KEI2600::getLastError ( )

Return last error in error-queue.

Returns
Return last error from error-queue as string.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ measure()

PIL_ERROR_CODE KEI2600::measure ( UNIT  unit,
SMU_CHANNEL  channel,
double *  value,
bool  checkErrorBuffer 
)
overridevirtual

This function measures a certain unit on a specific channel. This function can be used to measure voltage, current, power or resistance. It calls smuX.meausreUNIT().

Parameters
unitUnit to measure. Allowed are voltage, current, power and resistance.
channelChannel to measure (Channel A or Channel B).
valueThe value which is returned by the measurement.
checkErrorBufferif true error buffer status is requested and evaluated.
Returns
NO_ERROR if execution was successful otherwise return error code.

Implements SMU.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ measurePy()

double KEI2600::measurePy ( UNIT  unit,
SMU_CHANNEL  channel,
bool  checkErrorBuffer 
)

Measurement method identical to KEI2600::measure, but in this method, the value is directly returned to support the python wrapper.

Parameters
unitUnit to measure. Allowed are voltage, current, power and resistance.
channelChannel to measure (Channel A or Channel B).
Returns
measurement value returned by the measure function.
Here is the call graph for this function:

◆ performLinearVoltageSweep()

PIL_ERROR_CODE KEI2600::performLinearVoltageSweep ( SMU_CHANNEL  channel,
double  startVoltage,
double  stopVoltage,
int  increaseRate_mVpS,
double  current,
bool  checkErrorBuffer 
)

Perform a linear voltage sweep on the SMU. Increases the voltage at the given rate until the stop voltage is arrived.

Parameters
checkErrorBufferif true error buffer status is requested and evaluated.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ readBuffer()

PIL_ERROR_CODE KEI2600::readBuffer ( const std::string &  bufferName,
std::vector< double > *  result,
bool  checkErrorBuffer 
)

Reads the complete buffer with the given name.

Parameters
bufferNameThe name of the buffer.
resultThe vector to write the received values to.
checkErrorBufferWhether to check the error buffer.
Returns
The received error code.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ readBufferPy()

std::vector< double > KEI2600::readBufferPy ( const std::string &  bufferName,
bool  checkErrorBuffer 
)

Reads the complete buffer with the given name. Instead of returning the received error code, a vector containing all values is returned. This method is used in the python wrapper.

Parameters
bufferNameThe name of the buffe.r
checkErrorBufferWhether to check the error buffer.
Returns
The received error code.
Here is the call graph for this function:

◆ sendAndExecuteScript()

PIL_ERROR_CODE KEI2600::sendAndExecuteScript ( const std::string &  scriptName,
const std::string &  script,
bool  checkErrorBuffer 
)

Sends and executes the given script.

Parameters
checkErrorBufferif true error buffer status is requested and evaluated.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendAndExecuteVectorScript()

PIL_ERROR_CODE KEI2600::sendAndExecuteVectorScript ( const std::string &  scriptName,
const std::vector< std::string > &  script,
bool  checkErrorBuffer 
)

Sends and executes the given script.

Parameters
checkErrorBufferif true error buffer status is requested and evaluated.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendScript()

PIL_ERROR_CODE KEI2600::sendScript ( const std::string &  scriptName,
const std::string &  script,
bool  checkErrorBuffer 
)

Sends the given script to the SMU. The scripts does not get executed.

Parameters
checkErrorBufferif true error buffer status is requested and evaluated.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ sendVectorScript()

PIL_ERROR_CODE KEI2600::sendVectorScript ( const std::string &  scriptName,
const std::vector< std::string > &  script,
bool  checkErrorBuffer 
)

Sends the given script to the SMU. The scripts does not get executed.

Parameters
checkErrorBufferif true error buffer status is requested and evaluated.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setLevel()

PIL_ERROR_CODE KEI2600::setLevel ( UNIT  unit,
SMU_CHANNEL  channel,
double  level,
bool  checkErrorBuffer 
)
overridevirtual

Sets the level of a certain channel and of a certain unit. It can set the voltage or current on Channel A or Channel B.

Parameters
unitunit to set allowed are voltage and current. Passing power or resistance results in a INVALID_ARGUMENTS error code.
channelchannel to enable.
levellevel to set. Encoded in amps or voltages.
checkErrorBufferif true error buffer status is requested and evaluated.
Returns
NO_ERROR if execution was successful otherwise return error code.

Implements SMU.

Here is the call graph for this function:

◆ setLimit()

PIL_ERROR_CODE KEI2600::setLimit ( UNIT  unit,
SMU_CHANNEL  channel,
double  limit,
bool  checkErrorBuffer 
)
overridevirtual

Sets the limit of a certain channel of a certain unit. Allowed are power voltage and current. Passing resistance results in a INVALID_ARGUMENTS error code.

Parameters
unitunit to set allowed are voltage and current. Passing power or resistance results in a INVALID_ARGUMENTS error code.
channelchannel to enable.
limitlimit value in amps, voltage or watts.
checkErrorBufferif true error buffer status is requested and evaluated.
Returns
NO_ERROR if execution was successful otherwise return error code.

Implements SMU.

Here is the call graph for this function:

◆ setMeasureAutoZero()

PIL_ERROR_CODE KEI2600::setMeasureAutoZero ( SMU_CHANNEL  channel,
AUTOZERO  autoZero,
bool  checkErrorBuffer 
)

Enables or disableds automatic updates to the internal reference measurements (autozero) of the instrument.

Parameters
channelchannel on which this operation should be applied (SMU_CHANNEL_A, SMU_CHANNEL_B)
autoZerocan be set either to OFF, AUTO or ONCE. (See AUTOZERO enum)
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ setMeasureCount()

PIL_ERROR_CODE KEI2600::setMeasureCount ( SMU_CHANNEL  channel,
int  nrOfMeasurements,
bool  checkErrorBuffer 
)

Sets the number of measurements made when a measurement is requested.

Parameters
channelchannel on which this operation should be applied (SMU_CHANNEL_A, SMU_CHANNEL_B)
nrOfMeasurementsnumber of measurements made.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ setMeasureLowRange()

PIL_ERROR_CODE KEI2600::setMeasureLowRange ( UNIT  unit,
SMU_CHANNEL  channel,
double  value,
bool  checkErrorBuffer 
)

Sets the lowest measurement range that is used when the instrument is autoranging.

Parameters
unitlow range unit to set. Allowed are Current and voltage.
channelchannel on which this operation should be applied (SMU_CHANNEL_A, SMU_CHANNEL_B)
valuevalue to set.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ setMeasurePLC()

PIL_ERROR_CODE KEI2600::setMeasurePLC ( SMU_CHANNEL  channel,
double  value,
bool  checkErrorBuffer 
)

Sets the integration apeture for measurements.

Parameters
channelchannel which should be set
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ setMeasureRange()

PIL_ERROR_CODE KEI2600::setMeasureRange ( UNIT  unit,
SMU_CHANNEL  channel,
double  rangeValue,
bool  checkErrorBuffer 
)

Sets the measure range (positive full-scale value of the measurement range of that SMU). Explicitly setting a measure range disables measure auto-ranging for that function.

Parameters
unitallowed are current and voltage.
channelselected channel either channel A or channel B.
rangeValuerange value to set.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ setSenseMode()

PIL_ERROR_CODE KEI2600::setSenseMode ( SMU::SMU_CHANNEL  channel,
SMU::SMU_SENSE  senseArg,
bool  checkErrorBuffer 
)

Sets the sense mode of a specific channel. LOCAL, REMOTE or CALA is supported. When selecting LOCAL, source-measure operations are performed using a 2-wire local sense connection. If REMOTE is selected, 4-wire remote sense connections are used. CALA is the calibration sense mode.

Parameters
channelselected channel either channel A or channel B.
senseArgmode to set either LOCAL, REMOTE or CALIBRATION.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ setSourceFunction()

PIL_ERROR_CODE KEI2600::setSourceFunction ( SMU_CHANNEL  channel,
SRC_FUNC  srcFunc,
bool  checkErrorBuffer 
)

Set the source function which can bei either voltage or current.

Parameters
channelchannel on which this operation should be applied (SMU_CHANNEL_A, SMU_CHANNEL_B)
srcFuncVoltage or Current function to set.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ setSourceOffMode()

PIL_ERROR_CODE KEI2600::setSourceOffMode ( SMU_CHANNEL  channel,
SRC_OFF_MODE  offMode,
bool  checkErrorBuffer 
)

Sets the source output-off mode.

Parameters
channelchannel on which this operation should be applied (SMU_CHANNEL_A, SMU_CHANNEL_B)
offModecan be either a OUTPUT_NORMAL defined by offfunc, ZERO or HIGH_Z.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ setSourceRange()

PIL_ERROR_CODE KEI2600::setSourceRange ( UNIT  unit,
SMU_CHANNEL  channel,
double  rangeValue,
bool  checkErrorBuffer 
)

Assigning a value to this attribute sets the SMU to a fixed range large enough to source the assigned value. The instrument selects the best range for sourcing a value of rangeValue.

Parameters
unitallowed are current and voltage.
channelselected channel either channel A or channel B.
rangeValuerange value to set.
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ setSourceSettling()

PIL_ERROR_CODE KEI2600::setSourceSettling ( SMU::SMU_CHANNEL  channel,
SRC_SETTLING  srcSettling,
bool  checkErrorBuffer 
)

Set the source settling mode. (See SRC_SETTLING enum for more information)

Parameters
channelchannel on which this operation should be applied (SMU_CHANNEL_A, SMU_CHANNEL_B)
srcSettlingsettling mode. (See SRC_SETTLING enum for more information)
checkErrorBufferif true check the error buffer after execution.
Returns
NO_ERROR if execution was successful otherwise return error code.
Here is the call graph for this function:

◆ turnOff()

PIL_ERROR_CODE KEI2600::turnOff ( SMU_CHANNEL  channel,
bool  checkErrorBuffer 
)
overridevirtual

Turns off a specific channel of the KEI2600-SMU.

Parameters
channelchannel to enable.
checkErrorBufferif true error buffer status is requested and evaluated.
Returns
NO_ERROR if execution was successful otherwise return error code.

Implements SMU.

◆ turnOn()

PIL_ERROR_CODE KEI2600::turnOn ( SMU_CHANNEL  channel,
bool  checkErrorBuffer 
)
overridevirtual

Turns on a specific channel of the KEI2600-SMU.

Parameters
channelchannel to enable.
checkErrorBufferif true error buffer status is requested and evaluated.
Returns
NO_ERROR if execution was successful otherwise return error code.

Implements SMU.

Member Data Documentation

◆ CHANNEL_A_BUFFER

std::string KEI2600::CHANNEL_A_BUFFER = "A_M_BUFFER"

◆ CHANNEL_B_BUFFER

std::string KEI2600::CHANNEL_B_BUFFER = "B_M_BUFFER"

The documentation for this class was generated from the following files: