ngscopeclient 0.1-dev+51fbda87c
|
Performs an 8-tap FIR filter with a multi-sample delay between taps. More...
#include <TappedDelayLineFilter.h>
Public Member Functions | |
TappedDelayLineFilter (const std::string &color) | |
virtual void | Refresh () override |
Evaluates a filter graph node. More... | |
virtual bool | ValidateChannel (size_t i, StreamDescriptor stream) override |
![]() | |
Filter (const std::string &color, Category cat, Unit xunit=Unit::UNIT_FS) | |
void | HideFromList () |
Removes this filter from the global list. More... | |
virtual void | ClearStreams () override |
Clears out any existing streams. More... | |
virtual size_t | AddStream (Unit yunit, const std::string &name, Stream::StreamType stype, uint8_t flags=0) override |
Adds a new data stream to the channel. More... | |
void | AddProtocolStream (const std::string &name) |
Helper method for constructors that adds a new STREAM_TYPE_PROTOCOL output stream. More... | |
void | AddDigitalStream (const std::string &name) |
Helper method for constructors that adds a new STREAM_TYPE_DIGITAL output stream. More... | |
virtual void | SetDefaultName () |
Sets the name of a filter based on its inputs. More... | |
void | UseDefaultName (bool use) |
Specifies whether we're using an auto-generated name or not. More... | |
bool | IsUsingDefaultName () |
Return true if we're using an autogenerated name, false if customized. | |
virtual void | AddRef () override |
virtual void | Release () override |
size_t | GetRefCount () |
Returns the current reference count. | |
Category | GetCategory () |
Returns the category for displaying this filter in the browser. | |
virtual bool | NeedsConfig () |
Determines if we need to display the configuration / setup dialog. More... | |
virtual std::string | GetProtocolDisplayName ()=0 |
Gets the display name of this protocol (for use in menus, save files, etc). Must be unique. | |
virtual void | ClearSweeps () |
Clears any integrated data from past triggers (e.g. eye patterns). More... | |
virtual void | Refresh () override |
Evaluates a filter graph node. More... | |
virtual void | Refresh (vk::raii::CommandBuffer &cmdBuf, std::shared_ptr< QueueHandle > queue) override |
virtual void | AutoscaleVertical (size_t stream) |
Adjusts gain and offset such that the active waveform occupies the entire vertical area of the plot. | |
virtual float | GetVoltageRange (size_t stream) override |
virtual void | SetVoltageRange (float range, size_t stream) override |
virtual float | GetOffset (size_t stream) override |
virtual void | SetOffset (float offset, size_t stream) override |
virtual YAML::Node | SerializeConfiguration (IDTable &table) override |
Serializes this trigger's configuration to a YAML string. More... | |
virtual void | LoadParameters (const YAML::Node &node, IDTable &table) override |
Load configuration from a save file. More... | |
virtual void | LoadInputs (const YAML::Node &node, IDTable &table) override |
virtual bool | ShouldPersistWaveform () override |
Determine whether the channel's waveform(s) should be persisted to a session file. More... | |
template<class T > | |
__attribute__ ((noinline)) static float InterpolateTime(T *cap | |
Interpolates the actual time of a threshold crossing between two samples. More... | |
if ((ag &&bg)||(!ag &&!bg)) return 0 | |
template<class T > | |
__attribute__ ((noinline)) static void GetMinMaxVoltage(T *cap | |
Gets the lowest and highest voltage of a waveform. | |
for (float f :cap->m_samples) | |
template<class T > | |
__attribute__ ((noinline)) static float GetMinVoltage(T *cap) | |
Gets the lowest voltage of a waveform. | |
template<class T > | |
__attribute__ ((noinline)) static float GetMaxVoltage(T *cap) | |
Gets the highest voltage of a waveform. | |
template<class T > | |
__attribute__ ((noinline)) static float GetBaseVoltage(T *cap) | |
Gets the most probable "0" level for a digital waveform. | |
template<class T > | |
__attribute__ ((noinline)) static float GetTopVoltage(T *cap) | |
Gets the most probable "1" level for a digital waveform. | |
template<class T > | |
__attribute__ ((noinline)) static float GetAvgVoltage(T *cap) | |
Gets the average voltage of a waveform. | |
template<class T > | |
__attribute__ ((noinline)) static std | |
Makes a histogram from a waveform with the specified number of bins. More... | |
template<class T > | |
__attribute__ ((noinline)) static std | |
Makes a histogram from a waveform with the specified number of bins. More... | |
template<class T , class R , class S > | |
__attribute__ ((noinline)) static void SampleOnAnyEdges(T *data | |
Samples a waveform on all edges of a clock. More... | |
AssertSampleTypesAreSame (data, &samples) | |
samples | clear () |
samples | SetGpuAccessHint (AcceleratorBuffer< S >::HINT_NEVER) |
samples | PrepareForCpuAccess () |
for (size_t i=1;i< len;i++) | |
FillDurationsGeneric (samples) | |
samples | MarkModifiedFromCpu () |
template<class T > | |
__attribute__ ((noinline)) static void SampleOnAnyEdgesBase(WaveformBase *data | |
Samples a waveform on all edges of a clock. More... | |
clock | PrepareForCpuAccess () |
samples | PrepareForCpuAccess () |
if (udata &&uclock) SampleOnAnyEdges(udata | |
else | if (udata &&sclock) SampleOnAnyEdges(udata |
else | if (sdata &&sclock) SampleOnAnyEdges(sdata |
else | if (sdata &&uclock) SampleOnAnyEdges(sdata |
template<class T , class R , class S > | |
__attribute__ ((noinline)) static void SampleOnRisingEdges(T *data | |
Samples a waveform on the rising edges of a clock. More... | |
AssertSampleTypesAreSame (data, &samples) | |
samples | clear () |
samples | SetGpuAccessHint (AcceleratorBuffer< S >::HINT_NEVER) |
for (size_t i=1;i< len;i++) | |
FillDurationsGeneric (samples) | |
samples | MarkModifiedFromCpu () |
template<class T > | |
__attribute__ ((noinline)) static void SampleOnRisingEdgesBase(WaveformBase *data | |
Samples a waveform on rising edges of a clock. More... | |
clock | PrepareForCpuAccess () |
samples | PrepareForCpuAccess () |
if (udata &&uclock) SampleOnRisingEdges(udata | |
else | if (udata &&sclock) SampleOnRisingEdges(udata |
else | if (sdata &&sclock) SampleOnRisingEdges(sdata |
else | if (sdata &&uclock) SampleOnRisingEdges(sdata |
template<class T , class R , class S > | |
__attribute__ ((noinline)) static void SampleOnFallingEdges(T *data | |
Samples a waveform on the falling edges of a clock. More... | |
AssertSampleTypesAreSame (data, &samples) | |
samples | clear () |
samples | SetGpuAccessHint (AcceleratorBuffer< S >::HINT_NEVER) |
for (size_t i=1;i< len;i++) | |
FillDurationsGeneric (samples) | |
samples | MarkModifiedFromCpu () |
template<class T , class R > | |
__attribute__ ((noinline)) static void SampleOnAnyEdgesWithInterpolation(T *data | |
Samples an analog waveform on all edges of a clock, interpolating linearly to get sub-sample accuracy. More... | |
AssertTypeIsDigitalWaveform (clock) | |
samples | clear () |
samples | SetGpuAccessHint (AcceleratorBuffer< float >::HINT_NEVER) |
for (size_t i=1;i< len;i++) | |
FillDurationsGeneric (samples) | |
samples | MarkModifiedFromCpu () |
template<class T > | |
__attribute__ ((noinline)) static void SampleOnAnyEdgesBaseWithInterpolation(WaveformBase *data | |
Samples an analog waveform on all edges of a clock, interpolating linearly to get sub-sample accuracy. More... | |
clock | PrepareForCpuAccess () |
samples | PrepareForCpuAccess () |
if (udata &&uclock) SampleOnAnyEdgesWithInterpolation(udata | |
else | if (udata &&sclock) SampleOnAnyEdgesWithInterpolation(udata |
else | if (sdata &&sclock) SampleOnAnyEdgesWithInterpolation(sdata |
else | if (sdata &&uclock) SampleOnAnyEdgesWithInterpolation(sdata |
sigc::signal< void()> | signal_outputsChanged () |
![]() | |
OscilloscopeChannel (Oscilloscope *scope, const std::string &hwname, const std::string &color, Unit xunit=Unit(Unit::UNIT_FS), size_t index=0) | |
OscilloscopeChannel (Oscilloscope *scope, const std::string &hwname, const std::string &color, Unit xunit=Unit(Unit::UNIT_FS), Unit yunit=Unit(Unit::UNIT_VOLTS), Stream::StreamType stype=Stream::STREAM_TYPE_ANALOG, size_t index=0) | |
Oscilloscope * | GetScope () |
size_t | GetRefCount () |
virtual void | SetDisplayName (std::string name) override |
Sets the human-readable nickname for this channel, as displayed in the GUI. More... | |
virtual std::string | GetDisplayName () override |
Gets the human-readable nickname for this channel, as displayed in the GUI. More... | |
bool | IsEnabled () |
void | Enable () |
void | Disable () |
virtual void | AddRef () |
virtual void | Release () |
virtual CouplingType | GetCoupling () |
virtual void | SetCoupling (CouplingType type) |
virtual std::vector< OscilloscopeChannel::CouplingType > | GetAvailableCouplings () |
virtual double | GetAttenuation () |
virtual void | SetAttenuation (double atten) |
virtual int | GetBandwidthLimit () |
virtual void | SetBandwidthLimit (int mhz) |
virtual void | SetDeskew (int64_t skew) |
virtual int64_t | GetDeskew () |
bool | IsPhysicalChannel () |
virtual float | GetVoltageRange (size_t stream) |
virtual void | SetVoltageRange (float range, size_t stream) |
virtual float | GetOffset (size_t stream) |
virtual void | SetOffset (float offset, size_t stream) |
void | SetDigitalHysteresis (float level) |
void | SetDigitalThreshold (float level) |
void | SetCenterFrequency (int64_t freq) |
bool | CanAutoZero () |
void | AutoZero () |
bool | CanDegauss () |
void | Degauss () |
std::string | GetProbeName () |
virtual bool | CanInvert () |
virtual void | Invert (bool invert) |
virtual bool | IsInverted () |
virtual bool | HasInputMux () |
virtual size_t | GetInputMuxSetting () |
virtual void | SetInputMux (size_t select) |
void | SetDefaultDisplayName () |
Gives a channel a default display name if there's not one already. More... | |
virtual DownloadState | GetDownloadState () override |
Returns the current download state of this channel. More... | |
virtual float | GetDownloadProgress () override |
returns the current completion of the download (on the range [0, 1]), if not DOWNLOAD_UNKNOWN More... | |
virtual double | GetDownloadStartTime () override |
returns the start time of a download, if we are DOWNLOAD_IN_PROGRESS; undefined, otherwise More... | |
![]() | |
InstrumentChannel (Instrument *inst, const std::string &hwname, const std::string &color="#808080", Unit xunit=Unit(Unit::UNIT_FS), size_t index=0) | |
InstrumentChannel (Instrument *inst, const std::string &hwname, const std::string &color="#808080", Unit xunit=Unit(Unit::UNIT_FS), Unit yunit=Unit(Unit::UNIT_VOLTS), Stream::StreamType stype=Stream::STREAM_TYPE_ANALOG, size_t index=0) | |
virtual void | SetDisplayName (std::string name) |
Sets the human-readable nickname for this channel, as displayed in the GUI. More... | |
virtual std::string | GetDisplayName () |
Gets the human-readable nickname for this channel, as displayed in the GUI. More... | |
std::string | GetHwname () |
Gets the hardware name of the channel (m_hwname) | |
size_t | GetIndex () |
Gets the (zero based) index of the channel. | |
Instrument * | GetInstrument () |
Gets the instrument this channel is part of (if any) | |
void | ClearCachedDisplayName () |
Sets the display name to an empty string, causing a fetch from hardware. More... | |
virtual PhysicalConnector | GetPhysicalConnector () |
void | SetData (WaveformBase *pNew, size_t stream) |
Sets the waveform data for a given stream, replacing any previous waveform. More... | |
virtual Unit | GetXAxisUnits () |
Returns the X axis unit for this channel. | |
virtual Unit | GetYAxisUnits (size_t stream) |
Returns the Y axis unit for a specified stream. | |
virtual void | SetXAxisUnits (const Unit &rhs) |
Changes the X axis unit for this channel. More... | |
virtual void | SetYAxisUnits (const Unit &rhs, size_t stream) |
Changes the X axis unit for a specified stream. More... | |
Stream::StreamType | GetType (size_t stream) |
Returns the type of a specified stream. | |
size_t | GetStreamCount () |
Get the number of data streams. | |
std::string | GetStreamName (size_t stream) |
Gets the name of a stream (for display in the UI) | |
WaveformBase * | GetData (size_t stream) |
Get the contents of a data stream. | |
uint8_t | GetStreamFlags (size_t stream) |
Get the flags of a data stream. | |
float | GetScalarValue (size_t stream) |
Gets the value of a scalar data stream. | |
void | SetScalarValue (size_t stream, float value) |
Sets the value of a scalar data stream. | |
WaveformBase * | Detach (size_t stream) |
Detach the capture data from this channel. More... | |
virtual bool | ShouldPersistWaveform () |
Determine whether the channel's waveform(s) should be persisted to a session file. More... | |
virtual DownloadState | GetDownloadState () |
Returns the current download state of this channel. More... | |
virtual float | GetDownloadProgress () |
returns the current completion of the download (on the range [0, 1]), if not DOWNLOAD_UNKNOWN More... | |
virtual double | GetDownloadStartTime () |
returns the start time of a download, if we are DOWNLOAD_IN_PROGRESS; undefined, otherwise More... | |
![]() | |
void | DetachInputs () |
Disconnects all inputs from the node without releasing them. More... | |
size_t | GetInputCount () |
std::string | GetInputName (size_t i) |
void | SetInput (size_t i, StreamDescriptor stream, bool force=false) |
Connects a stream to the input of this node. More... | |
void | SetInput (const std::string &name, StreamDescriptor stream, bool force=false) |
virtual bool | ValidateChannel (size_t i, StreamDescriptor stream) |
StreamDescriptor | GetInput (size_t i) |
Gets the descriptor for one of our inputs. | |
FilterParameter & | GetParameter (std::string s) |
bool | HasParameter (std::string s) |
Checks if we have a parameter with a given name. More... | |
ParameterMapType::iterator | GetParamBegin () |
Returns an iterator to the beginning of our parameter map. | |
ParameterMapType::iterator | GetParamEnd () |
Returns an iterator to the end of our parameter map. | |
size_t | GetParamCount () |
Returns the number of parameter we have. | |
virtual YAML::Node | SerializeConfiguration (IDTable &table) |
Serializes this trigger's configuration to a YAML string. More... | |
virtual void | LoadParameters (const YAML::Node &node, IDTable &table) |
Load configuration from a save file. More... | |
virtual void | LoadInputs (const YAML::Node &node, IDTable &table) |
bool | IsDownstreamOf (std::set< FlowGraphNode * > nodes) |
Determines if this node is downstream of any of the specified other nodes. More... | |
virtual DataLocation | GetInputLocation () |
Gets the desired location of the nodes's input data. More... | |
virtual void | Refresh () |
Evaluates a filter graph node. More... | |
virtual void | Refresh (vk::raii::CommandBuffer &cmdBuf, std::shared_ptr< QueueHandle > queue) |
sigc::signal< void()> | signal_parametersChanged () |
sigc::signal< void()> | signal_inputsChanged () |
Static Public Member Functions | |
static std::string | GetProtocolName () |
static void | DoFilterKernel (int64_t tap_delay, float *taps, UniformAnalogWaveform *din, UniformAnalogWaveform *cap) |
![]() | |
static std::set< Filter * > | GetAllInstances () |
Get all currently existing filters. | |
static size_t | GetNumInstances () |
Get all currently existing filters. | |
static int64_t | GetNextEventTimestamp (SparseWaveformBase *wfm, size_t i, size_t len, int64_t timestamp) |
Gets the timestamp of the next event (if any) on a waveform. More... | |
static int64_t | GetNextEventTimestamp (UniformWaveformBase *wfm, size_t i, size_t len, int64_t timestamp) |
Gets the timestamp of the next event (if any) on a waveform. More... | |
static int64_t | GetNextEventTimestamp (SparseWaveformBase *swfm, UniformWaveformBase *uwfm, size_t i, size_t len, int64_t timestamp) |
Gets the timestamp of the next sample in a waveform, which may be sparse or uniform. | |
static void | AdvanceToTimestamp (SparseWaveformBase *wfm, size_t &i, size_t len, int64_t timestamp) |
Advance the waveform to a given timestamp. More... | |
static void | AdvanceToTimestamp (UniformWaveformBase *wfm, size_t &i, size_t len, int64_t timestamp) |
Advance the waveform to a given timestamp. More... | |
static void | AdvanceToTimestamp (SparseWaveformBase *swfm, UniformWaveformBase *uwfm, size_t &i, size_t len, int64_t timestamp) |
static int64_t | GetNextEventTimestampScaled (SparseWaveformBase *wfm, size_t i, size_t len, int64_t timestamp) |
Gets the timestamp of the next event (if any) on a waveform. More... | |
static int64_t | GetNextEventTimestampScaled (UniformWaveformBase *wfm, size_t i, size_t len, int64_t timestamp) |
Gets the timestamp of the next event (if any) on a waveform. More... | |
static void | AdvanceToTimestampScaled (SparseWaveformBase *wfm, size_t &i, size_t len, int64_t timestamp) |
Advance the waveform to a given timestamp. More... | |
static void | AdvanceToTimestampScaled (UniformWaveformBase *wfm, size_t &i, size_t len, int64_t timestamp) |
Advance the waveform to a given timestamp. More... | |
static void | AdvanceToTimestampScaled (SparseWaveformBase *swfm, UniformWaveformBase *uwfm, size_t &i, size_t len, int64_t timestamp) |
static int64_t | GetNextEventTimestampScaled (SparseWaveformBase *swfm, UniformWaveformBase *uwfm, size_t i, size_t len, int64_t timestamp) |
static float | InterpolateTime (SparseAnalogWaveform *s, UniformAnalogWaveform *u, size_t a, float voltage) |
static float | InterpolateTime (UniformAnalogWaveform *p, UniformAnalogWaveform *n, size_t a, float voltage) |
Interpolates the actual time of a differential threshold crossing between two samples. More... | |
static float | InterpolateTime (SparseAnalogWaveform *p, SparseAnalogWaveform *n, size_t a, float voltage) |
Interpolates the actual time of a differential threshold crossing between two samples. More... | |
static float | InterpolateTime (SparseAnalogWaveform *sp, UniformAnalogWaveform *up, SparseAnalogWaveform *sn, UniformAnalogWaveform *un, size_t a, float voltage) |
static float | InterpolateValue (SparseAnalogWaveform *cap, size_t index, float frac_ticks) |
Interpolates the actual value of a point between two samples. More... | |
static float | InterpolateValue (UniformAnalogWaveform *cap, size_t index, float frac_ticks) |
Interpolates the actual value of a point between two samples. More... | |
static float | GetMinVoltage (SparseAnalogWaveform *s, UniformAnalogWaveform *u) |
Gets the lowest voltage of a waveform. | |
static float | GetMaxVoltage (SparseAnalogWaveform *s, UniformAnalogWaveform *u) |
Gets the lowest voltage of a waveform. | |
static float | GetBaseVoltage (SparseAnalogWaveform *swfm, UniformAnalogWaveform *uwfm) |
Gets the base voltage of a waveform which may be sparse or uniform. | |
static float | GetTopVoltage (SparseAnalogWaveform *swfm, UniformAnalogWaveform *uwfm) |
Gets the top voltage of a waveform which may be sparse or uniform. | |
static float | GetAvgVoltage (SparseAnalogWaveform *swfm, UniformAnalogWaveform *uwfm) |
Gets the average voltage of a waveform which may be sparse or uniform. | |
static std::vector< size_t > | MakeHistogram (SparseAnalogWaveform *s, UniformAnalogWaveform *u, float low, float high, size_t bins) |
Makes a histogram from a waveform with the specified number of bins. More... | |
template<class T > | |
static void | PrepareForCpuAccess (SparseWaveform< T > *s, UniformWaveform< T > *u) |
Prepares a sparse or uniform analog waveform for CPU access. | |
template<class T > | |
static void | PrepareForGpuAccess (SparseWaveform< T > *s, UniformWaveform< T > *u) |
Prepares a sparse or uniform analog waveform for GPU access. | |
static void | FindRisingEdges (UniformAnalogWaveform *data, float threshold, std::vector< int64_t > &edges) |
Find rising edges in a waveform, interpolating to sub-sample resolution as necessary. | |
static void | FindRisingEdges (SparseAnalogWaveform *data, float threshold, std::vector< int64_t > &edges) |
Find rising edges in a waveform, interpolating to sub-sample resolution as necessary. | |
static void | FindZeroCrossings (SparseAnalogWaveform *data, float threshold, std::vector< int64_t > &edges) |
Find zero crossings in a waveform, interpolating as necessary. | |
static void | FindZeroCrossings (UniformAnalogWaveform *data, float threshold, std::vector< int64_t > &edges) |
Find zero crossings in a waveform, interpolating as necessary. | |
static void | FindZeroCrossings (UniformDigitalWaveform *data, std::vector< int64_t > &edges) |
static void | FindZeroCrossings (SparseDigitalWaveform *data, std::vector< int64_t > &edges) |
static void | FindRisingEdges (UniformDigitalWaveform *data, std::vector< int64_t > &edges) |
static void | FindRisingEdges (SparseDigitalWaveform *data, std::vector< int64_t > &edges) |
static void | FindFallingEdges (UniformDigitalWaveform *data, std::vector< int64_t > &edges) |
static void | FindFallingEdges (SparseDigitalWaveform *data, std::vector< int64_t > &edges) |
static void | FindPeaks (UniformAnalogWaveform *data, float peak_threshold, std::vector< int64_t > &peak_indices) |
static void | FindPeaks (SparseAnalogWaveform *data, float peak_threshold, std::vector< int64_t > &peak_indices) |
static void | FindZeroCrossingsBase (WaveformBase *data, float threshold, std::vector< int64_t > &edges) |
static void | FindRisingEdges (SparseDigitalWaveform *sdata, UniformDigitalWaveform *udata, std::vector< int64_t > &edges) |
static void | FindFallingEdges (SparseDigitalWaveform *sdata, UniformDigitalWaveform *udata, std::vector< int64_t > &edges) |
static void | FindPeaks (SparseAnalogWaveform *sdata, UniformAnalogWaveform *udata, float peak_threshold, std::vector< int64_t > &peak_indices) |
static void | FindZeroCrossings (SparseAnalogWaveform *sdata, UniformAnalogWaveform *udata, float threshold, std::vector< int64_t > &edges) |
static void | FindZeroCrossings (SparseDigitalWaveform *sdata, UniformDigitalWaveform *udata, std::vector< int64_t > &edges) |
static void | ClearAnalysisCache () |
static void | DoAddDecoderClass (const std::string &name, CreateProcType proc) |
static void | EnumProtocols (std::vector< std::string > &names) |
static Filter * | CreateFilter (const std::string &protocol, const std::string &color="#ffffff") |
Static Protected Member Functions | |
static void | DoFilterKernelGeneric (int64_t tap_delay, float *taps, UniformAnalogWaveform *din, UniformAnalogWaveform *cap) |
![]() | |
static void | FillDurationsGeneric (SparseWaveformBase &wfm) |
Computes durations of samples based on offsets, assuming the capture is gapless. More... | |
Protected Attributes | |
std::string | m_tapDelayName |
std::string | m_tap0Name |
std::string | m_tap1Name |
std::string | m_tap2Name |
std::string | m_tap3Name |
std::string | m_tap4Name |
std::string | m_tap5Name |
std::string | m_tap6Name |
std::string | m_tap7Name |
![]() | |
std::vector< float > | m_ranges |
Y axis range of each output stream. | |
std::vector< float > | m_offsets |
Y axis offset of each output stream. | |
Category | m_category |
Category this filter should be displayed under. | |
bool | m_usingDefault |
If true, we're using an auto-generated name. | |
sigc::signal< void()> | m_outputsChangedSignal |
Signal emitted when the set of output streams changes. | |
unsigned int | m_instanceNum |
Instance number (for auto naming) More... | |
![]() | |
size_t | m_refcount |
Number of references (channel is disabled when last ref is released) | |
![]() | |
Instrument * | m_instrument |
The instrument we're part of (may be null in the case of filters etc) | |
std::string | m_hwname |
Hardware name of the channel. More... | |
std::string | m_displayname |
Display name (user defined, defaults to m_hwname). More... | |
size_t | m_index |
Zero based index of the channel within the instrument. | |
Unit | m_xAxisUnit |
Unit of measurement for our horizontal axis (common to all streams) | |
std::vector< Stream > | m_streams |
Configuration data for each of our output streams. | |
![]() | |
std::vector< std::string > | m_signalNames |
Names of signals we take as input. | |
std::vector< StreamDescriptor > | m_inputs |
The channel (if any) connected to each of our inputs. | |
ParameterMapType | m_parameters |
sigc::signal< void()> | m_parametersChangedSignal |
Signal emitted when the set of parameters changes. | |
sigc::signal< void()> | m_inputsChangedSignal |
Signal emitted when the set of inputs changes. | |
Additional Inherited Members | |
![]() | |
enum | Category { CAT_ANALYSIS , CAT_BUS , CAT_CLOCK , CAT_MATH , CAT_MEASUREMENT , CAT_MEMORY , CAT_SERIAL , CAT_MISC , CAT_POWER , CAT_RF , CAT_GENERATION , CAT_EXPORT , CAT_OPTICAL , CAT_COUNT } |
Category the filter should be displayed under in the GUI. More... | |
typedef Filter *(* | CreateProcType) (const std::string &) |
![]() | |
enum | CouplingType { COUPLE_DC_1M , COUPLE_AC_1M , COUPLE_DC_50 , COUPLE_AC_50 , COUPLE_GND , COUPLE_SYNTHETIC } |
![]() | |
enum | PhysicalConnector { CONNECTOR_BANANA_DUAL , CONNECTOR_BMA , CONNECTOR_BNC , CONNECTOR_K , CONNECTOR_K_DUAL , CONNECTOR_N , CONNECTOR_SMA } |
enum | VisibilityMode { VIS_HIDE , VIS_AUTO , VIS_SHOW } |
Selects how the channel should be displayed in e.g. the ngscopeclient filter graph editor. | |
enum | DownloadState { DOWNLOAD_UNKNOWN , DOWNLOAD_NONE , DOWNLOAD_WAITING , DOWNLOAD_IN_PROGRESS , DOWNLOAD_FINISHED } |
Enum values to be mapped to GetDownloadState() int result value for specific channel download states. More... | |
![]() | |
enum | DataLocation { LOC_CPU , LOC_GPU , LOC_DONTCARE } |
typedef std::map< std::string, FilterParameter > | ParameterMapType |
Short name for a map of strings to parameters. | |
![]() | |
size_t | a |
size_t float | voltage |
float | fa = cap->m_samples[a] |
float | fb = cap->m_samples[a+1] |
bool | ag = (fa > voltage) |
bool | bg = (fb > voltage) |
float | slope = (fb - fa) |
float | delta = voltage - fa |
return delta | slope |
float & | vmin |
float float & | vmax |
vmin = FLT_MAX | |
vmax = FLT_MIN | |
R * | clock |
R SparseWaveform< S > & | samples |
size_t | len = clock->size() |
size_t | dlen = data->size() |
size_t | ndata = 0 |
WaveformBase * | clock |
WaveformBase SparseWaveform< T > & | samples |
auto | udata = dynamic_cast<UniformWaveform<T>*>(data) |
auto | sdata = dynamic_cast<SparseWaveform<T>*>(data) |
auto | uclock = dynamic_cast<UniformDigitalWaveform*>(clock) |
auto | sclock = dynamic_cast<SparseDigitalWaveform*>(clock) |
uclock | |
samples | |
else | sclock |
else | samples |
else | uclock |
AssertTypeIsSparseWaveform & | samples |
R SparseAnalogWaveform & | samples |
![]() | |
std::string | m_displaycolor |
Display color (HTML hex notation with optional alpha channel: #RRGGBB or ##RRGGBBAA) | |
enum InstrumentChannel::VisibilityMode | m_visibilityMode |
![]() | |
typedef std::map< std::string, CreateProcType > | CreateMapType |
![]() | |
bool | VerifyAllInputsOK (bool allowEmpty=false) |
Returns true if every input to the filter is non-NULL (and, optionally has a non-empty waveform present) | |
bool | VerifyInputOK (size_t i, bool allowEmpty=false) |
Returns true if a given input to the filter is non-NULL (and, optionally has a non-empty waveform present) | |
bool | VerifyAllInputsOKAndUniformAnalog () |
Returns true if every input to the filter is non-NULL and has a non-empty, uniformly sampled analog waveform present. | |
bool | VerifyAllInputsOKAndSparseAnalog () |
Returns true if every input to the filter is non-NULL and has a non-empty, sparsely sampled analog waveform present. | |
bool | VerifyAllInputsOKAndSparseDigital () |
Returns true if every input to the filter is non-NULL and has a non-empty, sparsely sampled digital waveform present. | |
bool | VerifyAllInputsOKAndSparseOrUniformDigital () |
Returns true if every input to the filter is non-NULL and has a non-empty, digital waveform present. | |
UniformAnalogWaveform * | SetupEmptyUniformAnalogOutputWaveform (WaveformBase *din, size_t stream, bool clear=true) |
Sets up an analog output waveform and copies basic metadata from the input. More... | |
SparseAnalogWaveform * | SetupEmptySparseAnalogOutputWaveform (WaveformBase *din, size_t stream, bool clear=true) |
Sets up an analog output waveform and copies basic metadata from the input. More... | |
UniformDigitalWaveform * | SetupEmptyUniformDigitalOutputWaveform (WaveformBase *din, size_t stream) |
Sets up an digital output waveform and copies basic metadata from the input. More... | |
SparseDigitalWaveform * | SetupEmptySparseDigitalOutputWaveform (WaveformBase *din, size_t stream) |
Sets up an digital output waveform and copies basic metadata from the input. More... | |
SparseAnalogWaveform * | SetupSparseOutputWaveform (SparseWaveformBase *din, size_t stream, size_t skipstart, size_t skipend) |
Sets up an analog output waveform and copies timebase configuration from the input. More... | |
SparseDigitalWaveform * | SetupSparseDigitalOutputWaveform (SparseWaveformBase *din, size_t stream, size_t skipstart, size_t skipend) |
Sets up a digital output waveform and copies timebase configuration from the input. More... | |
![]() | |
void | SharedCtorInit (Unit unit) |
virtual void | ClearStreams () |
Clears out any existing streams. More... | |
virtual size_t | AddStream (Unit yunit, const std::string &name, Stream::StreamType stype, uint8_t flags=0) |
Adds a new data stream to the channel. More... | |
![]() | |
virtual void | OnInputChanged (size_t i) |
Called when a new input is connected to the node. More... | |
WaveformBase * | GetInputWaveform (size_t i) |
Gets the waveform attached to the specified input. More... | |
SparseAnalogWaveform * | GetSparseAnalogInputWaveform (size_t i) |
Gets the analog waveform attached to the specified input. | |
UniformAnalogWaveform * | GetUniformAnalogInputWaveform (size_t i) |
Gets the analog waveform attached to the specified input. | |
SparseDigitalWaveform * | GetSparseDigitalInputWaveform (size_t i) |
Gets the digital waveform attached to the specified input. | |
UniformDigitalWaveform * | GetUniformDigitalInputWaveform (size_t i) |
Gets the digital waveform attached to the specified input. | |
SparseDigitalBusWaveform * | GetSparseDigitalBusInputWaveform (size_t i) |
Gets the digital bus waveform attached to the specified input. | |
void | CreateInput (const std::string &name) |
Creates and names an input signal. | |
std::string | GetInputDisplayName (size_t i) |
Gets the display name for one of our inputs. More... | |
![]() | |
static CreateMapType | m_createprocs |
static std::set< Filter * > | m_filters |
static std::map< std::string, unsigned int > | m_instanceCount |
static std::mutex | m_cacheMutex |
static std::map< std::pair< WaveformBase *, float >, std::vector< int64_t > > | m_zeroCrossingCache |
Performs an 8-tap FIR filter with a multi-sample delay between taps.
The delay must be an integer multiple of the sampling period.
|
overridevirtual |
Evaluates a filter graph node.
This version does not support using Vulkan acceleration and should be considered deprecated. It will be removed in the indefinite future once all filters have been converted to the new API.
Reimplemented from Filter.
|
overridevirtual |
Reimplemented from FlowGraphNode.