New scope: interim state (6)

This commit is contained in:
f4exb 2017-02-03 08:27:03 +01:00
parent 91cb2c39f5
commit fcfa6e7b3f
5 changed files with 186 additions and 1 deletions

View File

@ -381,8 +381,77 @@ bool ScopeVisNG::handleMessage(const Message& message)
else if (MsgConfigureScopeVisNG::match(message))
{
MsgConfigureScopeVisNG& conf = (MsgConfigureScopeVisNG&) message;
m_traceSize = conf.getTraceSize();
std::vector<Trace>::iterator it = m_traces.begin();
for (; it != m_traces.end(); ++it) {
it->resize(m_traceSize);
}
m_traceDiscreteMemory.resize(m_traceSize);
qDebug() << "ScopeVisNG::handleMessage: MsgConfigureScopeVisNG: m_traceSize: " << m_traceSize;
return true;
}
else if (MsgScopeVisNGAddTrigger::match(message))
{
MsgScopeVisNGAddTrigger& conf = (MsgScopeVisNGAddTrigger&) message;
m_triggerConditions.push_back(TriggerCondition(conf.getTriggerData()));
return true;
}
else if (MsgScopeVisNGChangeTrigger::match(message))
{
MsgScopeVisNGChangeTrigger& conf = (MsgScopeVisNGChangeTrigger&) message;
int triggerIndex = conf.getTriggerIndex();
if (triggerIndex < m_triggerConditions.size()) {
m_triggerConditions[triggerIndex].setData(conf.getTriggerData());
}
return true;
}
else if (MsgScopeVisNGRemoveTrigger::match(message))
{
MsgScopeVisNGRemoveTrigger& conf = (MsgScopeVisNGRemoveTrigger&) message;
int triggerIndex = conf.getTriggerIndex();
if (triggerIndex < m_triggerConditions.size()) {
m_triggerConditions.erase(m_triggerConditions.begin() + triggerIndex);
}
return true;
}
else if (MsgScopeVisNGAddTrace::match(message))
{
MsgScopeVisNGAddTrace& conf = (MsgScopeVisNGAddTrace&) message;
m_traces.push_back(Trace(conf.getTraceData(), m_traceSize));
return true;
}
else if (MsgScopeVisNGChangeTrace::match(message))
{
MsgScopeVisNGChangeTrace& conf = (MsgScopeVisNGChangeTrace&) message;
int traceIndex = conf.getTraceIndex();
if (traceIndex < m_traces.size()) {
m_traces[traceIndex].setData(conf.getTraceData());
}
return true;
}
else if (MsgScopeVisNGRemoveTrace::match(message))
{
MsgScopeVisNGRemoveTrace& conf = (MsgScopeVisNGRemoveTrace&) message;
int traceIndex = conf.getTraceIndex();
if (traceIndex < m_traces.size()) {
m_traces.erase(m_traces.begin() + traceIndex);
}
return true;
}
else
{
return false;
}
}

View File

@ -148,6 +148,8 @@ private:
return new MsgScopeVisNGAddTrigger(triggerData);
}
const TriggerData& getTriggerData() const { return m_triggerData; }
private:
TriggerData m_triggerData;
@ -167,6 +169,9 @@ private:
return new MsgScopeVisNGChangeTrigger(triggerData, triggerIndex);
}
const TriggerData& getTriggerData() const { return m_triggerData; }
uint32_t getTriggerIndex() const { return m_triggerIndex; }
private:
TriggerData m_triggerData;
uint32_t m_triggerIndex;
@ -188,6 +193,8 @@ private:
return new MsgScopeVisNGRemoveTrigger(triggerIndex);
}
uint32_t getTriggerIndex() const { return m_triggerIndex; }
private:
uint32_t m_triggerIndex;
@ -207,6 +214,8 @@ private:
return new MsgScopeVisNGAddTrace(traceData);
}
const TraceData& getTraceData() const { return m_traceData; }
private:
TraceData m_traceData;
@ -226,6 +235,9 @@ private:
return new MsgScopeVisNGChangeTrace(traceData, traceIndex);
}
const TraceData& getTraceData() const { return m_traceData; }
uint32_t getTraceIndex() const { return m_traceIndex; }
private:
TraceData m_traceData;
uint32_t m_traceIndex;
@ -247,6 +259,8 @@ private:
return new MsgScopeVisNGRemoveTrace(traceIndex);
}
uint32_t getTraceIndex() const { return m_traceIndex; }
private:
uint32_t m_traceIndex;
@ -499,7 +513,7 @@ private:
m_traceCount(0)
{
m_projector = new Projector(m_traceData.m_projectionType);
m_trace = new float[2*traceSize];
m_trace = new float[2*m_traceSize];
}
~Trace()

