mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-31 13:00:26 -04:00 
			
		
		
		
	New scope: simplify triggerPoint calculation
This commit is contained in:
		
							parent
							
								
									758bc9a5dd
								
							
						
					
					
						commit
						d74e7d87d7
					
				| @ -142,32 +142,32 @@ void ScopeVisNG::feed(const SampleVector::const_iterator& cbegin, const SampleVe | ||||
| 	} | ||||
| 
 | ||||
| 	SampleVector::const_iterator begin(cbegin); | ||||
| 	int triggerPoint; | ||||
| 	int triggerPointToEnd; | ||||
| 
 | ||||
| 	while (begin < end) | ||||
| 	{ | ||||
| 	    if (begin + m_traceSize > end) | ||||
| 	    { | ||||
| 	        triggerPoint = -1; | ||||
| 	        processTrace(begin, end, triggerPoint); | ||||
| 	        if (triggerPoint >= 0) { | ||||
| 	            m_triggerPoint = begin + triggerPoint; | ||||
| 	        triggerPointToEnd = -1; | ||||
| 	        processTrace(begin, end, triggerPointToEnd); | ||||
| 	        if (triggerPointToEnd >= 0) { | ||||
| 	            m_triggerPoint = end - triggerPointToEnd; | ||||
| 	        } | ||||
| 	        begin = end; | ||||
| 	    } | ||||
| 	    else | ||||
| 	    { | ||||
|             triggerPoint = -1; | ||||
| 	        processTrace(begin, begin + m_traceSize, triggerPoint); | ||||
|             if (triggerPoint >= 0) { | ||||
|                 m_triggerPoint = begin + triggerPoint; | ||||
|             triggerPointToEnd = -1; | ||||
| 	        processTrace(begin, begin + m_traceSize, triggerPointToEnd); | ||||
|             if (triggerPointToEnd >= 0) { | ||||
|                 m_triggerPoint = begin + m_traceSize -triggerPointToEnd; | ||||
|             } | ||||
| 	        begin += m_traceSize; | ||||
| 	    } | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| void ScopeVisNG::processTrace(const SampleVector::const_iterator& cbegin, const SampleVector::const_iterator& end, int& triggerPoint) | ||||
| void ScopeVisNG::processTrace(const SampleVector::const_iterator& cbegin, const SampleVector::const_iterator& end, int& triggerPointToEnd) | ||||
| { | ||||
| 	SampleVector::const_iterator begin(cbegin); | ||||
| 
 | ||||
| @ -206,7 +206,7 @@ void ScopeVisNG::processTrace(const SampleVector::const_iterator& cbegin, const | ||||
|                     m_nbSamples = m_traceSize + m_maxTraceDelay; | ||||
|                     m_triggerComparator.reset(); | ||||
|                     m_triggerState = TriggerTriggered; | ||||
|                     triggerPoint = begin - cbegin; | ||||
|                     triggerPointToEnd = end - begin; | ||||
|                     break; | ||||
|                 } | ||||
| 
 | ||||
| @ -220,7 +220,6 @@ void ScopeVisNG::processTrace(const SampleVector::const_iterator& cbegin, const | ||||
| 	{ | ||||
| 	    int remainder = -1; | ||||
| 	    int count = end - begin; // number of samples in traceback buffer past the current point
 | ||||
| 	    int mpoint = begin -cbegin; | ||||
| 	    SampleVector::iterator mend = m_traceDiscreteMemory.current().current(); | ||||
| 	    SampleVector::iterator mbegin = mend - count; | ||||
| 
 | ||||
| @ -250,7 +249,6 @@ void ScopeVisNG::processTrace(const SampleVector::const_iterator& cbegin, const | ||||
| 
 | ||||
| 	    if (remainder >= 0) // finished
 | ||||
| 	    { | ||||
| 	        mpoint += (mend - mbegin) - remainder; | ||||
| 	        mbegin = mend - remainder; | ||||
| 	        m_traceDiscreteMemory.current().m_endPoint = mbegin; | ||||
| 	        m_traceDiscreteMemory.store(); // next memory trace
 | ||||
| @ -259,12 +257,12 @@ void ScopeVisNG::processTrace(const SampleVector::const_iterator& cbegin, const | ||||
|             // process remainder recursively
 | ||||
|             if (remainder != 0) | ||||
|             { | ||||
|                 int mTriggerPoint = -1; | ||||
|                 int mTriggerPointToEnd = -1; | ||||
| 
 | ||||
|                 processTrace(mbegin, mend, mTriggerPoint); | ||||
|                 processTrace(mbegin, mend, mTriggerPointToEnd); | ||||
| 
 | ||||
|                 if (mTriggerPoint >= 0) { | ||||
|                     triggerPoint = mpoint + mTriggerPoint; | ||||
|                 if (mTriggerPointToEnd >= 0) { | ||||
|                     triggerPointToEnd = mTriggerPointToEnd; | ||||
|                 } | ||||
| 
 | ||||
|                 //qDebug("ScopeVisNG::processTrace: process remainder recursively (%d %d)", mpoint, mTriggerPoint);
 | ||||
|  | ||||
| @ -779,7 +779,7 @@ private: | ||||
|     /**
 | ||||
|      * Process a sample trace which length is at most the trace length (m_traceSize) | ||||
|      */ | ||||
|     void processTrace(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, int& triggerPoint); | ||||
|     void processTrace(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, int& triggerPointToEnd); | ||||
| 
 | ||||
|     /**
 | ||||
|      * Process traces from complex trace memory buffer. | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user