30#ifndef SCPIFunctionGenerator_h
31#define SCPIFunctionGenerator_h
46 typedef std::shared_ptr<SCPIFunctionGenerator> (*GeneratorCreateProcType)(
SCPITransport*);
47 static void DoAddDriverClass(
const std::string& name, GeneratorCreateProcType
proc);
49 static void EnumDrivers(std::vector<std::string>&
names);
54 typedef std::map< std::string, GeneratorCreateProcType > GeneratorCreateMapType;
55 static GeneratorCreateMapType m_gencreateprocs;
59#define GENERATOR_INITPROC(T) \
60 static std::shared_ptr<SCPIFunctionGenerator> CreateInstance(SCPITransport* transport) \
61 { return std::make_shared<T>(transport); } \
62 virtual std::string GetDriverName() const override \
63 { return GetDriverNameInternal(); }
65#define AddFunctionGeneratorDriverClass(T) SCPIFunctionGenerator::DoAddDriverClass(T::GetDriverNameInternal(), T::CreateInstance); SCPIInstrument::DoAddDriverClass(T::GetDriverNameInternal(), T::GetDriverSupportedModels)
Definition AcceleratorBuffer.h:204
A baseband waveform generator.
Definition FunctionGenerator.h:46
An SCPI-based function generator.
Definition SCPIFunctionGenerator.h:38
An SCPI-based oscilloscope.
Definition SCPIInstrument.h:72
Abstraction of a transport layer for moving SCPI data between endpoints.
Definition SCPITransport.h:53