projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Session: Handle failing sigrok::Device::read_config() calls
[pulseview.git]
/
pv
/
session.cpp
diff --git
a/pv/session.cpp
b/pv/session.cpp
index 7df73d63d5ba43660eb666ec1a91322046002442..797a461bf2d6ffbec1cb3deab085df21abfdb283 100644
(file)
--- a/
pv/session.cpp
+++ b/
pv/session.cpp
@@
-397,12
+397,13
@@
void Session::set_device(shared_ptr<devices::Device> device)
name_ = default_name_;
name_changed();
name_ = default_name_;
name_changed();
- // Remove all stored data
+ // Remove all stored data
and reset all views
for (shared_ptr<views::ViewBase> view : views_) {
view->clear_signals();
#ifdef ENABLE_DECODE
view->clear_decode_signals();
#endif
for (shared_ptr<views::ViewBase> view : views_) {
view->clear_signals();
#ifdef ENABLE_DECODE
view->clear_decode_signals();
#endif
+ view->reset_view_state();
}
for (const shared_ptr<data::SignalData> d : all_signal_data_)
d->clear();
}
for (const shared_ptr<data::SignalData> d : all_signal_data_)
d->clear();
@@
-949,7
+950,11
@@
void Session::sample_thread_proc(function<void (const QString)> error_handler)
if (!device_)
return;
if (!device_)
return;
- cur_samplerate_ = device_->read_config<uint64_t>(ConfigKey::SAMPLERATE);
+ try {
+ cur_samplerate_ = device_->read_config<uint64_t>(ConfigKey::SAMPLERATE);
+ } catch (Error& e) {
+ cur_samplerate_ = 0;
+ }
out_of_memory_ = false;
out_of_memory_ = false;
@@
-1160,7
+1165,11
@@
void Session::feed_in_logic(shared_ptr<Logic> logic)
}
if (!cur_samplerate_)
}
if (!cur_samplerate_)
- cur_samplerate_ = device_->read_config<uint64_t>(ConfigKey::SAMPLERATE);
+ try {
+ cur_samplerate_ = device_->read_config<uint64_t>(ConfigKey::SAMPLERATE);
+ } catch (Error& e) {
+ // Do nothing
+ }
lock_guard<recursive_mutex> lock(data_mutex_);
lock_guard<recursive_mutex> lock(data_mutex_);
@@
-1197,7
+1206,11
@@
void Session::feed_in_analog(shared_ptr<Analog> analog)
}
if (!cur_samplerate_)
}
if (!cur_samplerate_)
- cur_samplerate_ = device_->read_config<uint64_t>(ConfigKey::SAMPLERATE);
+ try {
+ cur_samplerate_ = device_->read_config<uint64_t>(ConfigKey::SAMPLERATE);
+ } catch (Error& e) {
+ // Do nothing
+ }
lock_guard<recursive_mutex> lock(data_mutex_);
lock_guard<recursive_mutex> lock(data_mutex_);