mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-06-24 21:15:24 -04:00
ScopeNG: add possibility to drive the GUI from a parent class
This commit is contained in:
parent
320d529896
commit
af512f16f8
@ -133,6 +133,8 @@ void GLScopeNGGUI::on_scope_sampleRateChanged(int sampleRate)
|
|||||||
setTimeScaleDisplay();
|
setTimeScaleDisplay();
|
||||||
setTimeOfsDisplay();
|
setTimeOfsDisplay();
|
||||||
setTraceDelayDisplay();
|
setTraceDelayDisplay();
|
||||||
|
setTrigPreDisplay();
|
||||||
|
setTrigDelayDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLScopeNGGUI::resetToDefaults()
|
void GLScopeNGGUI::resetToDefaults()
|
||||||
@ -548,21 +550,9 @@ void GLScopeNGGUI::on_trace_valueChanged(int value)
|
|||||||
|
|
||||||
void GLScopeNGGUI::on_traceAdd_clicked(bool checked)
|
void GLScopeNGGUI::on_traceAdd_clicked(bool checked)
|
||||||
{
|
{
|
||||||
if (ui->trace->maximum() < 3)
|
|
||||||
{
|
|
||||||
if (ui->trace->value() == 0)
|
|
||||||
{
|
|
||||||
ui->onlyY->setEnabled(true);
|
|
||||||
ui->horizontalXY->setEnabled(true);
|
|
||||||
ui->verticalXY->setEnabled(true);
|
|
||||||
ui->polar->setEnabled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
ScopeVisNG::TraceData traceData;
|
ScopeVisNG::TraceData traceData;
|
||||||
fillTraceData(traceData);
|
fillTraceData(traceData);
|
||||||
m_scopeVis->addTrace(traceData);
|
addTrace(traceData);
|
||||||
ui->trace->setMaximum(ui->trace->maximum() + 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLScopeNGGUI::on_traceDel_clicked(bool checked)
|
void GLScopeNGGUI::on_traceDel_clicked(bool checked)
|
||||||
@ -635,13 +625,9 @@ void GLScopeNGGUI::on_trig_valueChanged(int value)
|
|||||||
|
|
||||||
void GLScopeNGGUI::on_trigAdd_clicked(bool checked)
|
void GLScopeNGGUI::on_trigAdd_clicked(bool checked)
|
||||||
{
|
{
|
||||||
if (ui->trig->maximum() < 9)
|
|
||||||
{
|
|
||||||
ScopeVisNG::TriggerData triggerData;
|
ScopeVisNG::TriggerData triggerData;
|
||||||
fillTriggerData(triggerData);
|
fillTriggerData(triggerData);
|
||||||
m_scopeVis->addTrigger(triggerData);
|
addTrigger(triggerData);
|
||||||
ui->trig->setMaximum(ui->trig->maximum() + 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLScopeNGGUI::on_trigDel_clicked(bool checked)
|
void GLScopeNGGUI::on_trigDel_clicked(bool checked)
|
||||||
@ -1022,6 +1008,8 @@ void GLScopeNGGUI::setAmpOfsDisplay()
|
|||||||
|
|
||||||
void GLScopeNGGUI::setTraceDelayDisplay()
|
void GLScopeNGGUI::setTraceDelayDisplay()
|
||||||
{
|
{
|
||||||
|
if (m_sampleRate > 0)
|
||||||
|
{
|
||||||
int n_samples = ui->traceDelayCoarse->value()*100 + ui->traceDelayFine->value();
|
int n_samples = ui->traceDelayCoarse->value()*100 + ui->traceDelayFine->value();
|
||||||
double t = ((double) n_samples) / m_sampleRate;
|
double t = ((double) n_samples) / m_sampleRate;
|
||||||
|
|
||||||
@ -1041,6 +1029,7 @@ void GLScopeNGGUI::setTraceDelayDisplay()
|
|||||||
ui->traceDelayText->setText(tr("%1\nms").arg(t * 1000.0, 0, 'f', 2));
|
ui->traceDelayText->setText(tr("%1\nms").arg(t * 1000.0, 0, 'f', 2));
|
||||||
else
|
else
|
||||||
ui->traceDelayText->setText(tr("%1\ns").arg(t * 1.0, 0, 'f', 2));
|
ui->traceDelayText->setText(tr("%1\ns").arg(t * 1.0, 0, 'f', 2));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLScopeNGGUI::setTrigIndexDisplay()
|
void GLScopeNGGUI::setTrigIndexDisplay()
|
||||||
@ -1082,6 +1071,8 @@ void GLScopeNGGUI::setTrigLevelDisplay()
|
|||||||
|
|
||||||
void GLScopeNGGUI::setTrigDelayDisplay()
|
void GLScopeNGGUI::setTrigDelayDisplay()
|
||||||
{
|
{
|
||||||
|
if (m_sampleRate > 0)
|
||||||
|
{
|
||||||
double delayMult = ui->trigDelayCoarse->value() + ui->trigDelayFine->value() / (ScopeVisNG::m_traceChunkSize / 10.0);
|
double delayMult = ui->trigDelayCoarse->value() + ui->trigDelayFine->value() / (ScopeVisNG::m_traceChunkSize / 10.0);
|
||||||
unsigned int n_samples_delay = m_traceLenMult * ScopeVisNG::m_traceChunkSize * delayMult;
|
unsigned int n_samples_delay = m_traceLenMult * ScopeVisNG::m_traceChunkSize * delayMult;
|
||||||
|
|
||||||
@ -1106,10 +1097,13 @@ void GLScopeNGGUI::setTrigDelayDisplay()
|
|||||||
ui->trigDelayText->setText(tr("%1\nms").arg(t * 1000.0, 0, 'f', 2));
|
ui->trigDelayText->setText(tr("%1\nms").arg(t * 1000.0, 0, 'f', 2));
|
||||||
else
|
else
|
||||||
ui->trigDelayText->setText(tr("%1\ns").arg(t * 1.0, 0, 'f', 2));
|
ui->trigDelayText->setText(tr("%1\ns").arg(t * 1.0, 0, 'f', 2));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLScopeNGGUI::setTrigPreDisplay()
|
void GLScopeNGGUI::setTrigPreDisplay()
|
||||||
{
|
{
|
||||||
|
if (m_sampleRate > 0)
|
||||||
|
{
|
||||||
unsigned int n_samples_delay = m_glScope->getTraceSize() * (ui->trigPre->value()/100.0f);
|
unsigned int n_samples_delay = m_glScope->getTraceSize() * (ui->trigPre->value()/100.0f);
|
||||||
double dt = m_glScope->getTraceSize() * (ui->trigPre->value()/100.0f) / m_sampleRate;
|
double dt = m_glScope->getTraceSize() * (ui->trigPre->value()/100.0f) / m_sampleRate;
|
||||||
|
|
||||||
@ -1131,6 +1125,7 @@ void GLScopeNGGUI::setTrigPreDisplay()
|
|||||||
ui->trigPreText->setText(tr("%1\nms").arg(dt * 1000.0f, 0, 'f', 2));
|
ui->trigPreText->setText(tr("%1\nms").arg(dt * 1000.0f, 0, 'f', 2));
|
||||||
else
|
else
|
||||||
ui->trigPreText->setText(tr("%1\ns").arg(dt * 1.0f, 0, 'f', 2));
|
ui->trigPreText->setText(tr("%1\ns").arg(dt * 1.0f, 0, 'f', 2));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLScopeNGGUI::changeCurrentTrace()
|
void GLScopeNGGUI::changeCurrentTrace()
|
||||||
@ -1221,7 +1216,7 @@ void GLScopeNGGUI::fillTriggerData(ScopeVisNG::TriggerData& triggerData)
|
|||||||
triggerData.setColor(m_focusedTriggerColor);
|
triggerData.setColor(m_focusedTriggerColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLScopeNGGUI::setTraceUI(ScopeVisNG::TraceData& traceData)
|
void GLScopeNGGUI::setTraceUI(const ScopeVisNG::TraceData& traceData)
|
||||||
{
|
{
|
||||||
TraceUIBlocker traceUIBlocker(ui);
|
TraceUIBlocker traceUIBlocker(ui);
|
||||||
|
|
||||||
@ -1245,7 +1240,7 @@ void GLScopeNGGUI::setTraceUI(ScopeVisNG::TraceData& traceData)
|
|||||||
ui->traceView->setChecked(traceData.m_viewTrace);
|
ui->traceView->setChecked(traceData.m_viewTrace);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLScopeNGGUI::setTriggerUI(ScopeVisNG::TriggerData& triggerData)
|
void GLScopeNGGUI::setTriggerUI(const ScopeVisNG::TriggerData& triggerData)
|
||||||
{
|
{
|
||||||
TrigUIBlocker trigUIBlocker(ui);
|
TrigUIBlocker trigUIBlocker(ui);
|
||||||
|
|
||||||
@ -1399,3 +1394,136 @@ void GLScopeNGGUI::MainUIBlocker::unBlock()
|
|||||||
// m_ui->traceLen->blockSignals(m_oldStateTraceLen);
|
// m_ui->traceLen->blockSignals(m_oldStateTraceLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GLScopeNGGUI::setDisplayMode(DisplayMode displayMode)
|
||||||
|
{
|
||||||
|
if (ui->trace->maximum() == 0)
|
||||||
|
{
|
||||||
|
ui->onlyX->setChecked(true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch (displayMode)
|
||||||
|
{
|
||||||
|
case DisplayX:
|
||||||
|
ui->onlyX->setChecked(true);
|
||||||
|
break;
|
||||||
|
case DisplayY:
|
||||||
|
ui->onlyY->setChecked(true);
|
||||||
|
break;
|
||||||
|
case DisplayXYH:
|
||||||
|
ui->horizontalXY->setChecked(true);
|
||||||
|
break;
|
||||||
|
case DisplayXYV:
|
||||||
|
ui->verticalXY->setChecked(true);
|
||||||
|
break;
|
||||||
|
case DisplayPol:
|
||||||
|
ui->polar->setChecked(true);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ui->onlyX->setChecked(true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLScopeNGGUI::setTraceIntensity(int value)
|
||||||
|
{
|
||||||
|
if ((value < ui->traceIntensity->minimum()) || (value > ui->traceIntensity->maximum())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->traceIntensity->setValue(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLScopeNGGUI::setGridIntensity(int value)
|
||||||
|
{
|
||||||
|
if ((value < ui->gridIntensity->minimum()) || (value > ui->gridIntensity->maximum())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->gridIntensity->setValue(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLScopeNGGUI::setTimeBase(int step)
|
||||||
|
{
|
||||||
|
if ((step < ui->time->minimum()) || (step > ui->time->maximum())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->time->setValue(step);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLScopeNGGUI::setTimeOffset(int step)
|
||||||
|
{
|
||||||
|
if ((step < ui->timeOfs->minimum()) || (step > ui->timeOfs->maximum())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->timeOfs->setValue(step);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLScopeNGGUI::setTraceLength(int step)
|
||||||
|
{
|
||||||
|
if ((step < ui->traceLen->minimum()) || (step > ui->traceLen->maximum())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->traceLen->setValue(step);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLScopeNGGUI::setPreTrigger(int step)
|
||||||
|
{
|
||||||
|
if ((step < ui->trigPre->minimum()) || (step > ui->trigPre->maximum())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->trigPre->setValue(step);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLScopeNGGUI::changeTrace(int traceIndex, const ScopeVisNG::TraceData& traceData)
|
||||||
|
{
|
||||||
|
m_scopeVis->changeTrace(traceData, traceIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLScopeNGGUI::addTrace(const ScopeVisNG::TraceData& traceData)
|
||||||
|
{
|
||||||
|
if (ui->trace->maximum() < 3)
|
||||||
|
{
|
||||||
|
if (ui->trace->value() == 0)
|
||||||
|
{
|
||||||
|
ui->onlyY->setEnabled(true);
|
||||||
|
ui->horizontalXY->setEnabled(true);
|
||||||
|
ui->verticalXY->setEnabled(true);
|
||||||
|
ui->polar->setEnabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_scopeVis->addTrace(traceData);
|
||||||
|
ui->trace->setMaximum(ui->trace->maximum() + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLScopeNGGUI::focusOnTrace(int traceIndex)
|
||||||
|
{
|
||||||
|
on_trace_valueChanged(traceIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLScopeNGGUI::changeTrigger(int triggerIndex, const ScopeVisNG::TriggerData& triggerData)
|
||||||
|
{
|
||||||
|
m_scopeVis->changeTrigger(triggerData, triggerIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLScopeNGGUI::addTrigger(const ScopeVisNG::TriggerData& triggerData)
|
||||||
|
{
|
||||||
|
if (ui->trig->maximum() < 9)
|
||||||
|
{
|
||||||
|
m_scopeVis->addTrigger(triggerData);
|
||||||
|
ui->trig->setMaximum(ui->trig->maximum() + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GLScopeNGGUI::focusOnTrigger(int triggerIndex)
|
||||||
|
{
|
||||||
|
on_trig_valueChanged(triggerIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -37,6 +37,14 @@ class SDRANGEL_API GLScopeNGGUI : public QWidget {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
enum DisplayMode {
|
||||||
|
DisplayXYH,
|
||||||
|
DisplayXYV,
|
||||||
|
DisplayX,
|
||||||
|
DisplayY,
|
||||||
|
DisplayPol
|
||||||
|
};
|
||||||
|
|
||||||
explicit GLScopeNGGUI(QWidget* parent = 0);
|
explicit GLScopeNGGUI(QWidget* parent = 0);
|
||||||
~GLScopeNGGUI();
|
~GLScopeNGGUI();
|
||||||
|
|
||||||
@ -49,6 +57,24 @@ public:
|
|||||||
|
|
||||||
bool handleMessage(Message* message);
|
bool handleMessage(Message* message);
|
||||||
|
|
||||||
|
// preconfiguration methods
|
||||||
|
// global (first line):
|
||||||
|
void setDisplayMode(DisplayMode displayMode);
|
||||||
|
void setTraceIntensity(int value);
|
||||||
|
void setGridIntensity(int value);
|
||||||
|
void setTimeBase(int step);
|
||||||
|
void setTimeOffset(int step);
|
||||||
|
void setTraceLength(int step);
|
||||||
|
void setPreTrigger(int step);
|
||||||
|
// trace (second line):
|
||||||
|
void changeTrace(int traceIndex, const ScopeVisNG::TraceData& traceData);
|
||||||
|
void addTrace(const ScopeVisNG::TraceData& traceData);
|
||||||
|
void focusOnTrace(int traceIndex);
|
||||||
|
// trigger (third line):
|
||||||
|
void changeTrigger(int triggerIndex, const ScopeVisNG::TriggerData& triggerData);
|
||||||
|
void addTrigger(const ScopeVisNG::TriggerData& triggerData);
|
||||||
|
void focusOnTrigger(int triggerIndex);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
class TrigUIBlocker
|
class TrigUIBlocker
|
||||||
{
|
{
|
||||||
@ -150,8 +176,8 @@ private:
|
|||||||
|
|
||||||
void fillTraceData(ScopeVisNG::TraceData& traceData);
|
void fillTraceData(ScopeVisNG::TraceData& traceData);
|
||||||
void fillTriggerData(ScopeVisNG::TriggerData& triggerData);
|
void fillTriggerData(ScopeVisNG::TriggerData& triggerData);
|
||||||
void setTriggerUI(ScopeVisNG::TriggerData& triggerData);
|
void setTriggerUI(const ScopeVisNG::TriggerData& triggerData);
|
||||||
void setTraceUI(ScopeVisNG::TraceData& traceData);
|
void setTraceUI(const ScopeVisNG::TraceData& traceData);
|
||||||
|
|
||||||
void fillProjectionCombo(QComboBox* comboBox);
|
void fillProjectionCombo(QComboBox* comboBox);
|
||||||
void disableLiveMode(bool disable);
|
void disableLiveMode(bool disable);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user