ngscopeclient 0.1-dev+51fbda87c
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Static Protected Attributes | List of all members
SCPIBERT Class Referenceabstract

An SCPI-based BERT. More...

#include <SCPIBERT.h>

Inheritance diagram for SCPIBERT:
Inheritance graph
[legend]
Collaboration diagram for SCPIBERT:
Collaboration graph
[legend]

Public Types

typedef std::shared_ptr< SCPIBERT >(* BERTCreateProcType) (SCPITransport *)
 
- Public Types inherited from BERT
enum  Pattern {
  PATTERN_PRBS7 , PATTERN_PRBS9 , PATTERN_PRBS11 , PATTERN_PRBS15 ,
  PATTERN_PRBS23 , PATTERN_PRBS31 , PATTERN_CUSTOM , PATTERN_CLOCK_DIV2 ,
  PATTERN_CLOCK_DIV32 , PATTERN_AUTO
}
 Set of patterns we can generate or accept. More...
 
- Public Types inherited from Instrument
enum  InstrumentTypes {
  INST_OSCILLOSCOPE = 0x01 , INST_DMM = 0x02 , INST_PSU = 0x04 , INST_FUNCTION = 0x08 ,
  INST_RF_GEN = 0x10 , INST_LOAD = 0x20 , INST_BERT = 0x40 , INST_MISC = 0x80 ,
  INST_SWITCH_MATRIX = 0x100
}
 

Public Member Functions

virtual void PostCtorInit ()=0
 Does any initialization that can't happen during the constructor. More...
 
- Public Member Functions inherited from BERT
virtual unsigned int GetInstrumentTypes () const override
 Returns a bitfield describing the set of instrument types that this instrument supports. More...
 
virtual Pattern GetTxPattern (size_t i)=0
 Gets the currently selected transmit pattern for a channel. More...
 
virtual void SetTxPattern (size_t i, Pattern pattern)=0
 Sets the transmit pattern for the selected channel. More...
 
virtual std::vector< PatternGetAvailableTxPatterns (size_t i)=0
 Gets the list of available transmit patterns for a channel. More...
 
virtual bool IsCustomPatternPerChannel ()=0
 Determines whether custom patterns are settable per channel, or shared by the whole device. More...
 
virtual size_t GetCustomPatternLength ()=0
 Returns the number of bits in a custom pattern (may change with line rate) More...
 
virtual void SetGlobalCustomPattern (uint64_t pattern)=0
 Sets the global custom pattern (only valid if IsCustomPatternPerChannel returns false) More...
 
virtual uint64_t GetGlobalCustomPattern ()=0
 Gets the global custom pattern (only valid if IsCustomPatternPerChannel returns false) More...
 
virtual bool GetTxInvert (size_t i)=0
 Gets the transmit invert flag for a channel. More...
 
virtual void SetTxInvert (size_t i, bool invert)=0
 Sets the transmit invert flag for a channel. More...
 
virtual std::vector< float > GetAvailableTxDriveStrengths (size_t i)=0
 Gets the list of available drive strengths (in volts) for a channel. More...
 
virtual float GetTxDriveStrength (size_t i)=0
 Get the drive strength for a channel. More...
 
virtual void SetTxDriveStrength (size_t i, float drive)=0
 Set the drive strength for a channel. More...
 
virtual void SetTxEnable (size_t i, bool enable)=0
 Sets the transmit enable flag for a channel. More...
 
virtual bool GetTxEnable (size_t i)=0
 Gets the transmit enable flag for a channel. More...
 
virtual float GetTxPreCursor (size_t i)=0
 Get the pre-cursor equalizer tap for a channel. More...
 
virtual void SetTxPreCursor (size_t i, float precursor)=0
 Set the pre-cursor equalizer tap for a channel. More...
 
virtual float GetTxPostCursor (size_t i)=0
 Get the post-cursor equalizer tap for a channel. More...
 
virtual void SetTxPostCursor (size_t i, float postcursor)=0
 Set the post-cursor equalizer tap for a channel. More...
 
virtual bool GetRxInvert (size_t i)=0
 Gets the transmit invert flag for a channel. More...
 
virtual void SetRxInvert (size_t i, bool invert)=0
 Sets the receive invert flag for a channel. More...
 
virtual bool GetRxCdrLockState (size_t i)=0
 Gets the RX CDR lock state (true=lock, false=unlock) More...
 
virtual bool HasRxCTLE ()=0
 Determines whether the input buffer has a continuous-time linear equalizer. More...
 
