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

An AKL-TXB1 trigger crossbar. More...

#include <AntikernelLabsTriggerCrossbar.h>

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

Public Member Functions

 AntikernelLabsTriggerCrossbar (SCPITransport *transport)
 Initialize the driver. More...
 
virtual void PostCtorInit () override
 Does any initialization that can't happen during the constructor. More...
 
virtual bool AcquireData () override
 Pull data from the instrument. More...
 
virtual unsigned int GetInstrumentTypes () const override
 Returns a bitfield describing the set of instrument types that this instrument supports. More...
 
virtual uint32_t GetInstrumentTypesForChannel (size_t i) const override
 Returns a bitfield describing the set of instrument types that a given channel supports. More...
 
virtual void SetChannelDisplayName (size_t i, std::string name) override
 Sets the hardware display name for a channel. This is an arbitrary user-selected string. More...
 
virtual Pattern GetTxPattern (size_t i) override
 Gets the currently selected transmit pattern for a channel. More...
 
virtual void SetTxPattern (size_t i, Pattern pattern) override
 Sets the transmit pattern for the selected channel. More...
 
virtual std::vector< PatternGetAvailableTxPatterns (size_t i) override
 Gets the list of available transmit patterns for a channel. More...
 
virtual bool IsCustomPatternPerChannel () override
 Determines whether custom patterns are settable per channel, or shared by the whole device. More...
 
virtual size_t GetCustomPatternLength () override
 Returns the number of bits in a custom pattern (may change with line rate) More...
 
virtual void SetGlobalCustomPattern (uint64_t pattern) override
 Sets the global custom pattern (only valid if IsCustomPatternPerChannel returns false) More...
 
virtual uint64_t GetGlobalCustomPattern () override
 Gets the global custom pattern (only valid if IsCustomPatternPerChannel returns false) More...
 
virtual bool GetTxInvert (size_t i) override
 Gets the transmit invert flag for a channel. More...
 
virtual void SetTxInvert (size_t i, bool invert) override
 Sets the transmit invert flag for a channel. More...
 
virtual std::vector< float > GetAvailableTxDriveStrengths (size_t i) override
 Gets the list of available drive strengths (in volts) for a channel. More...
 
virtual float GetTxDriveStrength (size_t i) override
 Get the drive strength for a channel. More...
 
virtual void SetTxDriveStrength (size_t i, float drive) override
 Set the drive strength for a channel. More...
 
virtual void SetTxEnable (size_t i, bool enable) override
 Sets the transmit enable flag for a channel. More...
 
virtual bool GetTxEnable (size_t i) override
 Gets the transmit enable flag for a channel. More...
 
virtual float GetTxPreCursor (size_t i) override
 Get the pre-cursor equalizer tap for a channel. More...
 
virtual void SetTxPreCursor (size_t i, float precursor) override
 Set the pre-cursor equalizer tap for a channel. More...
 
virtual float GetTxPostCursor (size_t i) override
 Get the post-cursor equalizer tap for a channel. More...
 
virtual void SetTxPostCursor (size_t i, float postcursor) override
 Set the post-cursor equalizer tap for a channel. More...
 
virtual bool GetRxInvert (size_t i) override
 Gets the transmit invert flag for a channel. More...
 
virtual void SetRxInvert (size_t i, bool invert) override
 Sets the receive invert flag for a channel. More...
 
virtual bool HasRxCTLE () override
 Determines whether the input buffer has a continuous-time linear equalizer. More...
 
virtual std::vector< float > GetRxCTLEGainSteps () override
 Get the list of available RX CTLE gain values (in dB) More...
 
virtual size_t GetRxCTLEGainStep (size_t i) override
 Gets the currently selected RX CTLE gain index. More...
 
virtual void SetRxCTLEGainStep (size_t i, size_t step) override
 Sets the RX CTLE gain index. More...
 
virtual Pattern GetRxPattern (size_t i) override
 Gets the currently selected receive pattern for a channel. More...
 
virtual void SetRxPattern (size_t i, Pattern pattern) override
 Sets the receive pattern for the selected channel. More...
 
virtual std::vector< PatternGetAvailableRxPatterns (size_t i) override
 Gets the list of available receive patterns for a channel. More...
 
virtual bool GetRxCdrLockState (size_t i) override
 Gets the RX CDR lock state (true=lock, false=unlock) More...
 
virtual void MeasureHBathtub (size_t i) override
 Acquires a bathtub curve. More...
 
virtual void MeasureEye (size_t i) override
 Acquires an eye pattern. More...
 
virtual void SetBERIntegrationLength (int64_t uis) override
 Set the integration period for BER measurements. More...
 
virtual int64_t GetBERIntegrationLength () override
 Get the integration period for BER measurements. More...
 
virtual void SetBERSamplingPoint (size_t i, int64_t dx, float dy) override
 Set the sampling point for BER measurements. More...
 
virtual void GetBERSamplingPoint (size_t i, int64_t &dx, float &dy) override
 Get the sampling point for BER measurements. More...
 
virtual bool HasConfigurableScanDepth () override
 Determines whether this instrument has configurable integration depth for eye / bathtub scans. More...
 
virtual std::vector< int64_t > GetScanDepths (size_t i) override
 Returns the list of integration depths for eye / bathtub scans. More...
 
virtual int64_t GetScanDepth (size_t i) override
 Get the configured scan depth for a channel, in UIs per sample/pixel. More...
 
virtual void SetScanDepth (size_t i, int64_t depth) override
 Set the configured scan depth for a channel. More...
 
virtual int64_t GetExpectedBathtubCaptureTime (size_t i) override
 Returns the expected time, in femtoseconds, to complete a bathtub scan with the current settings. More...
 
virtual int64_t GetExpectedEyeCaptureTime (size_t i) override
 Returns the expected time, in femtoseconds, to complete an eye scan with the current settings. More...
 
virtual bool IsEyeScanInProgress (size_t i) override
 Returns true if an eye scan is in progress. More...
 
virtual float GetScanProgress (size_t i) override
 Gets the estimated completion status (0-1) of the current scan. More...
 
virtual bool IsHBathtubScanInProgress (size_t i) override
 Returns true if a horizontal bathtub scan is in progress. More...
 
virtual size_t GetRefclkOutMux () override
 Gets the currently selected reference clock output mux setting. More...
 
virtual void SetRefclkOutMux (size_t i) override
 Sets the reference clock output mux. More...
 
virtual std::vector< std::string > GetRefclkOutMuxNames () override
 Gets the list of available reference clock mux settings. More...
 
virtual int64_t GetRefclkOutFrequency () override
 Gets the currently selected refclk out frequency, in Hz. More...
 
virtual int64_t GetRefclkInFrequency () override
 Gets the refclk in frequency, in Hz, required to generate the currently selected data rate. More...
 
virtual bool IsDataRatePerChannel () override
 Determines whether the TX/RX clock is a per-instrument or per-channel setting. More...
 
virtual int64_t GetDataRate (size_t i) override
 Gets the currently selected line rate (in symbols/sec) More...
 
virtual void SetDataRate (size_t i, int64_t rate) override
 Sets the data rate (in symbols/sec) More...
 
virtual std::vector< int64_t > GetAvailableDataRates () override
 Gets the list of available data rates, in symbols/sec. More...
 
virtual void SetUseExternalRefclk (bool external) override
 Sets the reference clock source (internal or external) More...
 
virtual bool GetUseExternalRefclk () override
 Sets the reference clock source. More...
 
virtual bool HasRefclkIn () override
 Returns true if this instrument has a reference clock input port. More...
 
virtual bool HasRefclkOut () override
 Returns true if this instrument has a reference clock output port. More...
 
virtual void SetMuxPath (size_t dstchan, size_t srcchan) override
 Sets the mux selector for an output channel. More...
 
virtual void SetMuxPathOpen (size_t dstchan) override
 Removes a mux path for an output channel. More...
 
virtual bool MuxHasConfigurableDrive (size_t dstchan) override
 Checks if an output channel has configurable voltage level. More...
 
