rohdeschwarz  0.2.0
TCPIP socket library for Rohde & Schwarz instrument control
visa.hpp
Go to the documentation of this file.
1 #ifndef ROHDESCHWARZ_BUSSES_VISA_VISA_HPP
2 #define ROHDESCHWARZ_BUSSES_VISA_VISA_HPP
3 
4 
5 // rohdeschwarz
8 
9 
10 // visa
11 #include "rs-visa/visa.h"
12 
13 
14 // std lib
15 #include <string>
16 #include <system_error>
17 
18 
20 {
21 
22 
29 
30 
32 {
33 
34 public:
35 
39  Visa(std::string resource, unsigned int connection_timeout_ms = 2000);
40 
46  virtual ~Visa();
47 
48 
49  virtual std::string endpoint() const;
50 
51 
52  virtual int timeout_ms() const;
53 
54 
55  virtual bool setTimeout(int timeout_ms);
56 
57 
58  virtual bool readData(unsigned char* buffer, std::size_t bufferSize, std::size_t* readSize = nullptr);
59 
60 
61  virtual bool writeData(const unsigned char* data, std::size_t dataSize, std::size_t* writeSize = nullptr);
62 
63 
64  // attributes
65 
69  bool attribute(ViAttr name, ViAttrState* value) const;
70 
74  bool setAttribute(ViAttr name, ViAttrState value);
75 
76 
77  // visa status
78 
82  ViStatus status() const;
83 
87  virtual std::string statusMessage() const;
88 
94  bool isError() const;
95 
96 private:
97 
98  // visa resource
99  std::string _resource;
100 
101 
102  // visa
103  CVisa _visa;
104  ViSession _resource_manager;
105  ViSession _instrument;
106  ViStatus _status;
107 
108 
109  // resource manager
110  bool isResourceManager() const;
111  bool openDefaultResourceManager();
112  bool closeResourceManager();
113 
114 
115  // instrument
116  bool isInstrument() const;
117  bool openInstrument(std::string resource, unsigned int timeout_ms);
118  bool closeInstrument();
119 
120 
121 }; // class Bus
122 
123 
124 } // rohdeschwarz::busses::visa
125 #endif // ROHDESCHWARZ_BUSSES_VISA_VISA_HPP
rohdeschwarz::busses::Bus class definition
std::vector< unsigned char > * buffer()
Definition: bus.cpp:53
Runtime interface for the installed VISA C shared library.
Definition: cvisa.hpp:36
bool setAttribute(ViAttr name, ViAttrState value)
set VISA attribute
Definition: visa.cpp:97
virtual ~Visa()
Destructor.
Definition: visa.cpp:37
virtual std::string statusMessage() const
Returns a human-friendly message for the current ViStatus value.
Definition: visa.cpp:110
ViStatus status() const
Returns current ViStatus value.
Definition: visa.cpp:104
virtual std::string endpoint() const
Definition: visa.cpp:44
Visa(std::string resource, unsigned int connection_timeout_ms=2000)
Constructor.
Definition: visa.cpp:9
virtual bool readData(unsigned char *buffer, std::size_t bufferSize, std::size_t *readSize=nullptr)
Definition: visa.cpp:66
virtual bool writeData(const unsigned char *data, std::size_t dataSize, std::size_t *writeSize=nullptr)
Definition: visa.cpp:78
virtual int timeout_ms() const
Definition: visa.cpp:50
virtual bool setTimeout(int timeout_ms)
Definition: visa.cpp:60
bool attribute(ViAttr name, ViAttrState *value) const
get VISA attribute
Definition: visa.cpp:90
bool isError() const
Checks if there is a visa error.
Definition: visa.cpp:132
rohdeschwarz::busses::visa::CVisa definition
std::system_error system_error
System error exception.
Definition: visa.hpp:28
rohdeschwarz::busses::socket::system_error system_error
Definition: main.cpp:15