35#ifndef BaseMeasurement_h
36#define BaseMeasurement_h
56 virtual void Refresh(vk::raii::CommandBuffer& cmdBuf, std::shared_ptr<QueueHandle> queue)
override;
58 static std::string GetProtocolName();
70 std::shared_ptr<ComputePipeline> m_histogramPipeline;
74 std::shared_ptr<ComputePipeline> m_firstPassComputePipeline;
78 std::shared_ptr<ComputePipeline> m_finalPassComputePipeline;
90 cap->PrepareForCpuAccess();
91 din->PrepareForCpuAccess();
94 float range = (vmax - vmin);
95 float mid = range/2 + vmin;
96 float global_base =
fbin*range + vmin;
98 std::vector<float> samples;
100 float delta = range * 0.1;
104 for(
size_t i=0;
i < len;
i++)
111 if( (
cur < mid) && (
last >= mid) )
115 if( (
cur > mid) && (
last <= mid) )
129 size_t start = samples.size()/4;
130 size_t end = samples.size() - start;
131 for(
size_t j=start;
j<=end;
j++)
142 size_t n =
cap->m_samples.size();
146 cap->m_offsets.push_back(
tmid);
147 cap->m_durations.push_back(1);
148 cap->m_samples.push_back(
vavg);
156 if(
fabs(
cur - global_base) < delta)
157 samples.push_back(
cur);
162 cap->MarkModifiedFromCpu();
Definition AcceleratorBuffer.h:204
Definition BaseMeasurement.h:52
Definition BaseMeasurement.h:39
Encapsulates a Vulkan compute pipeline and all necessary resources to use it.
Definition ComputePipeline.h:55
Abstract base class for all filter graph blocks which are not physical instrument channels.
Definition Filter.h:105
int64_t GetOffsetScaled(T *wfm, size_t i)
Returns the offset of a sample from the start of the waveform, in X axis units.
Definition Waveform.h:841