virtual float GetMuxOutputDrive (size_t dstchan) override
 Gets the drive level of an output channel. More...
 
virtual void SetMuxOutputDrive (size_t dstchan, float v) override
 Sets the drive level of an output channel. More...
 
virtual bool MuxHasConfigurableThreshold (size_t dstchan) override
 Checks if an input channel has configurable voltage level. More...
 
virtual float GetMuxInputThreshold (size_t dstchan) override
 Gets the threshold level of an input channel. More...
 
virtual void SetMuxInputThreshold (size_t dstchan, float v) override
 Sets the threshold level of an input channel. More...
 
virtual bool IsChannelEnabled (size_t i) override
 Checks if a channel is enabled in hardware. More...
 
virtual void EnableChannel (size_t i) override
 Turn a channel on, given the index. More...
 
virtual void DisableChannel (size_t i) override
 Turn a channel off, given the index. More...
 
virtual OscilloscopeChannel::CouplingType GetChannelCoupling (size_t i) override
 Gets the coupling used for an input channel. More...
 
virtual void SetChannelCoupling (size_t i, OscilloscopeChannel::CouplingType type) override
 Sets the coupling used for an input channel. More...
 
virtual std::vector< OscilloscopeChannel::CouplingType > GetAvailableCouplings (size_t i) override
 Gets the set of legal coupling values for an input channel. More...
 
virtual double GetChannelAttenuation (size_t i) override
 Gets the probe attenuation for an input channel. More...
 
virtual void SetChannelAttenuation (size_t i, double atten) override
 Sets the probe attenuation used for an input channel. More...
 
virtual unsigned int GetChannelBandwidthLimit (size_t i) override
 Gets the bandwidth limit for an input channel. More...
 
virtual void SetChannelBandwidthLimit (size_t i, unsigned int limit_mhz) override
 Sets the bandwidth limit for an input channel. More...
 
virtual OscilloscopeChannelGetExternalTrigger () override
 Returns the external trigger input channel, if we have one. More...
 
virtual float GetChannelVoltageRange (size_t i, size_t stream) override
 Gets the range of the current channel configuration. More...
 
virtual void SetChannelVoltageRange (size_t i, size_t stream, float range) override
 Sets the range of the current channel configuration. More...
 
virtual float GetChannelOffset (size_t i, size_t stream) override
 Gets the offset, in volts, for a given channel. More...
 
virtual void SetChannelOffset (size_t i, size_t stream, float offset) override
 Sets the offset for a given channel. More...
 
virtual Oscilloscope::TriggerMode PollTrigger () override
 Checks the curent trigger status. More...
 
virtual void PushTrigger () override
 Pushes changes made to m_trigger to the instrument. More...
 
virtual void PullTrigger () override
 Updates m_trigger with any changes made from the instrument side. More...
 
virtual void Start () override
 Starts the instrument in continuous trigger mode. More...
 
virtual void StartSingleTrigger () override
 Arms the trigger for a single acquistion. More...
 
virtual void Stop () override
 Stops triggering. More...
 
virtual void ForceTrigger () override
 Forces a single acquisition as soon as possible. More...
 
virtual bool IsTriggerArmed () override
 Checks if the trigger is currently armed. More...
 
virtual std::vector< uint64_t > GetSampleRatesNonInterleaved () override
 Get the legal sampling rates (in Hz) for this scope in all-channels mode. More...
 
virtual std::vector< uint64_t > GetSampleRatesInterleaved () override
 Get the legal sampling rates (in Hz) for this scope in combined-channels mode. More...
 
virtual uint64_t GetSampleRate () override
 Gets the current sampling rate (in Hz) of this scope. More...
 
virtual bool IsInterleaving () override
 Checks if the scope is currently combining channels. More...
 
virtual bool SetInterleaving (bool combine) override
 Configures the scope to combine channels. More...
 
virtual bool CanInterleave () override
 Returns true if we have no interleave conflicts, false if we have conflicts. More...
 
virtual std::set< InterleaveConflictGetInterleaveConflicts () override
 
virtual std::vector< uint64_t > GetSampleDepthsNonInterleaved () override
 Get the legal memory depths for this scope in all-channels mode. More...
 
virtual std::vector< uint64_t > GetSampleDepthsInterleaved () override
 Get the legal memory depths for this scope in combined-channels mode. More...
 
virtual uint64_t GetSampleDepth () override
 Gets the current sample depth of this scope. More...
 
virtual void SetSampleDepth (uint64_t depth) override
 Sets the sample depth of the scope. More...
 
virtual void SetSampleRate (uint64_t rate) override
 Sets the sample rate of the scope, in Hz. More...
 
virtual void SetTriggerOffset (int64_t offset) override
 Sets the trigger offset. More...
 
virtual int64_t GetTriggerOffset () override
 Gets the trigger offset. More...
 
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< 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
 
virtual unsigned int GetInstrumentTypes () const override
 Returns a bitfield describing the set of instrument types that this instrument supports. More...
 
virtual void SetMuxPath (size_t dstchan, size_t srcchan)=0
 Sets the mux selector for an output channel. More...
 
virtual void SetMuxPathOpen (size_t dstchan)=0
 Removes a mux path for an output channel. More...
 
virtual bool MuxHasConfigurableDrive (size_t dstchan)=0
 Checks if an output channel has configurable voltage level. More...
 
virtual float GetMuxOutputDrive (size_t dstchan)=0
 Gets the drive level of an output channel. More...
 
virtual void SetMuxOutputDrive (size_t dstchan, float v)=0
 Sets the drive level of an output channel. More...
 
virtual bool MuxHasConfigurableThreshold (size_t dstchan)=0
 Checks if an input channel has configurable voltage level. More...
 
virtual float GetMuxInputThreshold (size_t dstchan)=0
 Gets the threshold level of an input channel. More...
 
virtual void SetMuxInputThreshold (size_t dstchan, float v)=0
 Sets the threshold level of an input channel. More...
 
- Public Member Functions inherited from SCPIOscilloscope
virtual std::string IDPing ()
 Returns the instrument's identification string. More...
 
- Public Member Functions inherited from Oscilloscope
virtual std::string IDPing ()=0
 Returns the instrument's identification string. More...
 
virtual void FlushConfigCache ()
 Instruments are allowed to cache configuration settings to reduce round trip queries to the device. More...
 
virtual bool IsOffline ()
 Checks if the instrument is currently online. More...
 
OscilloscopeChannelGetOscilloscopeChannel (size_t i)
 Gets a channel by index. More...
 
virtual bool IsChannelEnabled (size_t i)=0
 Checks if a channel is enabled in hardware. More...
 
virtual void EnableChannel (size_t i)=0
 Turn a channel on, given the index. More...
 
virtual bool CanEnableChannel (size_t i)
 Determines if a channel can be enabled. More...
 
virtual void DisableChannel (size_t i)=0
 Turn a channel off, given the index. More...
 
int GetEnabledChannelCount ()
 Returns the number of enabled channels for this oscilloscope. More...
 
OscilloscopeChannelGetOscilloscopeChannelByHwName (const std::string &name)
 Gets a channel given the hardware name.
 
virtual OscilloscopeChannel::CouplingType GetChannelCoupling (size_t i)=0
 Gets the coupling used for an input channel. More...
 
virtual void SetChannelCoupling (size_t i, OscilloscopeChannel::CouplingType type)=0
 Sets the coupling used for an input channel. More...
 
virtual std::vector< OscilloscopeChannel::CouplingType > GetAvailableCouplings (size_t i)=0
 Gets the set of legal coupling values for an input channel. More...
 
virtual double GetChannelAttenuation (size_t i)=0
 Gets the probe attenuation for an input channel. More...
 
virtual void SetChannelAttenuation (size_t i, double atten)=0
 Sets the probe attenuation used for an input channel. More...
 
virtual std::vector< unsigned int > GetChannelBandwidthLimiters (size_t i)
 Gets the set of available bandwidth limiters for an input channel. More...
 
