X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fdata%2Fsignalbase.cpp;h=578d908f8d52a036b4e5c9f4a553a34865264bb3;hb=9431e2d3d256f3602c3637847a8ec3ad3fdcd590;hp=104243b11db8a168ef24d1e9ed021f4c949958d7;hpb=144e72c9ec677e7df35d37d7de6e8a18bb3f2ba1;p=pulseview.git diff --git a/pv/data/signalbase.cpp b/pv/data/signalbase.cpp index 104243b1..578d908f 100644 --- a/pv/data/signalbase.cpp +++ b/pv/data/signalbase.cpp @@ -123,7 +123,8 @@ SignalBase::SignalBase(shared_ptr channel, ChannelType channel_ group_(nullptr), conversion_type_(NoConversion), min_value_(0), - max_value_(0) + max_value_(0), + error_message_("") { if (channel_) { internal_name_ = QString::fromStdString(channel_->name()); @@ -258,6 +259,11 @@ QColor SignalBase::bgcolor() const return bgcolor_; } +QString SignalBase::get_error_message() const +{ + return error_message_; +} + void SignalBase::set_data(shared_ptr data) { if (data_) { @@ -298,11 +304,17 @@ void SignalBase::clear_sample_data() shared_ptr SignalBase::analog_data() const { + if (!data_) + return nullptr; + return dynamic_pointer_cast(data_); } shared_ptr SignalBase::logic_data() const { + if (!data_) + return nullptr; + shared_ptr result = dynamic_pointer_cast(data_); if (((conversion_type_ == A2LConversionByThreshold) || @@ -824,6 +836,15 @@ void SignalBase::start_conversion(bool delayed_start) conversion_thread_ = std::thread(&SignalBase::conversion_thread_proc, this); } +void SignalBase::set_error_message(QString msg) +{ + error_message_ = msg; + // TODO Emulate noquote() + qDebug().nospace() << name() << ": " << msg; + + error_message_changed(msg); +} + void SignalBase::stop_conversion() { // Stop conversion so we can restart it from the beginning