forked from Ivasoft/DSView
Remove dynamic_cast
This commit is contained in:
@@ -150,9 +150,8 @@ void DecoderStack::build_row()
|
||||
_rows.clear();
|
||||
|
||||
// Add classes
|
||||
for (auto &dec : _stack)
|
||||
{
|
||||
assert(dec);
|
||||
for (auto dec : _stack)
|
||||
{
|
||||
const srd_decoder *const decc = dec->decoder();
|
||||
assert(dec->decoder());
|
||||
|
||||
@@ -411,7 +410,6 @@ void DecoderStack::do_decode_work()
|
||||
_stask_stauts->_decoder = this;
|
||||
_decoder_status->clear(); //clear old items
|
||||
|
||||
pv::view::LogicSignal *logic_signal = NULL;
|
||||
pv::data::Logic *data = NULL;
|
||||
|
||||
if (!_options_changed)
|
||||
@@ -437,17 +435,20 @@ void DecoderStack::do_decode_work()
|
||||
for (auto dec : _stack) {
|
||||
if (!dec->channels().empty()) {
|
||||
for(auto s : _session->get_signals()) {
|
||||
if((s->get_index() == (*dec->channels().begin()).second) &&
|
||||
(logic_signal = dynamic_cast<view::LogicSignal*>(s)) &&
|
||||
(data = logic_signal->logic_data()))
|
||||
break;
|
||||
if(s->get_index() == (*dec->channels().begin()).second && s->signal_type() == LOGIC_SIGNAL)
|
||||
{
|
||||
pv::view::LogicSignal *logicSig = (pv::view::LogicSignal*)s;
|
||||
data = logicSig->logic_data();
|
||||
if (data != NULL)
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (data)
|
||||
if (data != NULL)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!data)
|
||||
if (!data == NULL)
|
||||
return;
|
||||
|
||||
// Check we have a snapshot of data
|
||||
|
||||
@@ -174,7 +174,8 @@ void SpectrumStack::calc_fft()
|
||||
pv::view::DsoSignal *dsoSig = NULL;
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal*>(s))) {
|
||||
if (s->signal_type() == DSO_SIGNAL) {
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
if (dsoSig->get_index() == _index && dsoSig->enabled()) {
|
||||
data = dsoSig->dso_data();
|
||||
break;
|
||||
|
||||
@@ -262,9 +262,9 @@ DsComboBox* DecoderOptionsDlg::create_probe_selector(
|
||||
|
||||
int dex = 0;
|
||||
|
||||
for(auto s : sigs) {
|
||||
if (dynamic_cast<view::LogicSignal*>(s) && s->enabled())
|
||||
{
|
||||
for(auto s : sigs)
|
||||
{
|
||||
if (s->signal_type() == LOGIC_SIGNAL && s->enabled()){
|
||||
selector->addItem(s->get_name(),QVariant::fromValue(s->get_index()));
|
||||
|
||||
if (probe_iter != _dec->channels().end()) {
|
||||
|
||||
@@ -57,8 +57,8 @@ DsoMeasure::DsoMeasure(SigSession *session, View &parent,
|
||||
_measure_tab->setUsesScrollButtons(false);
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
view::DsoSignal *dsoSig;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal*>(s)) && dsoSig->enabled()) {
|
||||
if (s->signal_type() == DSO_SIGNAL && s->enabled()) {
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
QWidget *measure_widget = new QWidget(this);
|
||||
this->add_measure(measure_widget, dsoSig);
|
||||
_measure_tab->addTab(measure_widget, QString::number(dsoSig->get_index()));
|
||||
@@ -160,9 +160,9 @@ void DsoMeasure::accept()
|
||||
QVariant id = sc->property("id");
|
||||
enum DSO_MEASURE_TYPE ms_type = DSO_MEASURE_TYPE(id.toInt());
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal*>(s))) {
|
||||
for(auto s : _session->get_signals()) {
|
||||
if (s->signal_type() == DSO_SIGNAL) {
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
if (_measure_tab->currentWidget()->property("index").toInt() == dsoSig->get_index()) {
|
||||
_view.get_viewstatus()->set_measure(_position, false, dsoSig->get_index(), ms_type);
|
||||
break;
|
||||
|
||||
@@ -69,8 +69,8 @@ FftOptions::FftOptions(QWidget *parent, SigSession *session) :
|
||||
|
||||
// setup _ch_combobox
|
||||
for(auto s : _session->get_signals()) {
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal*>(s))) {
|
||||
if (s->signal_type() == DSO_SIGNAL) {
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
_ch_combobox->addItem(dsoSig->get_name(), QVariant::fromValue(dsoSig->get_index()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,8 +76,8 @@ LissajousOptions::LissajousOptions(SigSession *session, QWidget *parent) :
|
||||
QHBoxLayout *ylayout = new QHBoxLayout();
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal*>(s))) {
|
||||
if (s->signal_type() == DSO_SIGNAL) {
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
QString index_str = QString::number(dsoSig->get_index());
|
||||
QRadioButton *xradio = new QRadioButton(index_str, _x_group);
|
||||
xradio->setProperty("index", dsoSig->get_index());
|
||||
@@ -183,8 +183,8 @@ void LissajousOptions::accept()
|
||||
_session->lissajous_rebuild(enable, xindex, yindex, _percent->value());
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal*>(s))) {
|
||||
if (s->signal_type() == DSO_SIGNAL) {
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
dsoSig->set_show(!enable);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,8 +80,8 @@ MathOptions::MathOptions(SigSession *session, QWidget *parent) :
|
||||
QHBoxLayout *src2_layout = new QHBoxLayout();
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
view::DsoSignal *dsoSig = NULL;;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal*>(s))) {
|
||||
if (s->signal_type() == DSO_SIGNAL) {
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
QString index_str = QString::number(dsoSig->get_index());
|
||||
QRadioButton *xradio = new QRadioButton(index_str, _src1_group);
|
||||
xradio->setProperty("index", dsoSig->get_index());
|
||||
@@ -208,8 +208,8 @@ void MathOptions::accept()
|
||||
view::DsoSignal *dsoSig2 = NULL;
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
view::DsoSignal *dsoSig = NULL;;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal*>(s))) {
|
||||
if (s->signal_type() == DSO_SIGNAL) {
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
if (dsoSig->get_index() == src1)
|
||||
dsoSig1 = dsoSig;
|
||||
if (dsoSig->get_index() == src2)
|
||||
|
||||
@@ -53,11 +53,11 @@ Search::Search(QWidget *parent, SigSession *session, std::map<uint16_t, QString>
|
||||
int index = 0;
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
view::LogicSignal *logic_sig = NULL;
|
||||
if ((logic_sig = dynamic_cast<view::LogicSignal*>(s))) {
|
||||
if (s->signal_type() == LOGIC_SIGNAL) {
|
||||
view::LogicSignal *logicSig = (view::LogicSignal*)s;
|
||||
QLineEdit *search_lineEdit = new QLineEdit(this);
|
||||
if (pattern.find(logic_sig->get_index()) != pattern.end())
|
||||
search_lineEdit->setText(pattern[logic_sig->get_index()]);
|
||||
if (pattern.find(logicSig->get_index()) != pattern.end())
|
||||
search_lineEdit->setText(pattern[logicSig->get_index()]);
|
||||
else
|
||||
search_lineEdit->setText("X");
|
||||
search_lineEdit->setValidator(value_validator);
|
||||
@@ -66,8 +66,8 @@ Search::Search(QWidget *parent, SigSession *session, std::map<uint16_t, QString>
|
||||
search_lineEdit->setFont(font);
|
||||
_search_lineEdit_vec.push_back(search_lineEdit);
|
||||
|
||||
search_layout->addWidget(new QLabel(logic_sig->get_name()+":"), index, 0, Qt::AlignRight);
|
||||
search_layout->addWidget(new QLabel(QString::number(logic_sig->get_index())), index, 1, Qt::AlignRight);
|
||||
search_layout->addWidget(new QLabel(logicSig->get_name()+":"), index, 0, Qt::AlignRight);
|
||||
search_layout->addWidget(new QLabel(QString::number(logicSig->get_index())), index, 1, Qt::AlignRight);
|
||||
search_layout->addWidget(search_lineEdit, index, 2);
|
||||
|
||||
connect(search_lineEdit, SIGNAL(editingFinished()), this, SLOT(format()));
|
||||
@@ -113,9 +113,9 @@ std::map<uint16_t, QString> Search::get_pattern()
|
||||
|
||||
int index = 0;
|
||||
for(auto s :_session->get_signals()) {
|
||||
view::LogicSignal *logic_sig = NULL;
|
||||
if ((logic_sig = dynamic_cast<view::LogicSignal*>(s))) {
|
||||
pattern[logic_sig->get_index()] = _search_lineEdit_vec[index]->text();
|
||||
if (s->signal_type() == LOGIC_SIGNAL) {
|
||||
view::LogicSignal *logicSig = (view::LogicSignal*)s;
|
||||
pattern[logicSig->get_index()] = _search_lineEdit_vec[index]->text();
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,12 +185,13 @@ void WaitingDialog::changeText()
|
||||
if (gvar != NULL) {
|
||||
zero_fgain = g_variant_get_boolean(gvar);
|
||||
g_variant_unref(gvar);
|
||||
if (zero_fgain) {
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
|
||||
|
||||
if (zero_fgain) {
|
||||
for(auto s : _session->get_signals()){
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal*>(s)))
|
||||
if (s->signal_type() == DSO_SIGNAL){
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
dsoSig->set_enable(dsoSig->get_index() == 0);
|
||||
}
|
||||
}
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||
_device_agent->set_config(NULL, NULL, SR_CONF_ZERO_COMB, g_variant_new_boolean(true));
|
||||
|
||||
@@ -401,8 +401,8 @@ void DsoTriggerDock::init()
|
||||
_channel_comboBox->clear();
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal*>(s))) {
|
||||
if (s->signal_type() == DSO_SIGNAL) {
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
_channel_comboBox->addItem(dsoSig->get_name(), QVariant::fromValue(dsoSig->get_index()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -607,11 +607,11 @@ void MeasureDock::update_edge()
|
||||
const auto &sigs = _session->get_signals();
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
view::LogicSignal *logicSig = NULL;
|
||||
|
||||
if ((logicSig = dynamic_cast<view::LogicSignal*>(s)) &&
|
||||
(logicSig->enabled()) &&
|
||||
(logicSig->get_index() == _edge_ch_cmb_vec[edge_index]->currentText().toInt())){
|
||||
if (s->signal_type() == LOGIC_SIGNAL
|
||||
&& s->enabled()
|
||||
&& s->get_index() == _edge_ch_cmb_vec[edge_index]->currentText().toInt())
|
||||
{
|
||||
view::LogicSignal *logicSig = (view::LogicSignal*)s;
|
||||
if (logicSig->edges(_view.get_cursor_samples(end), _view.get_cursor_samples(start), rising_edges, falling_edges)) {
|
||||
QString delta_text = QString::number(rising_edges) + "/" +
|
||||
QString::number(falling_edges) + "/" +
|
||||
@@ -658,7 +658,7 @@ void MeasureDock::update_probe_selector(DsComboBox *selector)
|
||||
selector->clear();
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
if (dynamic_cast<LogicSignal*>(s) && s->enabled()){
|
||||
if (s->signal_type() == LOGIC_SIGNAL && s->enabled()){
|
||||
selector->addItem(QString::number(s->get_index()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -914,10 +914,9 @@ void TriggerDock::try_commit_trigger()
|
||||
if (commit_trigger() == false)
|
||||
{
|
||||
/* simple trigger check trigger_enable */
|
||||
for(auto s : _session->get_signals())
|
||||
{
|
||||
view::LogicSignal *logicSig = NULL;
|
||||
if ((logicSig = dynamic_cast<view::LogicSignal*>(s))) {
|
||||
for(auto s : _session->get_signals()){
|
||||
if (s->signal_type() == LOGIC_SIGNAL) {
|
||||
view::LogicSignal *logicSig = (view::LogicSignal*)s;
|
||||
if (logicSig->commit_trig())
|
||||
num++;
|
||||
}
|
||||
@@ -938,8 +937,8 @@ void TriggerDock::try_commit_trigger()
|
||||
|
||||
if (msg.mBox()->clickedButton() == cancelButton) {
|
||||
for(auto s : _session->get_signals()){
|
||||
view::LogicSignal *logicSig = NULL;
|
||||
if ((logicSig = dynamic_cast<view::LogicSignal*>(s))) {
|
||||
if (s->signal_type() == LOGIC_SIGNAL) {
|
||||
view::LogicSignal *logicSig = (view::LogicSignal*)s;
|
||||
logicSig->set_trig(view::LogicSignal::NONTRIG);
|
||||
logicSig->commit_trig();
|
||||
}
|
||||
|
||||
@@ -665,7 +665,7 @@ namespace pv
|
||||
}
|
||||
}
|
||||
|
||||
for (auto &s : _session->get_signals())
|
||||
for (auto s : _session->get_signals())
|
||||
{
|
||||
QJsonObject s_obj;
|
||||
s_obj["index"] = s->get_index();
|
||||
@@ -683,19 +683,20 @@ namespace pv
|
||||
s_obj["strigger"] = logicSig->get_trig();
|
||||
}
|
||||
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
|
||||
if (s->signal_type() == DSO_SIGNAL)
|
||||
{
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
s_obj["vdiv"] = QJsonValue::fromVariant(static_cast<qulonglong>(dsoSig->get_vDialValue()));
|
||||
s_obj["vfactor"] = QJsonValue::fromVariant(static_cast<qulonglong>(dsoSig->get_factor()));
|
||||
s_obj["coupling"] = dsoSig->get_acCoupling();
|
||||
s_obj["trigValue"] = dsoSig->get_trig_vrate();
|
||||
s_obj["zeroPos"] = dsoSig->get_zero_ratio();
|
||||
}
|
||||
|
||||
view::AnalogSignal *analogSig = NULL;
|
||||
if ((analogSig = dynamic_cast<view::AnalogSignal *>(s)))
|
||||
|
||||
if (s->signal_type() == ANALOG_SIGNAL)
|
||||
{
|
||||
view::AnalogSignal *analogSig = (view::AnalogSignal*)s;
|
||||
s_obj["vdiv"] = QJsonValue::fromVariant(static_cast<qulonglong>(analogSig->get_vdiv()));
|
||||
s_obj["vfactor"] = QJsonValue::fromVariant(static_cast<qulonglong>(analogSig->get_factor()));
|
||||
s_obj["coupling"] = analogSig->get_acCoupling();
|
||||
@@ -910,7 +911,7 @@ namespace pv
|
||||
if (mode == DSO)
|
||||
{
|
||||
|
||||
for (auto &s : _session->get_signals())
|
||||
for (auto s : _session->get_signals())
|
||||
{
|
||||
for (const QJsonValue &value : sessionObj["channel"].toArray())
|
||||
{
|
||||
@@ -919,10 +920,10 @@ namespace pv
|
||||
(s->get_type() == obj["type"].toDouble()))
|
||||
{
|
||||
s->set_colour(QColor(obj["colour"].toString()));
|
||||
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
{
|
||||
|
||||
if (s->signal_type() == DSO_SIGNAL)
|
||||
{
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
dsoSig->load_settings();
|
||||
dsoSig->set_zero_ratio(obj["zeroPos"].toDouble());
|
||||
dsoSig->set_trig_ratio(obj["trigValue"].toDouble());
|
||||
@@ -935,7 +936,7 @@ namespace pv
|
||||
}
|
||||
else
|
||||
{
|
||||
for (auto &s : _session->get_signals())
|
||||
for (auto s : _session->get_signals())
|
||||
{
|
||||
for (const QJsonValue &value : sessionObj["channel"].toArray())
|
||||
{
|
||||
@@ -951,19 +952,19 @@ namespace pv
|
||||
{
|
||||
logicSig->set_trig(obj["strigger"].toDouble());
|
||||
}
|
||||
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
|
||||
if (s->signal_type() == DSO_SIGNAL)
|
||||
{
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
dsoSig->load_settings();
|
||||
dsoSig->set_zero_ratio(obj["zeroPos"].toDouble());
|
||||
dsoSig->set_trig_ratio(obj["trigValue"].toDouble());
|
||||
dsoSig->commit_settings();
|
||||
}
|
||||
|
||||
view::AnalogSignal *analogSig = NULL;
|
||||
if ((analogSig = dynamic_cast<view::AnalogSignal *>(s)))
|
||||
{
|
||||
|
||||
if (s->signal_type() == ANALOG_SIGNAL)
|
||||
{
|
||||
view::AnalogSignal *analogSig = (view::AnalogSignal*)s;
|
||||
analogSig->set_zero_ratio(obj["zeroPos"].toDouble());
|
||||
analogSig->commit_settings();
|
||||
}
|
||||
@@ -1149,11 +1150,11 @@ namespace pv
|
||||
_view->zoom(-1);
|
||||
break;
|
||||
case Qt::Key_0:
|
||||
for (auto &s : sigs)
|
||||
{
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
{
|
||||
for (auto s : sigs)
|
||||
{
|
||||
if (s->signal_type() == DSO_SIGNAL)
|
||||
{
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
if (dsoSig->get_index() == 0)
|
||||
dsoSig->set_vDialActive(!dsoSig->get_vDialActive());
|
||||
else
|
||||
@@ -1164,11 +1165,11 @@ namespace pv
|
||||
update();
|
||||
break;
|
||||
case Qt::Key_1:
|
||||
for (auto &s : sigs)
|
||||
for (auto s : sigs)
|
||||
{
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
if (s->signal_type() == DSO_SIGNAL)
|
||||
{
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
if (dsoSig->get_index() == 1)
|
||||
dsoSig->set_vDialActive(!dsoSig->get_vDialActive());
|
||||
else
|
||||
@@ -1179,11 +1180,10 @@ namespace pv
|
||||
update();
|
||||
break;
|
||||
case Qt::Key_Up:
|
||||
for (auto &s : sigs)
|
||||
{
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
{
|
||||
for (auto s : sigs)
|
||||
{
|
||||
if (s->signal_type() == DSO_SIGNAL){
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
if (dsoSig->get_vDialActive())
|
||||
{
|
||||
dsoSig->go_vDialNext(true);
|
||||
@@ -1194,11 +1194,10 @@ namespace pv
|
||||
}
|
||||
break;
|
||||
case Qt::Key_Down:
|
||||
for (auto &s : sigs)
|
||||
{
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
{
|
||||
for (auto s : sigs)
|
||||
{
|
||||
if (s->signal_type() == DSO_SIGNAL){
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
if (dsoSig->get_vDialActive())
|
||||
{
|
||||
dsoSig->go_vDialPre(true);
|
||||
|
||||
@@ -340,7 +340,7 @@ namespace pv
|
||||
_group_data->set_samplerate(_cur_snap_samplerate);
|
||||
|
||||
// DecoderStack
|
||||
for (auto &d : _decode_traces)
|
||||
for (auto d : _decode_traces)
|
||||
{
|
||||
d->decoder()->set_samplerate(_cur_snap_samplerate);
|
||||
}
|
||||
@@ -349,7 +349,7 @@ namespace pv
|
||||
if (_math_trace && _math_trace->enabled())
|
||||
_math_trace->get_math_stack()->set_samplerate(_device_agent.get_sample_rate());
|
||||
// SpectrumStack
|
||||
for (auto &m : _spectrum_traces)
|
||||
for (auto m : _spectrum_traces)
|
||||
m->get_spectrum_stack()->set_samplerate(_cur_snap_samplerate);
|
||||
|
||||
_callback->cur_snap_samplerate_changed();
|
||||
@@ -388,16 +388,14 @@ namespace pv
|
||||
container_init();
|
||||
|
||||
// update current hw offset
|
||||
for (auto &s : _signals)
|
||||
{
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
{
|
||||
for (auto s : _signals)
|
||||
{
|
||||
if (s->signal_type() == DSO_SIGNAL){
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
dsoSig->set_zero_ratio(dsoSig->get_zero_ratio());
|
||||
}
|
||||
view::AnalogSignal *analogSig = NULL;
|
||||
if ((analogSig = dynamic_cast<view::AnalogSignal *>(s)))
|
||||
{
|
||||
}
|
||||
else if (s->signal_type() == ANALOG_SIGNAL){
|
||||
view::AnalogSignal *analogSig = (view::AnalogSignal*)s;
|
||||
analogSig->set_zero_ratio(analogSig->get_zero_ratio());
|
||||
}
|
||||
}
|
||||
@@ -422,7 +420,7 @@ namespace pv
|
||||
_dso_data->init();
|
||||
|
||||
// SpectrumStack
|
||||
for (auto &m : _spectrum_traces)
|
||||
for (auto m : _spectrum_traces)
|
||||
{
|
||||
m->get_spectrum_stack()->init();
|
||||
}
|
||||
@@ -431,7 +429,7 @@ namespace pv
|
||||
_math_trace->get_math_stack()->init();
|
||||
|
||||
// DecoderStack
|
||||
for (auto &d : _decode_traces)
|
||||
for (auto d : _decode_traces)
|
||||
{
|
||||
d->decoder()->init();
|
||||
}
|
||||
@@ -493,11 +491,12 @@ namespace pv
|
||||
clear_all_decode_task(run_dex);
|
||||
|
||||
// reset measure of dso signal
|
||||
for (auto &s : _signals)
|
||||
{
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
for (auto s : _signals)
|
||||
{
|
||||
if (s->signal_type() == DSO_SIGNAL){
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
dsoSig->set_mValid(false);
|
||||
}
|
||||
}
|
||||
|
||||
if (_device_agent.have_enabled_channel() == false)
|
||||
@@ -619,7 +618,7 @@ namespace pv
|
||||
{
|
||||
std::set<data::SignalData *> data;
|
||||
|
||||
for (auto &s : _signals)
|
||||
for (auto s : _signals)
|
||||
{
|
||||
data.insert(s->data());
|
||||
}
|
||||
@@ -842,10 +841,12 @@ namespace pv
|
||||
while (i != _signals.end())
|
||||
{
|
||||
if ((*i)->get_index() == probe->index)
|
||||
{
|
||||
view::LogicSignal *logicSig = NULL;
|
||||
if ((logicSig = dynamic_cast<view::LogicSignal *>(*i)))
|
||||
{
|
||||
if ((*i)->signal_type() == LOGIC_SIGNAL){
|
||||
view::LogicSignal *logicSig = (view::LogicSignal*)(*i);
|
||||
signal = new view::LogicSignal(logicSig, _logic_data, probe);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
@@ -865,9 +866,10 @@ namespace pv
|
||||
{
|
||||
if ((*i)->get_index() == probe->index)
|
||||
{
|
||||
view::AnalogSignal *analogSig = NULL;
|
||||
if ((analogSig = dynamic_cast<view::AnalogSignal *>(*i)))
|
||||
if ((*i)->signal_type() == ANALOG_SIGNAL){
|
||||
view::AnalogSignal *analogSig = (view::AnalogSignal*)(*i);
|
||||
signal = new view::AnalogSignal(analogSig, _analog_data, probe);
|
||||
}
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
@@ -903,7 +905,7 @@ namespace pv
|
||||
{
|
||||
_logic_data->init();
|
||||
|
||||
for (auto &d : _decode_traces)
|
||||
for (auto d : _decode_traces)
|
||||
{
|
||||
d->decoder()->init();
|
||||
}
|
||||
@@ -913,7 +915,7 @@ namespace pv
|
||||
{
|
||||
_dso_data->init();
|
||||
// SpectrumStack
|
||||
for (auto &m : _spectrum_traces)
|
||||
for (auto m : _spectrum_traces)
|
||||
{
|
||||
m->get_spectrum_stack()->init();
|
||||
}
|
||||
@@ -1061,11 +1063,10 @@ namespace pv
|
||||
{
|
||||
std::map<int, bool> sig_enable;
|
||||
// reset scale of dso signal
|
||||
for (auto &s : _signals)
|
||||
{
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
{
|
||||
for (auto s : _signals)
|
||||
{
|
||||
if (s->signal_type() == DSO_SIGNAL){
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
dsoSig->set_scale(dsoSig->get_view_rect().height());
|
||||
sig_enable[dsoSig->get_index()] = dsoSig->enabled();
|
||||
}
|
||||
@@ -1080,11 +1081,12 @@ namespace pv
|
||||
_dso_data->snapshot()->append_payload(dso);
|
||||
}
|
||||
|
||||
for (auto &s : _signals)
|
||||
{
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)) && (dsoSig->enabled()))
|
||||
for (auto s : _signals)
|
||||
{
|
||||
if (s->signal_type() == DSO_SIGNAL && (s->enabled())){
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
dsoSig->paint_prepare();
|
||||
}
|
||||
}
|
||||
|
||||
if (dso.num_samples != 0)
|
||||
@@ -1101,7 +1103,7 @@ namespace pv
|
||||
}
|
||||
|
||||
// calculate related spectrum results
|
||||
for (auto &m : _spectrum_traces)
|
||||
for (auto m : _spectrum_traces)
|
||||
{
|
||||
if (m->enabled())
|
||||
m->get_spectrum_stack()->calc_fft();
|
||||
@@ -1139,11 +1141,10 @@ namespace pv
|
||||
if (_analog_data->snapshot()->last_ended())
|
||||
{
|
||||
// reset scale of analog signal
|
||||
for (auto &s : _signals)
|
||||
{
|
||||
view::AnalogSignal *analogSig = NULL;
|
||||
if ((analogSig = dynamic_cast<view::AnalogSignal *>(s)))
|
||||
{
|
||||
for (auto s : _signals)
|
||||
{
|
||||
if (s->signal_type() == ANALOG_SIGNAL){
|
||||
view::AnalogSignal *analogSig = (view::AnalogSignal*)s;
|
||||
analogSig->set_scale(analogSig->get_totalHeight());
|
||||
}
|
||||
}
|
||||
@@ -1232,7 +1233,7 @@ namespace pv
|
||||
{
|
||||
if (!_logic_data->snapshot()->empty())
|
||||
{
|
||||
for (auto &g : _group_traces)
|
||||
for (auto g : _group_traces)
|
||||
{
|
||||
auto p = new data::GroupSnapshot(_logic_data->get_snapshots().front(), g->get_index_list());
|
||||
_group_data->push_snapshot(p);
|
||||
@@ -1283,20 +1284,17 @@ namespace pv
|
||||
|
||||
if (_device_agent.have_instance())
|
||||
{
|
||||
for (auto &s : _signals)
|
||||
for (auto s : _signals)
|
||||
{
|
||||
if (dynamic_cast<view::LogicSignal *>(s) && s->enabled())
|
||||
{
|
||||
if (!s->enabled())
|
||||
continue;
|
||||
|
||||
if (s->signal_type() == LOGIC_SIGNAL)
|
||||
logic_ch_num++;
|
||||
}
|
||||
if (dynamic_cast<view::DsoSignal *>(s) && s->enabled())
|
||||
{
|
||||
else if (s->signal_type() == DSO_SIGNAL)
|
||||
dso_ch_num++;
|
||||
}
|
||||
if (dynamic_cast<view::AnalogSignal *>(s) && s->enabled())
|
||||
{
|
||||
else if (s->signal_type() == ANALOG_SIGNAL)
|
||||
analog_ch_num++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1362,7 +1360,7 @@ namespace pv
|
||||
sub_decoders.clear();
|
||||
|
||||
// set view early for decode start/end region setting
|
||||
for (auto &s : _signals)
|
||||
for (auto s : _signals)
|
||||
{
|
||||
if (s->get_view())
|
||||
{
|
||||
@@ -1478,25 +1476,23 @@ namespace pv
|
||||
{
|
||||
bool has_dso_signal = false;
|
||||
|
||||
for (auto &s : _signals)
|
||||
{
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
{
|
||||
for (auto s : _signals)
|
||||
{
|
||||
if (s->signal_type() == DSO_SIGNAL){
|
||||
has_dso_signal = true;
|
||||
// check already have
|
||||
auto iter = _spectrum_traces.begin();
|
||||
|
||||
for (unsigned int i = 0; i < _spectrum_traces.size(); i++, iter++){
|
||||
if ((*iter)->get_index() == dsoSig->get_index())
|
||||
if ((*iter)->get_index() == s->get_index())
|
||||
break;
|
||||
}
|
||||
|
||||
// if not, rebuild
|
||||
if (iter == _spectrum_traces.end())
|
||||
{
|
||||
auto spectrum_stack = new data::SpectrumStack(this, dsoSig->get_index());
|
||||
auto spectrum_trace = new view::SpectrumTrace(this, spectrum_stack, dsoSig->get_index());
|
||||
auto spectrum_stack = new data::SpectrumStack(this, s->get_index());
|
||||
auto spectrum_trace = new view::SpectrumTrace(this, spectrum_stack, s->get_index());
|
||||
_spectrum_traces.push_back(spectrum_trace);
|
||||
}
|
||||
}
|
||||
@@ -1598,11 +1594,11 @@ namespace pv
|
||||
|
||||
void SigSession::auto_end()
|
||||
{
|
||||
for (auto &s : _signals)
|
||||
{
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
for (auto s : _signals)
|
||||
{
|
||||
if (s->signal_type() == DSO_SIGNAL)
|
||||
{
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
dsoSig->auto_end();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -313,13 +313,13 @@ namespace pv
|
||||
}
|
||||
|
||||
void SamplingBar::zero_adj()
|
||||
{
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
|
||||
for (auto &s : _session->get_signals())
|
||||
{
|
||||
for (auto s : _session->get_signals())
|
||||
{
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
if (s->signal_type() == DSO_SIGNAL){
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
dsoSig->set_enable(true);
|
||||
}
|
||||
}
|
||||
|
||||
const int index_back = _sample_count.currentIndex();
|
||||
@@ -338,10 +338,12 @@ namespace pv
|
||||
pv::dialogs::WaitingDialog wait(this, _session, SR_CONF_ZERO);
|
||||
if (wait.start() == QDialog::Rejected)
|
||||
{
|
||||
for (auto &s : _session->get_signals())
|
||||
for (auto s : _session->get_signals())
|
||||
{
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
if (s->signal_type() == DSO_SIGNAL){
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
dsoSig->commit_settings();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -56,6 +56,8 @@ AnalogSignal::AnalogSignal(data::Analog *data, sr_channel *probe) :
|
||||
_typeWidth = 5;
|
||||
_colour = SignalColours[probe->index % countof(SignalColours)];
|
||||
|
||||
_signal_type = ANALOG_SIGNAL;
|
||||
|
||||
GVariant *gvar;
|
||||
// channel bits
|
||||
gvar = session->get_device()->get_config(NULL, NULL, SR_CONF_UNIT_BITS);
|
||||
|
||||
@@ -383,14 +383,12 @@ void DecodeTrace::draw_annotation(const pv::data::decode::Annotation &a,
|
||||
int type = dec->get_channel_type(iter.first);
|
||||
if ((type == SRD_CHANNEL_COMMON) ||
|
||||
((type%100 != a.type()%100) && (type%100 != 0)))
|
||||
continue;
|
||||
|
||||
LogicSignal *logic_sig = NULL;
|
||||
continue;
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
if((s->get_index() == iter.second) &&
|
||||
(logic_sig = dynamic_cast<view::LogicSignal*>(s))) {
|
||||
logic_sig->paint_mark(p, start, end, type/100);
|
||||
if((s->get_index() == iter.second) && s->signal_type() == LOGIC_SIGNAL) {
|
||||
view::LogicSignal *logicSig = (view::LogicSignal*)s;
|
||||
logicSig->paint_mark(p, start, end, type/100);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,6 +79,8 @@ DsoSignal::DsoSignal(data::Dso *data,
|
||||
vUnit.append(vDialUnit[i]);
|
||||
}
|
||||
|
||||
_signal_type = DSO_SIGNAL;
|
||||
|
||||
GVariant *gvar_list, *gvar_list_vdivs;
|
||||
|
||||
gvar_list = session->get_device()->get_config_list(NULL, SR_CONF_PROBE_VDIV);
|
||||
|
||||
@@ -325,7 +325,7 @@ void Header::wheelEvent(QWheelEvent *event)
|
||||
shift = delta / 80.0;
|
||||
#endif
|
||||
|
||||
for (auto &t : traces)
|
||||
for (auto t : traces)
|
||||
{
|
||||
if (t->mouse_wheel(width(), pos, shift))
|
||||
break;
|
||||
@@ -367,26 +367,26 @@ void Header::mouseMoveEvent(QMouseEvent *event)
|
||||
const int delta = event->pos().y() - _mouse_down_point.y();
|
||||
|
||||
for (auto i = _drag_traces.begin(); i != _drag_traces.end(); i++) {
|
||||
const auto sig = (*i).first;
|
||||
if (sig) {
|
||||
const auto t = (*i).first;
|
||||
if (t) {
|
||||
int y = (*i).second + delta;
|
||||
if (sig->get_type() == SR_CHANNEL_DSO) {
|
||||
if (t->get_type() == SR_CHANNEL_DSO) {
|
||||
DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<DsoSignal*>(sig))) {
|
||||
if ((dsoSig = dynamic_cast<DsoSignal*>(t))) {
|
||||
dsoSig->set_zero_vpos(y);
|
||||
_moveFlag = true;
|
||||
traces_moved();
|
||||
}
|
||||
} else if (sig->get_type() == SR_CHANNEL_MATH) {
|
||||
} else if (t->get_type() == SR_CHANNEL_MATH) {
|
||||
MathTrace *mathTrace = NULL;
|
||||
if ((mathTrace = dynamic_cast<MathTrace*>(sig))) {
|
||||
if ((mathTrace = dynamic_cast<MathTrace*>(t))) {
|
||||
mathTrace->set_zero_vpos(y);
|
||||
_moveFlag = true;
|
||||
traces_moved();
|
||||
}
|
||||
} else if (sig->get_type() == SR_CHANNEL_ANALOG) {
|
||||
} else if (t->get_type() == SR_CHANNEL_ANALOG) {
|
||||
AnalogSignal *analogSig = NULL;
|
||||
if ((analogSig = dynamic_cast<AnalogSignal*>(sig))) {
|
||||
if ((analogSig = dynamic_cast<AnalogSignal*>(t))) {
|
||||
analogSig->set_zero_vpos(y);
|
||||
_moveFlag = true;
|
||||
traces_moved();
|
||||
@@ -397,9 +397,9 @@ void Header::mouseMoveEvent(QMouseEvent *event)
|
||||
((y + View::SignalSnapGridSize / 2) /
|
||||
View::SignalSnapGridSize) *
|
||||
View::SignalSnapGridSize;
|
||||
if (y_snap != sig->get_v_offset()) {
|
||||
if (y_snap != t->get_v_offset()) {
|
||||
_moveFlag = true;
|
||||
sig->set_v_offset(y_snap);
|
||||
t->set_v_offset(y_snap);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@ LogicSignal::LogicSignal(data::Logic *data,
|
||||
_data(data)
|
||||
{
|
||||
_trig = NONTRIG;
|
||||
_signal_type = LOGIC_SIGNAL;
|
||||
}
|
||||
|
||||
LogicSignal::LogicSignal(view::LogicSignal *s,
|
||||
|
||||
@@ -33,7 +33,8 @@ namespace view {
|
||||
|
||||
Signal::Signal(sr_channel *probe) :
|
||||
Trace(probe->name, probe->index, probe->type),
|
||||
_probe(probe)
|
||||
_probe(probe),
|
||||
_signal_type(UNKNOWN_SIGNAL)
|
||||
{
|
||||
session = AppControl::Instance()->GetSession();
|
||||
}
|
||||
|
||||
@@ -37,6 +37,14 @@
|
||||
#include <libsigrok.h>
|
||||
#include "trace.h"
|
||||
|
||||
enum SIGNAL_TYPE
|
||||
{
|
||||
UNKNOWN_SIGNAL = 0,
|
||||
LOGIC_SIGNAL = 1,
|
||||
DSO_SIGNAL = 2,
|
||||
ANALOG_SIGNAL = 3,
|
||||
};
|
||||
|
||||
namespace pv {
|
||||
|
||||
namespace data {
|
||||
@@ -76,11 +84,14 @@ public:
|
||||
*/
|
||||
void set_name(QString name);
|
||||
|
||||
|
||||
inline SIGNAL_TYPE signal_type(){
|
||||
return _signal_type;
|
||||
}
|
||||
|
||||
protected:
|
||||
sr_channel *const _probe;
|
||||
SigSession *session;
|
||||
SigSession *session;
|
||||
SIGNAL_TYPE _signal_type;
|
||||
};
|
||||
|
||||
} // namespace view
|
||||
|
||||
@@ -82,8 +82,9 @@ SpectrumTrace::SpectrumTrace(pv::SigSession *session,
|
||||
_typeWidth = 0;
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
if (dynamic_cast<DsoSignal*>(s) && index == s->get_index())
|
||||
if (s->signal_type() == DSO_SIGNAL && index == s->get_index()){
|
||||
_colour = s->get_colour();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -304,8 +305,8 @@ void SpectrumTrace::paint_mid(QPainter &p, int left, int right, QColor fore, QCo
|
||||
double vfactor = 0;
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<DsoSignal*>(s))) {
|
||||
if (s->signal_type() == DSO_SIGNAL) {
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
if(dsoSig->get_index() == _spectrum_stack->get_index()) {
|
||||
vdiv = dsoSig->get_vDialValue();
|
||||
vfactor = dsoSig->get_factor();
|
||||
|
||||
@@ -722,8 +722,7 @@ void View::signals_changed()
|
||||
|
||||
if (!time_traces.empty() && _time_viewport) {
|
||||
for(auto t : time_traces) {
|
||||
if (dynamic_cast<DsoSignal*>(t) ||
|
||||
t->enabled())
|
||||
if (dynamic_cast<DsoSignal*>(t) || t->enabled())
|
||||
total_rows += t->rows_size();
|
||||
if (t->rows_size() != 0)
|
||||
label_size++;
|
||||
|
||||
@@ -513,11 +513,9 @@ void Viewport::mousePressEvent(QMouseEvent *event)
|
||||
_view.session().get_device()->get_work_mode() == DSO) {
|
||||
|
||||
for(auto s : _view.session().get_signals())
|
||||
{
|
||||
if (!s->enabled())
|
||||
continue;
|
||||
DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<DsoSignal*>(s))) {
|
||||
{
|
||||
if (s->signal_type() == DSO_SIGNAL && s->enabled()) {
|
||||
DsoSignal *dsoSig = (DsoSignal*)s;
|
||||
if (dsoSig->get_trig_rect(0, _view.get_view_width()).contains(_mouse_point)) {
|
||||
_drag_sig = s;
|
||||
_action_type = DSO_TRIG_MOVE;
|
||||
@@ -565,15 +563,16 @@ void Viewport::mousePressEvent(QMouseEvent *event)
|
||||
if (_view.get_xcursorList().empty())
|
||||
_view.show_xcursors(false);
|
||||
break;
|
||||
} else if ((*i)->get_map_rect(xrect).contains(_view.hover_point())) {
|
||||
}
|
||||
else if ((*i)->get_map_rect(xrect).contains(_view.hover_point())) {
|
||||
auto &sigs = _view.session().get_signals();
|
||||
auto s = sigs.begin();
|
||||
bool sig_looped = ((*i)->channel() == NULL);
|
||||
bool no_dsoSig = true;
|
||||
while (1) {
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal*>(*s)) &&
|
||||
dsoSig->enabled()) {
|
||||
|
||||
while (true) {
|
||||
if ((*s)->signal_type() == DSO_SIGNAL && (*s)->enabled()) {
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)(*s);
|
||||
no_dsoSig = false;
|
||||
if (sig_looped) {
|
||||
(*i)->set_channel(dsoSig);
|
||||
@@ -620,6 +619,7 @@ void Viewport::mouseMoveEvent(QMouseEvent *event)
|
||||
{
|
||||
assert(event);
|
||||
_hover_hit = false;
|
||||
int mode = _view.session().get_device()->get_work_mode();
|
||||
|
||||
if (event->buttons() & Qt::LeftButton) {
|
||||
if (_type == TIME_VIEW) {
|
||||
@@ -644,12 +644,10 @@ void Viewport::mouseMoveEvent(QMouseEvent *event)
|
||||
if ((event->buttons() & Qt::LeftButton) ||
|
||||
!(event->buttons() | Qt::NoButton)) {
|
||||
if (_action_type == DSO_TRIG_MOVE) {
|
||||
if (_drag_sig) {
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal*>(_drag_sig))) {
|
||||
dsoSig->set_trig_vpos(event->pos().y());
|
||||
_dso_trig_moved = true;
|
||||
}
|
||||
if (_drag_sig && _drag_sig->signal_type() == DSO_SIGNAL) {
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)_drag_sig;
|
||||
dsoSig->set_trig_vpos(event->pos().y());
|
||||
_dso_trig_moved = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -660,18 +658,16 @@ void Viewport::mouseMoveEvent(QMouseEvent *event)
|
||||
uint64_t index0 = 0, index1 = 0, index2 = 0;
|
||||
bool logic = false;
|
||||
|
||||
for(auto s : _view.session().get_signals()) {
|
||||
view::LogicSignal *logicSig = NULL;
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((_view.session().get_device()->get_work_mode() == LOGIC) &&
|
||||
(logicSig = dynamic_cast<view::LogicSignal*>(s))) {
|
||||
for(auto s : _view.session().get_signals()) {
|
||||
if (mode == LOGIC && s->signal_type() == LOGIC_SIGNAL) {
|
||||
view::LogicSignal *logicSig = (view::LogicSignal*)s;
|
||||
if (logicSig->measure(event->pos(), index0, index1, index2)) {
|
||||
logic = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ((_view.session().get_device()->get_work_mode() == DSO) &&
|
||||
(dsoSig = dynamic_cast<view::DsoSignal*>(s))) {
|
||||
if (mode == DSO && s->signal_type() == DSO_SIGNAL) {
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
curX = min(dsoSig->get_view_rect().right(), curX);
|
||||
break;
|
||||
}
|
||||
@@ -794,9 +790,9 @@ void Viewport::mouseReleaseEvent(QMouseEvent *event)
|
||||
if (_mouse_down_point.x() == event->pos().x()) {
|
||||
const auto &sigs = _view.session().get_signals();
|
||||
|
||||
for(auto s : sigs) {
|
||||
view::LogicSignal *logicSig = NULL;
|
||||
if ((logicSig = dynamic_cast<view::LogicSignal*>(s))) {
|
||||
for(auto s : sigs) {
|
||||
if (s->signal_type() == LOGIC_SIGNAL) {
|
||||
view::LogicSignal *logicSig = (view::LogicSignal*)s;
|
||||
if (logicSig->edge(event->pos(), _edge_start, 10)) {
|
||||
_action_type = LOGIC_JUMP;
|
||||
_cur_preX = _view.index2pixel(_edge_start);
|
||||
@@ -960,8 +956,9 @@ void Viewport::mouseDoubleClickEvent(QMouseEvent *event)
|
||||
if (!_view.get_view_rect().contains(event->pos()))
|
||||
return;
|
||||
|
||||
if (_view.session().get_device()->get_work_mode() == LOGIC
|
||||
&& _view.session().is_stopped_status())
|
||||
int mode = _view.session().get_device()->get_work_mode();
|
||||
|
||||
if (mode == LOGIC && _view.session().is_stopped_status())
|
||||
{
|
||||
if (event->button() == Qt::RightButton) {
|
||||
if (_view.scale() == _view.get_maxscale())
|
||||
@@ -973,10 +970,11 @@ void Viewport::mouseDoubleClickEvent(QMouseEvent *event)
|
||||
bool logic = false;
|
||||
uint64_t index;
|
||||
uint64_t index0 = 0, index1 = 0, index2 = 0;
|
||||
if (_view.session().get_device()->get_work_mode() == LOGIC) {
|
||||
|
||||
if (mode == LOGIC) {
|
||||
for(auto s : _view.session().get_signals()) {
|
||||
view::LogicSignal *logicSig = NULL;
|
||||
if ((logicSig = dynamic_cast<view::LogicSignal*>(s))) {
|
||||
if (s->signal_type() == LOGIC_SIGNAL) {
|
||||
view::LogicSignal *logicSig = (view::LogicSignal*)s;
|
||||
if (logicSig->measure(event->pos(), index0, index1, index2)) {
|
||||
logic = true;
|
||||
break;
|
||||
@@ -987,14 +985,17 @@ void Viewport::mouseDoubleClickEvent(QMouseEvent *event)
|
||||
const double curX = event->pos().x();
|
||||
const double curP = _view.index2pixel(index0);
|
||||
const double curN = _view.index2pixel(index1);
|
||||
|
||||
if (logic && (curX - curP < SnapMinSpace || curN - curX < SnapMinSpace)) {
|
||||
if (curX - curP < curN - curX)
|
||||
index = index0;
|
||||
else
|
||||
index = index1;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
index = _view.pixel2index(curX);
|
||||
}
|
||||
|
||||
_view.add_cursor(view::Ruler::CursorColor[_view.get_cursorList().size() % 8], index);
|
||||
_view.show_cursors(true);
|
||||
}
|
||||
@@ -1057,7 +1058,7 @@ void Viewport::wheelEvent(QWheelEvent *event)
|
||||
|
||||
if (_type == FFT_VIEW)
|
||||
{
|
||||
for (auto &t : _view.session().get_spectrum_traces())
|
||||
for (auto t : _view.session().get_spectrum_traces())
|
||||
{
|
||||
if (t->enabled())
|
||||
{
|
||||
@@ -1105,11 +1106,10 @@ void Viewport::wheelEvent(QWheelEvent *event)
|
||||
}
|
||||
|
||||
const auto &sigs = _view.session().get_signals();
|
||||
for (auto &s : sigs)
|
||||
{
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal *>(s)))
|
||||
{
|
||||
for (auto s : sigs)
|
||||
{
|
||||
if (s->signal_type() == DSO_SIGNAL){
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
dsoSig->auto_end();
|
||||
}
|
||||
}
|
||||
@@ -1217,11 +1217,8 @@ void Viewport::measure()
|
||||
const uint64_t sample_rate = _view.session().cur_snap_samplerate();
|
||||
|
||||
for(auto s : _view.session().get_signals()) {
|
||||
view::LogicSignal *logicSig = NULL;
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
view::AnalogSignal *analogSig = NULL;
|
||||
|
||||
if ((logicSig = dynamic_cast<view::LogicSignal*>(s))) {
|
||||
if (s->signal_type() == LOGIC_SIGNAL) {
|
||||
view::LogicSignal *logicSig = (view::LogicSignal*)s;
|
||||
if (_action_type == NO_ACTION) {
|
||||
if (logicSig->measure(_mouse_point, _cur_sample, _nxt_sample, _thd_sample)) {
|
||||
_measure_type = LOGIC_FREQ;
|
||||
@@ -1271,16 +1268,21 @@ void Viewport::measure()
|
||||
_edge_hit = false;
|
||||
}
|
||||
}
|
||||
} else if ((dsoSig = dynamic_cast<view::DsoSignal*>(s))) {
|
||||
if (dsoSig->enabled()) {
|
||||
}
|
||||
else if (s->signal_type() == DSO_SIGNAL) {
|
||||
view::DsoSignal *dsoSig = ( view::DsoSignal*)s;
|
||||
if (s->enabled()) {
|
||||
if (_measure_en && dsoSig->measure(_view.hover_point())) {
|
||||
_measure_type = DSO_VALUE;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
_measure_type = NO_MEASURE;
|
||||
}
|
||||
}
|
||||
} else if ((analogSig = dynamic_cast<view::AnalogSignal*>(s))) {
|
||||
if (analogSig->enabled()) {
|
||||
}
|
||||
else if (s->signal_type() == ANALOG_SIGNAL) {
|
||||
view::AnalogSignal *analogSig = (view::AnalogSignal*)s;
|
||||
if (s->enabled()) {
|
||||
if (_measure_en && analogSig->measure(_view.hover_point())) {
|
||||
_measure_type = DSO_VALUE;
|
||||
} else {
|
||||
@@ -1373,12 +1375,10 @@ void Viewport::paintMeasure(QPainter &p, QColor fore, QColor back)
|
||||
_measure_type == DSO_VALUE) {
|
||||
|
||||
for(auto s : _view.session().get_signals()) {
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
view::AnalogSignal* analogSig = NULL;
|
||||
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal*>(s))) {
|
||||
if (s->signal_type() == DSO_SIGNAL) {
|
||||
uint64_t index;
|
||||
double value;
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
QPointF hpoint;
|
||||
if (dsoSig->get_hover(index, hpoint, value)) {
|
||||
p.setPen(QPen(fore, 1, Qt::DashLine));
|
||||
@@ -1386,10 +1386,12 @@ void Viewport::paintMeasure(QPainter &p, QColor fore, QColor back)
|
||||
p.drawLine(hpoint.x(), dsoSig->get_view_rect().top(),
|
||||
hpoint.x(), dsoSig->get_view_rect().bottom());
|
||||
}
|
||||
} else if ((analogSig = dynamic_cast<view::AnalogSignal*>(s))) {
|
||||
}
|
||||
else if (s->signal_type() == ANALOG_SIGNAL) {
|
||||
uint64_t index;
|
||||
double value;
|
||||
QPointF hpoint;
|
||||
view::AnalogSignal* analogSig = (view::AnalogSignal*)s;
|
||||
if (analogSig->get_hover(index, hpoint, value)) {
|
||||
p.setPen(QPen(fore, 1, Qt::DashLine));
|
||||
p.setBrush(Qt::NoBrush);
|
||||
@@ -1401,9 +1403,9 @@ void Viewport::paintMeasure(QPainter &p, QColor fore, QColor back)
|
||||
}
|
||||
|
||||
if (_dso_ym_valid) {
|
||||
for(auto s : _view.session().get_signals()) {
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<view::DsoSignal*>(s))) {
|
||||
for(auto s : _view.session().get_signals()) {
|
||||
if (s->signal_type() == DSO_SIGNAL) {
|
||||
view::DsoSignal *dsoSig = (view::DsoSignal*)s;
|
||||
if (dsoSig->get_index() == _dso_ym_sig_index) {
|
||||
p.setPen(QPen(dsoSig->get_colour(), 1, Qt::DotLine));
|
||||
const int text_height = p.boundingRect(0, 0, INT_MAX, INT_MAX,
|
||||
|
||||
@@ -86,9 +86,8 @@ void ViewStatus::paintEvent(QPaintEvent *)
|
||||
view::DsoSignal *dsoSig = NULL;
|
||||
|
||||
for(auto s : _session->get_signals()) {
|
||||
if (!s->enabled())
|
||||
continue;
|
||||
if ((dsoSig = dynamic_cast<DsoSignal*>(s))) {
|
||||
if (s->signal_type() == DSO_SIGNAL && s->enabled()) {
|
||||
dsoSig = (view::DsoSignal*)s;
|
||||
if (sig_index == dsoSig->get_index())
|
||||
break;
|
||||
else
|
||||
|
||||
@@ -44,13 +44,14 @@ XCursor::XCursor(View &view, QColor &colour,
|
||||
{
|
||||
_dsoSig = NULL;
|
||||
|
||||
for(auto s : _view.session().get_signals()) {
|
||||
DsoSignal *dsoSig = NULL;
|
||||
if ((dsoSig = dynamic_cast<DsoSignal*>(s)))
|
||||
for(auto s : _view.session().get_signals()) {
|
||||
if (s->signal_type() == DSO_SIGNAL){
|
||||
DsoSignal *dsoSig = (DsoSignal*)s;
|
||||
if (dsoSig->enabled()) {
|
||||
_dsoSig = dsoSig;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user