rohdeschwarz  0.2.0
TCPIP socket library for Rohde & Schwarz instrument control
preserve_data_format.cpp
Go to the documentation of this file.
1 
7 // rohdeschwarz
9 using namespace rohdeschwarz::instruments::vna;
10 
11 
13  _dataFormat(znx->dataFormat())
14 {
15  _isBinary = !_dataFormat.isAscii();
16  _is64Bit = _dataFormat.isBinary64Bit();
17  _isBigEndian = _dataFormat.isBigEndian();
18 }
19 
20 
22 {
23  if (!_isBinary)
24  {
25  // ascii
26  _dataFormat.setAscii();
27  return;
28  }
29 
30  // binary
31  restoreBinaryBits();
32  restoreByteOrder();
33 }
34 
35 
36 void PreserveDataFormat::restoreBinaryBits()
37 {
38  if (_is64Bit)
39  {
40  // 64 bit
41  _dataFormat.setBinary64Bit();
42  return;
43  }
44 
45  // 32 bit
46  _dataFormat.setBinary32Bit();
47 }
48 
49 
50 void PreserveDataFormat::restoreByteOrder()
51 {
52  if (_isBigEndian)
53  {
54  // big endian
55  _dataFormat.setBigEndian();
56  return;
57  }
58 
59  // little endian
60  _dataFormat.setLittleEndian();
61 }
void setBigEndian()
Sets the byte order for float data transfer to big-endian.
Definition: data_format.cpp:64
void setLittleEndian()
Sets the byte order for float data transfer to little-endian.
Definition: data_format.cpp:76
bool isAscii()
Queries if data transfer format is ASCII.
Definition: data_format.cpp:22
void setAscii()
Sets data transfer format to ASCII.
Definition: data_format.cpp:28
void setBinary64Bit()
Sets data transfer format to 64-bit float.
Definition: data_format.cpp:52
bool isBinary64Bit()
Queries if data transfer format is 64-bit float.
Definition: data_format.cpp:46
bool isBigEndian()
Queries if the byte order for float data transfer is big-endian.
Definition: data_format.cpp:58
void setBinary32Bit()
Sets data transfer format to 32-bit float.
Definition: data_format.cpp:40
Object-oriented R&S ZNX-series VNA control.
Definition: vna.hpp:34
rohdeschwarz::instruments::vna::PreserveDataFormat definition