ngscopeclient 0.1-dev+51fbda87c
|
#include <SCPIBERT.h>
Public Types | |
typedef std::shared_ptr< SCPIBERT >(* | BERTCreateProcType) (SCPITransport *) |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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< Pattern > | GetAvailableTxPatterns (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< Pattern > | GetAvailableRxPatterns (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... | |
![]() | |
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. | |
InstrumentChannel * | GetChannel (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... | |
InstrumentChannel * | GetChannelByDisplayName (const std::string &name) |
Gets a channel given the display name. | |
InstrumentChannel * | GetChannelByHwName (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... | |
![]() | |
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 |
![]() | |
SCPIDevice (SCPITransport *transport, bool identify=true) | |
SCPITransport * | GetTransport () 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< SCPIBERT > | CreateBERT (std::string driver, SCPITransport *transport) |
![]() | |
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 | |
![]() | |
std::string | m_nickname |
Optional user-selected nickname of the instrument. More... | |
![]() | |
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... | |
![]() | |
void | DoSerializeConfiguration (YAML::Node &node, IDTable &table) |
![]() | |
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. | |
![]() | |
SCPITransport * | m_transport |
std::string | m_vendor |
std::string | m_model |
std::string | m_serial |
std::string | m_fwVersion |
An SCPI-based BERT.
|
pure virtual |
Does any initialization that can't happen during the constructor.
Implemented in AntikernelLabsTriggerCrossbar, and MultiLaneBERT.