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

A constellation diagram. More...

#include <ConstellationWaveform.h>

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

Public Member Functions

 ConstellationWaveform (size_t width, size_t height)
 
 ConstellationWaveform (const ConstellationWaveform &)=delete
 
ConstellationWaveformoperator= (const ConstellationWaveform &)=delete
 
int64_t * GetAccumData ()
 Returns the raw accumulator sample data.
 
void Normalize ()
 Normalizes the waveform so that the output buffer has values in the range [0, 1]. More...
 
size_t GetTotalSymbols ()
 Returns the number of integrated symbols in the constellation.
 
void IntegrateSymbols (size_t symbols)
 Marks the waveform as having integrated another batch of symbols. 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...
 
- Public Member Functions inherited from DensityFunctionWaveform
 DensityFunctionWaveform (size_t width, size_t height)
 Initialize a new density function waveform of a given size. More...
 
 DensityFunctionWaveform (const DensityFunctionWaveform &)=delete
 
DensityFunctionWaveformoperator= (const DensityFunctionWaveform &)=delete
 
virtual void Rename (const std::string &name="") override
 Assings a human readable name to the waveform for debug purposes. More...
 
float * GetData ()
 Returns a pointer to the CPU-side sample data buffer.
 
AcceleratorBuffer< float > & GetOutData ()
 Returns a reference to the output data buffer object.
 
size_t GetHeight ()
 Returns the height of the bitmap in pixels.
 
size_t GetWidth ()
 Returns the width of the bitmap in pixels.
 
virtual void clear () override
 Remove all samples from this waveform. More...
 
virtual void Resize (size_t unused) override
 Reallocates buffers so the waveform contains the specified number of samples. 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...
 
virtual size_t size () const override
 Returns the number of samples in this waveform. More...
 
- Public Member Functions inherited from WaveformBase
 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

float m_saturationLevel
 Value to pre-normalize the waveform to before clipping to the range [0, 1]. Must be non-negative. More...
 
- Public Attributes inherited from WaveformBase
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...
 

Protected Attributes

int64_t * m_accumdata
 Raw accumulator buffer, not normalized. More...
 
size_t m_totalSymbols
 The number of symbols which have been integrated so far.
 
- Protected Attributes inherited from DensityFunctionWaveform
size_t m_width
 Buffer width, in pixels.
 
size_t m_height
 Buffer height, in pixels.
 
AcceleratorBuffer< float > m_outdata
 Pixel buffer.
 
- Protected Attributes inherited from WaveformBase
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.
 

Additional Inherited Members

- Public Types inherited from WaveformBase
enum  WaveformFlags_t { WAVEFORM_CLIPPING = 1 }
 Flags which may apply to m_flags. More...
 

Detailed Description

A constellation diagram.

Member Function Documentation

◆ FreeGpuMemory()

virtual void ConstellationWaveform::FreeGpuMemory ( )
inlineoverridevirtual

Free GPU-side memory if we are short on VRAM or do not anticipate using this waveform for a while.

Implements WaveformBase.

◆ HasGpuBuffer()

virtual bool ConstellationWaveform::HasGpuBuffer ( )
inlineoverridevirtual

Returns true if we have at least one buffer resident on the GPU.

Implements WaveformBase.

◆ IntegrateSymbols()

void ConstellationWaveform::IntegrateSymbols ( size_t  symbols)
inline

Marks the waveform as having integrated another batch of symbols.

Parameters
symbolsNumber of symbols integrated

◆ Normalize()

void ConstellationWaveform::Normalize ( )

Normalizes the waveform so that the output buffer has values in the range [0, 1].

The normalization process can saturate, see m_saturationLevel for detailed discussion of this behavior

Member Data Documentation

◆ m_accumdata

int64_t* ConstellationWaveform::m_accumdata
protected

Raw accumulator buffer, not normalized.

2D array of width*height values, each counting the number of hits at that pixel location

◆ m_saturationLevel

float ConstellationWaveform::m_saturationLevel

Value to pre-normalize the waveform to before clipping to the range [0, 1]. Must be non-negative.

The default of 1.0 means the input range is mapped losslessly to [0, 1].

Values less than 1.0 result in the output never reaching full scale.

Values greater than 1.0 allow clipping; for example a saturation level of 2.0 means the input is mapped to [0, 2] then clipped to [0, 1]. This is equivalent to mapping the low half of the input values to [0, 1] and saturating beyond that point.


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