virtual unsigned int GetChannelBandwidthLimit (size_t i)=0
 Gets the bandwidth limit for an input channel. More...
 
virtual void SetChannelBandwidthLimit (size_t i, unsigned int limit_mhz)=0
 Sets the bandwidth limit for an input channel. More...
 
virtual OscilloscopeChannelGetExternalTrigger ()=0
 Returns the external trigger input channel, if we have one. More...
 
virtual float GetChannelVoltageRange (size_t i, size_t stream)=0
 Gets the range of the current channel configuration. More...
 
virtual void SetChannelVoltageRange (size_t i, size_t stream, float range)=0
 Sets the range of the current channel configuration. More...
 
virtual bool CanAutoZero (size_t i)
 Determines if a channel has a probe connected which supports the "auto zero" feature. More...
 
virtual void AutoZero (size_t i)
 Performs an "auto zero" cycle on the attached active probe, if supported by the hardware. More...
 
virtual bool CanDegauss (size_t i)
 Determines if a channel has a probe connected which supports the "degauss" feature. More...
 
virtual bool ShouldDegauss (size_t i)
 Determines if a channel requires a degauss cycle (if supported) More...
 
virtual void Degauss (size_t i)
 Performs an "degauss" cycle on the attached active probe, if supported by the hardware. More...
 
virtual bool CanAverage (size_t i)
 Determines if the channel supports hardware averaging. More...
 
virtual size_t GetNumAverages (size_t i)
 Returns the number of averages the channel is configured for. More...
 
virtual void SetNumAverages (size_t i, size_t navg)
 Sets the number of hardware averages to use. More...
 
virtual std::string GetProbeName (size_t i)
 Returns the name of the probe connected to the scope, if possible. More...
 
virtual bool HasInputMux (size_t i)
 Checks if a channel has an input multiplexer. More...
 
virtual size_t GetInputMuxSetting (size_t i)
 Gets the setting for a channel's input mux (if it has one) More...
 
virtual std::vector< std::string > GetInputMuxNames (size_t i)
 Gets names for the input mux ports of a channel. More...
 
virtual void SetInputMux (size_t i, size_t select)
 Sets the input mux for a channel. More...
 
virtual float GetChannelOffset (size_t i, size_t stream)=0
 Gets the offset, in volts, for a given channel. More...
 
virtual void SetChannelOffset (size_t i, size_t stream, float offset)=0
 Sets the offset for a given channel. More...
 
virtual bool CanInvert (size_t i)
 Checks if a channel is capable of hardware polarity inversion. More...
 
virtual void Invert (size_t i, bool invert)
 Enables hardware polarity inversion for a channel, if supported. More...
 
virtual bool IsInverted (size_t i)
 Checks if hardware polarity inversion is enabled for a channel. More...
 
virtual Oscilloscope::TriggerMode PollTrigger ()=0
 Checks the curent trigger status. More...
 
virtual bool PeekTriggerArmed ()
 Checks if the trigger is armed directly on the instrument, without altering internal state or touching caches. More...
 
bool WaitForTrigger (int timeout)
 Block until a trigger happens or a timeout elapses. More...
 
void SetTrigger (Trigger *trigger)
 Sets a new trigger on the instrument and pushes changes. More...
 
virtual void PushTrigger ()=0
 Pushes changes made to m_trigger to the instrument. More...
 
TriggerGetTrigger (bool sync=false)
 Gets the current trigger. More...
 
virtual std::vector< std::string > GetTriggerTypes ()
 Gets a list of triggers this instrument supports. More...
 
virtual void PullTrigger ()=0
 Updates m_trigger with any changes made from the instrument side. More...
 
virtual void Start ()=0
 Starts the instrument in continuous trigger mode. More...
 
virtual void StartSingleTrigger ()=0
 Arms the trigger for a single acquistion. More...
 
virtual void Stop ()=0
 Stops triggering. More...
 
virtual void ForceTrigger ()=0
 Forces a single acquisition as soon as possible. More...
 
virtual bool IsTriggerArmed ()=0
 Checks if the trigger is currently armed. More...
 
virtual void EnableTriggerOutput ()
 Enables the trigger output, configuring a shared auxiliary port for this purpose if needed. More...
 
virtual std::vector< uint64_t > GetSampleRatesNonInterleaved ()=0
 Get the legal sampling rates (in Hz) for this scope in all-channels mode. More...
 
virtual std::vector< uint64_t > GetSampleRatesInterleaved ()=0
 Get the legal sampling rates (in Hz) for this scope in combined-channels mode. More...
 
virtual uint64_t GetSampleRate ()=0
 Gets the current sampling rate (in Hz) of this scope. More...
 
virtual bool IsInterleaving ()=0
 Checks if the scope is currently combining channels. More...
 
virtual bool SetInterleaving (bool combine)=0
 Configures the scope to combine channels. More...
 
virtual bool CanInterleave ()
 Returns true if we have no interleave conflicts, false if we have conflicts. More...
 
virtual std::set< InterleaveConflictGetInterleaveConflicts ()=0
 
virtual std::vector< uint64_t > GetSampleDepthsNonInterleaved ()=0
 Get the legal memory depths for this scope in all-channels mode. More...
 
virtual std::vector< uint64_t > GetSampleDepthsInterleaved ()=0
 Get the legal memory depths for this scope in combined-channels mode. More...
 
virtual uint64_t GetSampleDepth ()=0
 Gets the current sample depth of this scope. More...
 
virtual void SetSampleDepth (uint64_t depth)=0
 Sets the sample depth of the scope. More...
 
virtual void SetSampleRate (uint64_t rate)=0
 Sets the sample rate of the scope, in Hz. More...
 
virtual bool IsSamplingModeAvailable (SamplingMode mode)
 Returns true if the requested sampling mode is available with the current instrument configuration. More...
 
virtual SamplingMode GetSamplingMode ()
 Gets the current sampling mode of the instrument. More...
 
virtual void SetSamplingMode (SamplingMode mode)
 Sets the current sampling mode of the instrument. More...
 
virtual void SetUseExternalRefclk (bool external)
 Configures the instrument's clock source. More...
 
virtual void SetTriggerOffset (int64_t offset)=0
 Sets the trigger offset. More...
 
virtual int64_t GetTriggerOffset ()=0
 Gets the trigger offset. More...
 
virtual void SetDeskewForChannel (size_t channel, int64_t skew)
 Sets the deskew setting for a channel. More...
 
virtual int64_t GetDeskewForChannel (size_t channel)
 Gets the deskew setting for a channel. More...
 
virtual std::vector< AnalogBank > GetAnalogBanks ()
 Gets the analog banks for this instrument. More...
 
virtual AnalogBank GetAnalogBank (size_t channel)
 Gets the bank containing a given channel. More...
 
virtual bool IsADCModeConfigurable ()
 Returns true if the ADC is configurable, false if it can only run in one mode. More...
 
virtual std::vector< std::string > GetADCModeNames (size_t channel)
 Gets the names of the ADC modes for the bank a given channel is located in. More...
 
virtual size_t GetADCMode (size_t channel)
 Gets the ADC mode for a channel. More...
 
virtual void SetADCMode (size_t channel, size_t mode)
 Sets the ADC mode for a channel. More...
 
virtual std::vector< DigitalBank > GetDigitalBanks ()
 Gets the digital channel banks for this instrument. More...
 
virtual DigitalBank GetDigitalBank (size_t channel)
 Gets the bank containing a given channel. More...
 
virtual bool IsDigitalHysteresisConfigurable ()
 Checks if digital input hysteresis is configurable or fixed. More...
 
virtual bool IsDigitalThresholdConfigurable ()
 Checks if digital input threshold is configurable or fixed. More...
 
virtual float GetDigitalHysteresis (size_t channel)
 Gets the hysteresis for a digital input. More...
 
virtual float GetDigitalThreshold (size_t channel)
 Gets the threshold for a digital input. More...
 
virtual void SetDigitalHysteresis (size_t channel, float level)
 Sets the hysteresis for a digital input. More...
 
