30#ifndef SCPIMultimeter_h
31#define SCPIMultimeter_h
46 typedef std::shared_ptr<SCPIMultimeter> (*MeterCreateProcType)(
SCPITransport*);
47 static void DoAddDriverClass(
const std::string& name, MeterCreateProcType
proc);
49 static void EnumDrivers(std::vector<std::string>&
names);
57 typedef std::map< std::string, MeterCreateProcType > MeterCreateMapType;
58 static MeterCreateMapType m_metercreateprocs;
62#define METER_INITPROC(T) \
63 static std::shared_ptr<SCPIMultimeter> CreateInstance(SCPITransport* transport) \
64 { return std::make_shared<T>(transport); } \
65 virtual std::string GetDriverName() const override \
66 { return GetDriverNameInternal(); }
68#define AddMultimeterDriverClass(T) SCPIMultimeter::DoAddDriverClass(T::GetDriverNameInternal(), T::CreateInstance); SCPIInstrument::DoAddDriverClass(T::GetDriverNameInternal(), T::GetDriverSupportedModels)
Definition AcceleratorBuffer.h:204
A multimeter.
Definition Multimeter.h:48
An SCPI-based oscilloscope.
Definition SCPIInstrument.h:72
An SCPI-based multimeter.
Definition SCPIMultimeter.h:38
Abstraction of a transport layer for moving SCPI data between endpoints.
Definition SCPITransport.h:53