mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-08-25 08:52:26 -04:00
New scope: focused trigger change
This commit is contained in:
parent
76cdb94d34
commit
c8aa0dc4b8
@ -24,6 +24,7 @@ MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgConfigureScopeVisNG, Message)
|
|||||||
MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgScopeVisNGAddTrigger, Message)
|
MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgScopeVisNGAddTrigger, Message)
|
||||||
MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgScopeVisNGChangeTrigger, Message)
|
MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgScopeVisNGChangeTrigger, Message)
|
||||||
MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgScopeVisNGRemoveTrigger, Message)
|
MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgScopeVisNGRemoveTrigger, Message)
|
||||||
|
MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgScopeVisNGFocusOnTrigger, Message)
|
||||||
MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgScopeVisNGAddTrace, Message)
|
MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgScopeVisNGAddTrace, Message)
|
||||||
MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgScopeVisNGChangeTrace, Message)
|
MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgScopeVisNGChangeTrace, Message)
|
||||||
MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgScopeVisNGRemoveTrace, Message)
|
MESSAGE_CLASS_DEFINITION(ScopeVisNG::MsgScopeVisNGRemoveTrace, Message)
|
||||||
@ -113,6 +114,12 @@ void ScopeVisNG::removeTrigger(uint32_t triggerIndex)
|
|||||||
getInputMessageQueue()->push(cmd);
|
getInputMessageQueue()->push(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScopeVisNG::focusOnTrigger(uint32_t triggerIndex)
|
||||||
|
{
|
||||||
|
Message* cmd = MsgScopeVisNGFocusOnTrigger::create(triggerIndex);
|
||||||
|
getInputMessageQueue()->push(cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void ScopeVisNG::feed(const SampleVector::const_iterator& cbegin, const SampleVector::const_iterator& end, bool positiveOnly)
|
void ScopeVisNG::feed(const SampleVector::const_iterator& cbegin, const SampleVector::const_iterator& end, bool positiveOnly)
|
||||||
{
|
{
|
||||||
@ -512,12 +519,27 @@ bool ScopeVisNG::handleMessage(const Message& message)
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
else if (MsgScopeVisNGFocusOnTrigger::match(message))
|
||||||
|
{
|
||||||
|
MsgScopeVisNGFocusOnTrigger& conf = (MsgScopeVisNGFocusOnTrigger&) message;
|
||||||
|
int triggerIndex = conf.getTriggerIndex();
|
||||||
|
|
||||||
|
if (triggerIndex < m_triggerConditions.size())
|
||||||
|
{
|
||||||
|
m_focusedTriggerIndex = triggerIndex;
|
||||||
|
computeDisplayTriggerLevels();
|
||||||
|
m_glScope->updateDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
else if (MsgScopeVisNGAddTrace::match(message))
|
else if (MsgScopeVisNGAddTrace::match(message))
|
||||||
{
|
{
|
||||||
MsgScopeVisNGAddTrace& conf = (MsgScopeVisNGAddTrace&) message;
|
MsgScopeVisNGAddTrace& conf = (MsgScopeVisNGAddTrace&) message;
|
||||||
m_traces.addTrace(conf.getTraceData(), m_traceSize);
|
m_traces.addTrace(conf.getTraceData(), m_traceSize);
|
||||||
initTraceBuffers();
|
initTraceBuffers();
|
||||||
updateMaxTraceDelay();
|
updateMaxTraceDelay();
|
||||||
|
computeDisplayTriggerLevels();
|
||||||
m_glScope->updateDisplay();
|
m_glScope->updateDisplay();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -527,6 +549,7 @@ bool ScopeVisNG::handleMessage(const Message& message)
|
|||||||
bool doComputeTriggerLevelsOnDisplay = m_traces.isVerticalDisplayChange(conf.getTraceData(), conf.getTraceIndex());
|
bool doComputeTriggerLevelsOnDisplay = m_traces.isVerticalDisplayChange(conf.getTraceData(), conf.getTraceIndex());
|
||||||
m_traces.changeTrace(conf.getTraceData(), conf.getTraceIndex());
|
m_traces.changeTrace(conf.getTraceData(), conf.getTraceIndex());
|
||||||
updateMaxTraceDelay();
|
updateMaxTraceDelay();
|
||||||
|
if (doComputeTriggerLevelsOnDisplay) computeDisplayTriggerLevels();
|
||||||
m_glScope->updateDisplay();
|
m_glScope->updateDisplay();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -535,6 +558,7 @@ bool ScopeVisNG::handleMessage(const Message& message)
|
|||||||
MsgScopeVisNGRemoveTrace& conf = (MsgScopeVisNGRemoveTrace&) message;
|
MsgScopeVisNGRemoveTrace& conf = (MsgScopeVisNGRemoveTrace&) message;
|
||||||
m_traces.removeTrace(conf.getTraceIndex());
|
m_traces.removeTrace(conf.getTraceIndex());
|
||||||
updateMaxTraceDelay();
|
updateMaxTraceDelay();
|
||||||
|
computeDisplayTriggerLevels();
|
||||||
m_glScope->updateDisplay();
|
m_glScope->updateDisplay();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -585,7 +609,7 @@ void ScopeVisNG::computeDisplayTriggerLevels()
|
|||||||
|
|
||||||
for (; itData != m_traces.m_tracesData.end(); ++itData)
|
for (; itData != m_traces.m_tracesData.end(); ++itData)
|
||||||
{
|
{
|
||||||
if (m_triggerConditions[m_focusedTriggerIndex].m_projector->getProjectionType() == itData->m_projectionType)
|
if ((m_focusedTriggerIndex < m_triggerConditions.size()) && (m_triggerConditions[m_focusedTriggerIndex].m_projector->getProjectionType() == itData->m_projectionType))
|
||||||
{
|
{
|
||||||
float level = m_triggerConditions[m_focusedTriggerIndex].m_triggerData.m_triggerLevel;
|
float level = m_triggerConditions[m_focusedTriggerIndex].m_triggerData.m_triggerLevel;
|
||||||
float levelPowerLin = level + 1.0f;
|
float levelPowerLin = level + 1.0f;
|
||||||
|
@ -108,6 +108,7 @@ public:
|
|||||||
void addTrigger(const TriggerData& triggerData);
|
void addTrigger(const TriggerData& triggerData);
|
||||||
void changeTrigger(const TriggerData& triggerData, uint32_t triggerIndex);
|
void changeTrigger(const TriggerData& triggerData, uint32_t triggerIndex);
|
||||||
void removeTrigger(uint32_t triggerIndex);
|
void removeTrigger(uint32_t triggerIndex);
|
||||||
|
void focusOnTrigger(uint32_t triggerIndex);
|
||||||
|
|
||||||
void getTriggerData(TriggerData& triggerData, uint32_t triggerIndex)
|
void getTriggerData(TriggerData& triggerData, uint32_t triggerIndex)
|
||||||
{
|
{
|
||||||
@ -230,6 +231,27 @@ private:
|
|||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// ---------------------------------------------
|
||||||
|
class MsgScopeVisNGFocusOnTrigger : public Message {
|
||||||
|
MESSAGE_CLASS_DECLARATION
|
||||||
|
|
||||||
|
public:
|
||||||
|
static MsgScopeVisNGFocusOnTrigger* create(
|
||||||
|
uint32_t triggerIndex)
|
||||||
|
{
|
||||||
|
return new MsgScopeVisNGFocusOnTrigger(triggerIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t getTriggerIndex() const { return m_triggerIndex; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
uint32_t m_triggerIndex;
|
||||||
|
|
||||||
|
MsgScopeVisNGFocusOnTrigger(uint32_t triggerIndex) :
|
||||||
|
m_triggerIndex(triggerIndex)
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
// ---------------------------------------------
|
// ---------------------------------------------
|
||||||
class MsgScopeVisNGAddTrace : public Message {
|
class MsgScopeVisNGAddTrace : public Message {
|
||||||
MESSAGE_CLASS_DECLARATION
|
MESSAGE_CLASS_DECLARATION
|
||||||
|
@ -67,16 +67,16 @@ void GLScopeNGGUI::setBuddies(MessageQueue* messageQueue, ScopeVisNG* scopeVis,
|
|||||||
ui->trigOneShot->setEnabled(false);
|
ui->trigOneShot->setEnabled(false);
|
||||||
ui->freerun->setChecked(true);
|
ui->freerun->setChecked(true);
|
||||||
|
|
||||||
// Add a trace
|
|
||||||
ScopeVisNG::TraceData traceData;
|
|
||||||
fillTraceData(traceData);
|
|
||||||
m_scopeVis->addTrace(traceData);
|
|
||||||
|
|
||||||
// Add a trigger
|
// Add a trigger
|
||||||
ScopeVisNG::TriggerData triggerData;
|
ScopeVisNG::TriggerData triggerData;
|
||||||
fillTriggerData(triggerData);
|
fillTriggerData(triggerData);
|
||||||
m_scopeVis->addTrigger(triggerData);
|
m_scopeVis->addTrigger(triggerData);
|
||||||
|
|
||||||
|
// Add a trace
|
||||||
|
ScopeVisNG::TraceData traceData;
|
||||||
|
fillTraceData(traceData);
|
||||||
|
m_scopeVis->addTrace(traceData);
|
||||||
|
|
||||||
setEnabled(true);
|
setEnabled(true);
|
||||||
connect(m_glScope, SIGNAL(sampleRateChanged(int)), this, SLOT(on_scope_sampleRateChanged(int)));
|
connect(m_glScope, SIGNAL(sampleRateChanged(int)), this, SLOT(on_scope_sampleRateChanged(int)));
|
||||||
|
|
||||||
@ -272,6 +272,8 @@ void GLScopeNGGUI::on_trig_valueChanged(int value)
|
|||||||
<< " m_triggerLevel" << triggerData.m_triggerLevel;
|
<< " m_triggerLevel" << triggerData.m_triggerLevel;
|
||||||
|
|
||||||
setTriggerUI(triggerData);
|
setTriggerUI(triggerData);
|
||||||
|
|
||||||
|
m_scopeVis->focusOnTrigger(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLScopeNGGUI::on_trigAdd_clicked(bool checked)
|
void GLScopeNGGUI::on_trigAdd_clicked(bool checked)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user