ngscopeclient 0.1-dev+51fbda87c
|
A waveform sampled at uniform intervals. More...
#include <Waveform.h>
Public Member Functions | |
UniformWaveform (const std::string &name="") | |
Creates a new uniform waveform. More... | |
virtual void | Rename (const std::string &name="") override |
Assings a human readable name to the waveform for debug purposes. More... | |
UniformWaveform (const SparseWaveform< S > &rhs) | |
Creates a uniform waveform as a copy of a sparse one which happens to be sampled at uniform rate. More... | |
virtual void | FreeGpuMemory () override |
Free GPU-side memory if we are short on VRAM or do not anticipate using this waveform for a while. More... | |
virtual bool | HasGpuBuffer () override |
Returns true if we have at least one buffer resident on the GPU. More... | |
virtual void | Resize (size_t size) override |
Reallocates buffers so the waveform contains the specified number of samples. More... | |
virtual size_t | size () const override |
Returns the number of samples in this waveform. More... | |
virtual void | clear () override |
Remove all samples from this waveform. More... | |
virtual void | PrepareForCpuAccess () override |
Indicates that this waveform is going to be used by the CPU in the near future. More... | |
virtual void | PrepareForGpuAccess () override |
Indicates that this waveform is going to be used by the CPU in the near future. More... | |
virtual void | MarkSamplesModifiedFromCpu () override |
Indicates that this waveform's sample data has been modified on the CPU and the GPU-side copy is no longer coherent. More... | |
virtual void | MarkSamplesModifiedFromGpu () override |
Indicates that this waveform's sample data has been modified on the GPU and the CPU-side copy is no longer coherent. More... | |
virtual void | MarkModifiedFromCpu () override |
Indicates that this waveform's sample data and timestamps have been modified on the CPU and the GPU-side copy is no longer coherent. More... | |
virtual void | MarkModifiedFromGpu () override |
Indicates that this waveform's sample data and timestamps have been modified on the GPU and the CPU-side copy is no longer coherent. More... | |
void | SetGpuAccessHint (enum AcceleratorBuffer< S >::UsageHint hint) |
Passes a hint to the memory allocator about where our sample data is expected to be used. More... | |
![]() | |
UniformWaveformBase (const SparseWaveformBase &rhs) | |
Creates a uniform waveform as a copy of a sparse one. More... | |
![]() | |
WaveformBase () | |
Creates an empty waveform. | |
WaveformBase (const WaveformBase &rhs) | |
Creates a waveform, copying metadata from another. | |
virtual void | Rename (const std::string &name="")=0 |
Assings a human readable name to the waveform for debug purposes. More... | |
virtual void | clear ()=0 |
Remove all samples from this waveform. More... | |
virtual void | Resize (size_t size)=0 |
Reallocates buffers so the waveform contains the specified number of samples. More... | |
virtual size_t | size () const =0 |
Returns the number of samples in this waveform. More... | |
virtual bool | empty () |
Returns true if this waveform contains no samples, false otherwise. | |
virtual std::string | GetText (size_t i) |
Returns the text representation of a given protocol sample. More... | |
virtual std::string | GetColor (size_t) |
Returns the displayed color (in HTML #rrggbb or #rrggbbaa notation) of a given protocol sample. More... | |
virtual uint32_t | GetColorCached (size_t i) |
Returns the packed RGBA32 color of a given protocol sample calculated by CacheColors() More... | |
virtual void | PrepareForCpuAccess ()=0 |
Indicates that this waveform is going to be used by the CPU in the near future. More... | |
virtual void | PrepareForGpuAccess ()=0 |
Indicates that this waveform is going to be used by the CPU in the near future. More... | |
virtual void | MarkSamplesModifiedFromCpu ()=0 |
Indicates that this waveform's sample data has been modified on the CPU and the GPU-side copy is no longer coherent. More... | |
virtual void | MarkSamplesModifiedFromGpu ()=0 |
Indicates that this waveform's sample data has been modified on the GPU and the CPU-side copy is no longer coherent. More... | |
virtual void | MarkModifiedFromCpu ()=0 |
Indicates that this waveform's sample data and timestamps have been modified on the CPU and the GPU-side copy is no longer coherent. More... | |
virtual void | MarkModifiedFromGpu ()=0 |
Indicates that this waveform's sample data and timestamps have been modified on the GPU and the CPU-side copy is no longer coherent. More... | |
virtual void | CacheColors () |
Updates the cache of packed colors to avoid string parsing every frame. | |
virtual void | FreeGpuMemory ()=0 |
Free GPU-side memory if we are short on VRAM or do not anticipate using this waveform for a while. More... | |
virtual bool | HasGpuBuffer ()=0 |
Returns true if we have at least one buffer resident on the GPU. More... | |
Public Attributes | |
AcceleratorBuffer< S > | m_samples |
Sample data. | |
![]() | |
int64_t | m_timescale |
The time scale, in X axis units (usually femtoseconds) per timestep, used by this channel. More... | |
time_t | m_startTimestamp |
Start time of the acquisition, integer part. | |
int64_t | m_startFemtoseconds |
Start time of the acquisition, fractional part (femtoseconds since since the UTC second) | |
int64_t | m_triggerPhase |
Offset, in X axis units (usually femtoseconds), from the trigger to the sampling clock. More... | |
uint8_t | m_flags |
Flags that apply to this waveform. Bitfield containing zero or more WaveformFlags_t values. | |
uint64_t | m_revision |
Revision number. More... | |
Additional Inherited Members | |
![]() | |
enum | WaveformFlags_t { WAVEFORM_CLIPPING = 1 } |
Flags which may apply to m_flags. More... | |
![]() | |
AcceleratorBuffer< uint32_t > | m_protocolColors |
Cache of packed RGBA32 data with colors for each protocol decode event. Empty for non-protocol waveforms. | |
uint64_t | m_cachedColorRevision |
Revision we last cached colors of. | |
A waveform sampled at uniform intervals.
This is the most common type of waveform acquired by an oscilloscope, logic analyzer in timing mode, etc.
|
inline |
Creates a new uniform waveform.
name | Internal name for this waveform, to be displayed in debug log messages etc |
|
inline |
Creates a uniform waveform as a copy of a sparse one which happens to be sampled at uniform rate.
It is assumed that the sparse waveform is actually sampled at regular intervals (i.e. m_durations={1, 1, ...1} and m_offsets = {0, 1, 2... N} ). If this is not the case, sample data is copied verbatim but timestamps of the resulting waveform will be incorrect. No validation of timestamps are performed.
|
inlineoverridevirtual |
Remove all samples from this waveform.
Implements WaveformBase.
|
inlineoverridevirtual |
Free GPU-side memory if we are short on VRAM or do not anticipate using this waveform for a while.
Implements WaveformBase.
|
inlineoverridevirtual |
Returns true if we have at least one buffer resident on the GPU.
Implements WaveformBase.
|
inlineoverridevirtual |
Indicates that this waveform's sample data and timestamps have been modified on the CPU and the GPU-side copy is no longer coherent.
Implements WaveformBase.
|
inlineoverridevirtual |
Indicates that this waveform's sample data and timestamps have been modified on the GPU and the CPU-side copy is no longer coherent.
Implements WaveformBase.
|
inlineoverridevirtual |
Indicates that this waveform's sample data has been modified on the CPU and the GPU-side copy is no longer coherent.
Implements WaveformBase.
|
inlineoverridevirtual |
Indicates that this waveform's sample data has been modified on the GPU and the CPU-side copy is no longer coherent.
Implements WaveformBase.
|
inlineoverridevirtual |
Indicates that this waveform is going to be used by the CPU in the near future.
This ensures the CPU-side copy of the data is coherent with the most recently modified (CPU or GPU side) copy.
Implements WaveformBase.
|
inlineoverridevirtual |
Indicates that this waveform is going to be used by the CPU in the near future.
This ensures the GPU-side copy of the data is coherent with the most recently modified (CPU or GPU side) copy.
Implements WaveformBase.
|
inlineoverridevirtual |
Assings a human readable name to the waveform for debug purposes.
This value may be printed in internal log messages, by the Vulkan validation layers, displayed in frame debuggers, etc.
Implements WaveformBase.
|
inlineoverridevirtual |
Reallocates buffers so the waveform contains the specified number of samples.
If the waveform shrinks, excess memory is freed. If the waveform grows, new samples are uninitialized.
size | New size of the waveform buffer, in samples |
Implements WaveformBase.
|
inline |
Passes a hint to the memory allocator about where our sample data is expected to be used.
hint | Hint value for expected usage |
|
inlineoverridevirtual |
Returns the number of samples in this waveform.
Implements WaveformBase.