OcaSignalGenerator#
This document describes the device side implementation of OcaSignalGenerator. This class is documented in the AES70 standard as:
Multiwaveform signal generator with optional sweep capability.
Overview#
- ClassID: 1.1.1.17
- Header:
aes70/device/OcaSignalGenerator.hpp
- Namespace:
aes70::device
- Inheritance: aes70::device::OcaActuator, aes70::device::OcaWorker, aes70::device::OcaRoot, aes70::device::object
Class Declaration#
The device side implementation has the following signature.
namespace aes70::device
{
template <class Implementation>
class OcaSignalGenerator : public OcaActuator<Implementation>
{
};
}
The template argument Implementation
may implement the following methods.
Note
The signatures given here are just one possibility and that most methods are optional. Implement only those methods which make sense in the context of your device. See the documentation in Implementing AES70 Classes for more details.
class MyOcaSignalGeneratorImplementation
{
// Methods defined by OcaSignalGenerator
std::tuple<OcaFrequency,OcaFrequency,OcaFrequency> GetFrequency1();
void SetFrequency1(OcaFrequency Frequency);
std::tuple<OcaFrequency,OcaFrequency,OcaFrequency> GetFrequency2();
void SetFrequency2(OcaFrequency frequency);
std::tuple<OcaDBz,OcaDBz,OcaDBz> GetLevel();
void SetLevel(OcaDBz Level);
OcaWaveformType GetWaveform();
void SetWaveform(OcaWaveformType waveform);
OcaSweepType GetSweepType();
void SetSweepType(OcaSweepType sweepType);
std::tuple<OcaTimeInterval,OcaTimeInterval,OcaTimeInterval> GetSweepTime();
void SetSweepTime(OcaTimeInterval sweepTime);
OcaBoolean GetSweepRepeat();
void SetSweepRepeat(OcaBoolean sweepRepeat);
OcaBoolean GetGenerating();
void Start();
void Stop();
void SetMultiple(OcaParameterMask Mask, OcaFrequency Frequency1, OcaFrequency Frequency2, OcaDBz Level, OcaWaveformType Waveform, OcaSweepType SweepType, OcaTimeInterval SweepTime, OcaBoolean SweepRepeat);
// Methods defined by OcaWorker
OcaBoolean GetEnabled();
void SetEnabled(OcaBoolean enabled);
OcaPortID AddPort(OcaString Name, OcaIODirection Mode);
void DeletePort(OcaPortID ID);
OcaList<OcaPort> GetPorts();
OcaString GetPortName(OcaPortID PortID);
void SetPortName(OcaPortID ID, OcaString Name);
OcaString GetLabel();
void SetLabel(OcaString label);
OcaONo GetOwner();
OcaTimeInterval GetLatency();
void SetLatency(OcaTimeInterval latency);
std::tuple<OcaRolePath,OcaONoPath> GetPath();
OcaMap<OcaPortID, OcaPortClockMapEntry> GetPortClockMap();
void SetPortClockMap(OcaMap<OcaPortID, OcaPortClockMapEntry> Map);
OcaPortClockMapEntry GetPortClockMapEntry(OcaPortID ID);
void SetPortClockMapEntry(OcaPortID PortID, OcaPortClockMapEntry Entry);
void DeletePortClockMapEntry(OcaPortID ID);
// Methods defined by OcaRoot
OcaBoolean GetLockable();
void SetLockNoReadWrite();
void Unlock();
OcaString GetRole();
void SetLockNoWrite();
OcaLockState GetLockState();
};