Instrument Control Lib
Framework to control Oscilloscopes, SMUs, Function Generators and DC Powersupplies via Ethernet.
SMU.h
Go to the documentation of this file.
1 //
2 // Created by florianfrank on 19.07.22.
3 //
4 
5 #ifndef INSTRUMENT_CONTROL_LIB_SMU_H
6 #define INSTRUMENT_CONTROL_LIB_SMU_H
7 #include "Device.h"
11 class SMU : public Device
12 {
13 
14 public:
15 
20  {
21  CHANNEL_A = 'a',
22  CHANNEL_B = 'b'
23  };
24 
25 
26 
30  enum UNIT
31  {
32  VOLTAGE = 0,
33  CURRENT = 1,
35  POWER = 3
36  };
37 
38  enum AUTOZERO
39  {
41  OFF,
45  AUTO
46  };
47 
48  enum SRC_FUNC {
52  DC_VOLTS
53  };
54 
55  enum SRC_OFF_MODE {
62  };
63 
64  enum SRC_SETTLING {
76  FAST_ALL
77  };
78 
79  enum SMU_DISPLAY {
88  };
89 
90  enum SMU_SENSE {
97  };
98 
99  explicit SMU(std::string ipAddress, int timeoutInMs, SEND_METHOD mode = DIRECT_SEND);
100  explicit SMU(std::string ipAddress, int timeoutInMs, PIL::Logging *logger, SEND_METHOD mode = DIRECT_SEND);
101  virtual PIL_ERROR_CODE measure(UNIT unit, SMU_CHANNEL channel, double *value, bool checkErrorBuffer) = 0;
102 
103  virtual PIL_ERROR_CODE turnOn(SMU_CHANNEL channel, bool checkErrorBuffer) = 0;
104  virtual PIL_ERROR_CODE turnOff(SMU_CHANNEL channel, bool checkErrorBuffer) = 0;
105 
106  virtual PIL_ERROR_CODE setLimit(UNIT unit, SMU_CHANNEL channel, double limit, bool checkErrorBuffer) = 0;
107  virtual PIL_ERROR_CODE setLevel(UNIT unit, SMU_CHANNEL channel, double level, bool checkErrorBuffer) = 0;
108 };
109 
110 
111 #endif //INSTRUMENT_CONTROL_LIB_SMU_H
Basic device class This class contains all basic method of all devices, like Connect,...
Definition: Device.h:30
SEND_METHOD
Definition: Device.h:33
@ DIRECT_SEND
Definition: Device.h:34
Dummy class to allow assignment to SMU class.
Definition: SMU.h:12
virtual PIL_ERROR_CODE setLevel(UNIT unit, SMU_CHANNEL channel, double level, bool checkErrorBuffer)=0
virtual PIL_ERROR_CODE measure(UNIT unit, SMU_CHANNEL channel, double *value, bool checkErrorBuffer)=0
SRC_OFF_MODE
Definition: SMU.h:55
@ OUTPUT_HIGH_Z
Definition: SMU.h:61
@ OUTPUT_ZERO
Definition: SMU.h:59
@ OUTPUT_NORMAL
Definition: SMU.h:57
UNIT
Unit which should be changed or measured.
Definition: SMU.h:31
@ POWER
Definition: SMU.h:35
@ RESISTANCE
Definition: SMU.h:34
@ CURRENT
Definition: SMU.h:33
@ VOLTAGE
Definition: SMU.h:32
SRC_FUNC
Definition: SMU.h:48
@ DC_AMPS
Definition: SMU.h:50
@ DC_VOLTS
Definition: SMU.h:52
virtual PIL_ERROR_CODE turnOff(SMU_CHANNEL channel, bool checkErrorBuffer)=0
SRC_SETTLING
Definition: SMU.h:64
@ FAST_POLARITY
Definition: SMU.h:70
@ SMOOTH_100NA
Definition: SMU.h:74
@ SMOOTH
Definition: SMU.h:66
@ FAST_RANGE
Definition: SMU.h:68
@ DIRECT_IRANGE
Definition: SMU.h:72
@ FAST_ALL
Definition: SMU.h:76
virtual PIL_ERROR_CODE turnOn(SMU_CHANNEL channel, bool checkErrorBuffer)=0
SMU(std::string ipAddress, int timeoutInMs, SEND_METHOD mode=DIRECT_SEND)
Definition: SMU.cpp:5
SMU_CHANNEL
Used to select which channel of the SMU should be used to measure or supplied.
Definition: SMU.h:20
@ CHANNEL_A
Definition: SMU.h:21
@ CHANNEL_B
Definition: SMU.h:22
SMU_DISPLAY
Definition: SMU.h:79
@ MEASURE_DC_AMPS
Definition: SMU.h:81
@ MEASURE_OHMS
Definition: SMU.h:85
@ MEASURE_DC_VOLTS
Definition: SMU.h:83
@ MEASURE_WATTS
Definition: SMU.h:87
virtual PIL_ERROR_CODE setLimit(UNIT unit, SMU_CHANNEL channel, double limit, bool checkErrorBuffer)=0
AUTOZERO
Definition: SMU.h:39
@ AUTO
Definition: SMU.h:45
@ ONCE
Definition: SMU.h:43
@ OFF
Definition: SMU.h:41
SMU_SENSE
Definition: SMU.h:90
@ CALIBRATION
Definition: SMU.h:96
@ LOCAL
Definition: SMU.h:92
@ REMOTE
Definition: SMU.h:94