View File

@ -87,6 +87,86 @@ bool GLScopeNGGUI::deserialize(const QByteArray& data)
}
}
void GLScopeNGGUI::on_onlyX_toggled(bool checked)
{
if (checked)
{
ui->onlyY->setChecked(false);
ui->horizontalXY->setChecked(false);
ui->verticalXY->setChecked(false);
ui->polar->setChecked(false);
m_glScope->setDisplayMode(GLScopeNG::DisplayX);
}
}
void GLScopeNGGUI::on_onlyY_toggled(bool checked)
{
if (checked)
{
ui->onlyX->setChecked(false);
ui->horizontalXY->setChecked(false);
ui->verticalXY->setChecked(false);
ui->polar->setChecked(false);
m_glScope->setDisplayMode(GLScopeNG::DisplayY);
}
}
void GLScopeNGGUI::on_horizontalXY_toggled(bool checked)
{
if (checked)
{
ui->onlyX->setChecked(false);
ui->onlyY->setChecked(false);
ui->verticalXY->setChecked(false);
ui->polar->setChecked(false);
m_glScope->setDisplayMode(GLScopeNG::DisplayXYH);
}
}
void GLScopeNGGUI::on_verticalXY_toggled(bool checked)
{
ui->onlyX->setChecked(false);
ui->onlyY->setChecked(false);
ui->horizontalXY->setChecked(false);
ui->polar->setChecked(false);
m_glScope->setDisplayMode(GLScopeNG::DisplayXYV);
}
void GLScopeNGGUI::on_polar_toggled(bool checked)
{
ui->onlyX->setChecked(false);
ui->onlyY->setChecked(false);
ui->horizontalXY->setChecked(false);
ui->verticalXY->setChecked(false);
m_glScope->setDisplayMode(GLScopeNG::DisplayPol);
}
void GLScopeNGGUI::on_traceIntensity_valueChanged(int value)
{
}
void GLScopeNGGUI::on_gridIntensity_valueChanged(int value)
{
}
void GLScopeNGGUI::on_time_valueChanged(int value)
{
}
void GLScopeNGGUI::on_timeOfs_valueChanged(int value)
{
}
void GLScopeNGGUI::on_traceLen_valueChanged(int value)
{
}
void GLScopeNGGUI::applySettings()
{
}

View File

@ -60,6 +60,16 @@ private:
private slots:
void on_scope_sampleRateChanged(int value);
void on_onlyX_toggled(bool checked);
void on_onlyY_toggled(bool checked);
void on_horizontalXY_toggled(bool checked);
void on_verticalXY_toggled(bool checked);
void on_polar_toggled(bool checked);
void on_traceIntensity_valueChanged(int value);
void on_gridIntensity_valueChanged(int value);
void on_time_valueChanged(int value);
void on_timeOfs_valueChanged(int value);
void on_traceLen_valueChanged(int value);
};

View File

@ -240,6 +240,12 @@
<property name="toolTip">
<string>Trace intensity</string>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
</widget>
</item>
<item>
@ -253,6 +259,12 @@
<property name="toolTip">
<string>Grid intensity</string>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
</widget>
</item>
<item>