30#ifndef SCPIPowerSupply_h
31#define SCPIPowerSupply_h
46 typedef std::shared_ptr<SCPIPowerSupply> (*PowerCreateProcType)(
SCPITransport*);
47 static void DoAddDriverClass(
const std::string& name, PowerCreateProcType
proc);
49 static void EnumDrivers(std::vector<std::string>&
names);
54 typedef std::map< std::string, PowerCreateProcType > PowerCreateMapType;
55 static PowerCreateMapType m_powercreateprocs;
58#define POWER_INITPROC(T) \
59 static std::shared_ptr<SCPIPowerSupply> CreateInstance(SCPITransport* transport) \
60 { return std::make_shared<T>(transport); } \
61 virtual std::string GetDriverName() const override \
62 { return GetDriverNameInternal(); }
64#define AddPowerSupplyDriverClass(T) SCPIPowerSupply::DoAddDriverClass(T::GetDriverNameInternal(), T::CreateInstance); SCPIInstrument::DoAddDriverClass(T::GetDriverNameInternal(), T::GetDriverSupportedModels)
Definition AcceleratorBuffer.h:204
A generic power supply.
Definition PowerSupply.h:37
An SCPI-based oscilloscope.
Definition SCPIInstrument.h:72
An SCPI-based power supply.
Definition SCPIPowerSupply.h:38
Abstraction of a transport layer for moving SCPI data between endpoints.
Definition SCPITransport.h:53