30#ifndef SCPIMultimeter_h
31#define SCPIMultimeter_h
46 typedef std::shared_ptr<SCPIMultimeter> (*MeterCreateProcType)(
SCPITransport*);
47 static void DoAddDriverClass(std::string name, MeterCreateProcType proc);
49 static void EnumDrivers(std::vector<std::string>& names);
50 static std::shared_ptr<SCPIMultimeter> CreateMultimeter(std::string driver,
SCPITransport* transport);
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)
A multimeter.
Definition: Multimeter.h:48
An SCPI-based oscilloscope.
Definition: SCPIInstrument.h:38
An SCPI-based multimeter.
Definition: SCPIMultimeter.h:38
Abstraction of a transport layer for moving SCPI data between endpoints.
Definition: SCPITransport.h:47