auto segments = data->analog_segments();
try {
result = segments.at(segment_id)->is_complete();
- } catch (out_of_range) {
+ } catch (out_of_range&) {
// Do nothing
}
}
auto segments = data->logic_segments();
try {
result = segments.at(segment_id)->is_complete();
- } catch (out_of_range) {
+ } catch (out_of_range&) {
// Do nothing
}
}
return result;
}
+bool SignalBase::has_samples() const
+{
+ bool result = false;
+
+ if (channel_type_ == AnalogChannel)
+ {
+ shared_ptr<Analog> data = dynamic_pointer_cast<Analog>(data_);
+ if (data) {
+ auto segments = data->analog_segments();
+ if ((segments.size() > 0) && (segments.front()->get_sample_count() > 0))
+ result = true;
+ }
+ }
+
+ if (channel_type_ == LogicChannel)
+ {
+ shared_ptr<Logic> data = dynamic_pointer_cast<Logic>(data_);
+ if (data) {
+ auto segments = data->logic_segments();
+ if ((segments.size() > 0) && (segments.front()->get_sample_count() > 0))
+ result = true;
+ }
+ }
+
+ return result;
+}
+
SignalBase::ConversionType SignalBase::get_conversion_type() const
{
return conversion_type_;
try {
asegment = analog_data->analog_segments().at(segment_id).get();
- } catch (out_of_range) {
+ } catch (out_of_range&) {
qDebug() << "Conversion error for" << name() << ": no analog segment" \
<< segment_id << ", segments size is" << analog_data->analog_segments().size();
return;