virtual void SetDigitalThreshold (size_t channel, float level)
 Gets the threshold for a digital input. More...
 
virtual void SetSpan (int64_t span)
 Sets the span for frequency-domain channels. More...
 
virtual int64_t GetSpan ()
 Gets the span for frequency-domain channels. More...
 
virtual void SetCenterFrequency (size_t channel, int64_t freq)
 Sets the center frequency for frequency-domain channels. More...
 
virtual int64_t GetCenterFrequency (size_t channel)
 Gets the center frequency for a frequency-domain channel. More...
 
virtual void SetResolutionBandwidth (int64_t rbw)
 Gets the resolution bandwidth for frequency-domain channels. More...
 
virtual int64_t GetResolutionBandwidth ()
 Gets the resolution bandwidth for frequency-domain channels. More...
 
virtual bool HasFrequencyControls ()
 Returns true if the instrument has at least one frequency-domain channel. More...
 
virtual bool HasResolutionBandwidth ()
 Returns true if the instrument has a resolution bandwidth setting. More...
 
virtual bool HasTimebaseControls ()
 Returns true if the instrument has at least one time-domain channel. More...
 
bool HasPendingWaveforms ()
 
void ClearPendingWaveforms ()
 Discard any pending waveforms that haven't yet been processed.
 
size_t GetPendingWaveformCount ()
 
virtual bool PopPendingWaveform ()
 Pops the queue of pending waveforms and updates each channel with a new waveform.
 
virtual bool IsAppendingToWaveform ()
 Checks if we are appending to the existing waveform or creating a new one.
 
bool HasPendingDiagnosticLogMessages ()
 
std::string PopPendingDiagnosticLogMessage ()
 
std::map< std::string, FilterParameter * > & GetDiagnosticsValues ()
 
bool FreeWaveformPools ()
 Free all waveforms in our pool to reclaim memory. More...
 
void AddWaveformToAnalogPool (WaveformBase *w)
 
void AddWaveformToDigitalPool (WaveformBase *w)
 

Static Public Member Functions

static std::string GetDriverNameInternal ()
 Returns the constant driver name "akl.crossbar".
 
- Static Public Member Functions inherited from SCPIBERT
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...
 
- Static Public Member Functions inherited from Oscilloscope
static void Convert8BitSamples (float *pout, const int8_t *pin, float gain, float offset, size_t count)
 Converts 8-bit ADC samples to floating point.
 
static void Convert8BitSamplesGeneric (float *pout, const int8_t *pin, float gain, float offset, size_t count)
 Generic backend for Convert8BitSamples()
 
static void ConvertUnsigned8BitSamples (float *pout, const uint8_t *pin, float gain, float offset, size_t count)
 Converts Unsigned 8-bit ADC samples to floating point.
 
static void ConvertUnsigned8BitSamplesGeneric (float *pout, const uint8_t *pin, float gain, float offset, size_t count)
 Generic backend for ConvertUnsigned8BitSamples()
 
static void Convert16BitSamples (float *pout, const int16_t *pin, float gain, float offset, size_t count)
 Converts 16-bit ADC samples to floating point.
 
static void Convert16BitSamplesGeneric (float *pout, const int16_t *pin, float gain, float offset, size_t count)
 Converts raw ADC samples to floating point.
 
static void DoAddDriverClass (std::string name, CreateProcType proc)
 
static void EnumDrivers (std::vector< std::string > &names)
 
static std::shared_ptr< OscilloscopeCreateOscilloscope (std::string driver, SCPITransport *transport)
 

Protected Member Functions

ssize_t GetScanHalfWidth (size_t i)
 Returns the number of points on either side of the center for a full eye/bathtub scan. 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 Member Functions inherited from SwitchMatrix
void DoSerializeConfiguration (YAML::Node &node, IDTable &table)
 Serializes this oscilloscope's configuration to a YAML node.
 
void DoLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap)
 Load instrument and channel configuration from a save file.
 
void DoPreLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap, ConfigWarningList &list)
 Validate instrument and channel configuration from a save file.
 
- Protected Member Functions inherited from Oscilloscope
void ChannelsDownloadStarted ()
 Helper method called by drivers to reset all channels to "waiting to download" state.
 
void ChannelsDownloadStatusUpdate (size_t ch, InstrumentChannel::DownloadState state, float progress)
 Helper method called by drivers to set one channel's download status and update its download progress. Be aware that there is a measurement on ngscopeclient UI of the time spent between the download start and the progress of the last enabled channel. This measurement is used to decide whether to display a progress bar or not. This download speed evaluation method only works if enabled channels are download sequencially in increasing numeric order or if all channels are downloaded at the same speed. More...
 
void ChannelsDownloadFinished ()
 Helper method called by drivers when waveform download is finished to reset all channels to "no download" state.
 
void DoSerializeConfiguration (YAML::Node &node, IDTable &table)
 Serializes this oscilloscope's configuration to a YAML node.
 
void DoLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap)
 Load instrument and channel configuration from a save file.
 
void DoPreLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap, ConfigWarningList &list)
 Validate instrument and channel configuration from a save file.
 
void AddDiagnosticLog (std::string message)
 
UniformAnalogWaveformAllocateAnalogWaveform (const std::string &name)
 
SparseDigitalWaveformAllocateDigitalWaveform (const std::string &name)
 

Protected Attributes

size_t m_triggerInChannelBase
 
size_t m_triggerBidirChannelBase
 
size_t m_triggerOutChannelBase
 
size_t m_txChannelBase
 
size_t m_rxChannelBase
 
float m_trigDrive [12]
 
float m_trigThreshold [12]
 
Pattern m_txPattern [2]
 
bool m_txInvert [2]
 
bool m_rxInvert [2]
 
float m_txDrive [2]
 
bool m_txEnable [2]
 
float m_txPreCursor [2]
 
float m_txPostCursor [2]
 
int64_t m_scanDepth [2]
 
uint64_t m_txDataRate [2]
 
uint64_t m_rxDataRate [2]
 
int64_t m_rxClkDiv [2]
 
bool m_loadInProgress
 True if in a constructor or similar initialization path (getting hardware state) More...
 
std::atomic< bool > m_bathtubScanInProgress
 
std::atomic< bool > m_eyeScanInProgress
 
std::atomic< size_t > m_activeScanChannel
 
std::atomic< float > m_activeScanProgress
 
bool m_laChannelEnabled [2]
 
size_t m_maxLogicDepth
 
bool m_triggerArmed
 
bool m_triggerOneShot
 
int64_t m_triggerOffsetSamples
 
- 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
 
- Protected Attributes inherited from SCPIOscilloscope
bool m_triggerArmed
 
bool m_triggerOneShot
 
std::recursive_mutex m_cacheMutex
 
- Protected Attributes inherited from Oscilloscope
std::list< SequenceSet > m_pendingWaveforms
 
std::mutex m_pendingWaveformsMutex
 
std::recursive_mutex m_mutex
 
std::deque< std::string > m_diagnosticLogMessages
 
std::map< std::string, FilterParameter * > m_diagnosticValues
 
Triggerm_trigger
 
WaveformPool m_analogWaveformPool
 
WaveformPool m_digitalWaveformPool
 

Additional Inherited Members

- Public Types inherited from SCPIBERT
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 Types inherited from Oscilloscope
enum  TriggerMode {
  TRIGGER_MODE_RUN , TRIGGER_MODE_STOP , TRIGGER_MODE_TRIGGERED , TRIGGER_MODE_WAIT ,
  TRIGGER_MODE_AUTO , TRIGGER_MODE_COUNT
}
 
enum  SamplingMode { REAL_TIME , EQUIVALENT_TIME }
 
typedef std::pair< OscilloscopeChannel *, OscilloscopeChannel * > InterleaveConflict
 Get the set of conflicting channels. More...
 
typedef std::vector< OscilloscopeChannel * > AnalogBank
 
typedef std::vector< OscilloscopeChannel * > DigitalBank
 
