mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-08-10 17:52:26 -04:00
New scope: corrected trigger display levels
This commit is contained in:
parent
0672121044
commit
76cdb94d34
@ -491,6 +491,12 @@ bool ScopeVisNG::handleMessage(const Message& message)
|
|||||||
if (triggerIndex < m_triggerConditions.size())
|
if (triggerIndex < m_triggerConditions.size())
|
||||||
{
|
{
|
||||||
m_triggerConditions[triggerIndex].setData(conf.getTriggerData());
|
m_triggerConditions[triggerIndex].setData(conf.getTriggerData());
|
||||||
|
|
||||||
|
if (triggerIndex == m_focusedTriggerIndex)
|
||||||
|
{
|
||||||
|
computeDisplayTriggerLevels();
|
||||||
|
m_glScope->updateDisplay();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -572,3 +578,45 @@ void ScopeVisNG::initTraceBuffers()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScopeVisNG::computeDisplayTriggerLevels()
|
||||||
|
{
|
||||||
|
std::vector<TraceData>::iterator itData = m_traces.m_tracesData.begin();
|
||||||
|
|
||||||
|
for (; itData != m_traces.m_tracesData.end(); ++itData)
|
||||||
|
{
|
||||||
|
if (m_triggerConditions[m_focusedTriggerIndex].m_projector->getProjectionType() == itData->m_projectionType)
|
||||||
|
{
|
||||||
|
float level = m_triggerConditions[m_focusedTriggerIndex].m_triggerData.m_triggerLevel;
|
||||||
|
float levelPowerLin = level + 1.0f;
|
||||||
|
float levelPowerdB = (100.0f * (level - 1.0f));
|
||||||
|
float v;
|
||||||
|
|
||||||
|
if (itData->m_projectionType == ProjectionMagLin)
|
||||||
|
{
|
||||||
|
v = (levelPowerLin - itData->m_ofs)*itData->m_amp - 1.0f;
|
||||||
|
}
|
||||||
|
else if (itData->m_projectionType == ProjectionMagDB)
|
||||||
|
{
|
||||||
|
float ofsdB = itData->m_ofs * 100.0f;
|
||||||
|
v = ((levelPowerdB + 100.0f - ofsdB)*itData->m_amp)/50.0f - 1.0f;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
v = (level - itData->m_ofs) * itData->m_amp;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(v > 1.0f) {
|
||||||
|
v = 1.0f;
|
||||||
|
} else if (v < -1.0f) {
|
||||||
|
v = -1.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
itData->m_triggerDisplayLevel = v;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
itData->m_triggerDisplayLevel = 2.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -729,7 +729,7 @@ private:
|
|||||||
bool condition, trigger;
|
bool condition, trigger;
|
||||||
|
|
||||||
if (triggerCondition.m_projector->getProjectionType() == ProjectionMagDB) {
|
if (triggerCondition.m_projector->getProjectionType() == ProjectionMagDB) {
|
||||||
condition = triggerCondition.m_projector->run(s) > m_levelPwoerDB;
|
condition = triggerCondition.m_projector->run(s) > m_levelPowerDB;
|
||||||
} else if (triggerCondition.m_projector->getProjectionType() == ProjectionMagLin) {
|
} else if (triggerCondition.m_projector->getProjectionType() == ProjectionMagLin) {
|
||||||
condition = triggerCondition.m_projector->run(s) > m_levelPowerLin;
|
condition = triggerCondition.m_projector->run(s) > m_levelPowerLin;
|
||||||
} else {
|
} else {
|
||||||
@ -772,11 +772,11 @@ private:
|
|||||||
void computeLevels()
|
void computeLevels()
|
||||||
{
|
{
|
||||||
m_levelPowerLin = m_level + 1.0f;
|
m_levelPowerLin = m_level + 1.0f;
|
||||||
m_levelPwoerDB = (100.0f * (m_level - 1.0f));
|
m_levelPowerDB = (100.0f * (m_level - 1.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
Real m_level;
|
Real m_level;
|
||||||
Real m_levelPwoerDB;
|
Real m_levelPowerDB;
|
||||||
Real m_levelPowerLin;
|
Real m_levelPowerLin;
|
||||||
bool m_reset;
|
bool m_reset;
|
||||||
};
|
};
|
||||||
@ -837,6 +837,7 @@ private:
|
|||||||
* - every time a trace data changes: projection type, amp, offset
|
* - every time a trace data changes: projection type, amp, offset
|
||||||
* - every time a trace data is added or removed
|
* - every time a trace data is added or removed
|
||||||
*/
|
*/
|
||||||
|
void computeDisplayTriggerLevels();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user