virtual std::vector< float > GetRxCTLEGainSteps ()=0
 Get the list of available RX CTLE gain values (in dB) More...
 
virtual size_t GetRxCTLEGainStep (size_t i)=0
 Gets the currently selected RX CTLE gain index. More...
 
virtual void SetRxCTLEGainStep (size_t i, size_t step)=0
 Sets the RX CTLE gain index. More...
 
virtual Pattern GetRxPattern (size_t i)=0
 Gets the currently selected receive pattern for a channel. More...
 
virtual void SetRxPattern (size_t i, Pattern pattern)=0
 Sets the receive pattern for the selected channel. More...
 
virtual std::vector< PatternGetAvailableRxPatterns (size_t i)=0
 Gets the list of available receive patterns for a channel. More...
 
virtual int64_t GetExpectedBathtubCaptureTime (size_t i)
 Returns the expected time, in femtoseconds, to complete a bathtub scan with the current settings. More...
 
virtual int64_t GetExpectedEyeCaptureTime (size_t i)
 Returns the expected time, in femtoseconds, to complete an eye scan with the current settings. More...
 
virtual void MeasureHBathtub (size_t i)=0
 Acquires a bathtub curve. More...
 
virtual void MeasureEye (size_t i)=0
 Acquires an eye pattern. More...
 
virtual void SetBERIntegrationLength (int64_t uis)=0
 Set the integration period for BER measurements. More...
 
virtual int64_t GetBERIntegrationLength ()=0
 Get the integration period for BER measurements. More...
 
virtual void SetBERSamplingPoint (size_t i, int64_t dx, float dy)=0
 Set the sampling point for BER measurements. More...
 
virtual void GetBERSamplingPoint (size_t i, int64_t &dx, float &dy)=0
 Get the sampling point for BER measurements. More...
 
virtual bool IsHBathtubScanInProgress (size_t i)
 Returns true if a horizontal bathtub scan is in progress. More...
 
virtual bool IsEyeScanInProgress (size_t i)
 Returns true if an eye scan is in progress. More...
 
virtual float GetScanProgress (size_t i)
 Gets the estimated completion status (0-1) of the current scan. More...
 
virtual bool HasConfigurableScanDepth ()
 Determines whether this instrument has configurable integration depth for eye / bathtub scans. More...
 
virtual std::vector< int64_t > GetScanDepths (size_t i)
 Returns the list of integration depths for eye / bathtub scans. More...
 
virtual int64_t GetScanDepth (size_t i)
 Get the configured scan depth for a channel, in UIs per sample/pixel. More...
 
virtual void SetScanDepth (size_t i, int64_t depth)
 Set the configured scan depth for a channel. More...
 
virtual bool HasRefclkIn ()=0
 Returns true if this instrument has a reference clock input port. More...
 
virtual bool HasRefclkOut ()=0
 Returns true if this instrument has a reference clock output port. More...
 
virtual size_t GetRefclkOutMux ()=0
 Gets the currently selected reference clock output mux setting. More...
 
virtual void SetRefclkOutMux (size_t i)=0
 Sets the reference clock output mux. More...
 
virtual std::vector< std::string > GetRefclkOutMuxNames ()=0
 Gets the list of available reference clock mux settings. More...
 
virtual int64_t GetRefclkOutFrequency ()=0
 Gets the currently selected refclk out frequency, in Hz. More...
 
virtual int64_t GetRefclkInFrequency ()=0
 Gets the refclk in frequency, in Hz, required to generate the currently selected data rate. More...
 
virtual bool IsDataRatePerChannel ()=0
 Determines whether the TX/RX clock is a per-instrument or per-channel setting. More...
 
virtual int64_t GetDataRate (size_t i)=0
 Gets the currently selected line rate (in symbols/sec) More...
 
virtual void SetDataRate (size_t i, int64_t rate)=0
 Sets the data rate (in symbols/sec) More...
 
virtual std::vector< int64_t > GetAvailableDataRates ()=0
 Gets the list of available data rates, in symbols/sec. More...
 
virtual void SetUseExternalRefclk (bool external)=0
 Sets the reference clock source (internal or external) More...
 
virtual bool GetUseExternalRefclk ()=0
 Sets the reference clock source. More...
 
- Public Member Functions inherited from Instrument
virtual unsigned int GetInstrumentTypes () const =0
 Returns a bitfield describing the set of instrument types that this instrument supports. More...
 
virtual std::string GetName () const =0
 
virtual std::string GetVendor () const =0
 
virtual std::string GetSerial () const =0
 
virtual std::string GetTransportConnectionString ()=0
 Gets the connection string for our transport. More...
 