typedef std::shared_ptr< Oscilloscope >(* CreateProcType) (SCPITransport *)
 
- Public Attributes inherited from Instrument
std::string m_nickname
 Optional user-selected nickname of the instrument. More...
 
- Protected Types inherited from SCPIBERT
typedef std::map< std::string, BERTCreateProcType > BERTCreateMapType
 
- Protected Types inherited from Oscilloscope
typedef std::map< StreamDescriptor, WaveformBase * > SequenceSet
 
typedef std::map< std::string, CreateProcType > CreateMapType
 
- Static Protected Attributes inherited from SCPIBERT
static BERTCreateMapType m_bertcreateprocs
 
- Static Protected Attributes inherited from Oscilloscope
static CreateMapType m_createprocs
 

Detailed Description

An AKL-TXB1 trigger crossbar.

Constructor & Destructor Documentation

◆ AntikernelLabsTriggerCrossbar()

AntikernelLabsTriggerCrossbar::AntikernelLabsTriggerCrossbar ( SCPITransport transport)

Initialize the driver.

Parameters
transportSCPI transport connected to the crossbar

Member Function Documentation

◆ AcquireData()

bool AntikernelLabsTriggerCrossbar::AcquireData ( )
overridevirtual

Pull data from the instrument.

Returns
True if waveform was acquired, false if connection lost or other serious error

Implements Instrument.

◆ CanInterleave()

bool AntikernelLabsTriggerCrossbar::CanInterleave ( )
overridevirtual

Returns true if we have no interleave conflicts, false if we have conflicts.

Reimplemented from Oscilloscope.

◆ DisableChannel()

void AntikernelLabsTriggerCrossbar::DisableChannel ( size_t  i)
overridevirtual

Turn a channel off, given the index.

This function may optionally configure channel interleaving, if supported in hardware.

Parameters
iZero-based index of channel

Implements Oscilloscope.

◆ EnableChannel()

void AntikernelLabsTriggerCrossbar::EnableChannel ( size_t  i)
overridevirtual

Turn a channel on, given the index.

Parameters
iZero-based index of channel

Implements Oscilloscope.

◆ ForceTrigger()

void AntikernelLabsTriggerCrossbar::ForceTrigger ( )
overridevirtual

Forces a single acquisition as soon as possible.

Note that PollTrigger() may not return 'triggered' immediately, due to command processing latency.

Implements Oscilloscope.

◆ GetAvailableCouplings()

vector< OscilloscopeChannel::CouplingType > AntikernelLabsTriggerCrossbar::GetAvailableCouplings ( size_t  i)
overridevirtual

Gets the set of legal coupling values for an input channel.

Parameters
iZero-based index of channel

Implements Oscilloscope.

◆ GetAvailableDataRates()

vector< int64_t > AntikernelLabsTriggerCrossbar::GetAvailableDataRates ( )
overridevirtual

Gets the list of available data rates, in symbols/sec.

Implements BERT.

◆ GetAvailableRxPatterns()

vector< BERT::Pattern > AntikernelLabsTriggerCrossbar::GetAvailableRxPatterns ( size_t  i)
overridevirtual

Gets the list of available receive patterns for a channel.

Parameters
iChannel index

Implements BERT.

◆ GetAvailableTxDriveStrengths()

vector< float > AntikernelLabsTriggerCrossbar::GetAvailableTxDriveStrengths ( size_t  i)
overridevirtual

Gets the list of available drive strengths (in volts) for a channel.

Drive strength is nominal p-p swing with full main cursor tap and pre/post cursors at zero.

Parameters
iChannel index

Implements BERT.

◆ GetAvailableTxPatterns()

vector< BERT::Pattern > AntikernelLabsTriggerCrossbar::GetAvailableTxPatterns ( size_t  i)
overridevirtual

Gets the list of available transmit patterns for a channel.

Parameters
iChannel index

Implements BERT.

◆ GetBERIntegrationLength()

int64_t AntikernelLabsTriggerCrossbar::GetBERIntegrationLength ( )
overridevirtual

Get the integration period for BER measurements.

Implements BERT.

◆ GetBERSamplingPoint()

void AntikernelLabsTriggerCrossbar::GetBERSamplingPoint ( size_t  i,
int64_t &  dx,
float &  dy 
)
overridevirtual

Get the sampling point for BER measurements.

Parameters
iChannel index
dxHorizontal offset of the sampling point from the center of the eye, in femtoseconds
dyVertical offset of the sampling point from the center of the eye, in volts

Implements BERT.

◆ GetChannelAttenuation()

double AntikernelLabsTriggerCrossbar::GetChannelAttenuation ( size_t  i)
overridevirtual

Gets the probe attenuation for an input channel.

Note that this function returns attenuation, not gain. For example, a 10x probe would return 10 and not 0.1.

Parameters
iZero-based index of channel

Implements Oscilloscope.

◆ GetChannelBandwidthLimit()

unsigned int AntikernelLabsTriggerCrossbar::GetChannelBandwidthLimit ( size_t  i)
overridevirtual

Gets the bandwidth limit for an input channel.

Parameters
iZero-based index of channel
Returns
Bandwidth limit, in MHz. Zero means "no bandwidth limit".

Implements Oscilloscope.

◆ GetChannelCoupling()

OscilloscopeChannel::CouplingType AntikernelLabsTriggerCrossbar::GetChannelCoupling ( size_t  i)
overridevirtual

Gets the coupling used for an input channel.

Parameters
iZero-based index of channel

Implements Oscilloscope.

◆ GetChannelOffset()

float AntikernelLabsTriggerCrossbar::GetChannelOffset ( size_t  i,
size_t  stream 
)
overridevirtual

Gets the offset, in volts, for a given channel.

Parameters
iZero-based index of channel
streamZero-based index of stream within channel (0 if only one stream, as is normally the case)

Implements Oscilloscope.

◆ GetChannelVoltageRange()

float AntikernelLabsTriggerCrossbar::GetChannelVoltageRange ( size_t  i,
size_t  stream 
)
overridevirtual

Gets the range of the current channel configuration.

The range is the distance, in volts, between the most negative/smallest and most positive/largest voltage which the ADC can represent using the current vertical gain configuration. This can be calculated as the number of vertical divisions times the number of volts per division.

The range does not depend on the offset.

Parameters
iZero-based index of channel
streamZero-based index of stream within channel (0 if only one stream, as is normally the case)

Implements Oscilloscope.

◆ GetCustomPatternLength()

size_t AntikernelLabsTriggerCrossbar::GetCustomPatternLength ( )
overridevirtual

Returns the number of bits in a custom pattern (may change with line rate)

Returns
Length of the custom pattern

Implements BERT.

◆ GetDataRate()

int64_t AntikernelLabsTriggerCrossbar::GetDataRate ( size_t  i)
overridevirtual

Gets the currently selected line rate (in symbols/sec)

Parameters
iChannel index

Implements BERT.

◆ GetExpectedBathtubCaptureTime()

int64_t AntikernelLabsTriggerCrossbar::GetExpectedBathtubCaptureTime ( size_t  i)
overridevirtual

Returns the expected time, in femtoseconds, to complete a bathtub scan with the current settings.

The default implementation returns zero.

Parameters
iChannel index

Reimplemented from BERT.

◆ GetExpectedEyeCaptureTime()

int64_t AntikernelLabsTriggerCrossbar::GetExpectedEyeCaptureTime ( size_t  i)
overridevirtual

Returns the expected time, in femtoseconds, to complete an eye scan with the current settings.

The default implementation returns zero.

Parameters
iChannel index

Reimplemented from BERT.

◆ GetExternalTrigger()

OscilloscopeChannel * AntikernelLabsTriggerCrossbar::GetExternalTrigger ( )
overridevirtual

Returns the external trigger input channel, if we have one.

Note that some very high end oscilloscopes have multiple external trigger inputs. We do not currently support this.

Implements Oscilloscope.

◆ GetGlobalCustomPattern()

uint64_t AntikernelLabsTriggerCrossbar::GetGlobalCustomPattern ( )
overridevirtual

