157std::ostream &
operator<<(std::ostream & Stream,
const sStatusRegister & RegDef);
158std::ostream &
operator<<(std::ostream & Stream,
const RegisterList & RegList);
159std::ostream &
operator<<(std::ostream & Stream,
const StatusValues & StatusList);
160std::ostream &
operator<<(std::ostream & Stream,
const uStatusByte & StatusByte);
161std::ostream &
operator<<(std::ostream & Stream,
const uStandardEvent & StdEventReg);
162std::ostream &
operator<<(std::ostream & Stream,
const uOPERation & OperReg);
163std::ostream &
operator<<(std::ostream & Stream,
const uQUEStionable & QuestReg);
244template <
class DataType>
279 return (!
operator==(other));
293template <
class DataType>
302template <
template<
class>
class ParmType>
330std::ostream &
operator<<(std::ostream & Stream,
const sVersion & Version);
386template <
template<
class>
class ParmType>
407 return (!
operator==(other));
410std::ostream &
operator<<(std::ostream & Stream,
const sAveraging<uParm> & AvgParm);
411std::ostream &
operator<<(std::ostream & Stream,
const sAveraging<sBoundedParm> & AvgParm);
424template <
template<
class>
class ParmType>
455 return (!
operator==(other));
459std::ostream &
operator<<(std::ostream & Stream,
const sInputTrigger<uParm> & TrigParm);
460std::ostream &
operator<<(std::ostream & Stream,
const sInputTrigger<sBoundedParm> & TrigParm);
477template <
template<
class>
class ParmType>
487 sRange(
bool A = { }, ParmType<tFlux> R = { })
504 return (!
operator==(other));
507std::ostream &
operator<<(std::ostream & Stream,
const sRange<uParm> & RangeParm);
508std::ostream &
operator<<(std::ostream & Stream,
const sRange<sBoundedParm> & RangeParm);
524 sFile(
size_t S = 0, std::string P =
"", std::string T =
"")
534std::ostream &
operator<<(std::ostream & Stream,
const sFile & FileInfo);
565 std::time_t
seconds(
void)
const;
639std::ostream &
operator<<(std::ostream & Stream,
const sArbitraryMeasurements & MeasSpec);
640std::ostream &
operator<<(std::ostream & Stream,
const sMeasurementConditions & MeasCond);
Abstract IEEE488 instrument class: type definitions.
Platform Dependent Definitions.
unsigned long long U64
64-bit unsigned integer.
unsigned char U8
Unsigned byte.
float F32
32-bit floating-point number.
int I32
32-bit signed integer.
unsigned int U32
32-bit unsigned integer.
double F64
64-bit floating-point number.
unsigned short U16
16-bit unsigned integer.
Timestamp for a measurement.
static const U64 NS_PER_SEC
std::time_t seconds(void) const
Fetch the number of seconds.
bool operator!=(CAbsoluteTimestamp other)
Inequality operator.
bool operator==(CAbsoluteTimestamp other)
Equality operator.
CAbsoluteTimestamp(std::time_t Seconds=0, U64 Nanoseconds=0)
Constructor.
void clear(void)
Clear to default values (zeroes)
CAbsoluteTimestamp & operator=(const CAbsoluteTimestamp &Value)
Assignment operator.
U64 nanoseconds(void) const
Fetch the number of nanoseconds.
List of divisors, one per measurement unit.
List of errors returned by the instrument.
List of flux density values.
bool GetEstimatedPeriod(F64 &Period)
Estimate the measurement period from this timestamp list, by means of a least-squares fit.
List of measurement units.
List of SCPI status registers.
List of values returned for several SCPI status registers.
eStatusRegisterType
Enumeration of SCPI status register types.
@ kStatusEnable
Enable register.
@ kStatusCondition
Condition register.
@ kStatusEvent
Event register.
CAbsoluteTimestamp operator-(CAbsoluteTimestamp a, CAbsoluteTimestamp b)
Timestamp subtraction operator.
eInstrModel
Enumeration of instrument (THM1176-LF, THM1176-MF, ...) model.
std::ostream & operator<<(std::ostream &Stream, const eStatusRegisterSet &RegSet)
Status register set stream output.
DataType uParm
Parameter template, with only current value.
F32 tFlux
Flux density value, as 32-bit floating-point number.
eCommunicationFormat
Enumeration of possible formats for returned data.
@ kComFormatInteger
Binary (32-bit integers)
@ kComFormatPacked2Byte
Binary packed: first field value as I32, remainder deltas as I16.
@ kComFormatPacked1Byte
Binary packed: first field value as I32, remainder deltas as I8.
@ kComFormatAscii
Human-legible text.
std::vector< sFile > tFileList
List of directory entries.
eModelRevision
THM1176 type A or B.
CAbsoluteTimestamp operator+(CAbsoluteTimestamp a, CAbsoluteTimestamp b)
Timestamp addition operator.
eInputTriggerSource
Enumeration of possible trigger sources.
@ kInputTrigSrcTimer
Timed trigger: start measurement at regular intervals.
@ kInputTrigSrcImmediate
Immediate trigger: start measurement immediately after previous one completes.
@ kInputTrigSrcBus
Bus trigger: start measurement upon USB trigger message.
eUnits
Enumeration of possible measurement units.
@ kMHzp
Equivalent proton NMR resonant frequency, in Mega-Hertz.
eStatusRegisterSet
Enumeration of SCPI status register sets.
@ kStatusByte
Status Byte.
@ kStatusQuestionableStatusRegister
Questionable Status Register.
@ kStandardEventStatusRegister
Standard Event Status Register.
@ kStatusOperationStatusRegister
Operation Status Register.
Specify the measurement data to be returned.
bool Bx
Return the flux density X-component.
bool operator==(sArbitraryMeasurements other) const
Equality operator.
bool Temperature
Return the sensor temperature.
bool operator!=(sArbitraryMeasurements other) const
Inequality operator.
bool By
Return the flux density Y-component.
bool Bz
Return the flux density Z-component.
void clear()
Clear to default values.
sArbitraryMeasurements(bool Bx=false, bool By=false, bool Bz=false, bool Temp=false, bool Time=false, U32 NMeas=0)
Constructor.
bool Timestamp
Return the timestamp.
U32 NoMeasurements
Return this number of measurements.
sAveraging(ParmType< U16 > NPts={ })
Constructor.
bool operator!=(sAveraging other) const
Inequality operator.
ParmType< U16 > NoPoints
Number of points in block average.
void clear(void)
Clear to default (zero).
bool operator==(sAveraging other) const
Equality operator.
DataType Val
Current value.
sBoundedParm(DataType Val=0, DataType Min=0, DataType Max=0, DataType Def=0)
Constructor.
bool operator!=(sBoundedParm other) const
Inequality operator.
sBoundedParm & operator=(const DataType &scalar)
Set value, min, max and default to given value.
void clear(void)
Clear the parameter to default values.
bool operator==(sBoundedParm other) const
Equality operator.
DataType Def
Default value.
Error returned by the instrument.
bool operator==(sError other) const
Equality operator.
sError(I32 Code=0, std::string Description="", std::string Context="")
Constructor.
std::string Context
SCPI commands being executed at time of error.
bool operator!=(sError other) const
Inequality operator.
std::string Description
Error description.
Sample parameter template.
ParmType< F32 > ExampleF32
Example of an F32 element.
ParmType< F64 > ExampleF64
Example of an F64 element.
bool ExampleState
Example of a boolean element.
Directory entry in the instrument's file system.
void clear()
Clear to default values.
std::string Path
File path.
bool operator==(sFile other) const
Equality operator.
bool operator!=(sFile other) const
Inequality operator.
std::string Type
File type ("ASCII" or "BINARY").
sFile(size_t S=0, std::string P="", std::string T="")
Constructor.
size_t Size
File size, in bytes.
Instrument's identification string - parsed version.
struct sVersion FirmwareVersion
Version numbers of firmware.
std::string Manufacturer
Manufacturer name ("Metrolab Technology SA")
struct sVersion ElectronicsVersion
Version numbers of electronics.
U32 SerialNumber
Serial number.
bool operator!=(sIdentifier other) const
Inequality operator.
struct sVersion ProbeVersion
Version numbers of probe.
std::string Model
Model name (e.g. "THM1176-MF")
bool operator==(sIdentifier other) const
Equality oeprator.
void clear(void)
Clear to default.
enum eInstrModel InstrModel
Enumerator of instrument model.
sIdentifier(std::string Mfr="", std::string Mdl="", U32 SN=0, struct sVersion EVsn={ }, struct sVersion PVsn={ }, struct sVersion FVsn={ }, eModelRevision ThmRev=kA, eInstrModel InstrMdl=eInstrModel::kUnknown)
Constructor.
enum eModelRevision ModelRevision
Revision of Model.
bool UseCalibration
Use calibration data.
tFlux Range
Current range setting.
bool operator!=(sMeasurementConditions other) const
Inequality operator.
sMeasurementConditions(sAveraging< uParm > AvgParms={ }, sInputTrigger< uParm > TrigParms={ }, bool UseCal=false, tFlux RangeIn=0.)
Constructor.
void clear()
Clear to default values.
sAveraging< uParm > AveragingParms
Averaging parameters.
sInputTrigger< uParm > TriggerParms
Trigger parameters.
bool operator==(sMeasurementConditions other) const
Equality operator.
void clear(void)
Clear to default values.
bool Auto
Auto-ranging enabled.
bool operator!=(sRange other) const
Inequality operator.
bool operator==(sRange other) const
Equality operator.
sRange(bool A={ }, ParmType< tFlux > R={ })
Constructor.
ParmType< tFlux > Range
Measurement range, if auto-ranging is not enabled.
eStatusRegisterSet Set
SCPI register set.
eStatusRegisterType Type
SCPI register type.
sStatusRegister(eStatusRegisterSet S={ }, eStatusRegisterType T={ })
Constructor.
Major and minor version numbers.
bool operator!=(sVersion other) const
Inequality operator.
void clear(void)
Clear to default (zeroes).
std::string Name
Version name.
bool operator==(sVersion other) const
Equality operator.
U8 Minor
Minor version number.
sVersion(U8 Maj=0, U8 Min=0)
Constructor.
U8 Major
Major version number.
Access the Operation Status Register as bit fields.
U16 RANGing
Changing range.
U16 CALibrating
Measuring zero-offset.
U16 WaitingForTRIGger
Waiting for trigger.
U16 MEASuring
Measuring magnetic field strength.
Access the Questionable Status Register as bit fields.
U16 NA10_15
Not Available.
U16 Frequency
Acquisition buffer or the timed trigger has been overrun.
U16 Overrange
Measurement was over-range.
Access the Standard Event Status Register as bit fields.
U8 CommandError
Error in preceding command.
U8 DeviceDependentError
Errors specific to the THM1176, including internal errors.
U8 ExecutionError
Error detected during command execution.
U8 PowerOn
THM1176 has been powered up.
U8 OperationComplete
*OPC has flagged operation complete
U8 QueryError
Error in preceding query.
Access the Status Byte as bit fields.
U8 EAV
Error Available in Error / Event Queue.
U8 OSB
OPERation status summary bit.
U8 RQS
ReQuest for Service.
U8 ESB
Standard Event Status Register summary bit.
U8 QSB
QUEStionable status summary bit.
Union to access the Operation Status Register as integer or bit fields.
struct MTL::Instrument::THM1176Types::uOPERation::sOPERation OPERation
Access the Operation Status Register as bit fields.
U16 RawOPER
Access the Operation Status Register as unsigned integer.
Union to access the Questionable Status Register as integer or bit fields.
U16 RawQUES
Access the Questionable Status Register as unsigned integer.
struct MTL::Instrument::THM1176Types::uQUEStionable::sQUEStionable QUEStionable
Access the Questionable Status Register as bit fields.
Union to access the Standard Event Status Register as integer or bit fields.
struct MTL::Instrument::THM1176Types::uStandardEvent::sStandardEvent StandardEvent
Access the Standard Event Status Register as bit fields.
U16 RawSE
Access the Standard Event Status Register as unsigned integer.
Union to access the Status Byte as integer or bit fields.
struct MTL::Instrument::THM1176Types::uStatusByte::sStatusByte StatusByte
Access the Status Byte as bit fields.
U16 RawSTB
Access the Status Byte as unsigned integer.