30#ifndef SCPIRFSignalGenerator_h
31#define SCPIRFSignalGenerator_h
46 typedef std::shared_ptr<SCPIRFSignalGenerator> (*VSGCreateProcType)(
SCPITransport*);
47 static void DoAddDriverClass(std::string name, VSGCreateProcType proc);
49 static void EnumDrivers(std::vector<std::string>& names);
50 static std::shared_ptr<SCPIRFSignalGenerator> CreateRFSignalGenerator(std::string driver,
SCPITransport* transport);
54 typedef std::map< std::string, VSGCreateProcType > VSGCreateMapType;
55 static VSGCreateMapType m_vsgcreateprocs;
58#define VSG_INITPROC(T) \
59 static std::shared_ptr<SCPIRFSignalGenerator> CreateInstance(SCPITransport* transport) \
60 { return std::make_shared<T>(transport); } \
61 virtual std::string GetDriverName() const override \
62 { return GetDriverNameInternal(); }
64#define AddRFSignalGeneratorDriverClass(T) SCPIRFSignalGenerator::DoAddDriverClass(T::GetDriverNameInternal(), T::CreateInstance)
An RF waveform generator which creates a carrier and optionally modulates it.
Definition: RFSignalGenerator.h:37
An SCPI-based oscilloscope.
Definition: SCPIInstrument.h:38
An SCPI-based RF signal generator.
Definition: SCPIRFSignalGenerator.h:38
Abstraction of a transport layer for moving SCPI data between endpoints.
Definition: SCPITransport.h:47