ngscopeclient 0.1-dev+51fbda87c
|
Base class for all Waveform specializations. More...
#include <Waveform.h>
Public Types | |
enum | WaveformFlags_t { WAVEFORM_CLIPPING = 1 } |
Flags which may apply to m_flags. More... | |
Public Member Functions | |
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 | |
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 | |
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. | |
Base class for all Waveform specializations.
One waveform contains a time-series of sample objects as well as scale information etc. The samples may or may not be at regular intervals depending on whether the source instrument uses RLE compression, whether the data is derived from a math/filter block rather than physical measurements, etc.
The WaveformBase contains all metadata about the waveform, but the actual samples (and timestamps, if sparse) are stored in a derived class member.
|
pure virtual |
Remove all samples from this waveform.
Implemented in DensityFunctionWaveform, UniformWaveform< S >, SparseWaveform< S >, SparseWaveform< ADL5205Symbol >, SparseWaveform< char >, SparseWaveform< CANSymbol >, SparseWaveform< DPAuxSymbol >, SparseWaveform< DPhyDataSymbol >, SparseWaveform< DPhyEscapeModeSymbol >, SparseWaveform< DPhySymbol >, SparseWaveform< DSIFrameSymbol >, SparseWaveform< DSISymbol >, SparseWaveform< DVISymbol >, SparseWaveform< ESPISymbol >, SparseWaveform< Ethernet100BaseT1LinkTrainingSymbol >, SparseWaveform< Ethernet64b66bSymbol >, SparseWaveform< EthernetAutonegotiationPageSample >, SparseWaveform< uint16_t >, SparseWaveform< EthernetBaseXAutonegotiationSample >, SparseWaveform< EthernetFrameSegment >, SparseWaveform< HyperRAMSymbol >, SparseWaveform< I2CEepromSymbol >, SparseWaveform< I2CRegisterSymbol >, SparseWaveform< I2CSymbol >, SparseWaveform< IBM8b10bSymbol >, SparseWaveform< IPv4Symbol >, SparseWaveform< J1939PDUSymbol >, SparseWaveform< JtagSymbol >, SparseWaveform< MDIOSymbol >, SparseWaveform< MilStd1553Symbol >, SparseWaveform< OneWireSymbol >, SparseWaveform< PCIe128b130bSymbol >, SparseWaveform< PCIeDataLinkSymbol >, SparseWaveform< PCIeLTSSMSymbol >, SparseWaveform< PCIeLinkTrainingSymbol >, SparseWaveform< PCIeLogicalSymbol >, SparseWaveform< PCIeTransportSymbol >, SparseWaveform< SDCmdSymbol >, SparseWaveform< SDDataSymbol >, SparseWaveform< SDRAMSymbol >, SparseWaveform< SPIFlashSymbol >, SparseWaveform< SPISymbol >, SparseWaveform< SWDMemAPSymbol >, SparseWaveform< SWDSymbol >, SparseWaveform< TCPSymbol >, SparseWaveform< TMDSSymbol >, SparseWaveform< USB2PCSSymbol >, SparseWaveform< USB2PMASymbol >, SparseWaveform< USB2PacketSymbol >, and SparseWaveform< VICPSymbol >.
|
pure virtual |
Free GPU-side memory if we are short on VRAM or do not anticipate using this waveform for a while.
Implemented in ConstellationWaveform, EyeWaveform, UniformWaveform< S >, SparseWaveform< S >, SparseWaveform< ADL5205Symbol >, SparseWaveform< char >, SparseWaveform< CANSymbol >, SparseWaveform< DPAuxSymbol >, SparseWaveform< DPhyDataSymbol >, SparseWaveform< DPhyEscapeModeSymbol >, SparseWaveform< DPhySymbol >, SparseWaveform< DSIFrameSymbol >, SparseWaveform< DSISymbol >, SparseWaveform< DVISymbol >, SparseWaveform< ESPISymbol >, SparseWaveform< Ethernet100BaseT1LinkTrainingSymbol >, SparseWaveform< Ethernet64b66bSymbol >, SparseWaveform< EthernetAutonegotiationPageSample >, SparseWaveform< uint16_t >, SparseWaveform< EthernetBaseXAutonegotiationSample >, SparseWaveform< EthernetFrameSegment >, SparseWaveform< HyperRAMSymbol >, SparseWaveform< I2CEepromSymbol >, SparseWaveform< I2CRegisterSymbol >, SparseWaveform< I2CSymbol >, SparseWaveform< IBM8b10bSymbol >, SparseWaveform< IPv4Symbol >, SparseWaveform< J1939PDUSymbol >, SparseWaveform< JtagSymbol >, SparseWaveform< MDIOSymbol >, SparseWaveform< MilStd1553Symbol >, SparseWaveform< OneWireSymbol >, SparseWaveform< PCIe128b130bSymbol >, SparseWaveform< PCIeDataLinkSymbol >, SparseWaveform< PCIeLTSSMSymbol >, SparseWaveform< PCIeLinkTrainingSymbol >, SparseWaveform< PCIeLogicalSymbol >, SparseWaveform< PCIeTransportSymbol >, SparseWaveform< SDCmdSymbol >, SparseWaveform< SDDataSymbol >, SparseWaveform< SDRAMSymbol >, SparseWaveform< SPIFlashSymbol >, SparseWaveform< SPISymbol >, SparseWaveform< SWDMemAPSymbol >, SparseWaveform< SWDSymbol >, SparseWaveform< TCPSymbol >, SparseWaveform< TMDSSymbol >, SparseWaveform< USB2PCSSymbol >, SparseWaveform< USB2PMASymbol >, SparseWaveform< USB2PacketSymbol >, SparseWaveform< VICPSymbol >, SpectrogramWaveform, and WaterfallWaveform.
|
inlinevirtual |
Returns the displayed color (in HTML #rrggbb or #rrggbbaa notation) of a given protocol sample.
Not used for non-protocol waveforms.
i | Sample index |
Reimplemented in CANWaveform, ADL5205Waveform, DPAuxWaveform, DPhyDataWaveform, DPhyEscapeModeWaveform, DPhySymbolWaveform, DSIFrameWaveform, DSIWaveform, DVIWaveform, ESPIWaveform, Ethernet100BaseT1LinkTrainingWaveform, Ethernet64b66bWaveform, EthernetAutonegotiationWaveform, EthernetAutonegotiationPageWaveform, EthernetBaseXAutonegotiationWaveform, EthernetWaveform, HyperRAMWaveform, I2CWaveform, I2CEepromWaveform, I2CRegisterWaveform, IBM8b10bWaveform, IPv4Waveform, J1939PDUWaveform, JtagWaveform, MDIOWaveform, MilStd1553Waveform, OneWireWaveform, PCIe128b130bWaveform, PCIeDataLinkWaveform, PCIeLogicalWaveform, PCIeLinkTrainingWaveform, PCIeLTSSMWaveform, PCIeTransportWaveform, SDCmdWaveform, SDDataWaveform, SDRAMWaveform, SPIWaveform, SPIFlashWaveform, SWDWaveform, SWDMemAPWaveform, TCPWaveform, TMDSWaveform, ByteWaveform, USB2PacketWaveform, USB2PCSWaveform, USB2PMAWaveform, and VICPWaveform.
|
inlinevirtual |
Returns the packed RGBA32 color of a given protocol sample calculated by CacheColors()
Not used for non-protocol waveforms.
i | Sample index |
|
inlinevirtual |
Returns the text representation of a given protocol sample.
Not used for non-protocol waveforms.
i | Sample index |
Reimplemented in CANWaveform, ADL5205Waveform, DPAuxWaveform, DPhyDataWaveform, DPhyEscapeModeWaveform, DPhySymbolWaveform, DSIFrameWaveform, DSIWaveform, DVIWaveform, ESPIWaveform, Ethernet100BaseT1LinkTrainingWaveform, Ethernet64b66bWaveform, EthernetAutonegotiationWaveform, EthernetAutonegotiationPageWaveform, EthernetBaseXAutonegotiationWaveform, EthernetWaveform, HyperRAMWaveform, I2CWaveform, I2CEepromWaveform, I2CRegisterWaveform, IBM8b10bWaveform, IPv4Waveform, J1939PDUWaveform, JtagWaveform, MDIOWaveform, MilStd1553Waveform, OneWireWaveform, PCIe128b130bWaveform, PCIeDataLinkWaveform, PCIeLogicalWaveform, PCIeLinkTrainingWaveform, PCIeLTSSMWaveform, PCIeTransportWaveform, SDCmdWaveform, SDDataWaveform, SDRAMWaveform, SPIWaveform, SPIFlashWaveform, SWDWaveform, SWDMemAPWaveform, TCPWaveform, TMDSWaveform, ByteWaveform, USB2PacketWaveform, USB2PCSWaveform, USB2PMAWaveform, and VICPWaveform.
|
pure virtual |
Returns true if we have at least one buffer resident on the GPU.
Implemented in ConstellationWaveform, EyeWaveform, UniformWaveform< S >, SparseWaveform< S >, SparseWaveform< ADL5205Symbol >, SparseWaveform< char >, SparseWaveform< CANSymbol >, SparseWaveform< DPAuxSymbol >, SparseWaveform< DPhyDataSymbol >, SparseWaveform< DPhyEscapeModeSymbol >, SparseWaveform< DPhySymbol >, SparseWaveform< DSIFrameSymbol >, SparseWaveform< DSISymbol >, SparseWaveform< DVISymbol >, SparseWaveform< ESPISymbol >, SparseWaveform< Ethernet100BaseT1LinkTrainingSymbol >, SparseWaveform< Ethernet64b66bSymbol >, SparseWaveform< EthernetAutonegotiationPageSample >, SparseWaveform< uint16_t >, SparseWaveform< EthernetBaseXAutonegotiationSample >, SparseWaveform< EthernetFrameSegment >, SparseWaveform< HyperRAMSymbol >, SparseWaveform< I2CEepromSymbol >, SparseWaveform< I2CRegisterSymbol >, SparseWaveform< I2CSymbol >, SparseWaveform< IBM8b10bSymbol >, SparseWaveform< IPv4Symbol >, SparseWaveform< J1939PDUSymbol >, SparseWaveform< JtagSymbol >, SparseWaveform< MDIOSymbol >, SparseWaveform< MilStd1553Symbol >, SparseWaveform< OneWireSymbol >, SparseWaveform< PCIe128b130bSymbol >, SparseWaveform< PCIeDataLinkSymbol >, SparseWaveform< PCIeLTSSMSymbol >, SparseWaveform< PCIeLinkTrainingSymbol >, SparseWaveform< PCIeLogicalSymbol >, SparseWaveform< PCIeTransportSymbol >, SparseWaveform< SDCmdSymbol >, SparseWaveform< SDDataSymbol >, SparseWaveform< SDRAMSymbol >, SparseWaveform< SPIFlashSymbol >, SparseWaveform< SPISymbol >, SparseWaveform< SWDMemAPSymbol >, SparseWaveform< SWDSymbol >, SparseWaveform< TCPSymbol >, SparseWaveform< TMDSSymbol >, SparseWaveform< USB2PCSSymbol >, SparseWaveform< USB2PMASymbol >, SparseWaveform< USB2PacketSymbol >, SparseWaveform< VICPSymbol >, SpectrogramWaveform, and WaterfallWaveform.
|
pure virtual |
Indicates that this waveform's sample data and timestamps have been modified on the CPU and the GPU-side copy is no longer coherent.
Implemented in DensityFunctionWaveform, SparseWaveformBase, and UniformWaveform< S >.
|
pure virtual |
Indicates that this waveform's sample data and timestamps have been modified on the GPU and the CPU-side copy is no longer coherent.
Implemented in DensityFunctionWaveform, SparseWaveformBase, and UniformWaveform< S >.
|
pure virtual |
Indicates that this waveform's sample data has been modified on the CPU and the GPU-side copy is no longer coherent.
Implemented in DensityFunctionWaveform, UniformWaveform< S >, SparseWaveform< S >, SparseWaveform< ADL5205Symbol >, SparseWaveform< char >, SparseWaveform< CANSymbol >, SparseWaveform< DPAuxSymbol >, SparseWaveform< DPhyDataSymbol >, SparseWaveform< DPhyEscapeModeSymbol >, SparseWaveform< DPhySymbol >, SparseWaveform< DSIFrameSymbol >, SparseWaveform< DSISymbol >, SparseWaveform< DVISymbol >, SparseWaveform< ESPISymbol >, SparseWaveform< Ethernet100BaseT1LinkTrainingSymbol >, SparseWaveform< Ethernet64b66bSymbol >, SparseWaveform< EthernetAutonegotiationPageSample >, SparseWaveform< uint16_t >, SparseWaveform< EthernetBaseXAutonegotiationSample >, SparseWaveform< EthernetFrameSegment >, SparseWaveform< HyperRAMSymbol >, SparseWaveform< I2CEepromSymbol >, SparseWaveform< I2CRegisterSymbol >, SparseWaveform< I2CSymbol >, SparseWaveform< IBM8b10bSymbol >, SparseWaveform< IPv4Symbol >, SparseWaveform< J1939PDUSymbol >, SparseWaveform< JtagSymbol >, SparseWaveform< MDIOSymbol >, SparseWaveform< MilStd1553Symbol >, SparseWaveform< OneWireSymbol >, SparseWaveform< PCIe128b130bSymbol >, SparseWaveform< PCIeDataLinkSymbol >, SparseWaveform< PCIeLTSSMSymbol >, SparseWaveform< PCIeLinkTrainingSymbol >, SparseWaveform< PCIeLogicalSymbol >, SparseWaveform< PCIeTransportSymbol >, SparseWaveform< SDCmdSymbol >, SparseWaveform< SDDataSymbol >, SparseWaveform< SDRAMSymbol >, SparseWaveform< SPIFlashSymbol >, SparseWaveform< SPISymbol >, SparseWaveform< SWDMemAPSymbol >, SparseWaveform< SWDSymbol >, SparseWaveform< TCPSymbol >, SparseWaveform< TMDSSymbol >, SparseWaveform< USB2PCSSymbol >, SparseWaveform< USB2PMASymbol >, SparseWaveform< USB2PacketSymbol >, and SparseWaveform< VICPSymbol >.
|
pure virtual |
Indicates that this waveform's sample data has been modified on the GPU and the CPU-side copy is no longer coherent.
Implemented in DensityFunctionWaveform, UniformWaveform< S >, SparseWaveform< S >, SparseWaveform< ADL5205Symbol >, SparseWaveform< char >, SparseWaveform< CANSymbol >, SparseWaveform< DPAuxSymbol >, SparseWaveform< DPhyDataSymbol >, SparseWaveform< DPhyEscapeModeSymbol >, SparseWaveform< DPhySymbol >, SparseWaveform< DSIFrameSymbol >, SparseWaveform< DSISymbol >, SparseWaveform< DVISymbol >, SparseWaveform< ESPISymbol >, SparseWaveform< Ethernet100BaseT1LinkTrainingSymbol >, SparseWaveform< Ethernet64b66bSymbol >, SparseWaveform< EthernetAutonegotiationPageSample >, SparseWaveform< uint16_t >, SparseWaveform< EthernetBaseXAutonegotiationSample >, SparseWaveform< EthernetFrameSegment >, SparseWaveform< HyperRAMSymbol >, SparseWaveform< I2CEepromSymbol >, SparseWaveform< I2CRegisterSymbol >, SparseWaveform< I2CSymbol >, SparseWaveform< IBM8b10bSymbol >, SparseWaveform< IPv4Symbol >, SparseWaveform< J1939PDUSymbol >, SparseWaveform< JtagSymbol >, SparseWaveform< MDIOSymbol >, SparseWaveform< MilStd1553Symbol >, SparseWaveform< OneWireSymbol >, SparseWaveform< PCIe128b130bSymbol >, SparseWaveform< PCIeDataLinkSymbol >, SparseWaveform< PCIeLTSSMSymbol >, SparseWaveform< PCIeLinkTrainingSymbol >, SparseWaveform< PCIeLogicalSymbol >, SparseWaveform< PCIeTransportSymbol >, SparseWaveform< SDCmdSymbol >, SparseWaveform< SDDataSymbol >, SparseWaveform< SDRAMSymbol >, SparseWaveform< SPIFlashSymbol >, SparseWaveform< SPISymbol >, SparseWaveform< SWDMemAPSymbol >, SparseWaveform< SWDSymbol >, SparseWaveform< TCPSymbol >, SparseWaveform< TMDSSymbol >, SparseWaveform< USB2PCSSymbol >, SparseWaveform< USB2PMASymbol >, SparseWaveform< USB2PacketSymbol >, and SparseWaveform< VICPSymbol >.
|
pure virtual |
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.
Implemented in DensityFunctionWaveform, UniformWaveform< S >, SparseWaveform< S >, SparseWaveform< ADL5205Symbol >, SparseWaveform< char >, SparseWaveform< CANSymbol >, SparseWaveform< DPAuxSymbol >, SparseWaveform< DPhyDataSymbol >, SparseWaveform< DPhyEscapeModeSymbol >, SparseWaveform< DPhySymbol >, SparseWaveform< DSIFrameSymbol >, SparseWaveform< DSISymbol >, SparseWaveform< DVISymbol >, SparseWaveform< ESPISymbol >, SparseWaveform< Ethernet100BaseT1LinkTrainingSymbol >, SparseWaveform< Ethernet64b66bSymbol >, SparseWaveform< EthernetAutonegotiationPageSample >, SparseWaveform< uint16_t >, SparseWaveform< EthernetBaseXAutonegotiationSample >, SparseWaveform< EthernetFrameSegment >, SparseWaveform< HyperRAMSymbol >, SparseWaveform< I2CEepromSymbol >, SparseWaveform< I2CRegisterSymbol >, SparseWaveform< I2CSymbol >, SparseWaveform< IBM8b10bSymbol >, SparseWaveform< IPv4Symbol >, SparseWaveform< J1939PDUSymbol >, SparseWaveform< JtagSymbol >, SparseWaveform< MDIOSymbol >, SparseWaveform< MilStd1553Symbol >, SparseWaveform< OneWireSymbol >, SparseWaveform< PCIe128b130bSymbol >, SparseWaveform< PCIeDataLinkSymbol >, SparseWaveform< PCIeLTSSMSymbol >, SparseWaveform< PCIeLinkTrainingSymbol >, SparseWaveform< PCIeLogicalSymbol >, SparseWaveform< PCIeTransportSymbol >, SparseWaveform< SDCmdSymbol >, SparseWaveform< SDDataSymbol >, SparseWaveform< SDRAMSymbol >, SparseWaveform< SPIFlashSymbol >, SparseWaveform< SPISymbol >, SparseWaveform< SWDMemAPSymbol >, SparseWaveform< SWDSymbol >, SparseWaveform< TCPSymbol >, SparseWaveform< TMDSSymbol >, SparseWaveform< USB2PCSSymbol >, SparseWaveform< USB2PMASymbol >, SparseWaveform< USB2PacketSymbol >, and SparseWaveform< VICPSymbol >.
|
pure virtual |
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.
Implemented in DensityFunctionWaveform, UniformWaveform< S >, SparseWaveform< S >, SparseWaveform< ADL5205Symbol >, SparseWaveform< char >, SparseWaveform< CANSymbol >, SparseWaveform< DPAuxSymbol >, SparseWaveform< DPhyDataSymbol >, SparseWaveform< DPhyEscapeModeSymbol >, SparseWaveform< DPhySymbol >, SparseWaveform< DSIFrameSymbol >, SparseWaveform< DSISymbol >, SparseWaveform< DVISymbol >, SparseWaveform< ESPISymbol >, SparseWaveform< Ethernet100BaseT1LinkTrainingSymbol >, SparseWaveform< Ethernet64b66bSymbol >, SparseWaveform< EthernetAutonegotiationPageSample >, SparseWaveform< uint16_t >, SparseWaveform< EthernetBaseXAutonegotiationSample >, SparseWaveform< EthernetFrameSegment >, SparseWaveform< HyperRAMSymbol >, SparseWaveform< I2CEepromSymbol >, SparseWaveform< I2CRegisterSymbol >, SparseWaveform< I2CSymbol >, SparseWaveform< IBM8b10bSymbol >, SparseWaveform< IPv4Symbol >, SparseWaveform< J1939PDUSymbol >, SparseWaveform< JtagSymbol >, SparseWaveform< MDIOSymbol >, SparseWaveform< MilStd1553Symbol >, SparseWaveform< OneWireSymbol >, SparseWaveform< PCIe128b130bSymbol >, SparseWaveform< PCIeDataLinkSymbol >, SparseWaveform< PCIeLTSSMSymbol >, SparseWaveform< PCIeLinkTrainingSymbol >, SparseWaveform< PCIeLogicalSymbol >, SparseWaveform< PCIeTransportSymbol >, SparseWaveform< SDCmdSymbol >, SparseWaveform< SDDataSymbol >, SparseWaveform< SDRAMSymbol >, SparseWaveform< SPIFlashSymbol >, SparseWaveform< SPISymbol >, SparseWaveform< SWDMemAPSymbol >, SparseWaveform< SWDSymbol >, SparseWaveform< TCPSymbol >, SparseWaveform< TMDSSymbol >, SparseWaveform< USB2PCSSymbol >, SparseWaveform< USB2PMASymbol >, SparseWaveform< USB2PacketSymbol >, and SparseWaveform< VICPSymbol >.
|
pure virtual |
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.
Implemented in DensityFunctionWaveform, UniformWaveform< S >, SparseWaveform< S >, SparseWaveform< ADL5205Symbol >, SparseWaveform< char >, SparseWaveform< CANSymbol >, SparseWaveform< DPAuxSymbol >, SparseWaveform< DPhyDataSymbol >, SparseWaveform< DPhyEscapeModeSymbol >, SparseWaveform< DPhySymbol >, SparseWaveform< DSIFrameSymbol >, SparseWaveform< DSISymbol >, SparseWaveform< DVISymbol >, SparseWaveform< ESPISymbol >, SparseWaveform< Ethernet100BaseT1LinkTrainingSymbol >, SparseWaveform< Ethernet64b66bSymbol >, SparseWaveform< EthernetAutonegotiationPageSample >, SparseWaveform< uint16_t >, SparseWaveform< EthernetBaseXAutonegotiationSample >, SparseWaveform< EthernetFrameSegment >, SparseWaveform< HyperRAMSymbol >, SparseWaveform< I2CEepromSymbol >, SparseWaveform< I2CRegisterSymbol >, SparseWaveform< I2CSymbol >, SparseWaveform< IBM8b10bSymbol >, SparseWaveform< IPv4Symbol >, SparseWaveform< J1939PDUSymbol >, SparseWaveform< JtagSymbol >, SparseWaveform< MDIOSymbol >, SparseWaveform< MilStd1553Symbol >, SparseWaveform< OneWireSymbol >, SparseWaveform< PCIe128b130bSymbol >, SparseWaveform< PCIeDataLinkSymbol >, SparseWaveform< PCIeLTSSMSymbol >, SparseWaveform< PCIeLinkTrainingSymbol >, SparseWaveform< PCIeLogicalSymbol >, SparseWaveform< PCIeTransportSymbol >, SparseWaveform< SDCmdSymbol >, SparseWaveform< SDDataSymbol >, SparseWaveform< SDRAMSymbol >, SparseWaveform< SPIFlashSymbol >, SparseWaveform< SPISymbol >, SparseWaveform< SWDMemAPSymbol >, SparseWaveform< SWDSymbol >, SparseWaveform< TCPSymbol >, SparseWaveform< TMDSSymbol >, SparseWaveform< USB2PCSSymbol >, SparseWaveform< USB2PMASymbol >, SparseWaveform< USB2PacketSymbol >, and SparseWaveform< VICPSymbol >.
|
pure virtual |
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 |
Implemented in UniformWaveform< S >, SparseWaveform< S >, SparseWaveform< ADL5205Symbol >, SparseWaveform< char >, SparseWaveform< CANSymbol >, SparseWaveform< DPAuxSymbol >, SparseWaveform< DPhyDataSymbol >, SparseWaveform< DPhyEscapeModeSymbol >, SparseWaveform< DPhySymbol >, SparseWaveform< DSIFrameSymbol >, SparseWaveform< DSISymbol >, SparseWaveform< DVISymbol >, SparseWaveform< ESPISymbol >, SparseWaveform< Ethernet100BaseT1LinkTrainingSymbol >, SparseWaveform< Ethernet64b66bSymbol >, SparseWaveform< EthernetAutonegotiationPageSample >, SparseWaveform< uint16_t >, SparseWaveform< EthernetBaseXAutonegotiationSample >, SparseWaveform< EthernetFrameSegment >, SparseWaveform< HyperRAMSymbol >, SparseWaveform< I2CEepromSymbol >, SparseWaveform< I2CRegisterSymbol >, SparseWaveform< I2CSymbol >, SparseWaveform< IBM8b10bSymbol >, SparseWaveform< IPv4Symbol >, SparseWaveform< J1939PDUSymbol >, SparseWaveform< JtagSymbol >, SparseWaveform< MDIOSymbol >, SparseWaveform< MilStd1553Symbol >, SparseWaveform< OneWireSymbol >, SparseWaveform< PCIe128b130bSymbol >, SparseWaveform< PCIeDataLinkSymbol >, SparseWaveform< PCIeLTSSMSymbol >, SparseWaveform< PCIeLinkTrainingSymbol >, SparseWaveform< PCIeLogicalSymbol >, SparseWaveform< PCIeTransportSymbol >, SparseWaveform< SDCmdSymbol >, SparseWaveform< SDDataSymbol >, SparseWaveform< SDRAMSymbol >, SparseWaveform< SPIFlashSymbol >, SparseWaveform< SPISymbol >, SparseWaveform< SWDMemAPSymbol >, SparseWaveform< SWDSymbol >, SparseWaveform< TCPSymbol >, SparseWaveform< TMDSSymbol >, SparseWaveform< USB2PCSSymbol >, SparseWaveform< USB2PMASymbol >, SparseWaveform< USB2PacketSymbol >, SparseWaveform< VICPSymbol >, and DensityFunctionWaveform.
|
pure virtual |
Returns the number of samples in this waveform.
Implemented in DensityFunctionWaveform, UniformWaveform< S >, SparseWaveform< S >, SparseWaveform< ADL5205Symbol >, SparseWaveform< char >, SparseWaveform< CANSymbol >, SparseWaveform< DPAuxSymbol >, SparseWaveform< DPhyDataSymbol >, SparseWaveform< DPhyEscapeModeSymbol >, SparseWaveform< DPhySymbol >, SparseWaveform< DSIFrameSymbol >, SparseWaveform< DSISymbol >, SparseWaveform< DVISymbol >, SparseWaveform< ESPISymbol >, SparseWaveform< Ethernet100BaseT1LinkTrainingSymbol >, SparseWaveform< Ethernet64b66bSymbol >, SparseWaveform< EthernetAutonegotiationPageSample >, SparseWaveform< uint16_t >, SparseWaveform< EthernetBaseXAutonegotiationSample >, SparseWaveform< EthernetFrameSegment >, SparseWaveform< HyperRAMSymbol >, SparseWaveform< I2CEepromSymbol >, SparseWaveform< I2CRegisterSymbol >, SparseWaveform< I2CSymbol >, SparseWaveform< IBM8b10bSymbol >, SparseWaveform< IPv4Symbol >, SparseWaveform< J1939PDUSymbol >, SparseWaveform< JtagSymbol >, SparseWaveform< MDIOSymbol >, SparseWaveform< MilStd1553Symbol >, SparseWaveform< OneWireSymbol >, SparseWaveform< PCIe128b130bSymbol >, SparseWaveform< PCIeDataLinkSymbol >, SparseWaveform< PCIeLTSSMSymbol >, SparseWaveform< PCIeLinkTrainingSymbol >, SparseWaveform< PCIeLogicalSymbol >, SparseWaveform< PCIeTransportSymbol >, SparseWaveform< SDCmdSymbol >, SparseWaveform< SDDataSymbol >, SparseWaveform< SDRAMSymbol >, SparseWaveform< SPIFlashSymbol >, SparseWaveform< SPISymbol >, SparseWaveform< SWDMemAPSymbol >, SparseWaveform< SWDSymbol >, SparseWaveform< TCPSymbol >, SparseWaveform< TMDSSymbol >, SparseWaveform< USB2PCSSymbol >, SparseWaveform< USB2PMASymbol >, SparseWaveform< USB2PacketSymbol >, and SparseWaveform< VICPSymbol >.
uint64_t WaveformBase::m_revision |
Revision number.
This is a monotonically increasing counter that indicates waveform data has changed. Filters may choose to cache pre-processed versions of input data (for example, resampled versions of raw input) as long as the pointer and revision number have not changed.
int64_t WaveformBase::m_timescale |
The time scale, in X axis units (usually femtoseconds) per timestep, used by this channel.
This is used as a scaling factor for individual sample time values as well as to compute the maximum zoom value for the time axis.
int64_t WaveformBase::m_triggerPhase |
Offset, in X axis units (usually femtoseconds), from the trigger to the sampling clock.
This is most commonly the output of a time-to-digital converter or trigger interpolator and will thus be in the range [0, 1] samples, but this should NOT be assumed to be the case in all waveforms.
LeCroy oscilloscopes, for example, can have negative trigger phases of 150ns or more on digital channels since the digital waveform can start significantly before the analog waveform. Secondary scopes of a multi-scope trigger group may have very large positive or negative trigger phases as a result of trigger path delay calibration or intentional time-shifting of one scope's sampling window relative to that of another.