1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-03-06 19:38:47 -05:00

Scope falling edge trigger

This commit is contained in:
f4exb 2015-07-14 00:04:34 +02:00
parent e696e4f8a2
commit 8a41edf24d
2 changed files with 17 additions and 6 deletions

View File

@ -72,6 +72,7 @@ private:
TriggerChannel m_triggerChannel; TriggerChannel m_triggerChannel;
Real m_triggerLevel; Real m_triggerLevel;
bool m_triggerPositiveEdge; bool m_triggerPositiveEdge;
bool m_armed;
int m_sampleRate; int m_sampleRate;
bool triggerCondition(SampleVector::const_iterator& it); bool triggerCondition(SampleVector::const_iterator& it);

View File

@ -16,6 +16,7 @@ ScopeVis::ScopeVis(GLScope* glScope) :
m_triggerChannel(TriggerFreeRun), m_triggerChannel(TriggerFreeRun),
m_triggerLevel(0.0), m_triggerLevel(0.0),
m_triggerPositiveEdge(true), m_triggerPositiveEdge(true),
m_armed(false),
m_sampleRate(0) m_sampleRate(0)
{ {
} }
@ -48,16 +49,25 @@ void ScopeVis::feed(SampleVector::const_iterator begin, SampleVector::const_iter
} }
else else
{ {
if(m_triggerState == Untriggered) { if(m_triggerState == Untriggered)
while(begin < end) { {
if (triggerCondition(begin)) { while(begin < end)
m_triggerState = Triggered; {
break; if (triggerCondition(begin) ^ !m_triggerPositiveEdge) {
if (m_armed) {
m_triggerState = Triggered;
m_armed = false;
break;
}
}
else {
m_armed = true;
} }
++begin; ++begin;
} }
} }
if(m_triggerState == Triggered) { if(m_triggerState == Triggered)
{
int count = end - begin; int count = end - begin;
if(count > (int)(m_trace.size() - m_fill)) if(count > (int)(m_trace.size() - m_fill))
count = m_trace.size() - m_fill; count = m_trace.size() - m_fill;