projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add DecodeSignal and Session error logging
[pulseview.git]
/
pv
/
data
/
decodesignal.cpp
diff --git
a/pv/data/decodesignal.cpp
b/pv/data/decodesignal.cpp
index 95ea45a4e0a707f62fd2b8e6ba259dc4ebd5fc52..f5dc000169611e355e0d13c07182f81de4bffc5e 100644
(file)
--- a/
pv/data/decodesignal.cpp
+++ b/
pv/data/decodesignal.cpp
@@
-156,7
+156,10
@@
void DecodeSignal::reset_decode()
logic_mux_data_.reset();
logic_mux_data_invalid_ = true;
logic_mux_data_.reset();
logic_mux_data_invalid_ = true;
- error_message_ = QString();
+ if (!error_message_.isEmpty()) {
+ error_message_ = QString();
+ qDebug().noquote().nospace() << name() << ": Error cleared";
+ }
decode_reset();
}
decode_reset();
}
@@
-178,14
+181,14
@@
void DecodeSignal::begin_decode()
reset_decode();
if (stack_.size() == 0) {
reset_decode();
if (stack_.size() == 0) {
-
error_message_ = tr("No decoders"
);
+
set_error_message(tr("No decoders")
);
return;
}
assert(channels_.size() > 0);
if (get_assigned_signal_count() == 0) {
return;
}
assert(channels_.size() > 0);
if (get_assigned_signal_count() == 0) {
-
error_message_ = tr("There are no channels assigned to this decoder"
);
+
set_error_message(tr("There are no channels assigned to this decoder")
);
return;
}
return;
}
@@
-199,8
+202,8
@@
void DecodeSignal::begin_decode()
// Check that all decoders have the required channels
for (const shared_ptr<decode::Decoder> &dec : stack_)
if (!dec->have_required_channels()) {
// Check that all decoders have the required channels
for (const shared_ptr<decode::Decoder> &dec : stack_)
if (!dec->have_required_channels()) {
-
error_message_ =
tr("One or more required channels "
- "have not been specified");
+
set_error_message(
tr("One or more required channels "
+ "have not been specified")
)
;
return;
}
return;
}
@@
-238,7
+241,7
@@
void DecodeSignal::begin_decode()
connect_input_notifiers();
if (get_input_segment_count() == 0) {
connect_input_notifiers();
if (get_input_segment_count() == 0) {
-
error_message_ = tr("No input data"
);
+
set_error_message(tr("No input data")
);
return;
}
return;
}
@@
-582,6
+585,12
@@
void DecodeSignal::restore_settings(QSettings &settings)
begin_decode();
}
begin_decode();
}
+void DecodeSignal::set_error_message(QString msg)
+{
+ error_message_ = msg;
+ qDebug().noquote().nospace() << name() << ": " << msg;
+}
+
uint32_t DecodeSignal::get_input_segment_count() const
{
uint64_t count = std::numeric_limits<uint64_t>::max();
uint32_t DecodeSignal::get_input_segment_count() const
{
uint64_t count = std::numeric_limits<uint64_t>::max();
@@
-895,7
+904,7
@@
void DecodeSignal::decode_data(
if (srd_session_send(srd_session_, i, chunk_end, chunk,
data_size, unit_size) != SRD_OK) {
if (srd_session_send(srd_session_, i, chunk_end, chunk,
data_size, unit_size) != SRD_OK) {
-
error_message_ = tr("Decoder reported an error"
);
+
set_error_message(tr("Decoder reported an error")
);
delete[] chunk;
break;
}
delete[] chunk;
break;
}
@@
-1022,7
+1031,7
@@
void DecodeSignal::start_srd_session()
srd_decoder_inst *const di = dec->create_decoder_inst(srd_session_);
if (!di) {
srd_decoder_inst *const di = dec->create_decoder_inst(srd_session_);
if (!di) {
-
error_message_ = tr("Failed to create decoder instance"
);
+
set_error_message(tr("Failed to create decoder instance")
);
srd_session_destroy(srd_session_);
srd_session_ = nullptr;
return;
srd_session_destroy(srd_session_);
srd_session_ = nullptr;
return;