Gets the global custom pattern (only valid if IsCustomPatternPerChannel returns false)

Returns
The bit sequence

Implements BERT.

◆ GetInstrumentTypes()

unsigned int AntikernelLabsTriggerCrossbar::GetInstrumentTypes ( ) const
overridevirtual

Returns a bitfield describing the set of instrument types that this instrument supports.

Not all types may be available on a given channel.

Reimplemented from SwitchMatrix.

◆ GetInstrumentTypesForChannel()

uint32_t AntikernelLabsTriggerCrossbar::GetInstrumentTypesForChannel ( size_t  i) const
overridevirtual

Returns a bitfield describing the set of instrument types that a given channel supports.

Parameters
iChannel index

Implements Instrument.

◆ GetInterleaveConflicts()

set< Oscilloscope::InterleaveConflict > AntikernelLabsTriggerCrossbar::GetInterleaveConflicts ( )
overridevirtual

Implements Oscilloscope.

◆ GetMuxInputThreshold()

float AntikernelLabsTriggerCrossbar::GetMuxInputThreshold ( size_t  dstchan)
overridevirtual

Gets the threshold level of an input channel.

Implements SwitchMatrix.

◆ GetMuxOutputDrive()

float AntikernelLabsTriggerCrossbar::GetMuxOutputDrive ( size_t  dstchan)
overridevirtual

Gets the drive level of an output channel.

Implements SwitchMatrix.

◆ GetRefclkInFrequency()

int64_t AntikernelLabsTriggerCrossbar::GetRefclkInFrequency ( )
overridevirtual

Gets the refclk in frequency, in Hz, required to generate the currently selected data rate.

Implements BERT.

◆ GetRefclkOutFrequency()

int64_t AntikernelLabsTriggerCrossbar::GetRefclkOutFrequency ( )
overridevirtual

Gets the currently selected refclk out frequency, in Hz.

Implements BERT.

◆ GetRefclkOutMux()

size_t AntikernelLabsTriggerCrossbar::GetRefclkOutMux ( )
overridevirtual

Gets the currently selected reference clock output mux setting.

Implements BERT.

◆ GetRefclkOutMuxNames()

vector< string > AntikernelLabsTriggerCrossbar::GetRefclkOutMuxNames ( )
overridevirtual

Gets the list of available reference clock mux settings.

Mux selector names are free-form text whose meaning is defined by the instrument.

Implements BERT.

◆ GetRxCdrLockState()

bool AntikernelLabsTriggerCrossbar::GetRxCdrLockState ( size_t  i)
overridevirtual

Gets the RX CDR lock state (true=lock, false=unlock)

NOTE: For some instruments this is just CDR lock, for others it indicates both CDR and pattern checker lock

Parameters
iChannel index

Implements BERT.

◆ GetRxCTLEGainStep()

size_t AntikernelLabsTriggerCrossbar::GetRxCTLEGainStep ( size_t  i)
overridevirtual

Gets the currently selected RX CTLE gain index.

To get the actual gain in dB, use this value as the index into the table returned by GetRxCTLEGainSteps()

Parameters
iChannel index

Implements BERT.

◆ GetRxCTLEGainSteps()

vector< float > AntikernelLabsTriggerCrossbar::GetRxCTLEGainSteps ( )
overridevirtual

Get the list of available RX CTLE gain values (in dB)

Implements BERT.

◆ GetRxInvert()

bool AntikernelLabsTriggerCrossbar::GetRxInvert ( size_t  i)
overridevirtual

Gets the transmit invert flag for a channel.

Parameters
iChannel index

Implements BERT.

◆ GetRxPattern()

BERT::Pattern AntikernelLabsTriggerCrossbar::GetRxPattern ( size_t  i)
overridevirtual

Gets the currently selected receive pattern for a channel.

Parameters
iChannel index

Implements BERT.

◆ GetSampleDepth()

uint64_t AntikernelLabsTriggerCrossbar::GetSampleDepth ( )
overridevirtual

Gets the current sample depth of this scope.

Implements Oscilloscope.

◆ GetSampleDepthsInterleaved()

vector< uint64_t > AntikernelLabsTriggerCrossbar::GetSampleDepthsInterleaved ( )
overridevirtual

Get the legal memory depths for this scope in combined-channels mode.

Implements Oscilloscope.

◆ GetSampleDepthsNonInterleaved()

vector< uint64_t > AntikernelLabsTriggerCrossbar::GetSampleDepthsNonInterleaved ( )
overridevirtual

Get the legal memory depths for this scope in all-channels mode.

Implements Oscilloscope.

◆ GetSampleRate()

uint64_t AntikernelLabsTriggerCrossbar::GetSampleRate ( )
overridevirtual

Gets the current sampling rate (in Hz) of this scope.

Implements Oscilloscope.

◆ GetSampleRatesInterleaved()

vector< uint64_t > AntikernelLabsTriggerCrossbar::GetSampleRatesInterleaved ( )
overridevirtual

Get the legal sampling rates (in Hz) for this scope in combined-channels mode.

Implements Oscilloscope.

◆ GetSampleRatesNonInterleaved()

vector< uint64_t > AntikernelLabsTriggerCrossbar::GetSampleRatesNonInterleaved ( )
overridevirtual

Get the legal sampling rates (in Hz) for this scope in all-channels mode.

Implements Oscilloscope.

◆ GetScanDepth()

int64_t AntikernelLabsTriggerCrossbar::GetScanDepth ( size_t  i)
overridevirtual

Get the configured scan depth for a channel, in UIs per sample/pixel.

Parameters
iChannel index

Reimplemented from BERT.

◆ GetScanDepths()

vector< int64_t > AntikernelLabsTriggerCrossbar::GetScanDepths ( size_t  i)
overridevirtual

Returns the list of integration depths for eye / bathtub scans.

Higher depths will give better resolution at low BER values, but increase scan time.

Parameters
iChannel index

Reimplemented from BERT.

◆ GetScanHalfWidth()

ssize_t AntikernelLabsTriggerCrossbar::GetScanHalfWidth ( size_t  i)
inlineprotected

Returns the number of points on either side of the center for a full eye/bathtub scan.

The full scan width is 2*halfwidth + 1.

◆ GetScanProgress()

float AntikernelLabsTriggerCrossbar::GetScanProgress ( size_t  i)
overridevirtual

Gets the estimated completion status (0-1) of the current scan.

Parameters
iChannel index

Reimplemented from BERT.

◆ GetTriggerOffset()

int64_t AntikernelLabsTriggerCrossbar::GetTriggerOffset ( )
overridevirtual

Gets the trigger offset.

Implements Oscilloscope.

◆ GetTxDriveStrength()

float AntikernelLabsTriggerCrossbar::GetTxDriveStrength ( size_t  i)
overridevirtual

Get the drive strength for a channel.

Parameters
iChannel index

Implements BERT.

◆ GetTxEnable()

bool AntikernelLabsTriggerCrossbar::GetTxEnable ( size_t  i)
overridevirtual

Gets the transmit enable flag for a channel.

Parameters
iChannel index

Implements BERT.

◆ GetTxInvert()

bool AntikernelLabsTriggerCrossbar::GetTxInvert ( size_t  i)
overridevirtual

Gets the transmit invert flag for a channel.

Parameters
iChannel index

Implements BERT.

◆ GetTxPattern()

BERT::Pattern AntikernelLabsTriggerCrossbar::GetTxPattern ( size_t  i)
overridevirtual

Gets the currently selected transmit pattern for a channel.

Parameters
iChannel index

Implements BERT.

◆ GetTxPostCursor()

float AntikernelLabsTriggerCrossbar::GetTxPostCursor ( size_t  i)
overridevirtual

Get the post-cursor equalizer tap for a channel.

Equalizer coefficients are are normalized so that 0 is the lowest possible tap value and 1 is the highest possible tap value. Some instruments allow negative values (which invert the sign of the tap).

The exact mapping of normalized coefficients to FFE gain steps is instrument specific and may be nonlinear.