virtual std::string GetTransportName ()=0
 Gets the name of our transport. More...
 
virtual uint32_t GetInstrumentTypesForChannel (size_t i) const =0
 Returns a bitfield describing the set of instrument types that a given channel supports. More...
 
size_t GetChannelCount () const
 Gets the number of channels (of any type) this instrument has.
 
InstrumentChannelGetChannel (size_t i) const
 Gets a given channel on the instrument. More...
 
virtual std::string GetChannelDisplayName (size_t i)
 Gets the hardware display name for a channel. This is an arbitrary user-selected string. More...
 
virtual void SetChannelDisplayName (size_t i, std::string name)
 Sets the hardware display name for a channel. This is an arbitrary user-selected string. More...
 
InstrumentChannelGetChannelByDisplayName (const std::string &name)
 Gets a channel given the display name.
 
InstrumentChannelGetChannelByHwName (const std::string &name)
 Gets a channel given the hardware name.
 
virtual bool AcquireData ()=0
 Pull data from the instrument. More...
 
virtual YAML::Node SerializeConfiguration (IDTable &table) const
 Serializes this instrument's configuration to a YAML node. More...
 
virtual void LoadConfiguration (int version, const YAML::Node &node, IDTable &idmap)
 Load instrument and channel configuration from a save file. More...
 
virtual void PreLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap, ConfigWarningList &warnings)
 Parse a limited subset of instrument configuration but do not apply it. More...
 
- Public Member Functions inherited from SCPIInstrument
 SCPIInstrument (SCPITransport *transport, bool identify=true)
 
virtual std::string GetTransportConnectionString ()
 Gets the connection string for our transport. More...
 
virtual std::string GetTransportName ()
 Gets the name of our transport. More...
 
virtual std::string GetName () const
 
virtual std::string GetVendor () const
 
virtual std::string GetSerial () const
 
virtual std::string GetDriverName () const =0
 
- Public Member Functions inherited from SCPIDevice
 SCPIDevice (SCPITransport *transport, bool identify=true)
 
SCPITransportGetTransport () const
 

Static Public Member Functions

static void DoAddDriverClass (std::string name, BERTCreateProcType proc)
 
static void EnumDrivers (std::vector< std::string > &names)
 
static std::shared_ptr< SCPIBERTCreateBERT (std::string driver, SCPITransport *transport)
 
- Static Public Member Functions inherited from BERT
static std::string GetPatternName (Pattern pat)
 Converts a Pattern enum into a strnig. More...
 
static Pattern GetPatternOfName (std::string name)
 Converts a string name into a Pattern enum. More...
 

Protected Types

typedef std::map< std::string, BERTCreateProcType > BERTCreateMapType
 

Static Protected Attributes

static BERTCreateMapType m_bertcreateprocs
 

Additional Inherited Members

- Public Attributes inherited from Instrument
std::string m_nickname
 Optional user-selected nickname of the instrument. More...
 
- Protected Member Functions inherited from BERT
void DoSerializeConfiguration (YAML::Node &node, IDTable &table)
 Serializes this BERT's configuration to a YAML node. More...
 
void DoLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap)
 Load instrument and channel configuration from a save file. More...
 
void DoPreLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap, ConfigWarningList &list)
 Validate instrument and channel configuration from a save file. More...
 
- Protected Member Functions inherited from SCPIInstrument
void DoSerializeConfiguration (YAML::Node &node, IDTable &table)
 
- Protected Attributes inherited from Instrument
std::list< sigc::slot< void(YAML::Node &, IDTable &)> > m_serializers
 List of methods which need to be called to serialize this node's configuration.
 
std::list< sigc::slot< void(int, const YAML::Node &, IDTable &)> > m_loaders
 List of methods which need to be called to deserialize this node's configuration.
 
std::list< sigc::slot< void(int, const YAML::Node &, IDTable &, ConfigWarningList &)> > m_preloaders
 List of methods which need to be called to pre-load this node's configuration.
 
std::vector< InstrumentChannel * > m_channels
 Set of all channels on this instrument.
 
- Protected Attributes inherited from SCPIDevice
SCPITransportm_transport
 
std::string m_vendor
 
std::string m_model
 
std::string m_serial
 
std::string m_fwVersion
 

Detailed Description

An SCPI-based BERT.

Member Function Documentation

◆ PostCtorInit()

virtual void SCPIBERT::PostCtorInit ( )
pure virtual

Does any initialization that can't happen during the constructor.

Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.


The documentation for this class was generated from the following files: