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

#include <Oscilloscope.h>

Inheritance diagram for Oscilloscope:
Inheritance graph
Collaboration diagram for Oscilloscope:
Collaboration graph

Public Types

enum  OSC_CHANNEL { CHANNEL_1 = 0 , CHANNEL_2 = 1 , CHANNEL_3 = 2 , CHANNEL_4 = 3 }
 
enum  TRIGGER_EDGE { POS_EDGE = 0 , NEG_EDGE = 1 , EITHER = 2 , ALTERNATING = 3 }
 
enum  DISPLAY_MODES { MAIN = 0 , WIND = 1 , XY = 2 , ROLL = 3 }
 
enum  FILE_FORMAT { ASCII = 0 , WORD = 1 , BYTE = 2 }
 
enum  VOLTAGE_UNIT { VOLT , MILLI_VOLT }
 
- Public Types inherited from Device
enum  SEND_METHOD { DIRECT_SEND = 0 , BUFFER_ENABLED = 1 }
 

Public Member Functions

 Oscilloscope (const char *ip, int timeoutInMs, PIL::Logging *logger)
 
virtual PIL_ERROR_CODE run ()=0
 
virtual PIL_ERROR_CODE stop ()=0
 
virtual PIL_ERROR_CODE single ()=0
 
virtual PIL_ERROR_CODE autoScale ()=0
 
virtual PIL_ERROR_CODE setTimeRange (double value)=0
 
virtual PIL_ERROR_CODE setChannelOffset (OSC_CHANNEL channel, double offset)=0
 
virtual PIL_ERROR_CODE setChannelScale (OSC_CHANNEL channel, double value)=0
 
virtual PIL_ERROR_CODE setChannelRange (OSC_CHANNEL channel, double value, VOLTAGE_UNIT voltageUnit)=0
 
virtual PIL_ERROR_CODE setTriggerEdge (TRIGGER_EDGE edge)=0
 
virtual PIL_ERROR_CODE setTriggerSource (OSC_CHANNEL channel)=0
 
- 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...
 

Additional Inherited Members

- 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
 

Member Enumeration Documentation

◆ DISPLAY_MODES

Enumerator
MAIN 
WIND 
XY 
ROLL 

◆ FILE_FORMAT

Enumerator
ASCII 
WORD 
BYTE 

◆ OSC_CHANNEL

Enumerator
CHANNEL_1 
CHANNEL_2 
CHANNEL_3 
CHANNEL_4 

◆ TRIGGER_EDGE

Enumerator
POS_EDGE 
NEG_EDGE 
EITHER 
ALTERNATING 

◆ VOLTAGE_UNIT

Enumerator
VOLT 
MILLI_VOLT 

Constructor & Destructor Documentation

◆ Oscilloscope()

Oscilloscope::Oscilloscope ( const char *  ip,
int  timeoutInMs,
PIL::Logging *  logger 
)

Member Function Documentation

◆ autoScale()

virtual PIL_ERROR_CODE Oscilloscope::autoScale ( )
pure virtual

Implemented in KST3000.

◆ run()

virtual PIL_ERROR_CODE Oscilloscope::run ( )
pure virtual

Implemented in KST3000.

◆ setChannelOffset()

virtual PIL_ERROR_CODE Oscilloscope::setChannelOffset ( OSC_CHANNEL  channel,
double  offset 
)
pure virtual

Implemented in KST3000.

◆ setChannelRange()

virtual PIL_ERROR_CODE Oscilloscope::setChannelRange ( OSC_CHANNEL  channel,
double  value,
VOLTAGE_UNIT  voltageUnit 
)
pure virtual

Implemented in KST3000.

◆ setChannelScale()

virtual PIL_ERROR_CODE Oscilloscope::setChannelScale ( OSC_CHANNEL  channel,
double  value 
)
pure virtual

Implemented in KST3000.

◆ setTimeRange()

virtual PIL_ERROR_CODE Oscilloscope::setTimeRange ( double  value)
pure virtual

Implemented in KST3000.

◆ setTriggerEdge()

virtual PIL_ERROR_CODE Oscilloscope::setTriggerEdge ( TRIGGER_EDGE  edge)
pure virtual

Implemented in KST3000.

◆ setTriggerSource()

virtual PIL_ERROR_CODE Oscilloscope::setTriggerSource ( OSC_CHANNEL  channel)
pure virtual

Implemented in KST3000.

◆ single()

virtual PIL_ERROR_CODE Oscilloscope::single ( )
pure virtual

Implemented in KST3000.

◆ stop()

virtual PIL_ERROR_CODE Oscilloscope::stop ( )
pure virtual

Implemented in KST3000.


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