mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-26 02:20:26 -04:00 
			
		
		
		
	Scope: comments and fixes mostly doubling trace size so that enough memory is present before trigger
This commit is contained in:
		
							parent
							
								
									02a6cee99f
								
							
						
					
					
						commit
						c1511d255e
					
				| @ -219,6 +219,15 @@ void ScopeVis::setMemoryIndex(uint32_t memoryIndex) | |||||||
| void ScopeVis::feed(const SampleVector::const_iterator& cbegin, const SampleVector::const_iterator& end, bool positiveOnly) | void ScopeVis::feed(const SampleVector::const_iterator& cbegin, const SampleVector::const_iterator& end, bool positiveOnly) | ||||||
| { | { | ||||||
|     (void) positiveOnly; |     (void) positiveOnly; | ||||||
|  | 
 | ||||||
|  |     if (m_currentTraceMemoryIndex > 0) { // in memory mode live trace is suspended
 | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (!m_mutex.tryLock(0)) { // prevent conflicts with configuration process
 | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     if (m_freeRun) { |     if (m_freeRun) { | ||||||
|         m_triggerPoint = cbegin; |         m_triggerPoint = cbegin; | ||||||
|     } |     } | ||||||
| @ -228,41 +237,36 @@ void ScopeVis::feed(const SampleVector::const_iterator& cbegin, const SampleVect | |||||||
|     else if (m_triggerState == TriggerUntriggered) { |     else if (m_triggerState == TriggerUntriggered) { | ||||||
|         m_triggerPoint = end; |         m_triggerPoint = end; | ||||||
|     } |     } | ||||||
|     else if ((m_triggerWaitForReset) || (m_currentTraceMemoryIndex > 0)) { |     else if (m_triggerWaitForReset) { | ||||||
|         m_triggerPoint = end; |         m_triggerPoint = end; | ||||||
|     } |     } | ||||||
|     else { |     else { | ||||||
|         m_triggerPoint = cbegin; |         m_triggerPoint = cbegin; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if ((m_triggerWaitForReset) || (m_currentTraceMemoryIndex > 0)) { |  | ||||||
|         return; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     if(!m_mutex.tryLock(2)) // prevent conflicts with configuration process
 |  | ||||||
|         return; |  | ||||||
| 
 |  | ||||||
|     SampleVector::const_iterator begin(cbegin); |     SampleVector::const_iterator begin(cbegin); | ||||||
|     int triggerPointToEnd; |     int triggerPointToEnd; | ||||||
| 
 | 
 | ||||||
|     while (begin < end) |     while (begin < end) | ||||||
|     { |     { | ||||||
|         if (begin + m_traceSize > end) |         if (begin + m_traceSize > end) // buffer smaller than trace size (end - bagin) < m_traceSize
 | ||||||
|         { |         { | ||||||
|             triggerPointToEnd = -1; |             triggerPointToEnd = -1; | ||||||
|             processTrace(begin, end, triggerPointToEnd); |             processTrace(begin, end, triggerPointToEnd); // use all buffer
 | ||||||
|             if (triggerPointToEnd >= 0) { |             if (triggerPointToEnd >= 0) { | ||||||
|                 m_triggerPoint = end - triggerPointToEnd; |                 m_triggerPoint = end - triggerPointToEnd; | ||||||
|             } |             } | ||||||
|             begin = end; | 
 | ||||||
|  |             begin = end; // effectively breaks out the loop
 | ||||||
|         } |         } | ||||||
|         else |         else // trace size fits in buffer
 | ||||||
|         { |         { | ||||||
|             triggerPointToEnd = -1; |             triggerPointToEnd = -1; | ||||||
|             processTrace(begin, begin + m_traceSize, triggerPointToEnd); |             processTrace(begin, begin + m_traceSize, triggerPointToEnd); // use part of buffer to fit trace size
 | ||||||
|             if (triggerPointToEnd >= 0) { |             if (triggerPointToEnd >= 0) { | ||||||
|                 m_triggerPoint = begin + m_traceSize -triggerPointToEnd; |                 m_triggerPoint = begin + m_traceSize -triggerPointToEnd; | ||||||
|             } |             } | ||||||
|  | 
 | ||||||
|             begin += m_traceSize; |             begin += m_traceSize; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -723,7 +723,7 @@ private: | |||||||
| 
 | 
 | ||||||
|     		for (std::vector<TraceBackBuffer>::iterator it = m_traceBackBuffers.begin(); it != m_traceBackBuffers.end(); ++it) |     		for (std::vector<TraceBackBuffer>::iterator it = m_traceBackBuffers.begin(); it != m_traceBackBuffers.end(); ++it) | ||||||
|     		{ |     		{ | ||||||
|                 it->resize(m_traceSize); // was multiplied by 4
 |                 it->resize(2*m_traceSize); // was multiplied by 4
 | ||||||
|     		} |     		} | ||||||
|     	} |     	} | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user