kopia lustrzana https://github.com/f4exb/sdrangel
Scope: some code refactoring to make it more elegant. Updated Debian changelog
rodzic
02d0a46f31
commit
acbaa14dbd
|
@ -2,6 +2,7 @@ sdrangel (4.2.4-1) unstable; urgency=medium
|
||||||
|
|
||||||
* LimeSDR: use LimeSuite 18.10.0 for builds
|
* LimeSDR: use LimeSuite 18.10.0 for builds
|
||||||
* DSD demod: use 1 dB steps for squelch
|
* DSD demod: use 1 dB steps for squelch
|
||||||
|
* Scope: fixed some trigger issues. Fixes issue #233
|
||||||
|
|
||||||
-- Edouard Griffiths, F4EXB <f4exb06@gmail.com> Wed, 24 Oct 2018 21:14:18 +0200
|
-- Edouard Griffiths, F4EXB <f4exb06@gmail.com> Wed, 24 Oct 2018 21:14:18 +0200
|
||||||
|
|
||||||
|
|
|
@ -313,62 +313,32 @@ void ScopeVis::processTrace(const SampleVector::const_iterator& cbegin, const Sa
|
||||||
m_triggerState = TriggerTriggered;
|
m_triggerState = TriggerTriggered;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if ((m_triggerState == TriggerUntriggered) || (m_triggerState == TriggerDelay)) // look for trigger or past trigger in delay mode
|
||||||
{
|
{
|
||||||
if ((m_triggerState == TriggerUntriggered) || (m_triggerState == TriggerDelay))
|
TriggerCondition* triggerCondition = m_triggerConditions[m_currentTriggerIndex]; // current trigger condition
|
||||||
|
|
||||||
|
while (begin < end)
|
||||||
{
|
{
|
||||||
TriggerCondition* triggerCondition = m_triggerConditions[m_currentTriggerIndex]; // current trigger condition
|
if (m_triggerState == TriggerDelay) // delayed trigger
|
||||||
|
|
||||||
while (begin < end)
|
|
||||||
{
|
{
|
||||||
if (m_triggerState == TriggerDelay)
|
if (triggerCondition->m_triggerDelayCount > 0) // skip samples during delay period
|
||||||
{
|
{
|
||||||
if (triggerCondition->m_triggerDelayCount > 0) // skip samples during delay period
|
begin += triggerCondition->m_triggerDelayCount;
|
||||||
{
|
triggerCondition->m_triggerDelayCount = 0;
|
||||||
begin += triggerCondition->m_triggerDelayCount;
|
continue;
|
||||||
triggerCondition->m_triggerDelayCount = 0;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else // process trigger
|
|
||||||
{
|
|
||||||
if (nextTrigger()) // move to next trigger and keep going
|
|
||||||
{
|
|
||||||
m_triggerComparator.reset();
|
|
||||||
m_triggerState = TriggerUntriggered;
|
|
||||||
++begin;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else // this was the last trigger then start trace
|
|
||||||
{
|
|
||||||
m_traceStart = true; // start trace processing
|
|
||||||
m_nbSamples = m_traceSize + m_maxTraceDelay;
|
|
||||||
m_triggerComparator.reset();
|
|
||||||
m_triggerState = TriggerTriggered;
|
|
||||||
triggerPointToEnd = end - begin;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
else // process trigger
|
||||||
// look for trigger
|
|
||||||
if (m_triggerComparator.triggered(*begin, *triggerCondition))
|
|
||||||
{
|
{
|
||||||
if (triggerCondition->m_triggerData.m_triggerDelay > 0)
|
|
||||||
{
|
|
||||||
triggerCondition->m_triggerDelayCount = triggerCondition->m_triggerData.m_triggerDelay; // initialize delayed samples counter
|
|
||||||
m_triggerState = TriggerDelay;
|
|
||||||
++begin;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nextTrigger()) // move to next trigger and keep going
|
if (nextTrigger()) // move to next trigger and keep going
|
||||||
{
|
{
|
||||||
m_triggerComparator.reset();
|
m_triggerComparator.reset();
|
||||||
m_triggerState = TriggerUntriggered;
|
m_triggerState = TriggerUntriggered;
|
||||||
|
++begin;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
else // this was the last trigger then start trace
|
else // this was the last trigger then start trace
|
||||||
{
|
{
|
||||||
m_traceStart = true; // start of trace processing
|
m_traceStart = true; // start trace processing
|
||||||
m_nbSamples = m_traceSize + m_maxTraceDelay;
|
m_nbSamples = m_traceSize + m_maxTraceDelay;
|
||||||
m_triggerComparator.reset();
|
m_triggerComparator.reset();
|
||||||
m_triggerState = TriggerTriggered;
|
m_triggerState = TriggerTriggered;
|
||||||
|
@ -376,11 +346,37 @@ void ScopeVis::processTrace(const SampleVector::const_iterator& cbegin, const Sa
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
++begin;
|
if (m_triggerComparator.triggered(*begin, *triggerCondition)) // matched the current trigger
|
||||||
} // look for trigger
|
{
|
||||||
} // untriggered or delayed
|
if (triggerCondition->m_triggerData.m_triggerDelay > 0)
|
||||||
} // triggering active
|
{
|
||||||
|
triggerCondition->m_triggerDelayCount = triggerCondition->m_triggerData.m_triggerDelay; // initialize delayed samples counter
|
||||||
|
m_triggerState = TriggerDelay;
|
||||||
|
++begin;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nextTrigger()) // move to next trigger and keep going
|
||||||
|
{
|
||||||
|
m_triggerComparator.reset();
|
||||||
|
m_triggerState = TriggerUntriggered;
|
||||||
|
}
|
||||||
|
else // this was the last trigger then start trace
|
||||||
|
{
|
||||||
|
m_traceStart = true; // start of trace processing
|
||||||
|
m_nbSamples = m_traceSize + m_maxTraceDelay;
|
||||||
|
m_triggerComparator.reset();
|
||||||
|
m_triggerState = TriggerTriggered;
|
||||||
|
triggerPointToEnd = end - begin;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
++begin;
|
||||||
|
} // look for trigger
|
||||||
|
} // untriggered or delayed
|
||||||
|
|
||||||
// trace process
|
// trace process
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue