Use trace data after math operations for eye diagram plot

This commit is contained in:
Jan Käberich 2023-10-24 17:41:45 +02:00
parent 503d689d51
commit 79290d0f36
3 changed files with 8 additions and 1 deletions

View File

@ -82,9 +82,13 @@ void EyeDiagramPlot::enableTrace(Trace *t, bool enabled)
TracePlot::enableTrace(t, enabled); TracePlot::enableTrace(t, enabled);
if(enabled) { if(enabled) {
trace = t; trace = t;
tdr->assignInput(trace); tdr->assignInput(trace->getLastMath());
connect(trace, &Trace::lastMathChanged, this, [=](){
tdr->assignInput(trace->getLastMath());
});
} else { } else {
if(trace) { if(trace) {
disconnect(trace, &Trace::lastMathChanged, this, nullptr);
tdr->removeInput(); tdr->removeInput();
std::lock_guard<std::mutex> calc(calcMutex); std::lock_guard<std::mutex> calc(calcMutex);
displayData->clear(); displayData->clear();

View File

@ -1103,6 +1103,7 @@ void Trace::updateLastMath(vector<MathInfo>::reverse_iterator start)
lastMath = newLast; lastMath = newLast;
// relay signals of end of math chain // relay signals of end of math chain
connect(lastMath, &TraceMath::outputSamplesChanged, this, &Trace::dataChanged); connect(lastMath, &TraceMath::outputSamplesChanged, this, &Trace::dataChanged);
emit lastMathChanged();
emit typeChanged(this); emit typeChanged(this);
emit outputSamplesChanged(0, data.size()); emit outputSamplesChanged(0, data.size());
} }

View File

@ -66,6 +66,7 @@ public:
QString liveParameter() { return liveParam; } QString liveParameter() { return liveParam; }
LivedataType liveType() { return _liveType; } LivedataType liveType() { return _liveType; }
TraceMath::DataType outputType() const { return lastMath->getDataType(); } TraceMath::DataType outputType() const { return lastMath->getDataType(); }
TraceMath *getLastMath() { return lastMath;}
unsigned int size() const; unsigned int size() const;
bool isDeembeddingActive(); bool isDeembeddingActive();
@ -211,6 +212,7 @@ signals:
void markerAdded(Marker *m); void markerAdded(Marker *m);
void markerRemoved(Marker *m); void markerRemoved(Marker *m);
void markerFormatChanged(Marker *m); void markerFormatChanged(Marker *m);
void lastMathChanged();
private slots: private slots:
void markerVisibilityChanged(Marker *m); void markerVisibilityChanged(Marker *m);