Parameters
iChannel index

Implements BERT.

◆ GetTxPreCursor()

float AntikernelLabsTriggerCrossbar::GetTxPreCursor ( size_t  i)
overridevirtual

Get the pre-cursor equalizer tap for a channel.

Equalizer coefficients are are normalized so that 0 is the lowest possible tap value and 1 is the highest possible tap value. Some instruments allow negative values (which invert the sign of the tap).

The exact mapping of normalized coefficients to FFE gain steps is instrument specific and may be nonlinear.

Parameters
iChannel index

Implements BERT.

◆ GetUseExternalRefclk()

bool AntikernelLabsTriggerCrossbar::GetUseExternalRefclk ( )
overridevirtual

Sets the reference clock source.

Returns
True if external clock is in use, false if internal

Implements BERT.

◆ HasConfigurableScanDepth()

bool AntikernelLabsTriggerCrossbar::HasConfigurableScanDepth ( )
overridevirtual

Determines whether this instrument has configurable integration depth for eye / bathtub scans.

Reimplemented from BERT.

◆ HasRefclkIn()

bool AntikernelLabsTriggerCrossbar::HasRefclkIn ( )
overridevirtual

Returns true if this instrument has a reference clock input port.

Implements BERT.

◆ HasRefclkOut()

bool AntikernelLabsTriggerCrossbar::HasRefclkOut ( )
overridevirtual

Returns true if this instrument has a reference clock output port.

Implements BERT.

◆ HasRxCTLE()

bool AntikernelLabsTriggerCrossbar::HasRxCTLE ( )
overridevirtual

Determines whether the input buffer has a continuous-time linear equalizer.

Implements BERT.

◆ IsChannelEnabled()

bool AntikernelLabsTriggerCrossbar::IsChannelEnabled ( size_t  i)
overridevirtual

Checks if a channel is enabled in hardware.

Implements Oscilloscope.

◆ IsCustomPatternPerChannel()

bool AntikernelLabsTriggerCrossbar::IsCustomPatternPerChannel ( )
overridevirtual

Determines whether custom patterns are settable per channel, or shared by the whole device.

Returns
True = per channel, false = global

Implements BERT.

◆ IsDataRatePerChannel()

bool AntikernelLabsTriggerCrossbar::IsDataRatePerChannel ( )
overridevirtual

Determines whether the TX/RX clock is a per-instrument or per-channel setting.

Returns
True if clock is a per-channel setting, false if global

Implements BERT.

◆ IsEyeScanInProgress()

bool AntikernelLabsTriggerCrossbar::IsEyeScanInProgress ( size_t  i)
overridevirtual

Returns true if an eye scan is in progress.

Parameters
iChannel index

Reimplemented from BERT.

◆ IsHBathtubScanInProgress()

bool AntikernelLabsTriggerCrossbar::IsHBathtubScanInProgress ( size_t  i)
overridevirtual

Returns true if a horizontal bathtub scan is in progress.

Parameters
iChannel index

Reimplemented from BERT.

◆ IsInterleaving()

bool AntikernelLabsTriggerCrossbar::IsInterleaving ( )
overridevirtual

Checks if the scope is currently combining channels.

Implements Oscilloscope.

◆ IsTriggerArmed()

bool AntikernelLabsTriggerCrossbar::IsTriggerArmed ( )
overridevirtual

Checks if the trigger is currently armed.

Implements Oscilloscope.

◆ MeasureEye()

void AntikernelLabsTriggerCrossbar::MeasureEye ( size_t  i)
overridevirtual

Acquires an eye pattern.

Parameters
iChannel index

Implements BERT.

◆ MeasureHBathtub()

void AntikernelLabsTriggerCrossbar::MeasureHBathtub ( size_t  i)
overridevirtual

Acquires a bathtub curve.

Parameters
iChannel index

Implements BERT.

◆ MuxHasConfigurableDrive()

bool AntikernelLabsTriggerCrossbar::MuxHasConfigurableDrive ( size_t  dstchan)
overridevirtual

Checks if an output channel has configurable voltage level.

Implements SwitchMatrix.

◆ MuxHasConfigurableThreshold()

bool AntikernelLabsTriggerCrossbar::MuxHasConfigurableThreshold ( size_t  dstchan)
overridevirtual

Checks if an input channel has configurable voltage level.

Implements SwitchMatrix.

◆ PollTrigger()

Oscilloscope::TriggerMode AntikernelLabsTriggerCrossbar::PollTrigger ( )
overridevirtual

Checks the curent trigger status.

Implements Oscilloscope.

◆ PostCtorInit()

void AntikernelLabsTriggerCrossbar::PostCtorInit ( )
overridevirtual

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

Implements SCPIBERT.

◆ PullTrigger()

void AntikernelLabsTriggerCrossbar::PullTrigger ( )
overridevirtual

Updates m_trigger with any changes made from the instrument side.

Implements Oscilloscope.

◆ PushTrigger()

void AntikernelLabsTriggerCrossbar::PushTrigger ( )
overridevirtual

Pushes changes made to m_trigger to the instrument.

Implements Oscilloscope.

◆ SetBERIntegrationLength()

void AntikernelLabsTriggerCrossbar::SetBERIntegrationLength ( int64_t  uis)
overridevirtual

Set the integration period for BER measurements.

Longer values give better resolution for low BERs but update more slowly

Implements BERT.

◆ SetBERSamplingPoint()

void AntikernelLabsTriggerCrossbar::SetBERSamplingPoint ( size_t  i,
int64_t  dx,
float  dy 
)
overridevirtual

Set the sampling point for BER measurements.

Parameters
iChannel index
dxHorizontal offset of the sampling point from the center of the eye, in femtoseconds
dyVertical offset of the sampling point from the center of the eye, in volts

Implements BERT.

◆ SetChannelAttenuation()

void AntikernelLabsTriggerCrossbar::SetChannelAttenuation ( size_t  i,
double  atten 
)
overridevirtual

Sets the probe attenuation used for an input channel.

Parameters
iZero-based index of channel
attenAttenuation factor

Implements Oscilloscope.

◆ SetChannelBandwidthLimit()

void AntikernelLabsTriggerCrossbar::SetChannelBandwidthLimit ( size_t  i,
unsigned int  limit_mhz 
)
overridevirtual

Sets the bandwidth limit for an input channel.

Parameters
iZero-based index of channel
limit_mhzBandwidth limit, in MHz. Zero means "no bandwidth limit".

Implements Oscilloscope.

◆ SetChannelCoupling()

void AntikernelLabsTriggerCrossbar::SetChannelCoupling ( size_t  i,
OscilloscopeChannel::CouplingType  type 
)
overridevirtual

Sets the coupling used for an input channel.

Parameters
iZero-based index of channel

Implements Oscilloscope.

◆ SetChannelDisplayName()

void AntikernelLabsTriggerCrossbar::SetChannelDisplayName ( size_t  i,
std::string  name 
)
overridevirtual

Sets the hardware display name for a channel. This is an arbitrary user-selected string.

Some instruments allow displaying channel names in the GUI or on probes. If this is supported, the driver should override this function.

This function directly updates hardware without caching. In most cases, you should call InstrumentChannel::SetDisplayName(), which updates the clientside cache and then calls this function.

The default function returns the hardware name.

Parameters
iZero-based index of channel
nameName of the channel

Reimplemented from Instrument.

◆ SetChannelOffset()

void AntikernelLabsTriggerCrossbar::SetChannelOffset ( size_t  i,
size_t  stream,
float  offset 
)
overridevirtual

Sets the offset for a given channel.

Parameters
iZero-based index of channel
streamZero-based index of stream within channel (0 if only one stream, as is normally the case)
offsetOffset, in volts

Implements Oscilloscope.

◆ SetChannelVoltageRange()

void AntikernelLabsTriggerCrossbar::SetChannelVoltageRange ( size_t  i,
size_t  stream,
float  range 
)
overridevirtual

Sets the range of the current channel configuration.

