From 57ae013256754b0a4a2a3e7f5e4f0c59526a8bb4 Mon Sep 17 00:00:00 2001 From: dreamsourcelabTAI Date: Wed, 2 Nov 2022 17:37:17 +0800 Subject: [PATCH] Update the code style --- DSView/pv/data/analog.cpp | 6 +- DSView/pv/data/analogsnapshot.cpp | 18 ---- DSView/pv/data/decode/decoder.cpp | 13 ++- DSView/pv/data/decoderstack.cpp | 38 ++++--- DSView/pv/data/dso.cpp | 6 +- DSView/pv/data/dsosnapshot.cpp | 1 - DSView/pv/data/group.cpp | 6 +- DSView/pv/data/groupsnapshot.cpp | 4 +- DSView/pv/data/logic.cpp | 6 +- DSView/pv/data/logicsnapshot.cpp | 34 +++--- DSView/pv/data/spectrumstack.cpp | 2 +- DSView/pv/dialogs/decoderoptionsdlg.cpp | 32 +++--- DSView/pv/dialogs/deviceoptions.cpp | 17 +-- DSView/pv/dialogs/dsomeasure.cpp | 6 +- DSView/pv/dialogs/fftoptions.cpp | 8 +- DSView/pv/dialogs/lissajousoptions.cpp | 4 +- DSView/pv/dialogs/mathoptions.cpp | 4 +- DSView/pv/dialogs/protocollist.cpp | 6 +- DSView/pv/dialogs/search.cpp | 10 +- DSView/pv/dialogs/storeprogress.cpp | 18 +++- DSView/pv/dialogs/storeprogress.h | 1 + DSView/pv/dialogs/waitingdialog.cpp | 3 +- DSView/pv/dock/dsotriggerdock.cpp | 2 +- DSView/pv/dock/measuredock.cpp | 15 +-- DSView/pv/dock/protocoldock.cpp | 38 ++++--- DSView/pv/dock/triggerdock.cpp | 7 +- DSView/pv/dstimer.cpp | 6 +- DSView/pv/mainwindow.h | 2 - DSView/pv/prop/binding/binding.cpp | 10 +- DSView/pv/sigsession.cpp | 105 +++++++++--------- DSView/pv/sigsession.h | 54 ++++++---- DSView/pv/storesession.cpp | 37 +++---- DSView/pv/toolbars/samplingbar.cpp | 23 ++-- DSView/pv/toolbars/samplingbar.h | 1 + DSView/pv/ui/langresource.cpp | 2 +- DSView/pv/view/decodetrace.cpp | 32 +++--- DSView/pv/view/devmode.cpp | 2 +- DSView/pv/view/header.cpp | 24 +++-- DSView/pv/view/spectrumtrace.cpp | 8 +- DSView/pv/view/view.cpp | 68 ++++++------ DSView/pv/view/viewport.cpp | 108 ++++++++----------- DSView/pv/view/viewport.h | 138 +++++++++++------------- DSView/pv/view/viewstatus.cpp | 4 +- DSView/pv/view/xcursor.cpp | 3 +- DSView/pv/widgets/decodergroupbox.cpp | 13 +-- lang/cn/dlg.json | 10 +- lang/cn/toolbar.json | 4 + lang/en/dlg.json | 6 +- lang/en/toolbar.json | 4 + 49 files changed, 453 insertions(+), 516 deletions(-) diff --git a/DSView/pv/data/analog.cpp b/DSView/pv/data/analog.cpp index 16339621..d35cd1f3 100644 --- a/DSView/pv/data/analog.cpp +++ b/DSView/pv/data/analog.cpp @@ -50,14 +50,16 @@ std::deque& Analog::get_snapshots() void Analog::clear() { //_snapshots.clear(); - for(auto &s : _snapshots) + for(auto s : _snapshots){ s->clear(); + } } void Analog::init() { //_snapshots.clear(); - for(auto &s : _snapshots) + for(auto s : _snapshots){ s->init(); + } } AnalogSnapshot* Analog::snapshot() diff --git a/DSView/pv/data/analogsnapshot.cpp b/DSView/pv/data/analogsnapshot.cpp index c2aa4ba5..1a456ba2 100644 --- a/DSView/pv/data/analogsnapshot.cpp +++ b/DSView/pv/data/analogsnapshot.cpp @@ -106,9 +106,6 @@ void AnalogSnapshot::first_payload(const sr_datafeed_analog &analog, uint64_t to sr_channel *const probe = (sr_channel*)l->data; assert(probe); // TODO: data of disabled channels should not be captured. -// if (probe->type == SR_CHANNEL_ANALOG && probe->enabled) { -// _channel_num ++; -// } if (probe->type == SR_CHANNEL_ANALOG) { _channel_num ++; } @@ -124,8 +121,6 @@ void AnalogSnapshot::first_payload(const sr_datafeed_analog &analog, uint64_t to for (unsigned int i = 0; i < _channel_num; i++) { uint64_t envelop_count = _total_sample_count / EnvelopeScaleFactor; for (unsigned int level = 0; level < ScaleStepCount; level++) { -// envelop_count = ((envelop_count + EnvelopeDataUnit - 1) / -// EnvelopeDataUnit) * EnvelopeDataUnit; _envelope_levels[i][level].count = envelop_count; if (envelop_count == 0) break; @@ -149,7 +144,6 @@ void AnalogSnapshot::first_payload(const sr_datafeed_analog &analog, uint64_t to sr_channel *const probe = (sr_channel*)l->data; assert(probe); // TODO: data of disabled channels should not be captured. - //if (probe->type == SR_CHANNEL_ANALOG && probe->enabled) { if (probe->type == SR_CHANNEL_ANALOG) { _ch_index.push_back(probe->index); } @@ -220,10 +214,6 @@ const uint8_t* AnalogSnapshot::get_samples(int64_t start_sample) assert(start_sample >= 0); assert(start_sample < (int64_t)get_sample_count()); -// uint16_t *const data = new uint16_t[end_sample - start_sample]; -// memcpy(data, (uint16_t*)_data + start_sample, sizeof(uint16_t) * -// (end_sample - start_sample)); -// return data; return (uint8_t*)_data + start_sample * _unit_bytes * _channel_num; } @@ -242,9 +232,6 @@ void AnalogSnapshot::get_envelope_section(EnvelopeSection &s, s.scale = (1 << scale_power); s.length = (count >> scale_power); s.samples_num = _envelope_levels[probe_index][min_level].length; -// s.samples = new EnvelopeSample[s.length]; -// memcpy(s.samples, _envelope_levels[min_level].samples + start, -// s.length * sizeof(EnvelopeSample)); s.samples = _envelope_levels[probe_index][min_level].samples; } @@ -255,8 +242,6 @@ void AnalogSnapshot::reallocate_envelope(Envelope &e) if (new_data_length > e.data_length) { e.data_length = new_data_length; -// e.samples = (EnvelopeSample*)realloc(e.samples, -// new_data_length * sizeof(EnvelopeSample)); } } @@ -273,9 +258,6 @@ void AnalogSnapshot::append_payload_to_envelope_levels() prev_length = e0.ring_length; e0.ring_length = _ring_sample_count / EnvelopeScaleFactor; -// // Break off if there are no new samples to compute -// if (e0.ring_length == prev_length) -// continue; if (e0.length == 0) continue; diff --git a/DSView/pv/data/decode/decoder.cpp b/DSView/pv/data/decode/decoder.cpp index 5692ea18..c51d9cf3 100644 --- a/DSView/pv/data/decode/decoder.cpp +++ b/DSView/pv/data/decode/decoder.cpp @@ -42,10 +42,10 @@ Decoder::Decoder(const srd_decoder *const dec): Decoder::~Decoder() { - for (auto i = _options_back.begin(); - i != _options_back.end(); i++) + for (auto i = _options_back.begin(); i != _options_back.end(); i++){ if ((*i).second) g_variant_unref((*i).second); + } } void Decoder::set_probes(std::map probes) @@ -107,8 +107,7 @@ srd_decoder_inst* Decoder::create_decoder_inst(srd_session *session) GHashTable *const opt_hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify)g_variant_unref); - for (auto i = _options.begin(); - i != _options.end(); i++) + for (auto i = _options.begin(); i != _options.end(); i++) { GVariant *const value = (*i).second; g_variant_ref(value); @@ -127,11 +126,11 @@ srd_decoder_inst* Decoder::create_decoder_inst(srd_session *session) GHashTable *const probes = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify)g_variant_unref); - for(auto i = _probes.begin(); i != _probes.end(); i++) + for(auto it = _probes.begin(); it != _probes.end(); it++) { - GVariant *const gvar = g_variant_new_int32((*i).second); + GVariant *const gvar = g_variant_new_int32((*it).second); g_variant_ref_sink(gvar); - g_hash_table_insert(probes, (*i).first->id, gvar); + g_hash_table_insert(probes, (*it).first->id, gvar); } srd_inst_channel_set_all(decoder_inst, probes); diff --git a/DSView/pv/data/decoderstack.cpp b/DSView/pv/data/decoderstack.cpp index 76a90d7d..3c0f0035 100644 --- a/DSView/pv/data/decoderstack.cpp +++ b/DSView/pv/data/decoderstack.cpp @@ -308,12 +308,13 @@ uint64_t DecoderStack::list_annotation_size() { std::lock_guard lock(_output_mutex); uint64_t max_annotation_size = 0; - for (auto i = _rows.begin(); - i != _rows.end(); i++) { - auto iter = _rows_lshow.find((*i).first); - if (iter != _rows_lshow.end() && (*iter).second) + + for (auto it = _rows.begin(); it != _rows.end(); it++) { + auto iter = _rows_lshow.find((*it).first); + if (iter != _rows_lshow.end() && (*iter).second){ max_annotation_size = max(max_annotation_size, - (*i).second->get_annotation_size()); + (*it).second->get_annotation_size()); + } } return max_annotation_size; @@ -321,8 +322,7 @@ uint64_t DecoderStack::list_annotation_size() uint64_t DecoderStack::list_annotation_size(uint16_t row_index) { - for (auto i = _rows.begin(); - i != _rows.end(); i++) { + for (auto i = _rows.begin(); i != _rows.end(); i++) { auto iter = _rows_lshow.find((*i).first); if (iter != _rows_lshow.end() && (*iter).second) if (row_index-- == 0) { @@ -335,8 +335,7 @@ uint64_t DecoderStack::list_annotation_size(uint16_t row_index) bool DecoderStack::list_annotation(pv::data::decode::Annotation &ann, uint16_t row_index, uint64_t col_index) { - for (auto i = _rows.begin(); - i != _rows.end(); i++) { + for (auto i = _rows.begin(); i != _rows.end(); i++) { auto iter = _rows_lshow.find((*i).first); if (iter != _rows_lshow.end() && (*iter).second) { if (row_index-- == 0) { @@ -351,8 +350,7 @@ bool DecoderStack::list_annotation(pv::data::decode::Annotation &ann, bool DecoderStack::list_row_title(int row, QString &title) { - for (auto i = _rows.begin(); - i != _rows.end(); i++) { + for (auto i = _rows.begin();i != _rows.end(); i++) { auto iter = _rows_lshow.find((*i).first); if (iter != _rows_lshow.end() && (*iter).second) { if (row-- == 0) { @@ -376,8 +374,7 @@ void DecoderStack::init() _error_message = QString(); _no_memory = false; - for (auto i = _rows.begin(); - i != _rows.end(); i++) { + for (auto i = _rows.begin();i != _rows.end(); i++) { (*i).second->clear(); } @@ -426,21 +423,22 @@ void DecoderStack::do_decode_work() init(); // Check that all decoders have the required channels - for(auto &dec : _stack) + for(auto dec : _stack){ if (!dec->have_required_probes()) { _error_message = L_S(STR_PAGE_MSG, S_ID(IDS_MSG_DECODERSTACK_DECODE_WORK_ERROR), "One or more required channels \nhave not been specified"); return; } + } // We get the logic data of the first channel in the list. // This works because we are currently assuming all // LogicSignals have the same data/snapshot - for (auto &dec : _stack) { - if (dec && !dec->channels().empty()) { - for(auto &sig : _session->get_signals()) { - if((sig->get_index() == (*dec->channels().begin()).second) && - (logic_signal = dynamic_cast(sig)) && + 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(s)) && (data = logic_signal->logic_data())) break; } @@ -614,7 +612,7 @@ void DecoderStack::execute_decode_stack() dsv_info("%s%llu", "decoder sample count: ", _sample_count); // Create the decoders - for(auto &dec : _stack) + for(auto dec : _stack) { srd_decoder_inst *const di = dec->create_decoder_inst(session); diff --git a/DSView/pv/data/dso.cpp b/DSView/pv/data/dso.cpp index ea05f5b7..6da30b78 100644 --- a/DSView/pv/data/dso.cpp +++ b/DSView/pv/data/dso.cpp @@ -49,15 +49,17 @@ std::deque& Dso::get_snapshots() void Dso::clear() { //_snapshots.clear(); - for(auto &s : _snapshots) + for(auto s : _snapshots){ s->clear(); + } } void Dso::init() { //_snapshots.clear(); - for(auto &s : _snapshots) + for(auto s : _snapshots){ s->init(); + } } DsoSnapshot* Dso::snapshot() diff --git a/DSView/pv/data/dsosnapshot.cpp b/DSView/pv/data/dsosnapshot.cpp index 12288ffa..5cb535be 100644 --- a/DSView/pv/data/dsosnapshot.cpp +++ b/DSView/pv/data/dsosnapshot.cpp @@ -387,7 +387,6 @@ double DsoSnapshot::cal_vrms(double zero_off, int index) double DsoSnapshot::cal_vmean(int index) { assert(index >= 0); - //assert(index < _channel_num); // mean value double vmean_pre = 0; diff --git a/DSView/pv/data/group.cpp b/DSView/pv/data/group.cpp index 04f699a1..8094343e 100644 --- a/DSView/pv/data/group.cpp +++ b/DSView/pv/data/group.cpp @@ -45,14 +45,16 @@ std::deque& Group::get_snapshots() void Group::clear() { - for(auto &s : _snapshots) + for(auto s : _snapshots){ s->clear(); + } } void Group::init() { - for(auto &s : _snapshots) + for(auto s : _snapshots){ s->init(); + } } } // namespace data diff --git a/DSView/pv/data/groupsnapshot.cpp b/DSView/pv/data/groupsnapshot.cpp index 13b56fb4..46896f3d 100644 --- a/DSView/pv/data/groupsnapshot.cpp +++ b/DSView/pv/data/groupsnapshot.cpp @@ -93,8 +93,9 @@ GroupSnapshot::GroupSnapshot(const LogicSnapshot *_logic_snapshot, std::list 0); - const unsigned int min_level = max((int)floorf(logf(min_length) / LogEnvelopeScaleFactor) - 1, 0); const unsigned int scale_power = (min_level + 1) * diff --git a/DSView/pv/data/logic.cpp b/DSView/pv/data/logic.cpp index ccc7ec54..79432adc 100644 --- a/DSView/pv/data/logic.cpp +++ b/DSView/pv/data/logic.cpp @@ -49,15 +49,17 @@ std::deque& Logic::get_snapshots() void Logic::clear() { //_snapshots.clear(); - for(auto &s : _snapshots) + for(auto s : _snapshots){ s->clear(); + } } void Logic::init() { //_snapshots.clear(); - for(auto &s : _snapshots) + for(auto s : _snapshots){ s->init(); + } } LogicSnapshot* Logic::snapshot() diff --git a/DSView/pv/data/logicsnapshot.cpp b/DSView/pv/data/logicsnapshot.cpp index b696206f..26ef55d1 100644 --- a/DSView/pv/data/logicsnapshot.cpp +++ b/DSView/pv/data/logicsnapshot.cpp @@ -60,11 +60,13 @@ LogicSnapshot::~LogicSnapshot() void LogicSnapshot::free_data() { Snapshot::free_data(); - for(auto& iter:_ch_data) { - for(auto& iter_rn:iter) { - for (unsigned int k = 0; k < Scale; k++) + + for(auto& iter : _ch_data) { + for(auto& iter_rn : iter) { + for (unsigned int k = 0; k < Scale; k++){ if (iter_rn.lbp[k] != NULL) free(iter_rn.lbp[k]); + } } std::vector void_vector; iter.swap(void_vector); @@ -113,8 +115,7 @@ void LogicSnapshot::capture_ended() uint64_t index1 = block_index % RootScale; int order = 0; - for(auto& iter:_ch_data) { - + for(auto& iter : _ch_data) { if (iter[index0].lbp[index1] == NULL){ iter[index0].lbp[index1] = malloc(LeafBlockSpace); if (iter[index0].lbp[index1] == NULL) @@ -195,8 +196,8 @@ void LogicSnapshot::first_payload(const sr_datafeed_logic &logic, uint64_t total } } else { - for(auto& iter:_ch_data) { - for(auto& iter_rn:iter) { + for(auto& iter : _ch_data) { + for(auto& iter_rn : iter) { iter_rn.tog = 0; iter_rn.value = 0; } @@ -257,7 +258,7 @@ void LogicSnapshot::append_cross_payload(const sr_datafeed_logic &logic) while (_sample_count > _block_num * LeafBlockSamples) { uint8_t index0 = _block_num / RootScale; uint8_t index1 = _block_num % RootScale; - for(auto& iter:_ch_data) { + for(auto& iter : _ch_data) { if (iter[index0].lbp[index1] == NULL){ iter[index0].lbp[index1] = malloc(LeafBlockSpace); @@ -324,23 +325,17 @@ void LogicSnapshot::append_cross_payload(const sr_datafeed_logic &logic) const uint64_t align_size = len / ScaleSize / _channel_num; _ring_sample_count += align_size * Scale; -// uint64_t mipmap_index = pre_offset / Scale; -// uint64_t mipmap_offset = pre_offset % Scale; -// uint64_t *l1_mipmap; - for(auto& iter:_ch_data) { + + for(auto& iter : _ch_data) { uint64_t index0 = pre_index0; uint64_t index1 = pre_index1; src_ptr = (uint64_t *)_src_ptr + order; _dest_ptr = iter[index0].lbp[index1]; dest_ptr = (uint64_t *)_dest_ptr + pre_offset; -// l1_mipmap = (uint64_t *)_dest_ptr + (LeafBlockSamples / Scale) + mipmap_index; + while (src_ptr < (uint64_t *)_src_ptr + (align_size * _channel_num)) { const uint64_t tmp_u64 = *src_ptr; *dest_ptr++ = tmp_u64; -// *l1_mipmap += ((_last_sample[i] ^ tmp_u64) != 0 ? 1ULL : 0ULL) << mipmap_offset; -// mipmap_offset = (mipmap_offset + 1) % Scale; -// l1_mipmap += (mipmap_offset == 0); -// _last_sample[i] = tmp_u64 & (1ULL << (Scale - 1)) ? ~0ULL : 0ULL; src_ptr += _channel_num; //mipmap if (dest_ptr == (uint64_t *)_dest_ptr + (LeafBlockSamples / Scale)) { @@ -383,16 +378,13 @@ void LogicSnapshot::append_cross_payload(const sr_datafeed_logic &logic) uint8_t *dp_tmp = (uint8_t *)_dest_ptr; uint8_t *sp_tmp = (uint8_t *)_src_ptr; while(len-- != 0) { - //*(uint8_t *)_dest_ptr++ = *(uint8_t *)_src_ptr++; *dp_tmp++ = *sp_tmp++; if (++_byte_fraction == ScaleSize) { _ch_fraction = (_ch_fraction + 1) % _channel_num; _byte_fraction = 0; - //_dest_ptr = (uint8_t *)_ch_data[_ch_fraction][index0].lbp[index1] + offset; dp_tmp = (uint8_t *)_ch_data[_ch_fraction][index0].lbp[index1] + offset; } } - //_dest_ptr = (uint8_t *)_dest_ptr + _byte_fraction; _dest_ptr = dp_tmp + _byte_fraction; } } @@ -507,7 +499,6 @@ void LogicSnapshot::calc_mipmap(unsigned int order, uint8_t index0, uint8_t inde const uint8_t *LogicSnapshot::get_samples(uint64_t start_sample, uint64_t &end_sample, int sig_index) { - //assert(data); uint64_t sample_count = get_sample_count(); assert(start_sample < sample_count); assert(end_sample <= sample_count); @@ -534,7 +525,6 @@ bool LogicSnapshot::get_sample(uint64_t index, int sig_index) int order = get_ch_order(sig_index); assert(order != -1); assert(_ch_data[order].size() != 0); - //assert(index < get_sample_count()); if (index < get_sample_count()) { uint64_t index_mask = 1ULL << (index & LevelMask[0]); diff --git a/DSView/pv/data/spectrumstack.cpp b/DSView/pv/data/spectrumstack.cpp index 4f2ae380..fbde62aa 100644 --- a/DSView/pv/data/spectrumstack.cpp +++ b/DSView/pv/data/spectrumstack.cpp @@ -173,7 +173,7 @@ void SpectrumStack::calc_fft() pv::data::Dso *data = NULL; pv::view::DsoSignal *dsoSig = NULL; - for(auto &s : _session->get_signals()) { + for(auto s : _session->get_signals()) { if ((dsoSig = dynamic_cast(s))) { if (dsoSig->get_index() == _index && dsoSig->enabled()) { data = dsoSig->dso_data(); diff --git a/DSView/pv/dialogs/decoderoptionsdlg.cpp b/DSView/pv/dialogs/decoderoptionsdlg.cpp index a44be16e..1ed4ab89 100644 --- a/DSView/pv/dialogs/decoderoptionsdlg.cpp +++ b/DSView/pv/dialogs/decoderoptionsdlg.cpp @@ -259,20 +259,20 @@ DsComboBox* DecoderOptionsDlg::create_probe_selector( if (probe_iter == _dec->channels().end()) selector->setCurrentIndex(0); + + int dex = 0; - for(size_t i = 0; i < sigs.size(); i++) { - const auto s = sigs[i]; - assert(s); - + for(auto s : sigs) { if (dynamic_cast(s) && s->enabled()) { - selector->addItem(s->get_name(), - QVariant::fromValue(s->get_index())); + selector->addItem(s->get_name(),QVariant::fromValue(s->get_index())); + if (probe_iter != _dec->channels().end()) { if ((*probe_iter).second == s->get_index()) - selector->setCurrentIndex(i + 1); + selector->setCurrentIndex(dex + 1); } } + ++dex; } return selector; @@ -336,7 +336,7 @@ void DecoderOptionsDlg::update_decode_range() decode_end = tmp; } - for(auto &dec : _trace->decoder()->stack()) { + for(auto dec : _trace->decoder()->stack()) { dec->set_decode_region(decode_start, decode_end); } } @@ -421,7 +421,7 @@ void DecoderOptionsDlg::create_decoder_form( void DecoderOptionsDlg::commit_probes() { - for(auto &dec : _trace->decoder()->stack()){ + for(auto dec : _trace->decoder()->stack()){ commit_decoder_probes(dec); } } @@ -441,20 +441,20 @@ void DecoderOptionsDlg::commit_decoder_probes(data::decode::Decoder *dec) auto index_list = _trace->get_sig_index_list(); index_list->clear(); - for(auto &s : _probe_selectors) + for(auto &p : _probe_selectors) { - if(s._decoder != dec) + if(p._decoder != dec) break; - const int selection = s._combo->itemData( - s._combo->currentIndex()).value(); + const int selection = p._combo->itemData(p._combo->currentIndex()).value(); - for(auto &sig : sigs) - if(sig->get_index() == selection) { - probe_map[s._pdch] = selection; + for(auto s : sigs){ + if(s->get_index() == selection) { + probe_map[p._pdch] = selection; index_list->push_back(selection); break; } + } } dec->set_probes(probe_map); diff --git a/DSView/pv/dialogs/deviceoptions.cpp b/DSView/pv/dialogs/deviceoptions.cpp index fb3cafcb..20fa9c3d 100644 --- a/DSView/pv/dialogs/deviceoptions.cpp +++ b/DSView/pv/dialogs/deviceoptions.cpp @@ -164,8 +164,8 @@ void DeviceOptions::accept() // Commit the properties const auto &dev_props = _device_options_binding.properties(); - for(auto &p : dev_props) { - assert(p); + + for(auto p : dev_props) { p->commit(); } @@ -181,7 +181,8 @@ void DeviceOptions::accept() if (probe->enabled) hasEnabled = true; } - } else { + } + else { hasEnabled = true; } @@ -190,8 +191,7 @@ void DeviceOptions::accept() while(it != _probe_options_binding_list.end()) { const auto &probe_props = (*it)->properties(); - for(auto &p :probe_props) { - assert(p); + for(auto p :probe_props) { p->commit(); } it++; @@ -623,18 +623,19 @@ void DeviceOptions::analog_probes(QGridLayout &layout) const auto &properties = probe_options_binding->properties(); int i = 1; - for(auto &p : properties) + for(auto p : properties) { - assert(p); const QString label = p->labeled_widget() ? QString() : p->label(); probe_layout->addWidget(new QLabel(label, probe_widget), i, 0, 1, 1); QWidget * pow = p->get_widget(probe_widget); pow->setEnabled(probe_checkBox->isChecked()); + if (p->name().contains("Map Default")) { pow->setProperty("index", probe->index); connect(pow, SIGNAL(clicked()), this, SLOT(analog_channel_check())); - } else { + } + else { if (probe_checkBox->isChecked() && p->name().contains("Map")) { bool map_default = true; GVariant* gvar = _device_agent->get_config(probe, NULL, SR_CONF_PROBE_MAP_DEFAULT); diff --git a/DSView/pv/dialogs/dsomeasure.cpp b/DSView/pv/dialogs/dsomeasure.cpp index 245fe758..e4832981 100644 --- a/DSView/pv/dialogs/dsomeasure.cpp +++ b/DSView/pv/dialogs/dsomeasure.cpp @@ -56,7 +56,7 @@ DsoMeasure::DsoMeasure(SigSession *session, View &parent, _measure_tab->setTabPosition(QTabWidget::West); _measure_tab->setUsesScrollButtons(false); - for(auto &s : _session->get_signals()) { + for(auto s : _session->get_signals()) { view::DsoSignal *dsoSig; if ((dsoSig = dynamic_cast(s)) && dsoSig->enabled()) { QWidget *measure_widget = new QWidget(this); @@ -155,12 +155,12 @@ void DsoMeasure::accept() { using namespace Qt; - QToolButton* sc=dynamic_cast(sender()); + QToolButton* sc = dynamic_cast(sender()); if(sc != NULL) { QVariant id = sc->property("id"); enum DSO_MEASURE_TYPE ms_type = DSO_MEASURE_TYPE(id.toInt()); - for(auto &s : _session->get_signals()) { + for(auto s : _session->get_signals()) { view::DsoSignal *dsoSig = NULL; if ((dsoSig = dynamic_cast(s))) { if (_measure_tab->currentWidget()->property("index").toInt() == dsoSig->get_index()) { diff --git a/DSView/pv/dialogs/fftoptions.cpp b/DSView/pv/dialogs/fftoptions.cpp index fd6b7ea0..6d16a7d8 100644 --- a/DSView/pv/dialogs/fftoptions.cpp +++ b/DSView/pv/dialogs/fftoptions.cpp @@ -68,7 +68,7 @@ FftOptions::FftOptions(QWidget *parent, SigSession *session) : _dbv_combobox = new DsComboBox(this); // setup _ch_combobox - for(auto &s : _session->get_signals()) { + for(auto s : _session->get_signals()) { view::DsoSignal *dsoSig = NULL; if ((dsoSig = dynamic_cast(s))) { _ch_combobox->addItem(dsoSig->get_name(), QVariant::fromValue(dsoSig->get_index())); @@ -92,7 +92,7 @@ FftOptions::FftOptions(QWidget *parent, SigSession *session) : std::vector view_modes; std::vector dbv_ranges; - for(auto &t : _session->get_spectrum_traces()) { + for(auto t : _session->get_spectrum_traces()) { view::SpectrumTrace *spectrumTraces = NULL; if ((spectrumTraces = dynamic_cast(t))) { windows = spectrumTraces->get_spectrum_stack()->get_windows_support(); @@ -142,7 +142,7 @@ FftOptions::FftOptions(QWidget *parent, SigSession *session) : } // load current settings - for(auto &t : _session->get_spectrum_traces()) { + for(auto t : _session->get_spectrum_traces()) { view::SpectrumTrace *spectrumTraces = NULL; if ((spectrumTraces = dynamic_cast(t))) { if (spectrumTraces->enabled()) { @@ -236,7 +236,7 @@ void FftOptions::accept() QDialog::accept(); - for(auto &t : _session->get_spectrum_traces()) { + for(auto t : _session->get_spectrum_traces()) { view::SpectrumTrace *spectrumTraces = NULL; if ((spectrumTraces = dynamic_cast(t))) { spectrumTraces->set_enable(false); diff --git a/DSView/pv/dialogs/lissajousoptions.cpp b/DSView/pv/dialogs/lissajousoptions.cpp index eade991a..566d13a7 100644 --- a/DSView/pv/dialogs/lissajousoptions.cpp +++ b/DSView/pv/dialogs/lissajousoptions.cpp @@ -75,7 +75,7 @@ LissajousOptions::LissajousOptions(SigSession *session, QWidget *parent) : QHBoxLayout *xlayout = new QHBoxLayout(); QHBoxLayout *ylayout = new QHBoxLayout(); - for(auto &s : _session->get_signals()) { + for(auto s : _session->get_signals()) { view::DsoSignal *dsoSig = NULL; if ((dsoSig = dynamic_cast(s))) { QString index_str = QString::number(dsoSig->get_index()); @@ -182,7 +182,7 @@ void LissajousOptions::accept() bool enable = (xindex != -1 && yindex != -1 && _enable->isChecked()); _session->lissajous_rebuild(enable, xindex, yindex, _percent->value()); - for(auto &s : _session->get_signals()) { + for(auto s : _session->get_signals()) { view::DsoSignal *dsoSig = NULL; if ((dsoSig = dynamic_cast(s))) { dsoSig->set_show(!enable); diff --git a/DSView/pv/dialogs/mathoptions.cpp b/DSView/pv/dialogs/mathoptions.cpp index 2afdac5f..2de15612 100644 --- a/DSView/pv/dialogs/mathoptions.cpp +++ b/DSView/pv/dialogs/mathoptions.cpp @@ -79,7 +79,7 @@ MathOptions::MathOptions(SigSession *session, QWidget *parent) : QHBoxLayout *src1_layout = new QHBoxLayout(); QHBoxLayout *src2_layout = new QHBoxLayout(); - for(auto &s : _session->get_signals()) { + for(auto s : _session->get_signals()) { view::DsoSignal *dsoSig = NULL;; if ((dsoSig = dynamic_cast(s))) { QString index_str = QString::number(dsoSig->get_index()); @@ -207,7 +207,7 @@ void MathOptions::accept() view::DsoSignal *dsoSig1 = NULL; view::DsoSignal *dsoSig2 = NULL; - for(auto &s : _session->get_signals()) { + for(auto s : _session->get_signals()) { view::DsoSignal *dsoSig = NULL;; if ((dsoSig = dynamic_cast(s))) { if (dsoSig->get_index() == src1) diff --git a/DSView/pv/dialogs/protocollist.cpp b/DSView/pv/dialogs/protocollist.cpp index 2883f0f6..9c65f960 100644 --- a/DSView/pv/dialogs/protocollist.cpp +++ b/DSView/pv/dialogs/protocollist.cpp @@ -63,7 +63,7 @@ ProtocolList::ProtocolList(QWidget *parent, SigSession *session) : auto &decode_sigs = _session->get_decode_signals(); int index = 0; - for(auto &d : decode_sigs) { + for(auto d : decode_sigs) { _protocol_combobox->addItem(d->get_name()); if (decoder_model->getDecoderStack() == d->decoder()) _protocol_combobox->setCurrentIndex(index); @@ -133,7 +133,7 @@ void ProtocolList::set_protocol(int index) const auto &decode_sigs = _session->get_decode_signals(); int cur_index = 0; - for(auto &d : decode_sigs) { + for(auto d : decode_sigs) { if (index == cur_index) { decoder_stack = d->decoder(); break; @@ -175,7 +175,7 @@ void ProtocolList::on_row_check(bool show) const auto &decode_sigs = _session->get_decode_signals(); int cur_index = 0; - for(auto &d : decode_sigs) { + for(auto d : decode_sigs) { if (cur_index == _protocol_combobox->currentIndex()) { decoder_stack = d->decoder(); break; diff --git a/DSView/pv/dialogs/search.cpp b/DSView/pv/dialogs/search.cpp index b1d670ab..b684610f 100644 --- a/DSView/pv/dialogs/search.cpp +++ b/DSView/pv/dialogs/search.cpp @@ -52,10 +52,9 @@ Search::Search(QWidget *parent, SigSession *session, std::map int index = 0; - for(auto &sig : _session->get_signals()) { - assert(sig); + for(auto s : _session->get_signals()) { view::LogicSignal *logic_sig = NULL; - if ((logic_sig = dynamic_cast(sig))) { + if ((logic_sig = dynamic_cast(s))) { QLineEdit *search_lineEdit = new QLineEdit(this); if (pattern.find(logic_sig->get_index()) != pattern.end()) search_lineEdit->setText(pattern[logic_sig->get_index()]); @@ -113,10 +112,9 @@ std::map Search::get_pattern() std::map pattern; int index = 0; - for(auto &sig :_session->get_signals()) { - assert(sig); + for(auto s :_session->get_signals()) { view::LogicSignal *logic_sig = NULL; - if ((logic_sig = dynamic_cast(sig))) { + if ((logic_sig = dynamic_cast(s))) { pattern[logic_sig->get_index()] = _search_lineEdit_vec[index]->text(); index++; } diff --git a/DSView/pv/dialogs/storeprogress.cpp b/DSView/pv/dialogs/storeprogress.cpp index b16cb050..6cacd971 100644 --- a/DSView/pv/dialogs/storeprogress.cpp +++ b/DSView/pv/dialogs/storeprogress.cpp @@ -53,6 +53,7 @@ StoreProgress::StoreProgress(SigSession *session, QWidget *parent) : _isExport = false; _done = false; + _isBusy = false; QGridLayout *grid = new QGridLayout(); _grid = grid; @@ -70,7 +71,7 @@ StoreProgress::StoreProgress(SigSession *session, QWidget *parent) : _fileLab->setMaximumHeight(50); _openButton = new QPushButton(this); - _openButton->setText(L_S(STR_PAGE_DLG, S_ID(IDS_DLG_CHANGE), "change")); + _openButton->setText(L_S(STR_PAGE_DLG, S_ID(IDS_DLG_CHANGE_FILE), "change")); _space = new QWidget(this); _space->setMinimumHeight(80); @@ -139,6 +140,9 @@ void StoreProgress::accept() return; } + if (_isBusy) + return; + _progress.setVisible(true); _fileLab->setVisible(false); _fileLab->setVisible(false); @@ -163,8 +167,10 @@ void StoreProgress::accept() //start done if (_isExport){ if (_store_session.export_start()){ + _isBusy = true; _store_session.session()->set_saving(true); - QTimer::singleShot(100, this, SLOT(timeout())); + QTimer::singleShot(100, this, SLOT(timeout())); + setTitle(L_S(STR_PAGE_DLG, S_ID(IDS_DLG_EXPORTING), "Exporting...")); } else{ save_done(); @@ -174,8 +180,10 @@ void StoreProgress::accept() } else{ if (_store_session.save_start()){ + _isBusy = true; _store_session.session()->set_saving(true); - QTimer::singleShot(100, this, SLOT(timeout())); + QTimer::singleShot(100, this, SLOT(timeout())); + setTitle(L_S(STR_PAGE_DLG, S_ID(IDS_DLG_SAVING), "Saving...")); } else{ save_done(); @@ -202,7 +210,7 @@ void StoreProgress::timeout() void StoreProgress::save_run(ISessionDataGetter *getter) { _isExport = false; - setTitle(L_S(STR_PAGE_DLG, S_ID(IDS_DLG_SAVING), "Saving...")); + setTitle(L_S(STR_PAGE_DLG, S_ID(IDS_DLG_SAVE), "Save")); QString file = _store_session.MakeSaveFile(false); _fileLab->setText(file); _store_session._sessionDataGetter = getter; @@ -234,7 +242,7 @@ void StoreProgress::export_run() } _isExport = true; - setTitle(L_S(STR_PAGE_DLG, S_ID(IDS_DLG_EXPORTING), "Exporting...")); + setTitle(L_S(STR_PAGE_DLG, S_ID(IDS_DLG_EXPORT), "Export")); QString file = _store_session.MakeExportFile(false); _fileLab->setText(file); diff --git a/DSView/pv/dialogs/storeprogress.h b/DSView/pv/dialogs/storeprogress.h index 05118512..a519135b 100644 --- a/DSView/pv/dialogs/storeprogress.h +++ b/DSView/pv/dialogs/storeprogress.h @@ -84,6 +84,7 @@ private: QPushButton *_openButton; QGridLayout *_grid; QWidget *_space; + bool _isBusy; }; } // dialogs diff --git a/DSView/pv/dialogs/waitingdialog.cpp b/DSView/pv/dialogs/waitingdialog.cpp index 067aa039..8a6e01b5 100644 --- a/DSView/pv/dialogs/waitingdialog.cpp +++ b/DSView/pv/dialogs/waitingdialog.cpp @@ -188,8 +188,7 @@ void WaitingDialog::changeText() if (zero_fgain) { view::DsoSignal *dsoSig = NULL; - for(auto &s : _session->get_signals()) - { + for(auto s : _session->get_signals()){ if ((dsoSig = dynamic_cast(s))) dsoSig->set_enable(dsoSig->get_index() == 0); } diff --git a/DSView/pv/dock/dsotriggerdock.cpp b/DSView/pv/dock/dsotriggerdock.cpp index 4f8506a5..5e716bd2 100644 --- a/DSView/pv/dock/dsotriggerdock.cpp +++ b/DSView/pv/dock/dsotriggerdock.cpp @@ -400,7 +400,7 @@ void DsoTriggerDock::init() disconnect(_channel_comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(channel_changed(int))); _channel_comboBox->clear(); - for(auto &s : _session->get_signals()) { + for(auto s : _session->get_signals()) { view::DsoSignal *dsoSig = NULL; if ((dsoSig = dynamic_cast(s))) { _channel_comboBox->addItem(dsoSig->get_name(), QVariant::fromValue(dsoSig->get_index())); diff --git a/DSView/pv/dock/measuredock.cpp b/DSView/pv/dock/measuredock.cpp index d2eb03a1..0c22cb08 100644 --- a/DSView/pv/dock/measuredock.cpp +++ b/DSView/pv/dock/measuredock.cpp @@ -606,10 +606,8 @@ void MeasureDock::update_edge() const auto &sigs = _session->get_signals(); - for(size_t i = 0; i < sigs.size(); i++) { - view::Signal *s = sigs[i]; + for(auto s : _session->get_signals()) { view::LogicSignal *logicSig = NULL; - assert(s); if ((logicSig = dynamic_cast(s)) && (logicSig->enabled()) && @@ -657,15 +655,10 @@ DsComboBox* MeasureDock::create_probe_selector(QWidget *parent) void MeasureDock::update_probe_selector(DsComboBox *selector) { - selector->clear(); - const auto &sigs = _session->get_signals(); + selector->clear(); - for(size_t i = 0; i < sigs.size(); i++) { - const auto s = sigs[i]; - assert(s); - - if (dynamic_cast(s) && s->enabled()) - { + for(auto s : _session->get_signals()) { + if (dynamic_cast(s) && s->enabled()){ selector->addItem(QString::number(s->get_index())); } } diff --git a/DSView/pv/dock/protocoldock.cpp b/DSView/pv/dock/protocoldock.cpp index a3ad7ada..2d70833f 100644 --- a/DSView/pv/dock/protocoldock.cpp +++ b/DSView/pv/dock/protocoldock.cpp @@ -451,7 +451,7 @@ void ProtocolDock::decoded_progress(int progress) const auto &decode_sigs = _session->get_decode_signals(); int index = 0; - for(auto &d : decode_sigs) { + for(auto d : decode_sigs) { pg = d->get_progress(); if (d->decoder()->out_of_memory()) err = L_S(STR_PAGE_DLG, S_ID(IDS_DLG_OUT_OF_MEMORY), "Out of Memory"); @@ -486,7 +486,7 @@ void ProtocolDock::set_model() // clear mark_index of all DecoderStacks const auto &decode_sigs = _session->get_decode_signals(); - for(auto &d : decode_sigs) { + for(auto d : decode_sigs) { d->decoder()->set_mark_index(-1); } } @@ -502,7 +502,7 @@ void ProtocolDock::update_model() decoder_model->setDecoderStack(decode_sigs.at(0)->decoder()); else { unsigned int index = 0; - for(auto &d : decode_sigs) { + for(auto d : decode_sigs) { if (d->decoder() == decoder_model->getDecoderStack()) { decoder_model->setDecoderStack(d->decoder()); break; @@ -544,7 +544,7 @@ void ProtocolDock::item_clicked(const QModelIndex &index) if (decoder_stack->list_annotation(ann, index.column(), index.row())) { const auto &decode_sigs = _session->get_decode_signals(); - for(auto &d : decode_sigs) { + for(auto d : decode_sigs) { d->decoder()->set_mark_index(-1); } @@ -639,7 +639,7 @@ void ProtocolDock::nav_table_view() decoder_stack->list_annotation(ann, index.column(), index.row()); const auto &decode_sigs = _session->get_decode_signals(); - for(auto &d : decode_sigs) { + for(auto d : decode_sigs) { d->decoder()->set_mark_index(-1); } decoder_stack->set_mark_index((ann.start_sample()+ann.end_sample())/2); @@ -848,21 +848,19 @@ void ProtocolDock::OnProtocolDelete(void *handle){ return; } - for (auto it = _protocol_lay_items.begin(); it != _protocol_lay_items.end(); it++) - { - if ((*it) == handle) - { - auto lay = (*it); - void *key_handel = lay->get_protocol_key_handel(); - _protocol_lay_items.erase(it); - DESTROY_QT_LATER(lay); - _session->remove_decoder_by_key_handel(key_handel); - protocol_updated(); - break; - } - } - - + for (auto it = _protocol_lay_items.begin(); it != _protocol_lay_items.end(); it++) + { + if ((*it) == handle) + { + auto lay = (*it); + void *key_handel = lay->get_protocol_key_handel(); + _protocol_lay_items.erase(it); + DESTROY_QT_LATER(lay); + _session->remove_decoder_by_key_handel(key_handel); + protocol_updated(); + break; + } + } } void ProtocolDock::OnProtocolFormatChanged(QString format, void *handle){ diff --git a/DSView/pv/dock/triggerdock.cpp b/DSView/pv/dock/triggerdock.cpp index fc5e1e10..c995a23c 100644 --- a/DSView/pv/dock/triggerdock.cpp +++ b/DSView/pv/dock/triggerdock.cpp @@ -914,9 +914,8 @@ void TriggerDock::try_commit_trigger() if (commit_trigger() == false) { /* simple trigger check trigger_enable */ - for(auto &s : _session->get_signals()) + for(auto s : _session->get_signals()) { - assert(s); view::LogicSignal *logicSig = NULL; if ((logicSig = dynamic_cast(s))) { if (logicSig->commit_trig()) @@ -938,9 +937,7 @@ void TriggerDock::try_commit_trigger() msg.exec(); if (msg.mBox()->clickedButton() == cancelButton) { - for(auto &s : _session->get_signals()) - { - assert(s); + for(auto s : _session->get_signals()){ view::LogicSignal *logicSig = NULL; if ((logicSig = dynamic_cast(s))) { logicSig->set_trig(view::LogicSignal::NONTRIG); diff --git a/DSView/pv/dstimer.cpp b/DSView/pv/dstimer.cpp index 84225a2e..405a21e6 100644 --- a/DSView/pv/dstimer.cpp +++ b/DSView/pv/dstimer.cpp @@ -23,12 +23,14 @@ #include -DsTimer::DsTimer(){ +DsTimer::DsTimer() +{ _binded = false; _isActived = false; } -void DsTimer::on_timeout(){ +void DsTimer::on_timeout() +{ _call(); //call back } diff --git a/DSView/pv/mainwindow.h b/DSView/pv/mainwindow.h index 1a0d0869..cdfb33cb 100644 --- a/DSView/pv/mainwindow.h +++ b/DSView/pv/mainwindow.h @@ -95,10 +95,8 @@ public slots: private slots: void on_load_file(QString file_name); void on_open_doc(); - void on_protocol(bool visible); void on_trigger(bool visible); - void on_measure(bool visible); void on_search(bool visible); void on_screenShot(); diff --git a/DSView/pv/prop/binding/binding.cpp b/DSView/pv/prop/binding/binding.cpp index 99708538..ea973613 100644 --- a/DSView/pv/prop/binding/binding.cpp +++ b/DSView/pv/prop/binding/binding.cpp @@ -42,8 +42,7 @@ Binding::Binding(){ void Binding::commit() { - for(auto &p : _properties) { - assert(p); + for(auto p : _properties) { p->commit(); } } @@ -53,10 +52,8 @@ void Binding::add_properties_to_form(QFormLayout *layout, { assert(layout); - for(auto &p : _properties) + for(auto p : _properties) { - assert(p); - QWidget *const widget = p->get_widget(layout->parentWidget(), auto_commit); if (p->labeled_widget()){ @@ -93,9 +90,8 @@ std::map Binding::get_property_value() { std::map pvalue; - for(auto &p : _properties) + for(auto p : _properties) { - assert(p); pvalue[p] = p->get_value(); } diff --git a/DSView/pv/sigsession.cpp b/DSView/pv/sigsession.cpp index 33c9eb04..aeda4d5b 100644 --- a/DSView/pv/sigsession.cpp +++ b/DSView/pv/sigsession.cpp @@ -79,12 +79,12 @@ namespace pv _error = No_err; _is_instant = false; _is_working = false; - _is_repeat_mode = false; _is_saving = false; _device_status = ST_INIT; _noData_cnt = 0; _data_lock = false; _data_updated = false; + _opt_mode = OPT_SINGLE; this->add_msg_listener(this); @@ -110,7 +110,6 @@ namespace pv _group_data = new data::Group(); _group_cnt = 0; - _feed_timer.Stop(); _feed_timer.SetCallback(std::bind(&SigSession::feed_timeout, this)); _repeat_timer.SetCallback(std::bind(&SigSession::repeat_capture_wait_timeout, this)); _repeat_wait_prog_timer.SetCallback(std::bind(&SigSession::repeat_wait_prog_timeout, this)); @@ -222,9 +221,9 @@ namespace pv _cur_samplelimits = _device_agent.get_sample_limit(); if (_device_agent.get_work_mode() == DSO) - _is_repeat_mode = true; + _opt_mode = OPT_REPEAT; else - _is_repeat_mode = false; + _opt_mode = OPT_SINGLE; // The current device changed. _callback->trigger_message(DSV_MSG_CURRENT_DEVICE_CHANGED); @@ -390,8 +389,7 @@ namespace pv // update current hw offset for (auto &s : _signals) - { - assert(s); + { view::DsoSignal *dsoSig = NULL; if ((dsoSig = dynamic_cast(s))) { @@ -425,8 +423,7 @@ namespace pv // SpectrumStack for (auto &m : _spectrum_traces) - { - assert(m); + { m->get_spectrum_stack()->init(); } @@ -537,7 +534,7 @@ namespace pv } bool wait_upload = false; - if (!_is_repeat_mode) + if (is_single_mode()) { GVariant *gvar = _device_agent.get_config(NULL, NULL, SR_CONF_WAIT_UPLOAD); if (gvar != NULL) @@ -553,7 +550,7 @@ namespace pv _repeat_timer.Stop(); _repeat_wait_prog_timer.Stop(); - if (_repeat_hold_prg != 0 && _is_repeat_mode){ + if (_repeat_hold_prg != 0 && is_repeat_mode()){ _repeat_hold_prg = 0; _callback->repeat_hold(_repeat_hold_prg); } @@ -562,8 +559,7 @@ namespace pv exit_capture(); - if (_is_repeat_mode && _device_agent.is_collecting() == false) - { + if (is_repeat_mode() && _device_agent.is_collecting() == false){ // On repeat mode, the working status is changed, to post the event message. _callback->trigger_message(DSV_MSG_END_COLLECT_WORK); } @@ -578,7 +574,6 @@ namespace pv { _is_instant = false; - //_feed_timer _feed_timer.Stop(); if (_device_agent.is_collecting()) @@ -624,10 +619,9 @@ namespace pv { std::set data; - for (auto &sig : _signals) - { - assert(sig); - data.insert(sig->data()); + for (auto &s : _signals) + { + data.insert(s->data()); } return data; @@ -920,8 +914,7 @@ namespace pv _dso_data->init(); // SpectrumStack for (auto &m : _spectrum_traces) - { - assert(m); + { m->get_spectrum_stack()->init(); } @@ -1070,7 +1063,6 @@ namespace pv // reset scale of dso signal for (auto &s : _signals) { - assert(s); view::DsoSignal *dsoSig = NULL; if ((dsoSig = dynamic_cast(s))) { @@ -1111,7 +1103,6 @@ namespace pv // calculate related spectrum results for (auto &m : _spectrum_traces) { - assert(m); if (m->enabled()) m->get_spectrum_stack()->calc_fft(); } @@ -1126,6 +1117,7 @@ namespace pv _trigger_flag = dso.trig_flag; _trigger_ch = dso.trig_ch; + //Trigger update() receive_data(dso.num_samples); if (!_is_instant) @@ -1149,7 +1141,6 @@ namespace pv // reset scale of analog signal for (auto &s : _signals) { - assert(s); view::AnalogSignal *analogSig = NULL; if ((analogSig = dynamic_cast(s))) { @@ -1243,8 +1234,6 @@ namespace pv { for (auto &g : _group_traces) { - assert(g); - auto p = new data::GroupSnapshot(_logic_data->get_snapshots().front(), g->get_index_list()); _group_data->push_snapshot(p); } @@ -1295,8 +1284,7 @@ namespace pv if (_device_agent.have_instance()) { for (auto &s : _signals) - { - assert(s); + { if (dynamic_cast(s) && s->enabled()) { logic_ch_num++; @@ -1602,7 +1590,7 @@ namespace pv int SigSession::get_repeat_hold() { - if (!_is_instant && _is_working && _is_repeat_mode) + if (!_is_instant && _is_working && is_repeat_mode()) return _repeat_hold_prg; else return 0; @@ -1856,7 +1844,7 @@ namespace pv dsv_err("%s", "The collected data is error!"); // trigger next collect - if (!_is_instant && _is_repeat_mode && _is_working && event == DS_EV_COLLECT_TASK_END) + if (!_is_instant && is_repeat_mode() && _is_working && event == DS_EV_COLLECT_TASK_END) { _callback->trigger_message(DSV_MSG_TRIG_NEXT_COLLECT); } @@ -1905,13 +1893,13 @@ namespace pv } } - void SigSession::set_repeat_mode(bool repeat) + void SigSession::set_operation_mode(COLLECT_OPT_MODE repeat) { assert(!_is_working); - if (_is_repeat_mode != repeat) + if (_opt_mode != repeat) { - _is_repeat_mode = repeat; + _opt_mode = repeat; _repeat_hold_prg = 0; } } @@ -1950,38 +1938,41 @@ namespace pv break; case DSV_MSG_TRIG_NEXT_COLLECT: - { - if (_is_working) { - if (_repeat_intvl > 0) + if (_is_working) { - _repeat_hold_prg = 100; - _repeat_timer.Start(_repeat_intvl * 1000); - int intvl = _repeat_intvl * 1000 / 20; + if (_repeat_intvl > 0) + { + _repeat_hold_prg = 100; + _repeat_timer.Start(_repeat_intvl * 1000); + int intvl = _repeat_intvl * 1000 / 20; - if (intvl >= 100){ - _repeat_wait_prog_step = 5; - } - else if (_repeat_intvl >= 1){ - intvl = _repeat_intvl * 1000 / 10; - _repeat_wait_prog_step = 10; - } - else{ - intvl = _repeat_intvl * 1000 / 5; - _repeat_wait_prog_step = 20; - } + if (intvl >= 100){ + _repeat_wait_prog_step = 5; + } + else if (_repeat_intvl >= 1){ + intvl = _repeat_intvl * 1000 / 10; + _repeat_wait_prog_step = 10; + } + else{ + intvl = _repeat_intvl * 1000 / 5; + _repeat_wait_prog_step = 20; + } - _repeat_wait_prog_timer.Start(intvl); - } - else - { - _repeat_hold_prg = 0; - exec_capture(); + _repeat_wait_prog_timer.Start(intvl); + } + else + { + _repeat_hold_prg = 0; + exec_capture(); + } } } - } - break; - } + break; + + case DSV_MSG_COLLECT_END: + break; + } } void SigSession::DeviceConfigChanged() diff --git a/DSView/pv/sigsession.h b/DSView/pv/sigsession.h index 51c23fd5..9caf6a8d 100644 --- a/DSView/pv/sigsession.h +++ b/DSView/pv/sigsession.h @@ -65,8 +65,7 @@ class MathStack; namespace decode { class Decoder; -} - + } } namespace device { @@ -82,6 +81,17 @@ class LissajousTrace; class MathTrace; } +enum DEVICE_STATUS_TYPE{ + ST_INIT = 0, + ST_RUNNING = 1, + ST_STOPPED = 2, +}; +enum COLLECT_OPT_MODE{ + OPT_SINGLE = 0, + OPT_REPEAT = 1, + OPT_REALTIME = 2, +}; + using namespace pv::data; //created by MainWindow @@ -91,15 +101,14 @@ class SigSession: { private: static constexpr float Oversampling = 2.0f; - static const int RefreshTime = 500; - static const int RepeatHoldDiv = 20; public: + static const int RefreshTime = 500; + static const int RepeatHoldDiv = 20; static const int FeedInterval = 50; static const int WaitShowTime = 500; -public: - enum error_state { + enum SESSION_ERROR_STATUS { No_err, Hw_err, Malloc_err, @@ -109,12 +118,6 @@ public: Data_overflow }; - enum device_status_type{ - ST_INIT = 0, - ST_RUNNING = 1, - ST_STOPPED = 2, - }; - private: SigSession(SigSession &o); @@ -149,7 +152,6 @@ public: double cur_sampletime(); double cur_snap_sampletime(); double cur_view_time(); - void set_cur_snap_samplerate(uint64_t samplerate); void set_cur_samplelimits(uint64_t samplelimits); @@ -166,9 +168,7 @@ public: } bool is_first_store_confirm(); - bool get_capture_status(bool &triggered, int &progress); - std::set get_data(); std::vector& get_signals(); std::vector& get_group_signals(); @@ -234,11 +234,11 @@ public: data::Snapshot* get_snapshot(int type); - inline error_state get_error(){ + inline SESSION_ERROR_STATUS get_error(){ return _error; } - inline void set_error(error_state state){ + inline void set_error(SESSION_ERROR_STATUS state){ _error = state; } @@ -313,14 +313,22 @@ public: return _device_status == ST_STOPPED; } - void set_repeat_mode(bool repeat); + void set_operation_mode(COLLECT_OPT_MODE repeat); inline bool is_repeat_mode(){ - return _is_repeat_mode; + return _opt_mode == OPT_REPEAT; + } + + inline bool is_single_mode(){ + return _opt_mode == OPT_SINGLE; + } + + inline bool is_realtime_mode(){ + return _opt_mode == OPT_REALTIME; } inline bool is_repeating(){ - return _is_repeat_mode && !_is_instant; + return _opt_mode == OPT_REPEAT && !_is_instant; } inline void session_save(){ @@ -332,7 +340,7 @@ public: } inline void decode_done(){ - _callback->decode_done(); + _callback->decode_done(); } inline bool is_saving(){ @@ -474,7 +482,7 @@ private: uint8_t _trigger_ch; bool _hw_replied; - error_state _error; + SESSION_ERROR_STATUS _error; uint64_t _error_pattern; int _map_zoom; bool _dso_feed; @@ -484,7 +492,6 @@ private: uint64_t _save_start; uint64_t _save_end; bool _is_working; - bool _is_repeat_mode; double _repeat_intvl; // The progress wait timer interval. int _repeat_hold_prg; // The time sleep progress int _repeat_wait_prog_step; @@ -493,6 +500,7 @@ private: int _device_status; int _capture_time_id; int _confirm_store_time_id; + COLLECT_OPT_MODE _opt_mode; ISessionCallback *_callback; diff --git a/DSView/pv/storesession.cpp b/DSView/pv/storesession.cpp index a8a930c0..cc7f24aa 100644 --- a/DSView/pv/storesession.cpp +++ b/DSView/pv/storesession.cpp @@ -131,9 +131,8 @@ bool StoreSession::save_start() assert(_sessionDataGetter); std::set type_set; - for(auto &sig : _session->get_signals()) { - assert(sig); - type_set.insert(sig->get_type()); + for(auto s : _session->get_signals()) { + type_set.insert(s->get_type()); } if (type_set.size() > 1) { @@ -224,7 +223,7 @@ void StoreSession::save_proc(data::Snapshot *snapshot) if ((logic_snapshot = dynamic_cast(snapshot))) { uint16_t to_save_probes = 0; - for(auto &s : _session->get_signals()) { + for(auto s : _session->get_signals()) { if (s->enabled() && logic_snapshot->has_data(s->get_index())) to_save_probes++; } @@ -232,7 +231,7 @@ void StoreSession::save_proc(data::Snapshot *snapshot) num = logic_snapshot->get_block_num(); bool sample; - for(auto &s : _session->get_signals()) { + for(auto s : _session->get_signals()) { int ch_type = s->get_type(); if (ch_type == SR_CHANNEL_LOGIC) { int ch_index = s->get_index(); @@ -274,9 +273,10 @@ void StoreSession::save_proc(data::Snapshot *snapshot) } } } - } else { + } + else { int ch_type = -1; - for(auto &s : _session->get_signals()) { + for(auto s : _session->get_signals()) { ch_type = s->get_type(); break; } @@ -585,9 +585,8 @@ bool StoreSession::meta_gen(data::Snapshot *snapshot, std::string &str) bool StoreSession::export_start() { std::set type_set; - for(auto &sig : _session->get_signals()) { - assert(sig); - int _tp = sig->get_type(); + for(auto s : _session->get_signals()) { + int _tp = s->get_type(); type_set.insert(_tp); } @@ -757,7 +756,7 @@ void StoreSession::export_proc(data::Snapshot *snapshot) buf_vec.clear(); buf_sample.clear(); - for(auto &s : _session->get_signals()) { + for(auto s : _session->get_signals()) { int ch_type = s->get_type(); if (ch_type == SR_CHANNEL_LOGIC) { int ch_index = s->get_index(); @@ -894,23 +893,22 @@ bool StoreSession::decoders_gen(std::string &str) bool StoreSession::json_decoders(QJsonArray &array) { - for(auto &t : _session->get_decode_signals()) { + for(auto s : _session->get_decode_signals()) { QJsonObject dec_obj; QJsonArray stack_array; QJsonObject show_obj; - const auto &stack = t->decoder(); + const auto &stack = s->decoder(); const auto &decoder = stack->stack(); - for(auto &dec : decoder) { + for(auto dec : decoder) { QJsonArray ch_array; const srd_decoder *const d = dec->decoder();; const bool have_probes = (d->channels || d->opt_channels) != 0; if (have_probes) { - for(auto i = dec->channels().begin(); - i != dec->channels().end(); i++) { + for(auto it = dec->channels().begin();it != dec->channels().end(); it++) { QJsonObject ch_obj; - ch_obj[(*i).first->id] = QJsonValue::fromVariant((*i).second); + ch_obj[(*it).first->id] = QJsonValue::fromVariant((*it).second); ch_array.push_back(ch_obj); } } @@ -1195,7 +1193,7 @@ double StoreSession::get_integer(GVariant *var) else if (g_variant_type_equal(type, G_VARIANT_TYPE_UINT64)) val = g_variant_get_uint64(var); else - assert(0); + assert(false); return val; } @@ -1350,8 +1348,7 @@ QString StoreSession::MakeExportFile(bool bDlg) bool StoreSession::IsLogicDataType() { std::set type_set; - for(auto &sig : _session->get_signals()) { - assert(sig); + for(auto sig : _session->get_signals()) { type_set.insert(sig->get_type()); } diff --git a/DSView/pv/toolbars/samplingbar.cpp b/DSView/pv/toolbars/samplingbar.cpp index d5461552..f1d75c7e 100644 --- a/DSView/pv/toolbars/samplingbar.cpp +++ b/DSView/pv/toolbars/samplingbar.cpp @@ -103,12 +103,13 @@ namespace pv addWidget(&_sample_rate); _action_single = new QAction(this); - _action_repeat = new QAction(this); + _action_realtime = new QAction(this); _mode_menu = new QMenu(this); _mode_menu->addAction(_action_single); _mode_menu->addAction(_action_repeat); + _mode_menu->addAction(_action_realtime); _mode_button.setMenu(_mode_menu); _mode_button.setToolButtonStyle(Qt::ToolButtonTextUnderIcon); @@ -128,6 +129,7 @@ namespace pv connect(&_sample_count, SIGNAL(currentIndexChanged(int)), this, SLOT(on_samplecount_sel(int))); connect(_action_single, SIGNAL(triggered()), this, SLOT(on_mode())); connect(_action_repeat, SIGNAL(triggered()), this, SLOT(on_mode())); + connect(_action_realtime, SIGNAL(triggered()), this, SLOT(on_mode())); connect(&_sample_rate, SIGNAL(currentIndexChanged(int)), this, SLOT(on_samplerate_sel(int))); } @@ -202,6 +204,7 @@ namespace pv _action_single->setText(L_S(STR_PAGE_TOOLBAR, S_ID(IDS_TOOLBAR_SINGLE_ACTION), "&Single")); _action_repeat->setText(L_S(STR_PAGE_TOOLBAR, S_ID(IDS_TOOLBAR_REPEAT_ACTION), "&Repetitive")); + _action_realtime->setText(L_S(STR_PAGE_TOOLBAR, S_ID(IDS_TOOLBAR_REALTIME_ACTION), "Real&time")); } void SamplingBar::reStyle() @@ -242,6 +245,7 @@ namespace pv _instant_button.setIcon(QIcon(iconPath + "/single.svg")); _action_single->setIcon(QIcon(iconPath + "/oneloop.svg")); _action_repeat->setIcon(QIcon(iconPath + "/repeat.svg")); + _action_realtime->setIcon(QIcon(iconPath + "/update.svg")); } } @@ -444,9 +448,7 @@ namespace pv { for (int i = _sample_rate.count() - 1; i >= 0; i--) { - if (samplerate >= _sample_rate.itemData( - i) - .value()) + if (samplerate >= _sample_rate.itemData(i).value()) { _sample_rate.setCurrentIndex(i); break; @@ -687,9 +689,7 @@ namespace pv { for (int i = 0; i < _sample_count.count(); i++) { - if (duration >= _sample_count.itemData( - i) - .value()) + if (duration >= _sample_count.itemData(i).value()) { _sample_count.setCurrentIndex(i); break; @@ -1062,7 +1062,7 @@ namespace pv if (act == _action_single) { _mode_button.setIcon(QIcon(iconPath + "/modes.svg")); - _session->set_repeat_mode(false); + _session->set_operation_mode(OPT_SINGLE); } else if (act == _action_repeat) { @@ -1075,9 +1075,14 @@ namespace pv if (interval_dlg.is_done()) { _session->set_repeat_intvl(interval_dlg.get_interval()); - _session->set_repeat_mode(true); + _session->set_operation_mode(OPT_REPEAT); } } + else if (act == _action_realtime) + { + _mode_button.setIcon(QIcon(iconPath + "/update.svg")); + _session->set_operation_mode(OPT_REALTIME); + } } void SamplingBar::update_device_list() diff --git a/DSView/pv/toolbars/samplingbar.h b/DSView/pv/toolbars/samplingbar.h index f17d5105..4a724dec 100644 --- a/DSView/pv/toolbars/samplingbar.h +++ b/DSView/pv/toolbars/samplingbar.h @@ -138,6 +138,7 @@ namespace pv QMenu *_mode_menu; QAction *_action_repeat; QAction *_action_single; + QAction *_action_realtime; DeviceAgent *_device_agent; ds_device_handle _last_device_handle; diff --git a/DSView/pv/ui/langresource.cpp b/DSView/pv/ui/langresource.cpp index 274549ae..30154916 100644 --- a/DSView/pv/ui/langresource.cpp +++ b/DSView/pv/ui/langresource.cpp @@ -161,7 +161,7 @@ void LangResource::load_page(Lang_resource_page &p, QString file) if (raw_bytes.length() == 0) return; - dsv_info("Load lang resouce file: %s", file.toLocal8Bit().data()); + //dsv_info("Load lang resouce file: %s", file.toLocal8Bit().data()); QJsonParseError error; QString jsonStr(raw_bytes.data()); diff --git a/DSView/pv/view/decodetrace.cpp b/DSView/pv/view/decodetrace.cpp index fd951928..c14e279a 100644 --- a/DSView/pv/view/decodetrace.cpp +++ b/DSView/pv/view/decodetrace.cpp @@ -258,7 +258,7 @@ void DecodeTrace::paint_mid(QPainter &p, int left, int right, QColor fore, QColo uint64_t end_sample = (uint64_t)max((right + pixels_offset) * samples_per_pixel, 0.0); - for(auto &dec : _decoder_stack->stack()) { + for(auto dec : _decoder_stack->stack()) { start_sample = max(dec->decode_start(), start_sample); end_sample = min(dec->decode_end(), end_sample); break; @@ -275,7 +275,7 @@ void DecodeTrace::paint_mid(QPainter &p, int left, int right, QColor fore, QColo assert(_decoder_stack); - for(auto &dec :_decoder_stack->stack()) { + for(auto dec :_decoder_stack->stack()) { if (dec->shown()) { const std::map rows = _decoder_stack->get_rows_gshow(); for (std::map::const_iterator i = rows.begin(); @@ -369,15 +369,17 @@ void DecodeTrace::draw_annotation(const pv::data::decode::Annotation &a, p.drawPoints(triangle, 9); } - if (a.start_sample() == a.end_sample()) + if (a.start_sample() == a.end_sample()){ draw_instant(a, p, fill, outline, text_color, h, start, y, min_annWidth); + } else { draw_range(a, p, fill, outline, text_color, h, start, end, y, fore, back); + if ((a.type()/100 == 2) && (end - start > 20)) { - for(auto &dec : _decoder_stack->stack()) { - for (auto& iter: dec->channels()) { + for(auto dec : _decoder_stack->stack()) { + for (auto& iter : dec->channels()) { int type = dec->get_channel_type(iter.first); if ((type == SRD_CHANNEL_COMMON) || ((type%100 != a.type()%100) && (type%100 != 0))) @@ -385,9 +387,9 @@ void DecodeTrace::draw_annotation(const pv::data::decode::Annotation &a, LogicSignal *logic_sig = NULL; - for(auto &sig : _session->get_signals()) { - if((sig->get_index() == iter.second) && - (logic_sig = dynamic_cast(sig))) { + for(auto s : _session->get_signals()) { + if((s->get_index() == iter.second) && + (logic_sig = dynamic_cast(s))) { logic_sig->paint_mark(p, start, end, type/100); break; } @@ -495,7 +497,7 @@ void DecodeTrace::draw_range(const pv::data::decode::Annotation &a, QPainter &p, QString best_annotation; int best_width = 0; - for(auto &&a : annotations) { + for(auto &a : annotations) { const int w = p.boundingRect(QRectF(), 0, a).width(); if (w <= rect.width() && w > best_width) best_annotation = a, best_width = w; @@ -588,11 +590,10 @@ void DecodeTrace::on_decode_done() int DecodeTrace::rows_size() { using pv::data::decode::Decoder; - int size = 0; - for(auto &dec : _decoder_stack->stack()) { - if (dec->shown()) { + for(auto dec : _decoder_stack->stack()) { + if (dec->shown()) { auto rows = _decoder_stack->get_rows_gshow(); for (auto i = rows.begin(); i != rows.end(); i++) { @@ -602,7 +603,8 @@ int DecodeTrace::rows_size() (*i).second) size++; } - } else { + } + else { size++; } } @@ -663,7 +665,7 @@ void DecodeTrace::frame_ended() _decode_cursor2 = 0; } - for(auto &dec : _decoder_stack->stack()) { + for(auto dec : _decoder_stack->stack()) { dec->set_decode_region(_decode_start, _decode_end); dec->commit(); } @@ -685,7 +687,7 @@ bool DecodeTrace::create_popup(bool isnew) if (QDialog::Accepted == dlg.exec()) { - for(auto &dec : _decoder_stack->stack()) + for(auto dec : _decoder_stack->stack()) { if (dec->commit() || _decoder_stack->options_changed()) { _decoder_stack->set_options_changed(true); diff --git a/DSView/pv/view/devmode.cpp b/DSView/pv/view/devmode.cpp index 10d9461f..4dcdb66f 100644 --- a/DSView/pv/view/devmode.cpp +++ b/DSView/pv/view/devmode.cpp @@ -204,7 +204,7 @@ void DevMode::on_mode_change() } _session->stop_capture(); - _session->set_repeat_mode(false); + _session->set_operation_mode(OPT_SINGLE); _session->session_save(); _session->switch_work_mode(mode); diff --git a/DSView/pv/view/header.cpp b/DSView/pv/view/header.cpp index 228f0b5f..8dd66312 100644 --- a/DSView/pv/view/header.cpp +++ b/DSView/pv/view/header.cpp @@ -104,10 +104,8 @@ pv::view::Trace* Header::get_mTrace(int &action, const QPoint &pt) std::vector traces; _view.get_traces(ALL_VIEW, traces); - for(auto &t : traces) + for(auto t : traces) { - assert(t); - if ((action = t->pt_in_rect(t->get_y(), w, pt))) return t; } @@ -132,9 +130,8 @@ void Header::paintEvent(QPaintEvent*) QColor fore(QWidget::palette().color(QWidget::foregroundRole())); fore.setAlpha(View::ForeAlpha); - for(auto &t : traces) + for(auto t : traces) { - assert(t); t->paint_label(painter, w, dragging ? QPoint(-1, -1) : _mouse_point, fore); } @@ -153,15 +150,17 @@ void Header::mouseDoubleClickEvent(QMouseEvent *event) _mouse_down_point = event->pos(); // Save the offsets of any Traces which will be dragged - for(auto &t : traces) + for(auto t : traces){ if (t->selected()) _drag_traces.push_back( make_pair(t, t->get_v_offset())); + } // Select the Trace if it has been clicked - for(auto &t : traces) + for(auto t : traces){ if (t->mouse_double_click(width(), event->pos())) break; + } } } @@ -183,10 +182,11 @@ void Header::mousePressEvent(QMouseEvent *event) _mouse_down_point = event->pos(); // Save the offsets of any Traces which will be dragged - for(auto &t : traces) + for(auto t : traces){ if (t->selected()) _drag_traces.push_back( make_pair(t, t->get_v_offset())); + } // Select the Trace if it has been clicked const auto mTrace = get_mTrace(action, event->pos()); @@ -203,16 +203,18 @@ void Header::mousePressEvent(QMouseEvent *event) mTrace->set_old_v_offset(mTrace->get_v_offset()); } - for(auto &t : traces) + for(auto t : traces){ if (t->mouse_press(width(), event->pos())) break; + } if (~QApplication::keyboardModifiers() & Qt::ControlModifier) { // Unselect all other Traces because the Ctrl is not // pressed - for(auto &t : traces) + for(auto t : traces){ if (t != mTrace) t->select(false); + } } update(); } @@ -244,7 +246,7 @@ void Header::mouseReleaseEvent(QMouseEvent *event) std::vector traces; _view.get_traces(ALL_VIEW, traces); - for(auto &t : traces){ + for(auto t : traces){ t->select(false); } } diff --git a/DSView/pv/view/spectrumtrace.cpp b/DSView/pv/view/spectrumtrace.cpp index ea7703e2..d26a518e 100644 --- a/DSView/pv/view/spectrumtrace.cpp +++ b/DSView/pv/view/spectrumtrace.cpp @@ -80,10 +80,8 @@ SpectrumTrace::SpectrumTrace(pv::SigSession *session, _offset(0) { _typeWidth = 0; - const auto &sigs = _session->get_signals(); - for(size_t i = 0; i < sigs.size(); i++) { - const auto s = sigs[i]; - assert(s); + + for(auto s : _session->get_signals()) { if (dynamic_cast(s) && index == s->get_index()) _colour = s->get_colour(); } @@ -305,7 +303,7 @@ void SpectrumTrace::paint_mid(QPainter &p, int left, int right, QColor fore, QCo double vdiv = 0; double vfactor = 0; - for(auto &s : _session->get_signals()) { + for(auto s : _session->get_signals()) { DsoSignal *dsoSig = NULL; if ((dsoSig = dynamic_cast(s))) { if(dsoSig->get_index() == _spectrum_stack->get_index()) { diff --git a/DSView/pv/view/view.cpp b/DSView/pv/view/view.cpp index 2c4c0604..c5a28862 100644 --- a/DSView/pv/view/view.cpp +++ b/DSView/pv/view/view.cpp @@ -358,11 +358,7 @@ void View::set_scale_offset(double scale, int64_t offset) } void View::set_preScale_preOffset() -{ - //assert(_preScale <= _maxscale); - //assert(_preScale >= _minscale); - //assert(_preOffset >= 0); - +{ set_scale_offset(_preScale, _preOffset); } @@ -377,35 +373,37 @@ void View::get_traces(int type, std::vector &traces) const auto &spectrums = _session->get_spectrum_traces(); - for(auto &t : sigs) { + for(auto t : sigs) { if (type == ALL_VIEW || _trace_view_map[t->get_type()] == type) traces.push_back(t); } - for(auto &t : decode_sigs) { + for(auto t : decode_sigs) { if (type == ALL_VIEW || _trace_view_map[t->get_type()] == type) traces.push_back(t); } - for(auto &t : groups) { + for(auto t : groups) { if (type == ALL_VIEW || _trace_view_map[t->get_type()] == type) traces.push_back(t); } - for(auto &t : spectrums) { + for(auto t : spectrums) { if (type == ALL_VIEW || _trace_view_map[t->get_type()] == type) traces.push_back(t); } auto lissajous = _session->get_lissajous_trace(); if (lissajous && lissajous->enabled() && - (type == ALL_VIEW || _trace_view_map[lissajous->get_type()] == type)) + (type == ALL_VIEW || _trace_view_map[lissajous->get_type()] == type)){ traces.push_back(lissajous); + } auto math = _session->get_math_trace(); if (math && math->enabled() && - (type == ALL_VIEW || _trace_view_map[math->get_type()] == type)) + (type == ALL_VIEW || _trace_view_map[math->get_type()] == type)){ traces.push_back(math); + } stable_sort(traces.begin(), traces.end(), compare_trace_v_offsets); } @@ -540,8 +538,7 @@ void View::set_trig_pos(int percent) } void View::set_search_pos(uint64_t search_pos, bool hit) -{ - //assert(search_pos >= 0); +{ QColor fore(QWidget::palette().color(QWidget::foregroundRole())); fore.setAlpha(View::BackAlpha); @@ -575,17 +572,17 @@ const QPoint& View::hover_point() void View::normalize_layout() { + int v_min = INT_MAX; std::vector traces; get_traces(ALL_VIEW, traces); - - int v_min = INT_MAX; - for(auto &t : traces){ + + for(auto t : traces){ v_min = min(t->get_v_offset(), v_min); } const int delta = -min(v_min, 0); - for(auto &t : traces){ + for(auto t : traces){ t->set_v_offset(t->get_v_offset() + delta); } @@ -593,7 +590,6 @@ void View::normalize_layout() v_scroll_value_changed(verticalScrollBar()->sliderPosition()); } - int View::get_spanY() { return _spanY; @@ -684,11 +680,11 @@ void View::signals_changed() uint8_t max_height = MaxHeightUnit; std::vector time_traces; std::vector fft_traces; - std::vector traces; + get_traces(ALL_VIEW, traces); - for(auto &t : traces) { + for(auto t : traces) { if (_trace_view_map[t->get_type()] == TIME_VIEW) time_traces.push_back(t); else if (_trace_view_map[t->get_type()] == FFT_VIEW) @@ -703,13 +699,14 @@ void View::signals_changed() _viewport_list.push_back(_fft_viewport); _vsplitter->refresh(); } - for(auto &t : fft_traces) { + for(auto t : fft_traces) { t->set_view(this); t->set_viewport(_fft_viewport); t->set_totalHeight(_fft_viewport->height()); t->set_v_offset(_fft_viewport->geometry().bottom()); } - } else { + } + else { _fft_viewport->setVisible(false); _vsplitter->refresh(); @@ -724,8 +721,7 @@ void View::signals_changed() } if (!time_traces.empty() && _time_viewport) { - for(auto &t : time_traces) { - assert(t); + for(auto t : time_traces) { if (dynamic_cast(t) || t->enabled()) total_rows += t->rows_size(); @@ -768,7 +764,7 @@ void View::signals_changed() _spanY = _signalHeight + 2 * actualMargin; int next_v_offset = actualMargin; - for(auto &t : time_traces) { + for(auto t : time_traces) { t->set_view(this); t->set_viewport(_time_viewport); if (t->rows_size() == 0) @@ -851,9 +847,9 @@ int View::headerWidth() get_traces(ALL_VIEW, traces); if (!traces.empty()) { - for(auto &t : traces) - headerWidth = max(t->get_name_width() + t->get_leftWidth() + t->get_rightWidth(), - headerWidth); + for(auto t : traces){ + headerWidth = max(t->get_name_width() + t->get_leftWidth() + t->get_rightWidth(), headerWidth); + } } setViewportMargins(headerWidth, RulerHeight, 0, 0); @@ -1102,8 +1098,8 @@ QRect View::get_view_rect() { if (_device_agent->get_work_mode() == DSO) { const auto &sigs = _session->get_signals(); - for(auto &s : sigs) { - return s->get_view_rect(); + if(sigs.size() > 0) { + return sigs[0]->get_view_rect(); } } @@ -1114,11 +1110,11 @@ int View::get_view_width() { int view_width = 0; if (_device_agent->get_work_mode() == DSO) { - const auto &sigs = _session->get_signals(); - for(auto &s : sigs) { + for(auto s : _session->get_signals()) { view_width = max(view_width, s->get_view_rect().width()); } - } else { + } + else { view_width = _viewcenter->width(); } @@ -1129,11 +1125,11 @@ int View::get_view_height() { int view_height = 0; if (_device_agent->get_work_mode() == DSO) { - const auto &sigs = _session->get_signals(); - for(auto &s : sigs) { + for(auto s : _session->get_signals()) { view_height = max(view_height, s->get_view_rect().height()); } - } else { + } + else { view_height = _viewcenter->height(); } diff --git a/DSView/pv/view/viewport.cpp b/DSView/pv/view/viewport.cpp index 49c3a824..90562710 100644 --- a/DSView/pv/view/viewport.cpp +++ b/DSView/pv/view/viewport.cpp @@ -88,8 +88,8 @@ Viewport::Viewport(View &parent, View_type type) : _mm_duty = View::Unknown_Str; _measure_en = true; _edge_hit = false; - transfer_started = false; - timer_cnt = 0; + _transfer_started = false; + _timer_cnt = 0; _clickX = 0; _sample_received = 0; @@ -103,7 +103,7 @@ Viewport::Viewport(View &parent, View_type type) : setContextMenuPolicy(Qt::CustomContextMenu); - connect(&trigger_timer, SIGNAL(timeout()),this, SLOT(on_trigger_timer())); + connect(&_trigger_timer, SIGNAL(timeout()),this, SLOT(on_trigger_timer())); connect(&_drag_timer, SIGNAL(timeout()),this, SLOT(on_drag_timer())); connect(yAction, SIGNAL(triggered(bool)), this, SLOT(add_cursor_y())); @@ -117,8 +117,7 @@ int Viewport::get_total_height() std::vector traces; _view.get_traces(_type, traces); - for(auto &t : traces) { - assert(t); + for(auto t : traces) { h += (int)(t->get_totalHeight()); } h += 2 * View::SignalMargin; @@ -154,13 +153,11 @@ void Viewport::paintEvent(QPaintEvent *event) QColor back(QWidget::palette().color(QWidget::backgroundRole())); fore.setAlpha(View::ForeAlpha); _view.set_back(false); + std::vector traces; _view.get_traces(_type, traces); - for(auto &t : traces) - { - assert(t); - + for(auto t : traces){ t->paint_back(p, 0, _view.get_view_width(), fore, back); if (_view.back_ready()) break; @@ -169,11 +166,12 @@ void Viewport::paintEvent(QPaintEvent *event) if (_view.session().get_device()->get_work_mode() == LOGIC || _view.session().is_instant()) { - if (_view.session().is_stopped_status()){ + if (_view.session().is_stopped_status())// || _view.session().is_realtime_mode()){ + { paintSignals(p, fore, back); } else if (_view.session().is_running_status()){ - if (_view.session().is_repeat_mode() && !transfer_started) { + if (_view.session().is_repeat_mode() && !_transfer_started) { _view.set_capture_status(); paintSignals(p, fore, back); } @@ -187,9 +185,7 @@ void Viewport::paintEvent(QPaintEvent *event) paintSignals(p, fore, back); } - for(auto &t : traces) - { - assert(t); + for(auto t : traces){ if (t->enabled()) t->paint_fore(p, 0, _view.get_view_width(), fore, back); } @@ -209,8 +205,6 @@ void Viewport::paintSignals(QPainter &p, QColor fore, QColor back) for(auto t : traces) { - assert(t); - if (t->enabled()) t->paint_mid(p, 0, t->get_view_rect().right(), fore, back); } @@ -224,21 +218,19 @@ void Viewport::paintSignals(QPainter &p, QColor fore, QColor back) _curOffset = _view.offset(); _curSignalHeight = _view.get_signalHeight(); - pixmap = QPixmap(size()); - pixmap.fill(Qt::transparent); + _pixmap = QPixmap(size()); + _pixmap.fill(Qt::transparent); - QPainter dbp(&pixmap); + QPainter dbp(&_pixmap); for(auto t : traces) { - assert(t); - if (t->enabled()) t->paint_mid(dbp, 0, t->get_view_rect().right(), fore, back); } _need_update = false; } - p.drawPixmap(0, 0, pixmap); + p.drawPixmap(0, 0, _pixmap); } // plot cursors @@ -429,7 +421,7 @@ void Viewport::paintProgress(QPainter &p, QColor fore, QColor back) p.drawEllipse(logoPoints[19].x() - 0.5 * logoRadius, logoPoints[19].y() - logoRadius, logoRadius, logoRadius); - if (!transfer_started) { + if (!_transfer_started) { const int width = _view.get_view_width(); const QPoint cenLeftPos = QPoint(width / 2 - 0.05 * width, height() / 2); const QPoint cenRightPos = QPoint(width / 2 + 0.05 * width, height() / 2); @@ -438,11 +430,11 @@ void Viewport::paintProgress(QPainter &p, QColor fore, QColor back) QColor foreBack = fore; foreBack.setAlpha(View::BackAlpha); p.setPen(Qt::NoPen); - p.setBrush((timer_cnt % 3) == 0 ? fore : foreBack); + p.setBrush((_timer_cnt % 3) == 0 ? fore : foreBack); p.drawEllipse(cenLeftPos, trigger_radius, trigger_radius); - p.setBrush((timer_cnt % 3) == 1 ? fore : foreBack); + p.setBrush((_timer_cnt % 3) == 1 ? fore : foreBack); p.drawEllipse(cenPos, trigger_radius, trigger_radius); - p.setBrush((timer_cnt % 3) == 2 ? fore : foreBack); + p.setBrush((_timer_cnt % 3) == 2 ? fore : foreBack); p.drawEllipse(cenRightPos, trigger_radius, trigger_radius); bool triggered; @@ -520,10 +512,8 @@ void Viewport::mousePressEvent(QMouseEvent *event) event->button() == Qt::LeftButton && _view.session().get_device()->get_work_mode() == DSO) { - const auto &sigs = _view.session().get_signals(); - - for(auto &s : sigs) { - assert(s); + for(auto s : _view.session().get_signals()) + { if (!s->enabled()) continue; DsoSignal *dsoSig = NULL; @@ -638,9 +628,9 @@ void Viewport::mouseMoveEvent(QMouseEvent *event) _mouse_down_offset + (_mouse_down_point - event->pos()).x()); } _drag_strength = (_mouse_down_point - event->pos()).x(); - } else if (_type == FFT_VIEW) { - for(auto &t: _view.session().get_spectrum_traces()) { - assert(t); + } + else if (_type == FFT_VIEW) { + for(auto t: _view.session().get_spectrum_traces()) { if(t->enabled()) { double delta = (_mouse_point - event->pos()).x(); t->set_offset(delta); @@ -662,16 +652,15 @@ void Viewport::mouseMoveEvent(QMouseEvent *event) } } } + if (_action_type == CURS_MOVE) { TimeMarker* grabbed_marker = _view.get_ruler()->get_grabbed_cursor(); if (grabbed_marker) { int curX = _view.hover_point().x(); uint64_t index0 = 0, index1 = 0, index2 = 0; bool logic = false; - const auto &sigs = _view.session().get_signals(); - for(auto &s: sigs) { - assert(s); + for(auto s : _view.session().get_signals()) { view::LogicSignal *logicSig = NULL; view::DsoSignal *dsoSig = NULL; if ((_view.session().get_device()->get_work_mode() == LOGIC) && @@ -733,8 +722,7 @@ void Viewport::mouseMoveEvent(QMouseEvent *event) } if (!(event->buttons() | Qt::NoButton)) { if (_action_type == DSO_XM_STEP1 || _action_type == DSO_XM_STEP2) { - for(auto &s : _view.session().get_signals()) { - assert(s); + for(auto s : _view.session().get_signals()) { if (!s->get_view_rect().contains(event->pos())) { clear_dso_xm(); } @@ -806,8 +794,7 @@ void Viewport::mouseReleaseEvent(QMouseEvent *event) if (_mouse_down_point.x() == event->pos().x()) { const auto &sigs = _view.session().get_signals(); - for(auto &s : sigs) { - assert(s); + for(auto s : sigs) { view::LogicSignal *logicSig = NULL; if ((logicSig = dynamic_cast(s))) { if (logicSig->edge(event->pos(), _edge_start, 10)) { @@ -830,8 +817,7 @@ void Viewport::mouseReleaseEvent(QMouseEvent *event) if (_mouse_down_point.x() == event->pos().x()) { const auto &sigs = _view.session().get_signals(); - for(auto &s : sigs) { - assert(s); + for(auto s : sigs) { if (abs(event->pos().y() - s->get_y()) < _view.get_signalHeight()) { _action_type = LOGIC_EDGE; _edge_start = _view.pixel2index(event->pos().x()); @@ -868,7 +854,7 @@ void Viewport::mouseReleaseEvent(QMouseEvent *event) std::vector traces; _view.get_traces(ALL_VIEW, traces); - for(auto &t : traces){ + for(auto t : traces){ t->select(false); } } @@ -988,9 +974,7 @@ void Viewport::mouseDoubleClickEvent(QMouseEvent *event) uint64_t index; uint64_t index0 = 0, index1 = 0, index2 = 0; if (_view.session().get_device()->get_work_mode() == LOGIC) { - const auto &sigs = _view.session().get_signals(); - for(auto &s : sigs) { - assert(s); + for(auto s : _view.session().get_signals()) { view::LogicSignal *logicSig = NULL; if ((logicSig = dynamic_cast(s))) { if (logicSig->measure(event->pos(), index0, index1, index2)) { @@ -1024,8 +1008,7 @@ void Viewport::mouseDoubleClickEvent(QMouseEvent *event) measure_updated(); } else if (_action_type == NO_ACTION) { - for(auto &s : _view.session().get_signals()) { - assert(s); + for(auto s : _view.session().get_signals()) { if (s->get_view_rect().contains(event->pos())) { _dso_xm_index[0] = _view.pixel2index(event->pos().x()); _dso_xm_y = event->pos().y(); @@ -1232,10 +1215,8 @@ void Viewport::measure() _measure_type = NO_MEASURE; if (_type == TIME_VIEW) { const uint64_t sample_rate = _view.session().cur_snap_samplerate(); - const auto &sigs = _view.session().get_signals(); - for(auto &s : sigs) { - assert(s); + for(auto s : _view.session().get_signals()) { view::LogicSignal *logicSig = NULL; view::DsoSignal *dsoSig = NULL; view::AnalogSignal *analogSig = NULL; @@ -1316,9 +1297,9 @@ void Viewport::measure() _measure_type = NO_MEASURE; } } - } else if (_type == FFT_VIEW) { - for(auto &t : _view.session().get_spectrum_traces()) { - assert(t); + } + else if (_type == FFT_VIEW) { + for(auto t : _view.session().get_spectrum_traces()) { if(t->enabled()) { t->measure(_mouse_point); } @@ -1388,11 +1369,10 @@ void Viewport::paintMeasure(QPainter &p, QColor fore, QColor back) } } - const auto &sigs = _view.session().get_signals(); if (_action_type == NO_ACTION && _measure_type == DSO_VALUE) { - for(auto &s : sigs) { + for(auto s : _view.session().get_signals()) { view::DsoSignal *dsoSig = NULL; view::AnalogSignal* analogSig = NULL; @@ -1421,7 +1401,7 @@ void Viewport::paintMeasure(QPainter &p, QColor fore, QColor back) } if (_dso_ym_valid) { - for(auto &s : sigs) { + for(auto s : _view.session().get_signals()) { view::DsoSignal *dsoSig = NULL; if ((dsoSig = dynamic_cast(s))) { if (dsoSig->get_index() == _dso_ym_sig_index) { @@ -1673,21 +1653,21 @@ void Viewport::set_measure_en(int enable) void Viewport::start_trigger_timer(int msec) { assert(msec > 0); - transfer_started = false; - timer_cnt = 0; - trigger_timer.start(msec); + _transfer_started = false; + _timer_cnt = 0; + _trigger_timer.start(msec); } void Viewport::stop_trigger_timer() { - transfer_started = true; - timer_cnt = 0; - trigger_timer.stop(); + _transfer_started = true; + _timer_cnt = 0; + _trigger_timer.stop(); } void Viewport::on_trigger_timer() { - timer_cnt++; + _timer_cnt++; update(); } diff --git a/DSView/pv/view/viewport.h b/DSView/pv/view/viewport.h index fc244fdb..1825f42d 100644 --- a/DSView/pv/view/viewport.h +++ b/DSView/pv/view/viewport.h @@ -90,22 +90,15 @@ public: explicit Viewport(View &parent, View_type type); int get_total_height(); - QPoint get_mouse_point(); - QString get_measure(QString option); - void set_measure_en(int enable); - void start_trigger_timer(int msec); void stop_trigger_timer(); void clear_measure(); - void clear_dso_xm(); - void set_need_update(bool update); - bool get_dso_trig_moved(); protected: @@ -146,82 +139,75 @@ signals: void prgRate(int progress); private: - View &_view; - View_type _type; - bool _need_update; + View &_view; + View_type _type; + bool _need_update; + QPixmap _pixmap; + QMenu *_cmenu; - QPixmap pixmap; - QMenu *_cmenu; + uint64_t _sample_received; + QPoint _mouse_point; + QPoint _mouse_down_point; + int64_t _mouse_down_offset; + double _curScale; + int64_t _curOffset; + int _curSignalHeight; - uint64_t _sample_received; - QPoint _mouse_point; - QPoint _mouse_down_point; - int64_t _mouse_down_offset; - double _curScale; - int64_t _curOffset; - int _curSignalHeight; - - //QPixmap pixmap; - - bool _measure_en; - ActionType _action_type; + bool _measure_en; + ActionType _action_type; MeasureType _measure_type; - uint64_t _cur_sample; - uint64_t _nxt_sample; - uint64_t _thd_sample; - int64_t _cur_preX; - int64_t _cur_aftX; - int64_t _cur_thdX; - int _cur_midY; - int _cur_preY; - int _cur_preY_top; - int _cur_preY_bottom; - int _cur_aftY; - bool _edge_hit; - QString _mm_width; - QString _mm_period; - QString _mm_freq; - QString _mm_duty; + uint64_t _cur_sample; + uint64_t _nxt_sample; + uint64_t _thd_sample; + int64_t _cur_preX; + int64_t _cur_aftX; + int64_t _cur_thdX; + int _cur_midY; + int _cur_preY; + int _cur_preY_top; + int _cur_preY_bottom; + int _cur_aftY; + bool _edge_hit; + QString _mm_width; + QString _mm_period; + QString _mm_freq; + QString _mm_duty; - uint64_t _edge_rising; - uint64_t _edge_falling; - uint64_t _edge_start; - uint64_t _edge_end; - QString _em_rising; - QString _em_falling; - QString _em_edges; + uint64_t _edge_rising; + uint64_t _edge_falling; + uint64_t _edge_start; + uint64_t _edge_end; + QString _em_rising; + QString _em_falling; + QString _em_edges; - QTimer trigger_timer; - bool transfer_started; - int timer_cnt; + QTimer _trigger_timer; + bool _transfer_started; + int _timer_cnt; + Signal *_drag_sig; + uint64_t _hover_index; + bool _hover_hit; + uint16_t _hover_sig_index; + double _hover_sig_value; - Signal *_drag_sig; + QElapsedTimer _elapsed_time; + QTimer _drag_timer; + int _drag_strength; + bool _dso_xm_valid; + int _dso_xm_y; + uint64_t _dso_xm_index[DsoMeasureStages]; - uint64_t _hover_index; - bool _hover_hit; - uint16_t _hover_sig_index; - double _hover_sig_value; - - QElapsedTimer _elapsed_time; - QTimer _drag_timer; - int _drag_strength; - - bool _dso_xm_valid; - int _dso_xm_y; - uint64_t _dso_xm_index[DsoMeasureStages]; - - bool _dso_ym_valid; - uint16_t _dso_ym_sig_index; - double _dso_ym_sig_value; - uint64_t _dso_ym_index; - int _dso_ym_start; - int _dso_ym_end; - - int _waiting_trig; - bool _dso_trig_moved; - bool _curs_moved; - bool _xcurs_moved; - int _clickX; + bool _dso_ym_valid; + uint16_t _dso_ym_sig_index; + double _dso_ym_sig_value; + uint64_t _dso_ym_index; + int _dso_ym_start; + int _dso_ym_end; + int _waiting_trig; + bool _dso_trig_moved; + bool _curs_moved; + bool _xcurs_moved; + int _clickX; }; } // namespace view diff --git a/DSView/pv/view/viewstatus.cpp b/DSView/pv/view/viewstatus.cpp index d6295c40..552687bb 100644 --- a/DSView/pv/view/viewstatus.cpp +++ b/DSView/pv/view/viewstatus.cpp @@ -84,10 +84,8 @@ void ViewStatus::paintEvent(QPaintEvent *) for(size_t i = 0; i < _mrects.size(); i++) { int sig_index = std::get<1>(_mrects[i]); view::DsoSignal *dsoSig = NULL; - const auto &sigs = _session->get_signals(); - for(auto &s : sigs) { - assert(s); + for(auto s : _session->get_signals()) { if (!s->enabled()) continue; if ((dsoSig = dynamic_cast(s))) { diff --git a/DSView/pv/view/xcursor.cpp b/DSView/pv/view/xcursor.cpp index 29180de6..6af75c98 100644 --- a/DSView/pv/view/xcursor.cpp +++ b/DSView/pv/view/xcursor.cpp @@ -43,9 +43,8 @@ XCursor::XCursor(View &view, QColor &colour, _colour(colour) { _dsoSig = NULL; - const auto &sigs = _view.session().get_signals(); - for(auto &s : sigs) { + for(auto s : _view.session().get_signals()) { DsoSignal *dsoSig = NULL; if ((dsoSig = dynamic_cast(s))) if (dsoSig->enabled()) { diff --git a/DSView/pv/widgets/decodergroupbox.cpp b/DSView/pv/widgets/decodergroupbox.cpp index b68ac6f9..d1c8630f 100644 --- a/DSView/pv/widgets/decodergroupbox.cpp +++ b/DSView/pv/widgets/decodergroupbox.cpp @@ -57,26 +57,17 @@ DecoderGroupBox::DecoderGroupBox(data::DecoderStack *decoder_stack, _layout->setContentsMargins(0, 0, 0, 0); _layout->setVerticalSpacing(2); - //setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - //setWidgetResizable(true); - QString iconPath = GetIconPath(); _layout->addWidget(new QLabel(QString("

%1

").arg(_dec->decoder()->name), _widget), - //_layout->addWidget(new QLabel(QString("%1").arg(_dec->decoder()->name), _widget), 0, 0); _layout->setColumnStretch(0, 1); const srd_decoder *const d = _dec->decoder(); assert(d); const bool have_probes = (d->channels || d->opt_channels) != 0; - if (!have_probes) { - // _del_button = new QPushButton(QIcon(iconPath+"/del.svg"), QString(), _widget); - // _layout->addWidget(_del_button, 0, 1); - //connect(_del_button, SIGNAL(clicked()), this, SLOT(on_del_stack())); - } _index = 0; - for(auto &dec : _decoder_stack->stack()) { + for(auto dec : _decoder_stack->stack()) { if (dec == _dec) break; _index++; @@ -167,7 +158,7 @@ void DecoderGroupBox::tog_icon() void DecoderGroupBox::on_del_stack() { int i = _index; - for(auto &dec : _decoder_stack->stack()) { + for(auto dec : _decoder_stack->stack()) { if (i-- == 0) { del_stack(dec); break; diff --git a/lang/cn/dlg.json b/lang/cn/dlg.json index 03cb03e8..9265d373 100644 --- a/lang/cn/dlg.json +++ b/lang/cn/dlg.json @@ -288,8 +288,8 @@ "text": "搜索选项" }, { - "id": "IDS_DLG_CHANGE", - "text": "变化" + "id": "IDS_DLG_CHANGE_FILE", + "text": "变更" }, { "id": "IDS_DLG_SAVING", @@ -303,10 +303,14 @@ "id": "IDS_DLG_COMPRESSED_DATA", "text": "压缩数据" }, + { + "id": "IDS_DLG_EXPORT", + "text": "导出" + }, { "id": "IDS_DLG_EXPORTING", "text": "导出中..." - }, + }, { "id": "IDS_DLG_DONT_CONNECT_PROBES", "text": "不要连接任何探头!" diff --git a/lang/cn/toolbar.json b/lang/cn/toolbar.json index ffe51991..98bcb191 100644 --- a/lang/cn/toolbar.json +++ b/lang/cn/toolbar.json @@ -39,6 +39,10 @@ "id": "IDS_TOOLBAR_REPEAT_ACTION", "text": "重复(&R)" }, + { + "id": "IDS_TOOLBAR_REALTIME_ACTION", + "text": "实时(&T)" + }, { "id": "IDS_TOOLBAR_TRIGGER", "text": "触发" diff --git a/lang/en/dlg.json b/lang/en/dlg.json index ddb7cad2..684279e2 100644 --- a/lang/en/dlg.json +++ b/lang/en/dlg.json @@ -288,7 +288,7 @@ "text": "Search Options" }, { - "id": "IDS_DLG_CHANGE", + "id": "IDS_DLG_CHANGE_FILE", "text": "change" }, { @@ -303,6 +303,10 @@ "id": "IDS_DLG_COMPRESSED_DATA", "text": "Compressed data" }, + { + "id": "IDS_DLG_EXPORT", + "text": "Export" + }, { "id": "IDS_DLG_EXPORTING", "text": "Exporting..." diff --git a/lang/en/toolbar.json b/lang/en/toolbar.json index 29621b23..290287ad 100644 --- a/lang/en/toolbar.json +++ b/lang/en/toolbar.json @@ -39,6 +39,10 @@ "id": "IDS_TOOLBAR_REPEAT_ACTION", "text": "&Repetitive" }, + { + "id": "IDS_TOOLBAR_REALTIME_ACTION", + "text": "Real&time" + }, { "id": "IDS_TOOLBAR_TRIGGER", "text": "Trigger"