|
ngscopeclient v0.2.1
|
An AKL-TXB1 trigger crossbar. More...
#include <AntikernelLabsTriggerCrossbar.h>


Public Member Functions | |
| AntikernelLabsTriggerCrossbar (SCPITransport *transport) | |
| Initialize the driver. | |
| virtual void | PostCtorInit () override |
| Does any initialization that can't happen during the constructor. | |
| virtual bool | AcquireData () override |
| Pull data from the instrument. | |
| virtual unsigned int | GetInstrumentTypes () const override |
| Returns a bitfield describing the set of instrument types that this instrument supports. | |
| virtual uint32_t | GetInstrumentTypesForChannel (size_t i) const override |
| Returns a bitfield describing the set of instrument types that a given channel supports. | |
| 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. | |
| virtual Pattern | GetTxPattern (size_t i) override |
| Gets the currently selected transmit pattern for a channel. | |
| virtual void | SetTxPattern (size_t i, Pattern pattern) override |
| Sets the transmit pattern for the selected channel. | |
| virtual std::vector< Pattern > | GetAvailableTxPatterns (size_t i) override |
| Gets the list of available transmit patterns for a channel. | |
| virtual bool | IsCustomPatternPerChannel () override |
| Determines whether custom patterns are settable per channel, or shared by the whole device. | |
| virtual size_t | GetCustomPatternLength () override |
| Returns the number of bits in a custom pattern (may change with line rate) | |
| virtual void | SetGlobalCustomPattern (uint64_t pattern) override |
| Sets the global custom pattern (only valid if IsCustomPatternPerChannel returns false) | |
| virtual uint64_t | GetGlobalCustomPattern () override |
| Gets the global custom pattern (only valid if IsCustomPatternPerChannel returns false) | |
| virtual bool | GetTxInvert (size_t i) override |
| Gets the transmit invert flag for a channel. | |
| virtual void | SetTxInvert (size_t i, bool invert) override |
| Sets the transmit invert flag for a channel. | |
| virtual std::vector< float > | GetAvailableTxDriveStrengths (size_t i) override |
| Gets the list of available drive strengths (in volts) for a channel. | |
| virtual float | GetTxDriveStrength (size_t i) override |
| Get the drive strength for a channel. | |
| virtual void | SetTxDriveStrength (size_t i, float drive) override |
| Set the drive strength for a channel. | |
| virtual void | SetTxEnable (size_t i, bool enable) override |
| Sets the transmit enable flag for a channel. | |
| virtual bool | GetTxEnable (size_t i) override |
| Gets the transmit enable flag for a channel. | |
| virtual float | GetTxPreCursor (size_t i) override |
| Get the pre-cursor equalizer tap for a channel. | |
| virtual void | SetTxPreCursor (size_t i, float precursor) override |
| Set the pre-cursor equalizer tap for a channel. | |
| virtual float | GetTxPostCursor (size_t i) override |
| Get the post-cursor equalizer tap for a channel. | |
| virtual void | SetTxPostCursor (size_t i, float postcursor) override |
| Set the post-cursor equalizer tap for a channel. | |
| virtual bool | GetRxInvert (size_t i) override |
| Gets the transmit invert flag for a channel. | |
| virtual void | SetRxInvert (size_t i, bool invert) override |
| Sets the receive invert flag for a channel. | |
| virtual bool | HasRxCTLE () override |
| Determines whether the input buffer has a continuous-time linear equalizer. | |
| virtual std::vector< float > | GetRxCTLEGainSteps () override |
| Get the list of available RX CTLE gain values (in dB) | |
| virtual size_t | GetRxCTLEGainStep (size_t i) override |
| Gets the currently selected RX CTLE gain index. | |
| virtual void | SetRxCTLEGainStep (size_t i, size_t step) override |
| Sets the RX CTLE gain index. | |
| virtual Pattern | GetRxPattern (size_t i) override |
| Gets the currently selected receive pattern for a channel. | |
| virtual void | SetRxPattern (size_t i, Pattern pattern) override |
| Sets the receive pattern for the selected channel. | |
| virtual std::vector< Pattern > | GetAvailableRxPatterns (size_t i) override |
| Gets the list of available receive patterns for a channel. | |
| virtual bool | GetRxCdrLockState (size_t i) override |
| Gets the RX CDR lock state (true=lock, false=unlock) | |
| virtual void | MeasureHBathtub (size_t i) override |
| Acquires a bathtub curve. | |
| virtual void | MeasureEye (size_t i) override |
| Acquires an eye pattern. | |
| virtual void | SetBERIntegrationLength (int64_t uis) override |
| Set the integration period for BER measurements. | |
| virtual int64_t | GetBERIntegrationLength () override |
| Get the integration period for BER measurements. | |
| virtual void | SetBERSamplingPoint (size_t i, int64_t dx, float dy) override |
| Set the sampling point for BER measurements. | |
| virtual void | GetBERSamplingPoint (size_t i, int64_t &dx, float &dy) override |
| Get the sampling point for BER measurements. | |
| virtual bool | HasConfigurableScanDepth () override |
| Determines whether this instrument has configurable integration depth for eye / bathtub scans. | |
| virtual std::vector< int64_t > | GetScanDepths (size_t i) override |
| Returns the list of integration depths for eye / bathtub scans. | |
| virtual int64_t | GetScanDepth (size_t i) override |
| Get the configured scan depth for a channel, in UIs per sample/pixel. | |
| virtual void | SetScanDepth (size_t i, int64_t depth) override |
| Set the configured scan depth for a channel. | |
| virtual int64_t | GetExpectedBathtubCaptureTime (size_t i) override |
| Returns the expected time, in femtoseconds, to complete a bathtub scan with the current settings. | |
| virtual int64_t | GetExpectedEyeCaptureTime (size_t i) override |
| Returns the expected time, in femtoseconds, to complete an eye scan with the current settings. | |
| virtual bool | IsEyeScanInProgress (size_t i) override |
| Returns true if an eye scan is in progress. | |
| virtual float | GetScanProgress (size_t i) override |
| Gets the estimated completion status (0-1) of the current scan. | |
| virtual bool | IsHBathtubScanInProgress (size_t i) override |
| Returns true if a horizontal bathtub scan is in progress. | |
| virtual size_t | GetRefclkOutMux () override |
| Gets the currently selected reference clock output mux setting. | |
| virtual void | SetRefclkOutMux (size_t i) override |
| Sets the reference clock output mux. | |
| virtual std::vector< std::string > | GetRefclkOutMuxNames () override |
| Gets the list of available reference clock mux settings. | |
| virtual int64_t | GetRefclkOutFrequency () override |
| Gets the currently selected refclk out frequency, in Hz. | |
| virtual int64_t | GetRefclkInFrequency () override |
| Gets the refclk in frequency, in Hz, required to generate the currently selected data rate. | |
| virtual bool | IsDataRatePerChannel () override |
| Determines whether the TX/RX clock is a per-instrument or per-channel setting. | |
| virtual int64_t | GetDataRate (size_t i) override |
| Gets the currently selected line rate (in symbols/sec) | |
| virtual void | SetDataRate (size_t i, int64_t rate) override |
| Sets the data rate (in symbols/sec) | |
| virtual std::vector< int64_t > | GetAvailableDataRates () override |
| Gets the list of available data rates, in symbols/sec. | |
| virtual void | SetUseExternalRefclk (bool external) override |
| Sets the reference clock source (internal or external) | |
| virtual bool | GetUseExternalRefclk () override |
| Sets the reference clock source. | |
| virtual bool | HasRefclkIn () override |
| Returns true if this instrument has a reference clock input port. | |
| virtual bool | HasRefclkOut () override |
| Returns true if this instrument has a reference clock output port. | |
| virtual void | SetMuxPath (size_t dstchan, size_t srcchan) override |
| Sets the mux selector for an output channel. | |
| virtual void | SetMuxPathOpen (size_t dstchan) override |
| Removes a mux path for an output channel. | |
| virtual bool | MuxHasConfigurableDrive (size_t dstchan) override |
| Checks if an output channel has configurable voltage level. | |
| virtual float | GetMuxOutputDrive (size_t dstchan) override |
| Gets the drive level of an output channel. | |
| virtual void | SetMuxOutputDrive (size_t dstchan, float v) override |
| Sets the drive level of an output channel. | |
| virtual bool | MuxHasConfigurableThreshold (size_t dstchan) override |
| Checks if an input channel has configurable voltage level. | |
| virtual float | GetMuxInputThreshold (size_t dstchan) override |
| Gets the threshold level of an input channel. | |
| virtual void | SetMuxInputThreshold (size_t dstchan, float v) override |
| Sets the threshold level of an input channel. | |
| virtual bool | IsChannelEnabled (size_t i) override |
| Checks if a channel is enabled in hardware. | |
| virtual void | EnableChannel (size_t i) override |
| Turn a channel on, given the index. | |
| virtual void | DisableChannel (size_t i) override |
| Turn a channel off, given the index. | |
| virtual OscilloscopeChannel::CouplingType | GetChannelCoupling (size_t i) override |
| Gets the coupling used for an input channel. | |
| virtual void | SetChannelCoupling (size_t i, OscilloscopeChannel::CouplingType type) override |
| Sets the coupling used for an input channel. | |
| virtual std::vector< OscilloscopeChannel::CouplingType > | GetAvailableCouplings (size_t i) override |
| Gets the set of legal coupling values for an input channel. | |
| virtual double | GetChannelAttenuation (size_t i) override |
| Gets the probe attenuation for an input channel. | |
| virtual void | SetChannelAttenuation (size_t i, double atten) override |
| Sets the probe attenuation used for an input channel. | |
| virtual unsigned int | GetChannelBandwidthLimit (size_t i) override |
| Gets the bandwidth limit for an input channel. | |
| virtual void | SetChannelBandwidthLimit (size_t i, unsigned int limit_mhz) override |
| Sets the bandwidth limit for an input channel. | |
| virtual OscilloscopeChannel * | GetExternalTrigger () override |
| Returns the external trigger input channel, if we have one. | |
| virtual float | GetChannelVoltageRange (size_t i, size_t stream) override |
| Gets the range of the current channel configuration. | |
| virtual void | SetChannelVoltageRange (size_t i, size_t stream, float range) override |
| Sets the range of the current channel configuration. | |
| virtual float | GetChannelOffset (size_t i, size_t stream) override |
| Gets the offset, in volts, for a given channel. | |
| virtual void | SetChannelOffset (size_t i, size_t stream, float offset) override |
| Sets the offset for a given channel. | |
| virtual Oscilloscope::TriggerMode | PollTrigger () override |
| Checks the curent trigger status. | |
| virtual void | PushTrigger () override |
| Pushes changes made to m_trigger to the instrument. | |
| virtual void | PullTrigger () override |
| Updates m_trigger with any changes made from the instrument side. | |
| virtual void | Start () override |
| Starts the instrument in continuous trigger mode. | |
| virtual void | StartSingleTrigger () override |
| Arms the trigger for a single acquistion. | |
| virtual void | Stop () override |
| Stops triggering. | |
| virtual void | ForceTrigger () override |
| Forces a single acquisition as soon as possible. | |
| virtual bool | IsTriggerArmed () override |
| Checks if the trigger is currently armed. | |
| virtual std::vector< uint64_t > | GetSampleRatesNonInterleaved () override |
| Get the legal sampling rates (in Hz) for this scope in all-channels mode. | |
| virtual std::vector< uint64_t > | GetSampleRatesInterleaved () override |
| Get the legal sampling rates (in Hz) for this scope in combined-channels mode. | |
| virtual uint64_t | GetSampleRate () override |
| Gets the current sampling rate (in Hz) of this scope. | |
| virtual bool | IsInterleaving () override |
| Checks if the scope is currently combining channels. | |
| virtual bool | SetInterleaving (bool combine) override |
| Configures the scope to combine channels. | |
| virtual bool | CanInterleave () override |
| Returns true if we have no interleave conflicts, false if we have conflicts. | |
| virtual std::set< InterleaveConflict > | GetInterleaveConflicts () override |
| virtual std::vector< uint64_t > | GetSampleDepthsNonInterleaved () override |
| Get the legal memory depths for this scope in all-channels mode. | |
| virtual std::vector< uint64_t > | GetSampleDepthsInterleaved () override |
| Get the legal memory depths for this scope in combined-channels mode. | |
| virtual uint64_t | GetSampleDepth () override |
| Gets the current sample depth of this scope. | |
| virtual void | SetSampleDepth (uint64_t depth) override |
| Sets the sample depth of the scope. | |
| virtual void | SetSampleRate (uint64_t rate) override |
| Sets the sample rate of the scope, in Hz. | |
| virtual void | SetTriggerOffset (int64_t offset) override |
| Sets the trigger offset. | |
| virtual int64_t | GetTriggerOffset () override |
| Gets the trigger offset. | |
Public Member Functions inherited from Instrument | |
| virtual bool | IsOffline () |
| Checks if the instrument is currently online. | |
| 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. | |
| virtual std::string | GetChannelDisplayName (size_t i) |
| Gets the hardware display name for a channel. This is an arbitrary user-selected string. | |
| 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 void | FlushConfigCache () |
| Instruments are allowed to cache configuration settings to reduce round trip queries to the device. | |
| virtual YAML::Node | SerializeConfiguration (IDTable &table) const |
| Serializes this instrument's configuration to a YAML node. | |
| virtual void | LoadConfiguration (int version, const YAML::Node &node, IDTable &idmap) |
| Load instrument and channel configuration from a save file. | |
| 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. | |
Public Member Functions inherited from SCPIInstrument | |
| SCPIInstrument (SCPITransport *transport, bool identify=true) | |
| virtual std::string | GetTransportConnectionString () override |
| Gets the connection string for our transport. | |
| virtual std::string | GetTransportName () override |
| Gets the name of our transport. | |
| virtual std::string | GetName () const override |
| virtual std::string | GetVendor () const override |
| virtual std::string | GetSerial () const override |
| virtual std::string | GetDriverName () const =0 |
| virtual void | BackgroundProcessing () override |
| Run various background processing typically done by a second thread (e.g. InstrumentThread) | |
Public Member Functions inherited from SCPIDevice | |
| SCPIDevice (SCPITransport *transport, bool identify=true, unsigned int identify_timeout_us=5000000) | |
| SCPIDevice (const SCPIDevice &rhs)=delete | |
| SCPIDevice & | operator= (const SCPIDevice &rhs)=delete |
| SCPITransport * | GetTransport () const |
Public Member Functions inherited from SCPIOscilloscope | |
| virtual std::string | IDPing () |
| Returns the instrument's identification string. | |
Public Member Functions inherited from Oscilloscope | |
| OscilloscopeChannel * | GetOscilloscopeChannel (size_t i) |
| Gets a channel by index. | |
| virtual bool | CanEnableChannel (size_t i) |
| Determines if a channel can be enabled. | |
| int | GetEnabledChannelCount () |
| Returns the number of enabled channels for this oscilloscope. | |
| OscilloscopeChannel * | GetOscilloscopeChannelByHwName (const std::string &name) |
| Gets a channel given the hardware name. | |
| virtual std::vector< unsigned int > | GetChannelBandwidthLimiters (size_t i) |
| Gets the set of available bandwidth limiters for an input channel. | |
| virtual bool | CanAutoZero (size_t i) |
| Determines if a channel has a probe connected which supports the "auto zero" feature. | |
| virtual void | AutoZero (size_t i) |
| Performs an "auto zero" cycle on the attached active probe, if supported by the hardware. | |
| virtual bool | CanDegauss (size_t i) |
| Determines if a channel has a probe connected which supports the "degauss" feature. | |
| virtual bool | ShouldDegauss (size_t i) |
| Determines if a channel requires a degauss cycle (if supported) | |
| virtual void | Degauss (size_t i) |
| Performs an "degauss" cycle on the attached active probe, if supported by the hardware. | |
| virtual bool | CanAverage (size_t i) |
| Determines if the channel supports hardware averaging. | |
| virtual size_t | GetNumAverages (size_t i) |
| Returns the number of averages the channel is configured for. | |
| virtual void | SetNumAverages (size_t i, size_t navg) |
| Sets the number of hardware averages to use. | |
| virtual std::string | GetProbeName (size_t i) |
| Returns the name of the probe connected to the scope, if possible. | |
| virtual bool | HasInputMux (size_t i) |
| Checks if a channel has an input multiplexer. | |
| virtual size_t | GetInputMuxSetting (size_t i) |
| Gets the setting for a channel's input mux (if it has one) | |
| virtual std::vector< std::string > | GetInputMuxNames (size_t i) |
| Gets names for the input mux ports of a channel. | |
| virtual void | SetInputMux (size_t i, size_t select) |
| Sets the input mux for a channel. | |
| virtual bool | IsHighRateOffsetCapable (size_t i) |
| Checks if the channel supports high rate offset changes, or if the GUI should rate-limit. | |
| virtual bool | CanInvert (size_t i) |
| Checks if a channel is capable of hardware polarity inversion. | |
| virtual void | Invert (size_t i, bool invert) |
| Enables hardware polarity inversion for a channel, if supported. | |
| virtual bool | IsInverted (size_t i) |
| Checks if hardware polarity inversion is enabled for a channel. | |
| virtual bool | PeekTriggerArmed () |
| Checks if the trigger is armed directly on the instrument, without altering internal state or touching caches. | |
| bool | WaitForTrigger (int timeout) |
| Block until a trigger happens or a timeout elapses. | |
| void | SetTrigger (Trigger *trigger) |
| Sets a new trigger on the instrument and pushes changes. | |
| Trigger * | GetTrigger (bool sync=false) |
| Gets the current trigger. | |
| virtual std::vector< std::string > | GetTriggerTypes () |
| Gets a list of triggers this instrument supports. | |
| virtual void | EnableTriggerOutput () |
| Enables the trigger output, configuring a shared auxiliary port for this purpose if needed. | |
| virtual bool | HasInterleavingControls () |
| Returns true if the scope has a user controllable interleaving feature, false if not. | |
| virtual bool | IsSamplingModeAvailable (SamplingMode mode) |
| Returns true if the requested sampling mode is available with the current instrument configuration. | |
| virtual SamplingMode | GetSamplingMode () |
| Gets the current sampling mode of the instrument. | |
| virtual void | SetSamplingMode (SamplingMode mode) |
| Sets the current sampling mode of the instrument. | |
| virtual void | SetDeskewForChannel (size_t channel, int64_t skew) |
| Sets the deskew setting for a channel. | |
| virtual int64_t | GetDeskewForChannel (size_t channel) |
| Gets the deskew setting for a channel. | |
| virtual std::vector< AnalogBank > | GetAnalogBanks () |
| Gets the analog banks for this instrument. | |
| virtual AnalogBank | GetAnalogBank (size_t channel) |
| Gets the bank containing a given channel. | |
| virtual bool | IsADCModePerChannel () |
| Returns true if the ADC is a per-channel setting, false if global for the entire instrument. | |
| virtual bool | IsADCModeConfigurable () |
| Returns true if the ADC is configurable, false if it can only run in one mode. | |
| 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. | |
| virtual size_t | GetADCMode (size_t channel) |
| Gets the ADC mode for a channel. | |
| virtual void | SetADCMode (size_t channel, size_t mode) |
| Sets the ADC mode for a channel. | |
| virtual std::vector< DigitalBank > | GetDigitalBanks () |
| Gets the digital channel banks for this instrument. | |
| virtual DigitalBank | GetDigitalBank (size_t channel) |
| Gets the bank containing a given channel. | |
| virtual bool | IsDigitalHysteresisConfigurable () |
| Checks if digital input hysteresis is configurable or fixed. | |
| virtual bool | IsDigitalThresholdConfigurable () |
| Checks if digital input threshold is configurable or fixed. | |
| virtual float | GetDigitalHysteresis (size_t channel) |
| Gets the hysteresis for a digital input. | |
| virtual float | GetDigitalThreshold (size_t channel) |
| Gets the threshold for a digital input. | |
| virtual void | SetDigitalHysteresis (size_t channel, float level) |
| Sets the hysteresis for a digital input. | |
| virtual void | SetDigitalThreshold (size_t channel, float level) |
| Gets the threshold for a digital input. | |
| virtual void | SetSpan (int64_t span) |
| Sets the span for frequency-domain channels. | |
| virtual int64_t | GetSpan () |
| Gets the span for frequency-domain channels. | |
| virtual void | SetCenterFrequency (size_t channel, int64_t freq) |
| Sets the center frequency for frequency-domain channels. | |
| virtual int64_t | GetCenterFrequency (size_t channel) |
| Gets the center frequency for a frequency-domain channel. | |
| virtual void | SetResolutionBandwidth (int64_t rbw) |
| Gets the resolution bandwidth for frequency-domain channels. | |
| virtual int64_t | GetResolutionBandwidth () |
| Gets the resolution bandwidth for frequency-domain channels. | |
| virtual bool | HasFrequencyControls () |
| Returns true if the instrument has at least one frequency-domain channel. | |
| virtual bool | HasResolutionBandwidth () |
| Returns true if the instrument has a resolution bandwidth setting. | |
| virtual bool | HasTimebaseControls () |
| Returns true if the instrument has at least one time-domain channel. | |
| 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. | |
| double | GetWaveformDownloadRate () |
| bool | HasPendingDiagnosticLogMessages () |
| std::string | PopPendingDiagnosticLogMessage () |
| std::map< std::string, FilterParameter * > & | GetDiagnosticsValues () |
| bool | FreeWaveformPools () |
| Free all waveforms in our pool to reclaim memory. | |
| 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 (const std::string &name, BERTCreateProcType proc) |
| static void | EnumDrivers (std::vector< std::string > &names) |
| static std::shared_ptr< SCPIBERT > | CreateBERT (const 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. | |
| static Pattern | GetPatternOfName (const std::string &name) |
| Converts a string name into a Pattern enum. | |
Static Public Member Functions inherited from SCPIInstrument | |
| static void | DoAddDriverClass (const std::string &name, GetTransportsProcType proc) |
| static std::vector< SCPIInstrumentModel > | GetSupportedModels (const std::string &driver) |
| static std::vector< SCPIInstrumentModel > | GetDriverSupportedModels () |
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 | DoAddDriverClass (const std::string &name, CreateProcType proc) |
| static void | EnumDrivers (std::vector< std::string > &names) |
| static std::shared_ptr< Oscilloscope > | CreateOscilloscope (const 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. | |
Protected Member Functions inherited from BERT | |
| void | DoSerializeConfiguration (YAML::Node &node, IDTable &table) |
| Serializes this BERT'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 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. | |
| 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 | InitVulkanQueue (const char *debugName) |
| Initializes the Vulkan queue and command buffer. | |
| void | AddDiagnosticLog (const std::string &message) |
| UniformAnalogWaveform * | AllocateAnalogWaveform (const std::string &name) |
| SparseDigitalWaveform * | AllocateDigitalWaveform (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) | |
| 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 |
| 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 | |
| SCPITransport * | m_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::shared_ptr< QueueHandle > | m_queue |
| Vulkan queue for GPU waveform processing. | |
| std::unique_ptr< vk::raii::CommandPool > | m_pool |
| Vulkan command pool for GPU waveform processing. | |
| std::unique_ptr< vk::raii::CommandBuffer > | m_cmdBuf |
| Vulkan command buffer for GPU waveform processing. | |
| std::list< SequenceSet > | m_pendingWaveforms |
| std::mutex | m_pendingWaveformsMutex |
| std::recursive_mutex | m_mutex |
| HzClock | m_downloadClock |
| std::deque< std::string > | m_diagnosticLogMessages |
| std::map< std::string, FilterParameter * > | m_diagnosticValues |
| Trigger * | m_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 SCPIInstrument | |
| typedef std::vector< SCPIInstrumentModel >(* | GetTransportsProcType) () |
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. | |
| 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. | |
Protected Types inherited from SCPIBERT | |
| typedef std::map< std::string, BERTCreateProcType > | BERTCreateMapType |
Protected Types inherited from SCPIInstrument | |
| typedef std::map< std::string, GetTransportsProcType > | GetTransportMapType |
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 SCPIInstrument | |
| static GetTransportMapType | m_getTransportProcs |
Static Protected Attributes inherited from Oscilloscope | |
| static CreateMapType | m_createprocs |
An AKL-TXB1 trigger crossbar.
| AntikernelLabsTriggerCrossbar::AntikernelLabsTriggerCrossbar | ( | SCPITransport * | transport | ) |
Initialize the driver.
| transport | SCPI transport connected to the crossbar |
|
overridevirtual |
Pull data from the instrument.
Implements Instrument.
|
overridevirtual |
Returns true if we have no interleave conflicts, false if we have conflicts.
Reimplemented from Oscilloscope.
Turn a channel off, given the index.
This function may optionally configure channel interleaving, if supported in hardware.
| i | Zero-based index of channel |
Implements Oscilloscope.
Turn a channel on, given the index.
| i | Zero-based index of channel |
Implements Oscilloscope.
|
overridevirtual |
Forces a single acquisition as soon as possible.
Note that PollTrigger() may not return 'triggered' immediately, due to command processing latency.
Implements Oscilloscope.
|
overridevirtual |
Gets the set of legal coupling values for an input channel.
| i | Zero-based index of channel |
Implements Oscilloscope.
Gets the list of available data rates, in symbols/sec.
Implements BERT.
|
overridevirtual |
Gets the list of available receive patterns for a channel.
| i | Channel index |
Implements BERT.
|
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.
| i | Channel index |
Implements BERT.
|
overridevirtual |
Gets the list of available transmit patterns for a channel.
| i | Channel index |
Implements BERT.
|
overridevirtual |
Get the integration period for BER measurements.
Implements BERT.
|
overridevirtual |
Get the sampling point for BER measurements.
| i | Channel index |
| dx | Horizontal offset of the sampling point from the center of the eye, in femtoseconds |
| dy | Vertical offset of the sampling point from the center of the eye, in volts |
Implements BERT.
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.
| i | Zero-based index of channel |
Implements Oscilloscope.
Gets the bandwidth limit for an input channel.
| i | Zero-based index of channel |
Implements Oscilloscope.
|
overridevirtual |
Gets the coupling used for an input channel.
| i | Zero-based index of channel |
Implements Oscilloscope.
Gets the offset, in volts, for a given channel.
| i | Zero-based index of channel |
| stream | Zero-based index of stream within channel (0 if only one stream, as is normally the case) |
Implements Oscilloscope.
|
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.
| i | Zero-based index of channel |
| stream | Zero-based index of stream within channel (0 if only one stream, as is normally the case) |
Implements Oscilloscope.
|
overridevirtual |
Returns the number of bits in a custom pattern (may change with line rate)
Implements BERT.
Returns the expected time, in femtoseconds, to complete a bathtub scan with the current settings.
The default implementation returns zero.
| i | Channel index |
Reimplemented from BERT.
Returns the expected time, in femtoseconds, to complete an eye scan with the current settings.
The default implementation returns zero.
| i | Channel index |
Reimplemented from BERT.
|
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.
|
overridevirtual |
Gets the global custom pattern (only valid if IsCustomPatternPerChannel returns false)
Implements BERT.
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 BERT.
|
overridevirtual |
Returns a bitfield describing the set of instrument types that a given channel supports.
| i | Channel index |
Implements Instrument.
|
overridevirtual |
Implements Oscilloscope.
Gets the threshold level of an input channel.
Implements SwitchMatrix.
Gets the drive level of an output channel.
Implements SwitchMatrix.
|
overridevirtual |
Gets the refclk in frequency, in Hz, required to generate the currently selected data rate.
Implements BERT.
|
overridevirtual |
Gets the currently selected refclk out frequency, in Hz.
Implements BERT.
|
overridevirtual |
Gets the currently selected reference clock output mux setting.
Implements BERT.
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.
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
| i | Channel index |
Implements BERT.
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()
| i | Channel index |
Implements BERT.
Get the list of available RX CTLE gain values (in dB)
Implements BERT.
|
overridevirtual |
Gets the currently selected receive pattern for a channel.
| i | Channel index |
Implements BERT.
|
overridevirtual |
Gets the current sample depth of this scope.
Implements Oscilloscope.
Get the legal memory depths for this scope in combined-channels mode.
Implements Oscilloscope.
Get the legal memory depths for this scope in all-channels mode.
Implements Oscilloscope.
|
overridevirtual |
Gets the current sampling rate (in Hz) of this scope.
Implements Oscilloscope.
Get the legal sampling rates (in Hz) for this scope in combined-channels mode.
Implements Oscilloscope.
Get the legal sampling rates (in Hz) for this scope in all-channels mode.
Implements Oscilloscope.
Get the configured scan depth for a channel, in UIs per sample/pixel.
| i | Channel index |
Reimplemented from BERT.
Returns the list of integration depths for eye / bathtub scans.
Higher depths will give better resolution at low BER values, but increase scan time.
| i | Channel index |
Reimplemented from BERT.
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.
Gets the estimated completion status (0-1) of the current scan.
| i | Channel index |
Reimplemented from BERT.
|
overridevirtual |
Gets the trigger offset.
Implements Oscilloscope.
|
overridevirtual |
Gets the currently selected transmit pattern for a channel.
| i | Channel index |
Implements BERT.
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.
| i | Channel index |
Implements BERT.
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.
| i | Channel index |
Implements BERT.
|
overridevirtual |
Sets the reference clock source.
Implements BERT.
|
overridevirtual |
Determines whether this instrument has configurable integration depth for eye / bathtub scans.
Reimplemented from BERT.
|
overridevirtual |
Returns true if this instrument has a reference clock input port.
Implements BERT.
|
overridevirtual |
Returns true if this instrument has a reference clock output port.
Implements BERT.
|
overridevirtual |
Determines whether the input buffer has a continuous-time linear equalizer.
Implements BERT.
Checks if a channel is enabled in hardware.
Implements Oscilloscope.
|
overridevirtual |
Determines whether custom patterns are settable per channel, or shared by the whole device.
Implements BERT.
|
overridevirtual |
Determines whether the TX/RX clock is a per-instrument or per-channel setting.
Implements BERT.
Returns true if a horizontal bathtub scan is in progress.
| i | Channel index |
Reimplemented from BERT.
|
overridevirtual |
Checks if the scope is currently combining channels.
Implements Oscilloscope.
|
overridevirtual |
Checks if the trigger is currently armed.
Implements Oscilloscope.
Checks if an output channel has configurable voltage level.
Implements SwitchMatrix.
Checks if an input channel has configurable voltage level.
Implements SwitchMatrix.
|
overridevirtual |
Checks the curent trigger status.
Implements Oscilloscope.
|
overridevirtual |
Does any initialization that can't happen during the constructor.
Implements SCPIBERT.
|
overridevirtual |
Updates m_trigger with any changes made from the instrument side.
Implements Oscilloscope.
|
overridevirtual |
Pushes changes made to m_trigger to the instrument.
Implements Oscilloscope.
Set the integration period for BER measurements.
Longer values give better resolution for low BERs but update more slowly
Implements BERT.
|
overridevirtual |
Set the sampling point for BER measurements.
| i | Channel index |
| dx | Horizontal offset of the sampling point from the center of the eye, in femtoseconds |
| dy | Vertical offset of the sampling point from the center of the eye, in volts |
Implements BERT.
|
overridevirtual |
Sets the probe attenuation used for an input channel.
| i | Zero-based index of channel |
| atten | Attenuation factor |
Implements Oscilloscope.
|
overridevirtual |
Sets the bandwidth limit for an input channel.
| i | Zero-based index of channel |
| limit_mhz | Bandwidth limit, in MHz. Zero means "no bandwidth limit". |
Implements Oscilloscope.
|
overridevirtual |
Sets the coupling used for an input channel.
| i | Zero-based index of channel |
Implements Oscilloscope.
|
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.
| i | Zero-based index of channel |
| name | Name of the channel |
Reimplemented from Instrument.
|
overridevirtual |
Sets the offset for a given channel.
| i | Zero-based index of channel |
| stream | Zero-based index of stream within channel (0 if only one stream, as is normally the case) |
| offset | Offset, in volts |
Implements Oscilloscope.
|
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.
| i | Zero-based index of channel |
| stream | Zero-based index of stream within channel (0 if only one stream, as is normally the case) |
| range | Voltage range |
Implements Oscilloscope.
Sets the data rate (in symbols/sec)
| i | Channel index |
| rate | Baud rate of the channel |
Implements BERT.
Sets the global custom pattern (only valid if IsCustomPatternPerChannel returns false)
| pattern | The bit sequence (up to 64 bits in length) |
Implements BERT.
Configures the scope to combine channels.
This function may fail to enable channel combining if conflicts are present, check the return value!
Implements Oscilloscope.
|
overridevirtual |
Sets the threshold level of an input channel.
Implements SwitchMatrix.
Sets the drive level of an output channel.
Implements SwitchMatrix.
Sets the mux selector for an output channel.
Implements SwitchMatrix.
Removes a mux path for an output channel.
Not all switch matrices or ports support this feature.
Implements SwitchMatrix.
Sets the reference clock output mux.
| i | Index of the mux within the table returned by GetRefclkOutMuxNames() |
Implements BERT.
Sets the RX CTLE gain index.
| i | Channel index |
| step | Index of the gain value within the GetRxCTLEGainSteps() table to use |
Implements BERT.
Sets the receive invert flag for a channel.
| i | Channel index |
| invert | True = inverted, false = inverted |
Implements BERT.
Sets the receive pattern for the selected channel.
| i | Channel index |
| pattern | Desired input pattern |
Implements BERT.
Sets the sample depth of the scope.
Implements Oscilloscope.
Sets the sample rate of the scope, in Hz.
Implements Oscilloscope.
Set the configured scan depth for a channel.
| i | Channel index |
| depth | Integration depth, in UIs |
Reimplemented from BERT.
Sets the trigger offset.
| offset | Femtoseconds 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.
Set the drive strength for a channel.
| i | Channel index |
| drive | Nominal p-p swing |
Implements BERT.
Sets the transmit enable flag for a channel.
| i | Channel index |
| enable | True = enabled, false = disabled |
Implements BERT.
Sets the transmit invert flag for a channel.
| i | Channel index |
| invert | True = inverted, false = normal |
Implements BERT.
Sets the transmit pattern for the selected channel.
| i | Channel index |
| pattern | The selected pattern |
Implements BERT.
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.
| i | Channel index |
| postcursor | Post-cursor tap |
Implements BERT.
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.
| i | Channel index |
| precursor | Pre-cursor tap |
Implements BERT.
Sets the reference clock source (internal or external)
| external | True to select external clock, false to select internal |
Implements BERT.
|
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.
|
overridevirtual |
Arms the trigger for a single acquistion.
Implements Oscilloscope.
|
overridevirtual |
Stops triggering.
Implements Oscilloscope.
|
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.