The range is the distance, in volts, between the most negative/smallest and most positive/largest voltage which the ADC can represent using the current vertical gain configuration. This can be calculated as the number of vertical divisions times the number of volts per division.

The range does not depend on the offset.

Parameters
iZero-based index of channel
streamZero-based index of stream within channel (0 if only one stream, as is normally the case)
rangeVoltage range

Implements Oscilloscope.

◆ SetDataRate()

void AntikernelLabsTriggerCrossbar::SetDataRate ( size_t  i,
int64_t  rate 
)
overridevirtual

Sets the data rate (in symbols/sec)

Parameters
iChannel index
rateBaud rate of the channel

Implements BERT.

◆ SetGlobalCustomPattern()

void AntikernelLabsTriggerCrossbar::SetGlobalCustomPattern ( uint64_t  pattern)
overridevirtual

Sets the global custom pattern (only valid if IsCustomPatternPerChannel returns false)

Parameters
patternThe bit sequence (up to 64 bits in length)

Implements BERT.

◆ SetInterleaving()

bool AntikernelLabsTriggerCrossbar::SetInterleaving ( bool  combine)
overridevirtual

Configures the scope to combine channels.

This function may fail to enable channel combining if conflicts are present, check the return value!

Returns
True if channel combining is enabled, false if not

Implements Oscilloscope.

◆ SetMuxInputThreshold()

void AntikernelLabsTriggerCrossbar::SetMuxInputThreshold ( size_t  dstchan,
float  v 
)
overridevirtual

Sets the threshold level of an input channel.

Implements SwitchMatrix.

◆ SetMuxOutputDrive()

void AntikernelLabsTriggerCrossbar::SetMuxOutputDrive ( size_t  dstchan,
float  v 
)
overridevirtual

Sets the drive level of an output channel.

Implements SwitchMatrix.

◆ SetMuxPath()

void AntikernelLabsTriggerCrossbar::SetMuxPath ( size_t  dstchan,
size_t  srcchan 
)
overridevirtual

Sets the mux selector for an output channel.

Implements SwitchMatrix.

◆ SetMuxPathOpen()

void AntikernelLabsTriggerCrossbar::SetMuxPathOpen ( size_t  dstchan)
overridevirtual

Removes a mux path for an output channel.

Not all switch matrices or ports support this feature.

Implements SwitchMatrix.

◆ SetRefclkOutMux()

void AntikernelLabsTriggerCrossbar::SetRefclkOutMux ( size_t  i)
overridevirtual

Sets the reference clock output mux.

Parameters
iIndex of the mux within the table returned by GetRefclkOutMuxNames()

Implements BERT.

◆ SetRxCTLEGainStep()

void AntikernelLabsTriggerCrossbar::SetRxCTLEGainStep ( size_t  i,
size_t  step 
)
overridevirtual

Sets the RX CTLE gain index.

Parameters
iChannel index
stepIndex of the gain value within the GetRxCTLEGainSteps() table to use

Implements BERT.

◆ SetRxInvert()

void AntikernelLabsTriggerCrossbar::SetRxInvert ( size_t  i,
bool  invert 
)
overridevirtual

Sets the receive invert flag for a channel.

Parameters
iChannel index
invertTrue = inverted, false = inverted

Implements BERT.

◆ SetRxPattern()

void AntikernelLabsTriggerCrossbar::SetRxPattern ( size_t  i,
Pattern  pattern 
)
overridevirtual

Sets the receive pattern for the selected channel.

Parameters
iChannel index
patternDesired input pattern

Implements BERT.

◆ SetSampleDepth()

void AntikernelLabsTriggerCrossbar::SetSampleDepth ( uint64_t  depth)
overridevirtual

Sets the sample depth of the scope.

Implements Oscilloscope.

◆ SetSampleRate()

void AntikernelLabsTriggerCrossbar::SetSampleRate ( uint64_t  rate)
overridevirtual

Sets the sample rate of the scope, in Hz.

Implements Oscilloscope.

◆ SetScanDepth()

void AntikernelLabsTriggerCrossbar::SetScanDepth ( size_t  i,
int64_t  depth 
)
overridevirtual

Set the configured scan depth for a channel.

Parameters
iChannel index
depthIntegration depth, in UIs

Reimplemented from BERT.

◆ SetTriggerOffset()

void AntikernelLabsTriggerCrossbar::SetTriggerOffset ( int64_t  offset)
overridevirtual

Sets the trigger offset.

Parameters
offsetFemtoseconds from the start of the capture to the trigger point. Positive values mean the trigger is within the waveform. Negative values mean there is a delay from the trigger point to the start of the waveform.

Implements Oscilloscope.

◆ SetTxDriveStrength()

void AntikernelLabsTriggerCrossbar::SetTxDriveStrength ( size_t  i,
float  drive 
)
overridevirtual

Set the drive strength for a channel.

Parameters
iChannel index
driveNominal p-p swing

Implements BERT.

◆ SetTxEnable()

void AntikernelLabsTriggerCrossbar::SetTxEnable ( size_t  i,
bool  enable 
)
overridevirtual

Sets the transmit enable flag for a channel.

Parameters
iChannel index
enableTrue = enabled, false = disabled

Implements BERT.

◆ SetTxInvert()

void AntikernelLabsTriggerCrossbar::SetTxInvert ( size_t  i,
bool  invert 
)
overridevirtual

Sets the transmit invert flag for a channel.

Parameters
iChannel index
invertTrue = inverted, false = normal

Implements BERT.

◆ SetTxPattern()

void AntikernelLabsTriggerCrossbar::SetTxPattern ( size_t  i,
Pattern  pattern 
)
overridevirtual

Sets the transmit pattern for the selected channel.

Parameters
iChannel index
patternThe selected pattern

Implements BERT.

◆ SetTxPostCursor()

void AntikernelLabsTriggerCrossbar::SetTxPostCursor ( size_t  i,
float  postcursor 
)
overridevirtual

Set the post-cursor equalizer tap for a channel.

Equalizer coefficients are are normalized so that 0 is the lowest possible tap value and 1 is the highest possible tap value. Some instruments allow negative values (which invert the sign of the tap).

The exact mapping of normalized coefficients to FFE gain steps is instrument specific and may be nonlinear.

Parameters
iChannel index
postcursorPost-cursor tap

Implements BERT.

◆ SetTxPreCursor()

void AntikernelLabsTriggerCrossbar::SetTxPreCursor ( size_t  i,
float  precursor 
)
overridevirtual

Set the pre-cursor equalizer tap for a channel.

Equalizer coefficients are are normalized so that 0 is the lowest possible tap value and 1 is the highest possible tap value. Some instruments allow negative values (which invert the sign of the tap).

The exact mapping of normalized coefficients to FFE gain steps is instrument specific and may be nonlinear.

Parameters
iChannel index
precursorPre-cursor tap

Implements BERT.

◆ SetUseExternalRefclk()

void AntikernelLabsTriggerCrossbar::SetUseExternalRefclk ( bool  external)
overridevirtual

Sets the reference clock source (internal or external)

Parameters
externalTrue to select external clock, false to select internal

Implements BERT.

◆ Start()

void AntikernelLabsTriggerCrossbar::Start ( )
overridevirtual

Starts the instrument in continuous trigger mode.

Most drivers will implement this as repeated calls to the "single trigger" function to avoid race conditions when the instrument triggers halfway through downloading captured waveforms.

Implements Oscilloscope.

◆ StartSingleTrigger()

void AntikernelLabsTriggerCrossbar::StartSingleTrigger ( )
overridevirtual

Arms the trigger for a single acquistion.

Implements Oscilloscope.

◆ Stop()

void AntikernelLabsTriggerCrossbar::Stop ( )
overridevirtual

Stops triggering.

Implements Oscilloscope.

Member Data Documentation

◆ m_loadInProgress

bool AntikernelLabsTriggerCrossbar::m_loadInProgress
protected

True if in a constructor or similar initialization path (getting hardware state)

This prevents filter graph changes from being pushed to hardware if we've just pulled the same path.


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