C++ Instrument Catalog
InstrumentCatalog.h
Go to the documentation of this file.
1 
6 #pragma once
7 
8 #include "CatalogInterface.h"
9 #include "OSDefines.h"
10 
11 #include <string>
12 #include <vector>
13 #include <iostream>
14 #include <sstream>
15 #include <iomanip>
16 #include <ctime>
17 
18 using namespace MTL;
19 using namespace MTL::InstrumentCatalogInterface;
20 
21 namespace MTL {
23  public:
24  //----------------------------------------------------------------------//
25  // Types //
26  //----------------------------------------------------------------------//
27  typedef std::time_t tPosixTime; // Unix Time / Posix Time / Epoch time e.g. defined as the number of seconds that have elapsed since 00:00:00 Coordinated Universal Time (UTC), Thursday, 1 January 1970
28  typedef std::string tISO8601DateTime; // Date and Time in the ISO8601 YYYY-mm-ddTHH:MM:SSZ format (UTC Date and time)
29 
30  typedef std::string tInstrumentLabel; // Instrument name to be presented to the customer (also called "pretty name")
31  typedef std::string tInstrumentUniqueID; // Unique instrument ID to identify the instrument (corresponds to the VISA resource name)
32  enum class eConnectionInterface { // Type of interface for a specific connection
33  kUnknown, // Unknown interface
34  kUSB, // USB interface
35  kEthernet, // Ethernet interface
36  kSerial // Serial interface
37  };
38  struct sInstrumentConnection { // Describes an available connection to an instrument
39  tInstrumentLabel Label; // Instrument label
40  tInstrumentUniqueID UniqueID; // Insturment unique ID
41  eConnectionInterface Interface; // Interface type
42  sInstrumentConnection(tInstrumentLabel lbl = "", tInstrumentUniqueID id = "", eConnectionInterface itf = eConnectionInterface::kUnknown)
43  : Label(lbl), UniqueID(id), Interface(itf)
44  {}
45  inline bool operator==(const sInstrumentConnection& other) const
46  {
47  return (UniqueID == other.UniqueID);
48  }
49  inline bool isEmpty() const
50  {
51  return (UniqueID.empty() && eConnectionInterface::kUnknown == Interface);
52  }
53  };
54  typedef std::vector<sInstrumentConnection> tInstrumentList; // List of instrument names
55  enum class eSerialBaudrate { // Serial baudrate
56  k2400 = 2400,
57  k4800 = 4800,
58  k9600 = 9600,
59  k19200 = 19200,
60  k28800 = 28800,
61  k38400 = 38400,
62  k57600 = 57600,
63  k115200 = 115200
64  };
65  enum class eSerialDataBits { // Number of data bits for the serial communication
66  k7 = 7,
67  k8 = 8
68  };
69  enum class eSerialParity { // Parity configuration for the serial communication
70  kNone, kOdd, kEven
71  };
72  enum class eSerialStopBits { // Stop bit configuration for the serial communication
73  k1,
74  k2
75  };
76  enum class eSerialHandshake { // Handshake configuration for the serial communication
77  kNone,
78  kXonXoff, // Software Xon/Xoff Handshake
79  kHardware // Hardware CTS RTS Handshake
80  };
81  struct sMFC3045SerialPortSettings { // Sets serial port settings
82  eSerialBaudrate Baudrate; // [bd] Speed of the serial communication
83  eSerialDataBits DataBits; // [-] Number of transmitted bits per packet
84  eSerialParity Parity; // [-] Parity configuration of the serial communication
85  eSerialStopBits StopBits; // [-] Stop bit configuration of the serial communication
86  eSerialHandshake Handshake; // [-] Handshake configuration of the serial communication
88  : Baudrate(eSerialBaudrate::k9600),
89  DataBits(eSerialDataBits::k8),
90  Parity(eSerialParity::kNone),
91  StopBits(eSerialStopBits::k1),
92  Handshake(eSerialHandshake::kNone)
93  {}
94  bool operator==(const sMFC3045SerialPortSettings & other) const
95  { return ( Baudrate == other.Baudrate &&
96  DataBits == other.DataBits && Parity == other.Parity &&
97  StopBits == other.StopBits && Handshake == other.Handshake);}
98  bool operator!=(const sMFC3045SerialPortSettings & other) const
99  { return !operator==(other); }
100  };
101  enum class eInstrumentType { // Type of the instrument
102  kMFC3045,
103  kPT2026,
104  kUnknown
105  };
106  struct sInstrumentInformation { // Returns information about the current instrument
107  sInstrumentConnection InstrumentConnection; // [-] Connection used for this instrument
108  eInstrumentType Type; // [-] Type of the instrument
109  std::string SerialNumber; // [-] Serial Number of the instrument
110  std::string Description; // [-] Description of the instrument (can contain firmware versions, options, etc...)
111  tISO8601DateTime CalibrationDate; // [-] Date of the last calibration in the ISO8601 YYYY-mm-dd format (UTC Date)
113  : InstrumentConnection(), Type(eInstrumentType::kUnknown), SerialNumber(""), Description(""), CalibrationDate("")
114  {}
115  };
116  struct sInstrumentConfiguration { // Returns information about the current configuration of the instrument
117  F64 AcquisitionPeriod; // [s] - NMR signal acquisition period
119  : AcquisitionPeriod(DPqNaN)
120  {}
121  };
122  struct sFCAInformation { // FCA peripheral information
123  std::string SerialNumber; // [-] Serial Number of the peripheral
124  std::string Description; // [-] Description of the peripheral
125  U16 FCAFwVersion; // [-] Firmware version of the peripheral, if exists. If none => 0
127  : SerialNumber(""), Description(""), FCAFwVersion(0)
128  {}
129  };
130 
131  struct sProbeInformation { // Returns information about the current selected probe
132  U8 ProbeNumber; // [-] Number of the probe
133  F64 FreqMin; // [MHz] Minimal frequency of the probe
134  F64 FreqMax; // [MHz] Maximum frequency of the probe
136  : ProbeNumber(0), FreqMin(DPqNaN), FreqMax(DPqNaN)
137  {}
138  };
139  enum class eProbeArrayType { // Type of the Probe-Array
140  kMFC3048,
141  kMFC9046,
142  kMFC9146,
143  kUnknown
144  };
145  struct sProbeArrayInformation { // Returns information about the current probe-array
146  eProbeArrayType Type; // [-] Type of the Probe-Array
147  std::string SerialNumber; // [-] Serial Number of the Probe-Array
148  std::string Description; // [-] Description of the Probe-Array
149  tISO8601DateTime NormalizationDate; // [-] Date of the last normalization in the ISO8601 YYYY-mm-dd format (UTC Date)
150  F64 FreqMin; // [MHz] Minimal frequency of the probe-array
151  F64 FreqMax; // [MHz] Maximum frequency of the probe-array
152  F64 FreqCentral; // [MHz] Central frequency of the probe-array
153  F64 GyroRatio; // [MHz/T] Gyromagnetic ratio. Should be proton gyro ratio. Results are normalized with this value
154  std::vector<sProbeInformation> ProbeList; // List of the contained probes
155  sFCAInformation FCAInfo; // FCA peripheral information if exists
157  : Type(eProbeArrayType::kUnknown),
158  SerialNumber(""),
159  Description(""),
160  NormalizationDate(""),
161  FreqMin(DPqNaN),
162  FreqMax(DPqNaN),
163  FreqCentral(DPqNaN),
164  GyroRatio(DPqNaN),
165  ProbeList(),
166  FCAInfo()
167  {}
168  size_t NbProbes() const
169  { return ProbeList.size(); }
170  void clear()
171  {
172  Type= eProbeArrayType::kUnknown;
173  SerialNumber.clear();
174  Description.clear();
175  NormalizationDate.clear();
176  FreqMin = DPqNaN;
177  FreqMax = DPqNaN;
178  FreqCentral = DPqNaN;
179  GyroRatio = DPqNaN;
180  ProbeList.clear();
181  FCAInfo = sFCAInformation();
182  }
183  };
184  enum class eOperatingMode {
185  kIdle, // Instrument is not operating
186  kSearch, // Instrument performs a unique search operation
187  kMeasure // Instrument performs measurement according to probe selection
188  };
189  enum class eRepeatMode {
190  kSingle, // Operates a single time
191  kContinuous // Operates continuously until requested to stop
192  };
194  kProbeArray, // Probe-array is selected. Multiple probes are used
195  kSingleProbe // A single probe in the probe-array is selected
196  };
198  {
199  eMeasureSelectionMode SelectionMode; // [-] Whether we use a single or multiple probes for the measure operation
200  U8 ProbeNumber; // [-] Number of the selected probe, when SelectionMode is kSingleProbe
202  : SelectionMode(eMeasureSelectionMode::kProbeArray), ProbeNumber(0)
203  {}
205  : SelectionMode(SelMode), ProbeNumber(PrbNb)
206  {}
207  bool operator==(const sMeasureProbeSelection & other) const
208  { return (SelectionMode == other.SelectionMode && ProbeNumber == other.ProbeNumber); }
209  bool operator!=(const sMeasureProbeSelection & other) const
210  { return !operator==(other); }
211  };
212  struct sInstrumentState { // Controls the state of the instrument, with associated operating parameters
213  eOperatingMode OperatingMode; // [-] Requested operating mode
214  eRepeatMode RepeatMode; // [-] Requested repeat mode
215  sMeasureProbeSelection ProbeSelection; // [-] Probe selection (relevant only for measurement operations)
216  F64 FreqMin; // [MHz] Minimal frequency used for the specified mode
217  F64 FreqMax; // [MHz] Maximum frequency used for the specified mode
218  U32 NbAveragedMeasurements; // [-] Number of repeated measurements used for the average. Limited value from 1 to 1500 for MFC2046 and from 2 to 1500 for MFC3045.
220  : OperatingMode(eOperatingMode::kIdle), RepeatMode(eRepeatMode::kSingle), ProbeSelection(sMeasureProbeSelection()), FreqMin(DPqNaN), FreqMax(DPqNaN), NbAveragedMeasurements(1)
221  {}
222  };
223  enum class eInstrumentState {
224  kWaitingForPA, // There is currently no connected probe-array
225  kReady, // There is a connected probe-array which is currently not operating
226  kSearching, // The instrument is currently searching
227  kMeasuring // The instrument is currently measuring
228  };
229  struct sInstrumentStatus { // Reflects the current instrument status
230  eInstrumentState State; // [-] Current instrument state
231  U8 SearchProgress; // [%] Progress of the search (if any) from 0 to 100%
233  : State(eInstrumentState::kWaitingForPA), SearchProgress(0)
234  {}
236  : State(St), SearchProgress(SPR)
237  {}
238  };
239  enum class eRemoteBoxTrigger {
240  kRemoteBoxTrigger // Informs that Remote box start button has been pressed
241  };
243  kRemoteBusyLedOff, // Remote Led is turned OFF
244  kRemoteBusyLedMeasuring, // Remote Led is turned ON when measuring and turned OFF otherwise
245  kRemoteBusyLedOffEndMeas, // Remote Led is turned ON immediately and turned OFF automatically with the end of measurement
246  kRemoteBusyLedOn, // Remote Led is turned ON
247  kRemoteBusyLedBlinkSlow, // Remote Led is blinking slowly (about 1Hz)
248  kRemoteBusyLedBlinkFast // Remote Led is blinking quickly (about 2Hz)
249  };
250  struct sSearchResult {
251  F64 Freq; // [MHz] Frequency returned by the search operation
252  F32 StdDev; // [ppm] Standard deviation, relatively to Freq
254  : Freq(DPqNaN), StdDev(SPqNaN)
255  {}
256  };
257  struct sMeasurement {
258  U8 ProbeNumber; // [-] Number of the probe for this measurement
259  F64 Freq; // [MHz] Measured frequency
260  U32 NbValidMeasurements; // [-] Number of valid measurements (among the requested number of averaged measurements)
261  F32 StdDev; // [ppm] Standard deviation, relatively to Freq
263  : ProbeNumber(0), Freq(DPqNaN), NbValidMeasurements(0), StdDev(SPqNaN)
264  {}
265  };
266  typedef std::vector<sMeasurement> tMeasurementList;
268  U64 Timestamp; // [ms] Measurement time, relative to startup of the instrument
269  tMeasurementList MeasurementList; // [-] List of the obtained measurements
271  : Timestamp(0), MeasurementList(tMeasurementList())
272  {}
273  };
274  enum class eNormalizationAccess {
275  kReadRAM, // Read the current Normalization table from the temporary memory
276  kReadROM, // Read the Normalization table from the PA EEPROM
277  kWriteRAM, // Write a new Normalization table to the temporary memory
278  kWriteROM // Write a new Normalization table to the PA EEPROM
279  };
280  typedef F32 tNormalizationCorrection; // [MHz] Frequency error correction to be applied for normalization of a probe. Fcorrected = Fmeasured + FCorrection
281  typedef std::vector<tNormalizationCorrection> tNormalizationTable; // [MHz] List of normalization correction values for each probe of the probe-array.
282  struct sNormalization {
283  eNormalizationAccess Access; // Whether the normalization is accessed in read or write
284  tNormalizationTable Table; // Table of correction values according to the reference
286  : Access(eNormalizationAccess::kReadROM), Table()
287  {}
288  };
289  enum class eErrorLevel {
290  kFatal, // Fatal error. Should not occur, program may crash
291  kError, // Error. The requested operation cannot keep executing
292  kWarning // Warning. An error occured but requested operation will continue to execute
293  };
294  static constexpr I32 WARNING_ERROR_CODE = 1; // Instrument's main Warning error code
295  static constexpr I32 UNDEFINED_ERROR_CODE = 0;
296  static constexpr I32 ERROR_CODE = -2; // Instrument's main Error code
297  static constexpr I32 FATAL_ERROR_CODE = -1; // Instrument's main Fatal error code
298  struct sError {
299  eErrorLevel Level; // Error level
300  I32 Code; // Code ID of the error. Positive values are warnings, negative values are errors
301  std::string Description; // Description of the error
302  std::string Source; // Information about the source of the error
304  : Level(eErrorLevel::kError), Code(UNDEFINED_ERROR_CODE), Description(""), Source("")
305  {}
306  sError(eErrorLevel Lvl, I32 Cde, std::string Dsc, std::string Src)
307  : Level(Lvl), Code(Cde), Description(Dsc), Source(Src)
308  {}
309  };
311  bool AngleSensorAvailable; // [-] Whether an angle sensor is available or not
312  F32 Angle; // [deg] Current measured angular position of the probe-array
314  : AngleSensorAvailable(false), Angle(SPqNaN)
315  {}
316  };
317  enum class eLogLevel {
318  kCritical, // An error that causes the software to crash
319  kDebug, // Message for debug purpose
320  kInfo, // General information message that may remain logged in release program
321  kWarning // Something wrong happened but doesn't prevent the software to keep running
322  };
323  struct sLogMessage {
324  eLogLevel Level; // Message level
325  std::string Context; // Message context ("Module.Sub-module.sub-module...")
326  std::string Message; // Message
327  std::string Location; // Origin of the message (If any. e.g. "FileName:line")
329  : Level(eLogLevel::kDebug)
330  {}
331  sLogMessage(const eLogLevel & rLevel, const std::string & rContext, const std::string & rMessage, const std::string & rLocation)
332  : Level(rLevel), Context(rContext), Message(rMessage), Location(rLocation)
333  {}
334  };
335 
336 
337  //----------------------------------------------------------------------//
338  // Dump Utilities //
339  //----------------------------------------------------------------------//
340  static inline std::string l_Dump(const tInstrumentList & rInsList)
341  {
342  std::ostringstream l_ss;
343  for (auto l_i = rInsList.begin(); l_i != rInsList.end(); l_i++)
344  {
345  l_ss << l_Dump(*l_i);
346  }
347  return l_ss.str();
348  }
349  static inline std::string l_Dump(const sInstrumentConnection & rInsConnection)
350  {
351  std::ostringstream l_ss;
352  l_ss << rInsConnection.Label << "(" << rInsConnection.UniqueID << ")";
353  l_ss << ( rInsConnection.Interface == eConnectionInterface::kUSB ? " (USB)" :
354  rInsConnection.Interface == eConnectionInterface::kEthernet ? " (Eth)" :
355  rInsConnection.Interface == eConnectionInterface::kSerial ? " (Serial)" : "(Unkn)") << std::endl;
356  return l_ss.str();
357  }
358  static inline std::string l_Dump(const sMFC3045SerialPortSettings & rSerialSett)
359  {
360  std::ostringstream l_ss;
361  l_ss << "Baudrate: " << (unsigned long)rSerialSett.Baudrate << " | ";
362  l_ss << "DataBits: " << (unsigned long)rSerialSett.DataBits << " | ";
363  l_ss << "Parity: " << ((rSerialSett.Parity == eSerialParity::kNone) ? "None" :
364  (rSerialSett.Parity == eSerialParity::kOdd) ? "Odd" :
365  (rSerialSett.Parity == eSerialParity::kEven) ? "Even" : "") << " | ";
366  l_ss << "StopBits: " << ((rSerialSett.StopBits == eSerialStopBits::k1) ? "1" :
367  (rSerialSett.StopBits == eSerialStopBits::k2) ? "2" : "") << " | ";
368  l_ss << "Handshake: " << ((rSerialSett.Handshake == eSerialHandshake::kNone) ? "None" :
369  (rSerialSett.Handshake == eSerialHandshake::kXonXoff) ? "XonXoff" :
370  (rSerialSett.Handshake == eSerialHandshake::kHardware) ? "Hardware" : "") << std::endl;
371  return l_ss.str();
372  }
373  static inline std::string l_Dump(const sInstrumentInformation & rInsInfo)
374  {
375  std::ostringstream l_ss;
376  l_ss << "Instrument Information: Type: " << ((rInsInfo.Type == eInstrumentType::kMFC3045) ? "MFC3045" :
377  (rInsInfo.Type == eInstrumentType::kPT2026) ? "PT2026" : " ") << " | ";
378  l_ss << "Serial Number: " << rInsInfo.SerialNumber << " | ";
379  l_ss << "Calibration Date: " << rInsInfo.CalibrationDate << " | ";
380  l_ss << "Connection: " << ((rInsInfo.InstrumentConnection.Interface == eConnectionInterface::kUSB) ? "USB" :
381  (rInsInfo.InstrumentConnection.Interface == eConnectionInterface::kSerial) ? "Serial" :
382  (rInsInfo.InstrumentConnection.Interface == eConnectionInterface::kEthernet) ? "Ethernet" : "Unknown") << std::endl;
383  l_ss << "Description: " << rInsInfo.Description << std::endl;
384  return l_ss.str();
385  }
386  static inline std::string l_Dump(const sInstrumentConfiguration & rInsConf)
387  {
388  std::ostringstream l_ss;
389  l_ss << "Acquisition Period: " << rInsConf.AcquisitionPeriod << std::endl;
390  return l_ss.str();
391  }
392  static inline std::string l_Dump(const sProbeArrayInformation & rPAInfo)
393  {
394  std::ostringstream l_ss;
395  l_ss << "Serial Number: " << rPAInfo.SerialNumber << std::endl;
396  l_ss << "Description: " << rPAInfo.Description << std::endl;
397  l_ss << "Normalization Date: " << rPAInfo.NormalizationDate << std::endl;
398  l_ss << "FreqMin: " << rPAInfo.FreqMin << std::endl;
399  l_ss << "FreqMax: " << rPAInfo.FreqMax << std::endl;
400  l_ss << "FreqCentral: " << rPAInfo.FreqCentral << std::endl;
401  l_ss << "GyroRatio: " << rPAInfo.GyroRatio << std::endl;
402  l_ss << "ProbeList: (No. probes = " << rPAInfo.NbProbes() << ")" << std::endl;
403  for (auto l_it = rPAInfo.ProbeList.begin(); l_it != rPAInfo.ProbeList.end(); l_it++)
404  {
405  l_ss << " " << (unsigned int)l_it->ProbeNumber << " | " << l_it->FreqMin << " -> " << l_it->FreqMax << std::endl;
406  }
407  return l_ss.str();
408  }
409  static inline std::string l_Dump(const sProbeArrayAngle & rPAAngle)
410  {
411  std::ostringstream l_ss;
412  if (rPAAngle.AngleSensorAvailable)
413  l_ss << "Angle: " << rPAAngle.Angle << std::endl;
414  else
415  l_ss << "No PA angle sensor" << std::endl;
416  return l_ss.str();
417  }
418  static inline std::string l_Dump(const sInstrumentState & rInsState)
419  {
420  std::ostringstream l_ss;
421  l_ss << "OperatingMode: " << ( rInsState.OperatingMode == eOperatingMode::kIdle ? "Idle" :
422  rInsState.OperatingMode == eOperatingMode::kSearch ? "Search" :
423  rInsState.OperatingMode == eOperatingMode::kMeasure ? "Measure" : "") << std::endl;
424  l_ss << "RepeatMode: " << ( rInsState.RepeatMode == eRepeatMode::kSingle ? "Single" :
425  rInsState.RepeatMode == eRepeatMode::kContinuous ? "Continuous" : "") << std::endl;
426  if (rInsState.ProbeSelection.SelectionMode == eMeasureSelectionMode::kProbeArray)
427  l_ss << "Probe Array selected" << std::endl;
428  else
429  l_ss << "Selected probe: " << (unsigned int)rInsState.ProbeSelection.ProbeNumber << std::endl;
430  l_ss << "FreqMin: " << rInsState.FreqMin << std::endl;
431  l_ss << "FreqMax: " << rInsState.FreqMax << std::endl;
432  l_ss << "NbAveragedMeasurements: " << (unsigned int)rInsState.NbAveragedMeasurements << std::endl;
433  return l_ss.str();
434  }
435  static inline std::string l_Dump(const sInstrumentStatus & rInsStatus)
436  {
437  std::ostringstream l_ss;
438  l_ss << "State: " << ( rInsStatus.State == eInstrumentState::kWaitingForPA ? "WaitingForPA" :
439  rInsStatus.State == eInstrumentState::kReady ? "Ready" :
440  rInsStatus.State == eInstrumentState::kSearching ? "Searching" :
441  rInsStatus.State == eInstrumentState::kMeasuring ? "Measuring" : "") << " | ";
442  l_ss << "SearchProgress: " << (unsigned int)rInsStatus.SearchProgress << std::endl;
443  return l_ss.str();
444  }
445  static inline std::string l_Dump(const sSearchResult & rSearchResult)
446  {
447  std::ostringstream l_ss;
448  l_ss << "Frequency: " << rSearchResult.Freq << " | ";
449  l_ss << "StdDev: " << rSearchResult.StdDev << std::endl;
450  return l_ss.str();
451  }
452  static inline std::string l_Dump(const sMeasurementResults & rMeasResult)
453  {
454  std::ostringstream l_ss;
455  l_ss << "Timestamp: " << rMeasResult.Timestamp << std::endl;
456  for (auto l_it = rMeasResult.MeasurementList.begin(); l_it != rMeasResult.MeasurementList.end(); l_it++)
457  l_ss << " ProbeNo.: " << (unsigned int)l_it->ProbeNumber << " Freq: " << l_it->Freq << " Nb.Valid: " << (unsigned int)l_it->NbValidMeasurements << " SDev: " << l_it->StdDev << std::endl;
458  return l_ss.str();
459  }
460  static inline std::string l_Dump(const tISO8601DateTime & rDateTime)
461  {
462  std::ostringstream l_ss;
463  l_ss << "Date: " << rDateTime << std::endl;
464  return l_ss.str();
465  }
466  static inline std::string l_Dump(const sNormalization & rNormalization)
467  {
468  std::ostringstream l_ss;
469  l_ss << ( rNormalization.Access == eNormalizationAccess::kReadRAM ? "ReadRAM Access" :
470  rNormalization.Access == eNormalizationAccess::kReadROM ? "ReadROM Access" :
471  rNormalization.Access == eNormalizationAccess::kWriteRAM ? "WriteRAM Access" :
472  rNormalization.Access == eNormalizationAccess::kWriteROM ? "WriteROM Access" : "") << std::endl;
473  for (auto l_it = rNormalization.Table.begin(); l_it != rNormalization.Table.end(); l_it++)
474  l_ss << *l_it << std::endl;
475  l_ss << std::endl;
476  return l_ss.str();
477  }
478  static inline std::string l_Dump(const eRemoteBoxBusyLedState & rRBBusyLedState)
479  {
480  std::ostringstream l_ss;
481  l_ss << ( rRBBusyLedState == eRemoteBoxBusyLedState::kRemoteBusyLedOff ? "Remote busy led off" :
482  rRBBusyLedState == eRemoteBoxBusyLedState::kRemoteBusyLedMeasuring ? "Remote busy led on when measuring" :
483  rRBBusyLedState == eRemoteBoxBusyLedState::kRemoteBusyLedOffEndMeas ? "Remote busy led clears after measuring" :
484  rRBBusyLedState == eRemoteBoxBusyLedState::kRemoteBusyLedOn ? "Remote busy led on" :
485  rRBBusyLedState == eRemoteBoxBusyLedState::kRemoteBusyLedBlinkSlow ? "Remote busy led blink slow" :
486  rRBBusyLedState == eRemoteBoxBusyLedState::kRemoteBusyLedBlinkFast ? "Remote busy led blink fast" : "") << std::endl;
487  return l_ss.str();
488  }
489  static inline std::string l_Dump(const sError & rError)
490  {
491  std::ostringstream l_ss;
492  l_ss << "Error : " << ( rError.Level == eErrorLevel::kFatal ? "Fatal " :
493  rError.Level == eErrorLevel::kError ? "Error " :
494  rError.Level == eErrorLevel::kWarning ? "Warning " : "");
495  l_ss << rError.Code << " : " << rError.Description << " | @ " << rError.Source << std::endl;
496  return l_ss.str();
497  }
498  static inline std::string l_Dump(const sLogMessage & rLogMessage)
499  {
500  std::ostringstream l_ss;
501  l_ss << "Level: " << ( rLogMessage.Level == eLogLevel::kCritical ? "Critical" :
502  rLogMessage.Level == eLogLevel::kDebug ? "Debug" :
503  rLogMessage.Level == eLogLevel::kInfo ? "Info" :
504  rLogMessage.Level == eLogLevel::kWarning ? "Warning" : "") << std::endl;
505  l_ss << "Context: " << rLogMessage.Context << std::endl;
506  l_ss << "Message: \"" << rLogMessage.Message << "\"" << std::endl;
507  l_ss << "@ " << rLogMessage.Location << std::endl;
508  return l_ss.str();
509  }
510 
511 
512 
513  friend class CGUICatalogInterface;
515 
516  protected:
517  //----------------------------------------------------------------------//
518  // Variables //
519  //----------------------------------------------------------------------//
520  //------------------------------------------//
521  // Connection
525  //------------------------------------------//
526  // Instrument / Probe-Array information
531  //------------------------------------------//
532  // Instrument / Probe-Array control and status
537  //------------------------------------------//
538  // Results
541  //------------------------------------------//
542  // Others
547 
548  public:
550  : vRemoteBoxTriggerEvent(eRemoteBoxTrigger::kRemoteBoxTrigger), vRemoteBoxBusyLedState(eRemoteBoxBusyLedState::kRemoteBusyLedOff)
551  {}
552 
553  }; // class CInstrumentCatalog
554 
556  {
557  public:
558  //----------------------------------------------------------------------//
559  // Controls and Observers //
560  //----------------------------------------------------------------------//
561  //------------------------------------------//
562  // Connection
566  //------------------------------------------//
567  // Instrument / Probe-Array information
572  //------------------------------------------//
573  // Instrument / Probe-Array control and status
578  //------------------------------------------//
579  // Results
582  //------------------------------------------//
583  // Others
588 
590  : oInstrumentList(rCatalog.vInstrumentList),
591  cInstrumentCurrent(rCatalog.vInstrumentCurrent),
592  cMFC3045SerialPortSettings(rCatalog.vMFC3045SerialPortSettings),
593  oInstrumentInformation(rCatalog.vInstrumentInformation),
594  oInstrumentConfiguration(rCatalog.vInstrumentConfiguration),
595  oProbeArrayInformation(rCatalog.vProbeArrayInformation),
596  oProbeArrayAngle(rCatalog.vProbeArrayAngle),
597  cInstrumentState(rCatalog.vInstrumentState),
598  oInstrumentStatus(rCatalog.vInstrumentStatus),
599  oRemoteBoxTriggerEvent(rCatalog.vRemoteBoxTriggerEvent),
600  cRemoteBoxBusyLedState(rCatalog.vRemoteBoxBusyLedState),
601  oSearchResult(rCatalog.vSearchResult),
602  oMeasurementResults(rCatalog.vMeasurementResults),
603  cNormalizationRequest(rCatalog.vNormalizationRequest),
604  oNormalizationReturned(rCatalog.vNormalizationReturned),
605  oError(rCatalog.vError),
606  oLogMessage(rCatalog.vLogMessage)
607  {}
608  };
609 
611  {
612  public:
613  //----------------------------------------------------------------------//
614  // Controls and Observers //
615  //----------------------------------------------------------------------//
616  //------------------------------------------//
617  // Connection
621  //------------------------------------------//
622  // Instrument / Probe-Array information
627  //------------------------------------------//
628  // Instrument / Probe-Array control and status
633  //------------------------------------------//
634  // Results
637  //------------------------------------------//
638  // Others
643 
645  : cInstrumentList(rCatalog.vInstrumentList),
646  oInstrumentCurrent(rCatalog.vInstrumentCurrent),
647  oMFC3045SerialPortSettings(rCatalog.vMFC3045SerialPortSettings),
648  cInstrumentInformation(rCatalog.vInstrumentInformation),
649  cInstrumentConfiguration(rCatalog.vInstrumentConfiguration),
650  cProbeArrayInformation(rCatalog.vProbeArrayInformation),
651  cProbeArrayAngle(rCatalog.vProbeArrayAngle),
652  oInstrumentState(rCatalog.vInstrumentState),
653  cInstrumentStatus(rCatalog.vInstrumentStatus),
654  cRemoteBoxTriggerEvent(rCatalog.vRemoteBoxTriggerEvent),
655  oRemoteBoxBusyLedState(rCatalog.vRemoteBoxBusyLedState),
656  cSearchResult(rCatalog.vSearchResult),
657  cMeasurementResults(rCatalog.vMeasurementResults),
658  oNormalizationRequest(rCatalog.vNormalizationRequest),
659  cNormalizationReturned(rCatalog.vNormalizationReturned),
660  cError(rCatalog.vError),
661  cLogMessage(rCatalog.vLogMessage)
662  {}
663  };
664 } // namespace MTL
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const sMFC3045SerialPortSettings &rSerialSett)
Definition: InstrumentCatalog.h:358
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const tInstrumentList &rInsList)
Definition: InstrumentCatalog.h:340
MTL::CInstrumentCatalog::sInstrumentConnection::Interface
eConnectionInterface Interface
Definition: InstrumentCatalog.h:41
MTL::CInstrumentCatalog::sMFC3045SerialPortSettings::sMFC3045SerialPortSettings
sMFC3045SerialPortSettings()
Definition: InstrumentCatalog.h:87
MTL::CGUICatalogInterface::oProbeArrayInformation
CObserver< CInstrumentCatalog::sProbeArrayInformation > oProbeArrayInformation
Definition: InstrumentCatalog.h:570
MTL::CInstrumentCatalog::tISO8601DateTime
std::string tISO8601DateTime
Definition: InstrumentCatalog.h:28
MTL::CInstrumentCatalog::sProbeInformation::FreqMax
F64 FreqMax
Definition: InstrumentCatalog.h:134
MTL::CInstrManCatalogInterface::cInstrumentStatus
CControl< CInstrumentCatalog::sInstrumentStatus > cInstrumentStatus
Definition: InstrumentCatalog.h:630
MTL::CInstrumentCatalog::sMeasurementResults::MeasurementList
tMeasurementList MeasurementList
Definition: InstrumentCatalog.h:269
MTL::InstrumentCatalogInterface::CObserver< CInstrumentCatalog::tInstrumentList >
MTL::CInstrumentCatalog::sProbeArrayInformation::sProbeArrayInformation
sProbeArrayInformation()
Definition: InstrumentCatalog.h:156
MTL::CGUICatalogInterface::cRemoteBoxBusyLedState
CControl< CInstrumentCatalog::eRemoteBoxBusyLedState > cRemoteBoxBusyLedState
Definition: InstrumentCatalog.h:577
MTL::CInstrumentCatalog::sProbeArrayInformation::GyroRatio
F64 GyroRatio
Definition: InstrumentCatalog.h:153
MTL::InstrumentCatalogInterface::CVariable< tInstrumentList >
MTL::CInstrumentCatalog::eSerialBaudrate
eSerialBaudrate
Definition: InstrumentCatalog.h:55
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const sInstrumentState &rInsState)
Definition: InstrumentCatalog.h:418
MTL::CInstrumentCatalog::tPosixTime
std::time_t tPosixTime
Definition: InstrumentCatalog.h:27
MTL::CInstrumentCatalog::eNormalizationAccess
eNormalizationAccess
Definition: InstrumentCatalog.h:274
MTL::CInstrManCatalogInterface::cInstrumentConfiguration
CControl< CInstrumentCatalog::sInstrumentConfiguration > cInstrumentConfiguration
Definition: InstrumentCatalog.h:624
MTL::CInstrumentCatalog::sMFC3045SerialPortSettings::operator==
bool operator==(const sMFC3045SerialPortSettings &other) const
Definition: InstrumentCatalog.h:94
MTL::CInstrumentCatalog::sMeasurement::StdDev
F32 StdDev
Definition: InstrumentCatalog.h:261
MTL::CInstrumentCatalog::vMeasurementResults
CVariable< sMeasurementResults > vMeasurementResults
Definition: InstrumentCatalog.h:540
MTL::CGUICatalogInterface::oInstrumentConfiguration
CObserver< CInstrumentCatalog::sInstrumentConfiguration > oInstrumentConfiguration
Definition: InstrumentCatalog.h:569
MTL::CInstrumentCatalog::tInstrumentList
std::vector< sInstrumentConnection > tInstrumentList
Definition: InstrumentCatalog.h:54
MTL::CInstrumentCatalog::sInstrumentState::ProbeSelection
sMeasureProbeSelection ProbeSelection
Definition: InstrumentCatalog.h:215
MTL::CInstrumentCatalog::sLogMessage::Context
std::string Context
Definition: InstrumentCatalog.h:325
MTL::CInstrumentCatalog::sProbeArrayInformation::clear
void clear()
Definition: InstrumentCatalog.h:170
MTL::CInstrumentCatalog::sMeasureProbeSelection::operator!=
bool operator!=(const sMeasureProbeSelection &other) const
Definition: InstrumentCatalog.h:209
MTL::CInstrumentCatalog::sSearchResult::Freq
F64 Freq
Definition: InstrumentCatalog.h:251
MTL::CInstrumentCatalog::sMFC3045SerialPortSettings::StopBits
eSerialStopBits StopBits
Definition: InstrumentCatalog.h:85
MTL::CInstrumentCatalog::tInstrumentLabel
std::string tInstrumentLabel
Definition: InstrumentCatalog.h:30
MTL::CInstrumentCatalog::eErrorLevel
eErrorLevel
Definition: InstrumentCatalog.h:289
MTL::CInstrumentCatalog::sInstrumentState::RepeatMode
eRepeatMode RepeatMode
Definition: InstrumentCatalog.h:214
MTL::CInstrumentCatalog::sMFC3045SerialPortSettings::Parity
eSerialParity Parity
Definition: InstrumentCatalog.h:84
MTL::CInstrumentCatalog::sNormalization::sNormalization
sNormalization()
Definition: InstrumentCatalog.h:285
MTL::CInstrumentCatalog::eSerialHandshake
eSerialHandshake
Definition: InstrumentCatalog.h:76
MTL::CInstrumentCatalog::sMeasurement
Definition: InstrumentCatalog.h:257
MTL::CInstrumentCatalog::sError::Level
eErrorLevel Level
Definition: InstrumentCatalog.h:299
MTL::CInstrumentCatalog::sMeasureProbeSelection::sMeasureProbeSelection
sMeasureProbeSelection(eMeasureSelectionMode SelMode, U8 PrbNb)
Definition: InstrumentCatalog.h:204
MTL::CInstrumentCatalog::eSerialStopBits
eSerialStopBits
Definition: InstrumentCatalog.h:72
MTL::CInstrumentCatalog::CInstrumentCatalog
CInstrumentCatalog()
Definition: InstrumentCatalog.h:549
MTL::CInstrumentCatalog::sError::sError
sError(eErrorLevel Lvl, I32 Cde, std::string Dsc, std::string Src)
Definition: InstrumentCatalog.h:306
MTL::CInstrumentCatalog::sInstrumentConfiguration::sInstrumentConfiguration
sInstrumentConfiguration()
Definition: InstrumentCatalog.h:118
MTL::CInstrumentCatalog::eRepeatMode
eRepeatMode
Definition: InstrumentCatalog.h:189
MTL::CInstrumentCatalog::sInstrumentStatus
Definition: InstrumentCatalog.h:229
CatalogInterface.h
MTL::CGUICatalogInterface::cInstrumentState
CControl< CInstrumentCatalog::sInstrumentState > cInstrumentState
Definition: InstrumentCatalog.h:574
MTL::CInstrManCatalogInterface::oInstrumentCurrent
CObserver< CInstrumentCatalog::sInstrumentConnection > oInstrumentCurrent
Definition: InstrumentCatalog.h:619
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const sProbeArrayInformation &rPAInfo)
Definition: InstrumentCatalog.h:392
MTL::CInstrManCatalogInterface::cMeasurementResults
CControl< CInstrumentCatalog::sMeasurementResults > cMeasurementResults
Definition: InstrumentCatalog.h:636
MTL::CInstrManCatalogInterface::oNormalizationRequest
CObserver< CInstrumentCatalog::sNormalization > oNormalizationRequest
Definition: InstrumentCatalog.h:639
MTL::CInstrumentCatalog::sSearchResult::StdDev
F32 StdDev
Definition: InstrumentCatalog.h:252
MTL::CInstrManCatalogInterface::oInstrumentState
CObserver< CInstrumentCatalog::sInstrumentState > oInstrumentState
Definition: InstrumentCatalog.h:629
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const eRemoteBoxBusyLedState &rRBBusyLedState)
Definition: InstrumentCatalog.h:478
MTL::CInstrManCatalogInterface::oRemoteBoxBusyLedState
CObserver< CInstrumentCatalog::eRemoteBoxBusyLedState > oRemoteBoxBusyLedState
Definition: InstrumentCatalog.h:632
MTL::CInstrManCatalogInterface::oMFC3045SerialPortSettings
CObserver< CInstrumentCatalog::sMFC3045SerialPortSettings > oMFC3045SerialPortSettings
Definition: InstrumentCatalog.h:620
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const sMeasurementResults &rMeasResult)
Definition: InstrumentCatalog.h:452
MTL::CInstrumentCatalog::sMeasurementResults
Definition: InstrumentCatalog.h:267
MTL::CInstrumentCatalog::eInstrumentType
eInstrumentType
Definition: InstrumentCatalog.h:101
MTL::CInstrumentCatalog::sFCAInformation::SerialNumber
std::string SerialNumber
Definition: InstrumentCatalog.h:123
MTL::CInstrumentCatalog::sSearchResult
Definition: InstrumentCatalog.h:250
MTL::CInstrumentCatalog::sInstrumentInformation::SerialNumber
std::string SerialNumber
Definition: InstrumentCatalog.h:109
MTL::CInstrumentCatalog::sProbeInformation::sProbeInformation
sProbeInformation()
Definition: InstrumentCatalog.h:135
MTL::CInstrumentCatalog::eOperatingMode
eOperatingMode
Definition: InstrumentCatalog.h:184
MTL::CInstrumentCatalog::sMeasurement::ProbeNumber
U8 ProbeNumber
Definition: InstrumentCatalog.h:258
MTL::CInstrumentCatalog::sInstrumentConnection::Label
tInstrumentLabel Label
Definition: InstrumentCatalog.h:39
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const sProbeArrayAngle &rPAAngle)
Definition: InstrumentCatalog.h:409
MTL::CInstrumentCatalog::sProbeArrayInformation::FreqMin
F64 FreqMin
Definition: InstrumentCatalog.h:150
MTL::CInstrumentCatalog::sMeasureProbeSelection::SelectionMode
eMeasureSelectionMode SelectionMode
Definition: InstrumentCatalog.h:199
MTL::CInstrumentCatalog::sProbeArrayInformation::FreqCentral
F64 FreqCentral
Definition: InstrumentCatalog.h:152
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const sInstrumentInformation &rInsInfo)
Definition: InstrumentCatalog.h:373
MTL::CGUICatalogInterface::oSearchResult
CObserver< CInstrumentCatalog::sSearchResult > oSearchResult
Definition: InstrumentCatalog.h:580
MTL::CInstrumentCatalog::vRemoteBoxBusyLedState
CVariable< eRemoteBoxBusyLedState > vRemoteBoxBusyLedState
Definition: InstrumentCatalog.h:536
MTL::CInstrumentCatalog::sInstrumentStatus::State
eInstrumentState State
Definition: InstrumentCatalog.h:230
MTL::CGUICatalogInterface::CGUICatalogInterface
CGUICatalogInterface(CInstrumentCatalog &rCatalog)
Definition: InstrumentCatalog.h:589
MTL::CInstrumentCatalog::sProbeArrayInformation::Type
eProbeArrayType Type
Definition: InstrumentCatalog.h:146
MTL::CInstrumentCatalog::sInstrumentConnection::operator==
bool operator==(const sInstrumentConnection &other) const
Definition: InstrumentCatalog.h:45
MTL::CInstrumentCatalog::eSerialDataBits
eSerialDataBits
Definition: InstrumentCatalog.h:65
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const sInstrumentConfiguration &rInsConf)
Definition: InstrumentCatalog.h:386
MTL::CInstrumentCatalog::vError
CVariable< sError > vError
Definition: InstrumentCatalog.h:545
MTL::CInstrumentCatalog::sInstrumentInformation::Description
std::string Description
Definition: InstrumentCatalog.h:110
MTL::CInstrumentCatalog::sLogMessage::sLogMessage
sLogMessage(const eLogLevel &rLevel, const std::string &rContext, const std::string &rMessage, const std::string &rLocation)
Definition: InstrumentCatalog.h:331
MTL::CInstrumentCatalog::sMeasurement::Freq
F64 Freq
Definition: InstrumentCatalog.h:259
MTL::CInstrumentCatalog::sProbeInformation::FreqMin
F64 FreqMin
Definition: InstrumentCatalog.h:133
MTL::CInstrumentCatalog::sInstrumentStatus::SearchProgress
U8 SearchProgress
Definition: InstrumentCatalog.h:231
MTL::CInstrumentCatalog::sNormalization::Access
eNormalizationAccess Access
Definition: InstrumentCatalog.h:283
MTL::CInstrumentCatalog::sLogMessage
Definition: InstrumentCatalog.h:323
MTL::CInstrumentCatalog::sMFC3045SerialPortSettings::operator!=
bool operator!=(const sMFC3045SerialPortSettings &other) const
Definition: InstrumentCatalog.h:98
MTL::CInstrumentCatalog::vInstrumentList
CVariable< tInstrumentList > vInstrumentList
Definition: InstrumentCatalog.h:522
MTL::CInstrumentCatalog::sError
Definition: InstrumentCatalog.h:298
MTL::CInstrumentCatalog::sLogMessage::Level
eLogLevel Level
Definition: InstrumentCatalog.h:324
MTL::InstrumentCatalogInterface::CControl
Definition: Catalog.h:10
MTL::CInstrumentCatalog::sFCAInformation::sFCAInformation
sFCAInformation()
Definition: InstrumentCatalog.h:126
MTL::CInstrumentCatalog::sInstrumentState
Definition: InstrumentCatalog.h:212
MTL::CInstrumentCatalog::sMeasureProbeSelection
Definition: InstrumentCatalog.h:197
MTL::CGUICatalogInterface::oInstrumentInformation
CObserver< CInstrumentCatalog::sInstrumentInformation > oInstrumentInformation
Definition: InstrumentCatalog.h:568
MTL::CInstrumentCatalog::vProbeArrayAngle
CVariable< sProbeArrayAngle > vProbeArrayAngle
Definition: InstrumentCatalog.h:530
MTL::CInstrumentCatalog::eLogLevel
eLogLevel
Definition: InstrumentCatalog.h:317
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const sLogMessage &rLogMessage)
Definition: InstrumentCatalog.h:498
MTL::CInstrumentCatalog::tMeasurementList
std::vector< sMeasurement > tMeasurementList
Definition: InstrumentCatalog.h:266
MTL::CGUICatalogInterface
Definition: InstrumentCatalog.h:555
MTL::CGUICatalogInterface::oLogMessage
CObserver< CInstrumentCatalog::sLogMessage > oLogMessage
Definition: InstrumentCatalog.h:587
MTL::CInstrumentCatalog::sProbeArrayInformation::Description
std::string Description
Definition: InstrumentCatalog.h:148
MTL::CInstrumentCatalog::sMFC3045SerialPortSettings
Definition: InstrumentCatalog.h:81
MTL::CInstrumentCatalog::sError::Code
I32 Code
Definition: InstrumentCatalog.h:300
MTL::CInstrumentCatalog::vProbeArrayInformation
CVariable< sProbeArrayInformation > vProbeArrayInformation
Definition: InstrumentCatalog.h:529
MTL::CInstrumentCatalog::sInstrumentState::FreqMax
F64 FreqMax
Definition: InstrumentCatalog.h:217
MTL::CInstrumentCatalog::vInstrumentConfiguration
CVariable< sInstrumentConfiguration > vInstrumentConfiguration
Definition: InstrumentCatalog.h:528
MTL::CInstrumentCatalog::tInstrumentUniqueID
std::string tInstrumentUniqueID
Definition: InstrumentCatalog.h:31
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const tISO8601DateTime &rDateTime)
Definition: InstrumentCatalog.h:460
MTL
Definition: CPT2026PeripheralROM.h:19
MTL::CInstrumentCatalog::eRemoteBoxBusyLedState
eRemoteBoxBusyLedState
Definition: InstrumentCatalog.h:242
MTL::CInstrumentCatalog::sInstrumentInformation::CalibrationDate
tISO8601DateTime CalibrationDate
Definition: InstrumentCatalog.h:111
MTL::CInstrumentCatalog::sError::Description
std::string Description
Definition: InstrumentCatalog.h:301
MTL::CGUICatalogInterface::cInstrumentCurrent
CControl< CInstrumentCatalog::sInstrumentConnection > cInstrumentCurrent
Definition: InstrumentCatalog.h:564
MTL::CInstrumentCatalog::sMeasurement::sMeasurement
sMeasurement()
Definition: InstrumentCatalog.h:262
MTL::CInstrumentCatalog::vSearchResult
CVariable< sSearchResult > vSearchResult
Definition: InstrumentCatalog.h:539
MTL::CInstrManCatalogInterface::cInstrumentInformation
CControl< CInstrumentCatalog::sInstrumentInformation > cInstrumentInformation
Definition: InstrumentCatalog.h:623
MTL::CInstrumentCatalog::sProbeInformation::ProbeNumber
U8 ProbeNumber
Definition: InstrumentCatalog.h:132
MTL::CInstrumentCatalog::sInstrumentConnection::sInstrumentConnection
sInstrumentConnection(tInstrumentLabel lbl="", tInstrumentUniqueID id="", eConnectionInterface itf=eConnectionInterface::kUnknown)
Definition: InstrumentCatalog.h:42
MTL::CInstrManCatalogInterface::cError
CControl< CInstrumentCatalog::sError > cError
Definition: InstrumentCatalog.h:641
date::operator==
CONSTCD11 bool operator==(const day &x, const day &y) NOEXCEPT
Definition: date.h:1388
MTL::CInstrumentCatalog::sProbeArrayAngle::AngleSensorAvailable
bool AngleSensorAvailable
Definition: InstrumentCatalog.h:311
MTL::CInstrumentCatalog::sMeasurementResults::sMeasurementResults
sMeasurementResults()
Definition: InstrumentCatalog.h:270
MTL::CGUICatalogInterface::cMFC3045SerialPortSettings
CControl< CInstrumentCatalog::sMFC3045SerialPortSettings > cMFC3045SerialPortSettings
Definition: InstrumentCatalog.h:565
MTL::CInstrumentCatalog::sLogMessage::Message
std::string Message
Definition: InstrumentCatalog.h:326
MTL::CInstrumentCatalog::vInstrumentState
CVariable< sInstrumentState > vInstrumentState
Definition: InstrumentCatalog.h:533
MTL::CInstrumentCatalog::vInstrumentInformation
CVariable< sInstrumentInformation > vInstrumentInformation
Definition: InstrumentCatalog.h:527
MTL::CInstrManCatalogInterface::cLogMessage
CControl< CInstrumentCatalog::sLogMessage > cLogMessage
Definition: InstrumentCatalog.h:642
MTL::CInstrumentCatalog::sProbeArrayInformation
Definition: InstrumentCatalog.h:145
MTL::CInstrumentCatalog::eProbeArrayType
eProbeArrayType
Definition: InstrumentCatalog.h:139
MTL::CInstrumentCatalog::sInstrumentInformation::InstrumentConnection
sInstrumentConnection InstrumentConnection
Definition: InstrumentCatalog.h:107
MTL::CGUICatalogInterface::oNormalizationReturned
CObserver< CInstrumentCatalog::sNormalization > oNormalizationReturned
Definition: InstrumentCatalog.h:585
MTL::CInstrumentCatalog::sInstrumentInformation::Type
eInstrumentType Type
Definition: InstrumentCatalog.h:108
MTL::CInstrumentCatalog::eSerialParity
eSerialParity
Definition: InstrumentCatalog.h:69
MTL::CInstrumentCatalog::sMeasureProbeSelection::ProbeNumber
U8 ProbeNumber
Definition: InstrumentCatalog.h:200
MTL::CInstrumentCatalog::sMFC3045SerialPortSettings::Baudrate
eSerialBaudrate Baudrate
Definition: InstrumentCatalog.h:82
MTL::CInstrumentCatalog::sError::sError
sError()
Definition: InstrumentCatalog.h:303
MTL::CInstrumentCatalog::vNormalizationRequest
CVariable< sNormalization > vNormalizationRequest
Definition: InstrumentCatalog.h:543
MTL::CInstrManCatalogInterface::cSearchResult
CControl< CInstrumentCatalog::sSearchResult > cSearchResult
Definition: InstrumentCatalog.h:635
MTL::CInstrumentCatalog::sProbeArrayAngle::Angle
F32 Angle
Definition: InstrumentCatalog.h:312
MTL::CInstrumentCatalog::sMeasureProbeSelection::sMeasureProbeSelection
sMeasureProbeSelection()
Definition: InstrumentCatalog.h:201
MTL::CInstrumentCatalog::vRemoteBoxTriggerEvent
CVariable< eRemoteBoxTrigger > vRemoteBoxTriggerEvent
Definition: InstrumentCatalog.h:535
MTL::CInstrumentCatalog::sProbeInformation
Definition: InstrumentCatalog.h:131
MTL::CInstrumentCatalog::sProbeArrayInformation::NbProbes
size_t NbProbes() const
Definition: InstrumentCatalog.h:168
MTL::CInstrumentCatalog::sInstrumentConnection::UniqueID
tInstrumentUniqueID UniqueID
Definition: InstrumentCatalog.h:40
MTL::CInstrumentCatalog::sMeasurementResults::Timestamp
U64 Timestamp
Definition: InstrumentCatalog.h:268
MTL::CGUICatalogInterface::oProbeArrayAngle
CObserver< CInstrumentCatalog::sProbeArrayAngle > oProbeArrayAngle
Definition: InstrumentCatalog.h:571
MTL::CInstrManCatalogInterface
Definition: InstrumentCatalog.h:610
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const sError &rError)
Definition: InstrumentCatalog.h:489
MTL::CGUICatalogInterface::oError
CObserver< CInstrumentCatalog::sError > oError
Definition: InstrumentCatalog.h:586
MTL::CInstrManCatalogInterface::cNormalizationReturned
CControl< CInstrumentCatalog::sNormalization > cNormalizationReturned
Definition: InstrumentCatalog.h:640
MTL::CInstrumentCatalog::sFCAInformation::FCAFwVersion
U16 FCAFwVersion
Definition: InstrumentCatalog.h:125
MTL::CInstrManCatalogInterface::CInstrManCatalogInterface
CInstrManCatalogInterface(CInstrumentCatalog &rCatalog)
Definition: InstrumentCatalog.h:644
MTL::CInstrManCatalogInterface::cInstrumentList
CControl< CInstrumentCatalog::tInstrumentList > cInstrumentList
Definition: InstrumentCatalog.h:618
MTL::CInstrumentCatalog::sInstrumentStatus::sInstrumentStatus
sInstrumentStatus(eInstrumentState St, U8 SPR)
Definition: InstrumentCatalog.h:235
MTL::CInstrumentCatalog::sInstrumentState::sInstrumentState
sInstrumentState()
Definition: InstrumentCatalog.h:219
MTL::CGUICatalogInterface::oInstrumentStatus
CObserver< CInstrumentCatalog::sInstrumentStatus > oInstrumentStatus
Definition: InstrumentCatalog.h:575
MTL::CInstrumentCatalog::sInstrumentState::NbAveragedMeasurements
U32 NbAveragedMeasurements
Definition: InstrumentCatalog.h:218
MTL::CInstrumentCatalog::vInstrumentStatus
CVariable< sInstrumentStatus > vInstrumentStatus
Definition: InstrumentCatalog.h:534
MTL::CInstrumentCatalog::sError::Source
std::string Source
Definition: InstrumentCatalog.h:302
MTL::CInstrumentCatalog::sInstrumentState::OperatingMode
eOperatingMode OperatingMode
Definition: InstrumentCatalog.h:213
MTL::InstrumentCatalogInterface
Definition: Catalog.h:7
MTL::CInstrumentCatalog::sInstrumentConnection::isEmpty
bool isEmpty() const
Definition: InstrumentCatalog.h:49
MTL::CGUICatalogInterface::cNormalizationRequest
CControl< CInstrumentCatalog::sNormalization > cNormalizationRequest
Definition: InstrumentCatalog.h:584
MTL::CInstrumentCatalog::sMeasureProbeSelection::operator==
bool operator==(const sMeasureProbeSelection &other) const
Definition: InstrumentCatalog.h:207
MTL::CInstrumentCatalog::vLogMessage
CVariable< sLogMessage > vLogMessage
Definition: InstrumentCatalog.h:546
MTL::CInstrumentCatalog::sProbeArrayAngle::sProbeArrayAngle
sProbeArrayAngle()
Definition: InstrumentCatalog.h:313
MTL::CGUICatalogInterface::oMeasurementResults
CObserver< CInstrumentCatalog::sMeasurementResults > oMeasurementResults
Definition: InstrumentCatalog.h:581
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const sSearchResult &rSearchResult)
Definition: InstrumentCatalog.h:445
MTL::CInstrumentCatalog::sMFC3045SerialPortSettings::DataBits
eSerialDataBits DataBits
Definition: InstrumentCatalog.h:83
MTL::Instrument::PT2026Types::kMeasure
@ kMeasure
Definition: PT2026Types.h:528
MTL::CInstrumentCatalog::sSearchResult::sSearchResult
sSearchResult()
Definition: InstrumentCatalog.h:253
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const sNormalization &rNormalization)
Definition: InstrumentCatalog.h:466
MTL::CInstrumentCatalog::eConnectionInterface
eConnectionInterface
Definition: InstrumentCatalog.h:32
MTL::CInstrumentCatalog::sProbeArrayInformation::NormalizationDate
tISO8601DateTime NormalizationDate
Definition: InstrumentCatalog.h:149
MTL::CInstrumentCatalog::sLogMessage::Location
std::string Location
Definition: InstrumentCatalog.h:327
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const sInstrumentStatus &rInsStatus)
Definition: InstrumentCatalog.h:435
MTL::CInstrumentCatalog::sProbeArrayInformation::SerialNumber
std::string SerialNumber
Definition: InstrumentCatalog.h:147
MTL::CInstrumentCatalog::l_Dump
static std::string l_Dump(const sInstrumentConnection &rInsConnection)
Definition: InstrumentCatalog.h:349
MTL::CInstrumentCatalog::sInstrumentInformation
Definition: InstrumentCatalog.h:106
OSDefines.h
Platform Dependent Definitions.
MTL::CInstrManCatalogInterface::cProbeArrayInformation
CControl< CInstrumentCatalog::sProbeArrayInformation > cProbeArrayInformation
Definition: InstrumentCatalog.h:625
MTL::CGUICatalogInterface::oRemoteBoxTriggerEvent
CObserver< CInstrumentCatalog::eRemoteBoxTrigger > oRemoteBoxTriggerEvent
Definition: InstrumentCatalog.h:576
MTL::CInstrManCatalogInterface::cRemoteBoxTriggerEvent
CControl< CInstrumentCatalog::eRemoteBoxTrigger > cRemoteBoxTriggerEvent
Definition: InstrumentCatalog.h:631
MTL::CInstrManCatalogInterface::cProbeArrayAngle
CControl< CInstrumentCatalog::sProbeArrayAngle > cProbeArrayAngle
Definition: InstrumentCatalog.h:626
MTL::CInstrumentCatalog::sInstrumentState::FreqMin
F64 FreqMin
Definition: InstrumentCatalog.h:216
MTL::CInstrumentCatalog::eRemoteBoxTrigger
eRemoteBoxTrigger
Definition: InstrumentCatalog.h:239
MTL::CInstrumentCatalog
Definition: InstrumentCatalog.h:22
MTL::CInstrumentCatalog::sNormalization::Table
tNormalizationTable Table
Definition: InstrumentCatalog.h:284
MTL::CInstrumentCatalog::sMFC3045SerialPortSettings::Handshake
eSerialHandshake Handshake
Definition: InstrumentCatalog.h:86
MTL::CInstrumentCatalog::sInstrumentConnection
Definition: InstrumentCatalog.h:38
MTL::CInstrumentCatalog::sProbeArrayAngle
Definition: InstrumentCatalog.h:310
MTL::CInstrumentCatalog::eMeasureSelectionMode
eMeasureSelectionMode
Definition: InstrumentCatalog.h:193
MTL::CInstrumentCatalog::sProbeArrayInformation::FCAInfo
sFCAInformation FCAInfo
Definition: InstrumentCatalog.h:155
MTL::CInstrumentCatalog::sFCAInformation
Definition: InstrumentCatalog.h:122
MTL::CInstrumentCatalog::sInstrumentInformation::sInstrumentInformation
sInstrumentInformation()
Definition: InstrumentCatalog.h:112
MTL::CInstrumentCatalog::vInstrumentCurrent
CVariable< sInstrumentConnection > vInstrumentCurrent
Definition: InstrumentCatalog.h:523
MTL::CInstrumentCatalog::tNormalizationTable
std::vector< tNormalizationCorrection > tNormalizationTable
Definition: InstrumentCatalog.h:281
MTL::CInstrumentCatalog::sMeasurement::NbValidMeasurements
U32 NbValidMeasurements
Definition: InstrumentCatalog.h:260
MTL::CInstrumentCatalog::eInstrumentState
eInstrumentState
Definition: InstrumentCatalog.h:223
MTL::CInstrumentCatalog::tNormalizationCorrection
F32 tNormalizationCorrection
Definition: InstrumentCatalog.h:280
MTL::CInstrumentCatalog::sFCAInformation::Description
std::string Description
Definition: InstrumentCatalog.h:124
MTL::CInstrumentCatalog::sInstrumentConfiguration
Definition: InstrumentCatalog.h:116
MTL::CInstrumentCatalog::vNormalizationReturned
CVariable< sNormalization > vNormalizationReturned
Definition: InstrumentCatalog.h:544
MTL::CInstrumentCatalog::vMFC3045SerialPortSettings
CVariable< sMFC3045SerialPortSettings > vMFC3045SerialPortSettings
Definition: InstrumentCatalog.h:524
MTL::CGUICatalogInterface::oInstrumentList
CObserver< CInstrumentCatalog::tInstrumentList > oInstrumentList
Definition: InstrumentCatalog.h:563
MTL::CInstrumentCatalog::sNormalization
Definition: InstrumentCatalog.h:282
MTL::CInstrumentCatalog::sProbeArrayInformation::FreqMax
F64 FreqMax
Definition: InstrumentCatalog.h:151
MTL::CInstrumentCatalog::sProbeArrayInformation::ProbeList
std::vector< sProbeInformation > ProbeList
Definition: InstrumentCatalog.h:154
MTL::CInstrumentCatalog::sLogMessage::sLogMessage
sLogMessage()
Definition: InstrumentCatalog.h:328
MTL::CInstrumentCatalog::sInstrumentConfiguration::AcquisitionPeriod
F64 AcquisitionPeriod
Definition: InstrumentCatalog.h:117
MTL::CInstrumentCatalog::sInstrumentStatus::sInstrumentStatus
sInstrumentStatus()
Definition: InstrumentCatalog.h:232