2
0
forked from Ivasoft/DSView

Fix math channel update issue when waiting trigger

This commit is contained in:
DreamSourceLab
2019-11-07 04:58:47 -08:00
parent 14ad277bf6
commit 519f3b0637
2 changed files with 16 additions and 9 deletions

View File

@@ -1016,16 +1016,22 @@ void SigSession::feed_in_dso(const sr_datafeed_dso &dso)
}
if (dso.num_samples != 0) {
// update current sample rate
if (_dso_data)
_dso_data->set_samplerate(_dev_inst->get_sample_rate());
// reset measure of dso signal
BOOST_FOREACH(const boost::shared_ptr<view::Signal> s, _signals)
{
assert(s);
boost::shared_ptr<view::DsoSignal> dsoSig;
if ((dsoSig = dynamic_pointer_cast<view::DsoSignal>(s)))
dsoSig->set_mValid(false);
}
if (_math_trace && _math_trace->enabled())
_math_trace->get_math_stack()->set_samplerate(_dev_inst->get_sample_rate());
BOOST_FOREACH(const boost::shared_ptr<view::SpectrumTrace> m, _spectrum_traces)
m->get_spectrum_stack()->set_samplerate(_cur_samplerate);
// // reset measure of dso signal
// BOOST_FOREACH(const boost::shared_ptr<view::Signal> s, _signals)
// {
// assert(s);
// boost::shared_ptr<view::DsoSignal> dsoSig;
// if ((dsoSig = dynamic_pointer_cast<view::DsoSignal>(s)))
// dsoSig->set_mValid(false);
// }
}
if (_cur_dso_snapshot->memory_failed()) {

View File

@@ -218,7 +218,8 @@ void MathTrace::paint_mid(QPainter &p, int left, int right, QColor fore, QColor
const int64_t offset = _view->offset();
const double pixels_offset = offset;
const double samplerate = _view->session().cur_samplerate();
//const double samplerate = _view->session().cur_samplerate();
const double samplerate = _math_stack->samplerate();
const int64_t last_sample = max((int64_t)(_math_stack->get_sample_num() - 1), (int64_t)0);
const double samples_per_pixel = samplerate * scale;
const double start = offset * samples_per_pixel;