Scope: corrected report of samples from one trace to the next

This commit is contained in:
f4exb 2018-10-27 18:19:08 +02:00
parent 7ab87d594a
commit a2d8372262
2 changed files with 4 additions and 3 deletions

View File

@ -414,7 +414,7 @@ void ScopeVis::processTrace(const SampleVector::const_iterator& cbegin, const Sa
{
mbegin = mend - remainder;
m_traceDiscreteMemory.current().m_endPoint = mbegin;
m_traceDiscreteMemory.store(); // next memory trace
m_traceDiscreteMemory.store(m_preTriggerDelay+remainder); // next memory trace.
m_triggerState = TriggerUntriggered;
m_triggerWaitForReset = m_triggerOneShot;

View File

@ -721,12 +721,13 @@ private:
/**
* Move index forward by one position and return reference to the trace at this position
* Copy a trace length of samples into the new memory slot
* samplesToReport are the number of samples to report on the next trace
*/
TraceBackBuffer &store()
TraceBackBuffer &store(int samplesToReport)
{
uint32_t nextMemIndex = m_currentMemIndex < (m_memSize-1) ? m_currentMemIndex+1 : 0;
m_traceBackBuffers[nextMemIndex].reset();
m_traceBackBuffers[nextMemIndex].write(m_traceBackBuffers[m_currentMemIndex].m_endPoint - m_traceSize,
m_traceBackBuffers[nextMemIndex].write(m_traceBackBuffers[m_currentMemIndex].m_endPoint - samplesToReport,
m_traceBackBuffers[m_currentMemIndex].m_endPoint);
m_currentMemIndex = nextMemIndex;
return m_traceBackBuffers[m_currentMemIndex]; // new trace