![]() |
PulseView
unreleased development snapshot
A Qt-based sigrok GUI
|
#include <decodesignal.hpp>
Signals | |
void | decoder_stacked (void *decoder) |
decoder is of type decode::Decoder* More... | |
void | decoder_removed (void *decoder) |
decoder is of type decode::Decoder* More... | |
void | new_annotations () |
void | new_binary_data (unsigned int segment_id, void *decoder, unsigned int bin_class_id) |
void | decode_reset () |
void | decode_finished () |
void | channels_updated () |
void | annotation_visibility_changed () |
![]() | |
void | enabled_changed (const bool &value) |
void | name_changed (const QString &name) |
void | color_changed (const QColor &color) |
void | error_message_changed (QString msg) |
void | conversion_type_changed (const ConversionType t) |
void | samples_cleared () |
void | samples_added (uint64_t segment_id, uint64_t start_sample, uint64_t end_sample) |
void | min_max_changed (float min, float max) |
Public Member Functions | |
DecodeSignal (pv::Session &session) | |
virtual | ~DecodeSignal () |
virtual void | set_name (QString name) |
virtual void | set_color (QColor color) |
bool | is_decode_signal () const |
const vector< shared_ptr< Decoder > > & | decoder_stack () const |
void | stack_decoder (const srd_decoder *decoder, bool restart_decode=true) |
void | remove_decoder (int index) |
bool | toggle_decoder_visibility (int index) |
void | reset_decode (bool shutting_down=false) |
void | begin_decode () |
void | pause_decode () |
void | resume_decode () |
bool | is_paused () const |
const vector< decode::DecodeChannel > | get_channels () const |
void | auto_assign_signals (const shared_ptr< Decoder > dec) |
void | assign_signal (const uint16_t channel_id, shared_ptr< const SignalBase > signal) |
int | get_assigned_signal_count () const |
void | update_output_signals () |
void | set_initial_pin_state (const uint16_t channel_id, const int init_state) |
virtual double | get_samplerate () const |
const pv::util::Timestamp | start_time () const |
int64_t | get_working_sample_count (uint32_t segment_id) const |
int64_t | get_decoded_sample_count (uint32_t segment_id, bool include_processing) const |
vector< Row * > | get_rows (bool visible_only=false) |
vector< const Row * > | get_rows (bool visible_only=false) const |
uint64_t | get_annotation_count (const Row *row, uint32_t segment_id) const |
void | get_annotation_subset (deque< const Annotation * > &dest, const Row *row, uint32_t segment_id, uint64_t start_sample, uint64_t end_sample) const |
void | get_annotation_subset (deque< const Annotation * > &dest, uint32_t segment_id, uint64_t start_sample, uint64_t end_sample) const |
uint32_t | get_binary_data_chunk_count (uint32_t segment_id, const Decoder *dec, uint32_t bin_class_id) const |
void | get_binary_data_chunk (uint32_t segment_id, const Decoder *dec, uint32_t bin_class_id, uint32_t chunk_id, const vector< uint8_t > **dest, uint64_t *size) |
void | get_merged_binary_data_chunks_by_sample (uint32_t segment_id, const Decoder *dec, uint32_t bin_class_id, uint64_t start_sample, uint64_t end_sample, vector< uint8_t > *dest) const |
void | get_merged_binary_data_chunks_by_offset (uint32_t segment_id, const Decoder *dec, uint32_t bin_class_id, uint64_t start, uint64_t end, vector< uint8_t > *dest) const |
const DecodeBinaryClass * | get_binary_data_class (uint32_t segment_id, const Decoder *dec, uint32_t bin_class_id) const |
const deque< const Annotation * > * | get_all_annotations_by_segment (uint32_t segment_id) const |
virtual void | save_settings (QSettings &settings) const |
virtual void | restore_settings (QSettings &settings) |
![]() | |
SignalBase (shared_ptr< sigrok::Channel > channel, ChannelType channel_type) | |
virtual | ~SignalBase () |
shared_ptr< sigrok::Channel > | channel () const |
bool | is_generated () const |
bool | enabled () const |
void | set_enabled (bool value) |
ChannelType | type () const |
unsigned int | index () const |
void | set_index (unsigned int index) |
unsigned int | logic_bit_index () const |
void | set_group (SignalGroup *group) |
SignalGroup * | group () const |
QString | name () const |
QString | internal_name () const |
void | set_internal_name (QString internal_name) |
QString | display_name () const |
QColor | color () const |
QColor | bgcolor () const |
virtual QString | get_error_message () const |
void | set_data (shared_ptr< pv::data::SignalData > data) |
void | clear_sample_data () |
shared_ptr< pv::data::Analog > | analog_data () const |
shared_ptr< pv::data::Logic > | logic_data () const |
shared_ptr< pv::data::SignalData > | data () const |
bool | segment_is_complete (uint32_t segment_id) const |
bool | has_samples () const |
ConversionType | get_conversion_type () const |
void | set_conversion_type (ConversionType t) |
map< QString, QVariant > | get_conversion_options () const |
bool | set_conversion_option (QString key, QVariant value) |
vector< double > | get_conversion_thresholds (const ConversionType t=NoConversion, const bool always_custom=false) const |
vector< pair< QString, int > > | get_conversion_presets () const |
ConversionPreset | get_current_conversion_preset () const |
void | set_conversion_preset (ConversionPreset id) |
void | start_conversion (bool delayed_start=false) |
Private Slots | |
void | on_capture_state_changed (int state) |
void | on_data_cleared () |
void | on_data_received () |
void | on_input_segment_completed () |
void | on_annotation_visibility_changed () |
Private Member Functions | |
bool | all_input_segments_complete (uint32_t segment_id) const |
uint32_t | get_input_segment_count () const |
double | get_input_samplerate (uint32_t segment_id) const |
Decoder * | get_decoder_by_instance (const srd_decoder *const srd_dec) |
void | update_channel_list () |
void | commit_decoder_channels () |
void | mux_logic_samples (uint32_t segment_id, const int64_t start, const int64_t end) |
void | logic_mux_proc () |
void | decode_data (const int64_t abs_start_samplenum, const int64_t sample_count, const shared_ptr< const LogicSegment > input_segment) |
void | decode_proc () |
void | start_srd_session () |
void | terminate_srd_session () |
void | stop_srd_session () |
void | connect_input_notifiers () |
void | disconnect_input_notifiers () |
void | create_decode_segment () |
Static Private Member Functions | |
static void | annotation_callback (srd_proto_data *pdata, void *decode_signal) |
static void | binary_callback (srd_proto_data *pdata, void *decode_signal) |
static void | logic_output_callback (srd_proto_data *pdata, void *decode_signal) |
Private Attributes | |
pv::Session & | session_ |
vector< decode::DecodeChannel > | channels_ |
struct srd_session * | srd_session_ |
shared_ptr< Logic > | logic_mux_data_ |
uint32_t | logic_mux_unit_size_ |
bool | logic_mux_data_invalid_ |
vector< shared_ptr< Decoder > > | stack_ |
bool | stack_config_changed_ |
deque< DecodeSegment > | segments_ |
uint32_t | current_segment_id_ |
mutex | input_mutex_ |
mutex | output_mutex_ |
mutex | decode_pause_mutex_ |
mutex | logic_mux_mutex_ |
condition_variable | decode_input_cond_ |
condition_variable | decode_pause_cond_ |
condition_variable | logic_mux_cond_ |
std::thread | decode_thread_ |
std::thread | logic_mux_thread_ |
atomic< bool > | decode_interrupt_ |
atomic< bool > | logic_mux_interrupt_ |
bool | decode_paused_ |
map< const srd_decoder *, shared_ptr< Logic > > | output_logic_ |
map< const srd_decoder *, vector< uint8_t > > | output_logic_muxed_data_ |
vector< shared_ptr< SignalBase > > | output_signals_ |
Static Private Attributes | |
static const double | DecodeMargin = 1.0 |
static const double | DecodeThreshold = 0.2 |
static const int64_t | DecodeChunkLength = 256 * 1024 |
Definition at line 93 of file decodesignal.hpp.
pv::data::DecodeSignal::DecodeSignal | ( | pv::Session & | session | ) |
|
virtual |
|
private |
Definition at line 940 of file decodesignal.cpp.
|
staticprivate |
Definition at line 1608 of file decodesignal.cpp.
|
signal |
void pv::data::DecodeSignal::assign_signal | ( | const uint16_t | channel_id, |
shared_ptr< const SignalBase > | signal | ||
) |
void pv::data::DecodeSignal::auto_assign_signals | ( | const shared_ptr< Decoder > | dec | ) |
Definition at line 295 of file decodesignal.cpp.
void pv::data::DecodeSignal::begin_decode | ( | ) |
Definition at line 206 of file decodesignal.cpp.
|
staticprivate |
Definition at line 1713 of file decodesignal.cpp.
|
signal |
|
private |
|
private |
Definition at line 1554 of file decodesignal.cpp.
|
private |
|
private |
Definition at line 1299 of file decodesignal.cpp.
|
signal |
|
private |
Definition at line 1348 of file decodesignal.cpp.
|
signal |
|
signal |
decoder is of type decode::Decoder*
Definition at line 234 of file moc_decodesignal.cpp.
const vector< shared_ptr< Decoder > > & pv::data::DecodeSignal::decoder_stack | ( | ) | const |
|
signal |
decoder is of type decode::Decoder*
Definition at line 227 of file moc_decodesignal.cpp.
|
private |
Definition at line 1573 of file decodesignal.cpp.
const deque< const Annotation * > * pv::data::DecodeSignal::get_all_annotations_by_segment | ( | uint32_t | segment_id | ) | const |
uint64_t pv::data::DecodeSignal::get_annotation_count | ( | const Row * | row, |
uint32_t | segment_id | ||
) | const |
void pv::data::DecodeSignal::get_annotation_subset | ( | deque< const Annotation * > & | dest, |
const Row * | row, | ||
uint32_t | segment_id, | ||
uint64_t | start_sample, | ||
uint64_t | end_sample | ||
) | const |
Extracts annotations from a single row into a vector. Note: The annotations may be unsorted and only annotations that fully fit into the sample range are considered.
Definition at line 582 of file decodesignal.cpp.
void pv::data::DecodeSignal::get_annotation_subset | ( | deque< const Annotation * > & | dest, |
uint32_t | segment_id, | ||
uint64_t | start_sample, | ||
uint64_t | end_sample | ||
) | const |
Extracts annotations from all rows into a vector. Note: The annotations may be unsorted and only annotations that fully fit into the sample range are considered.
Definition at line 604 of file decodesignal.cpp.
int pv::data::DecodeSignal::get_assigned_signal_count | ( | ) | const |
void pv::data::DecodeSignal::get_binary_data_chunk | ( | uint32_t | segment_id, |
const Decoder * | dec, | ||
uint32_t | bin_class_id, | ||
uint32_t | chunk_id, | ||
const vector< uint8_t > ** | dest, | ||
uint64_t * | size | ||
) |
Definition at line 626 of file decodesignal.cpp.
uint32_t pv::data::DecodeSignal::get_binary_data_chunk_count | ( | uint32_t | segment_id, |
const Decoder * | dec, | ||
uint32_t | bin_class_id | ||
) | const |
const DecodeBinaryClass * pv::data::DecodeSignal::get_binary_data_class | ( | uint32_t | segment_id, |
const Decoder * | dec, | ||
uint32_t | bin_class_id | ||
) | const |
const vector< decode::DecodeChannel > pv::data::DecodeSignal::get_channels | ( | ) | const |
Definition at line 290 of file decodesignal.cpp.
int64_t pv::data::DecodeSignal::get_decoded_sample_count | ( | uint32_t | segment_id, |
bool | include_processing | ||
) | const |
Returns the number of processed samples. Newly generated annotations will have sample numbers greater than this.
If include_processing is true, this number will include the ones being currently processed (in case the decoder stack is running). In this case, newly generated annotations will have sample numbers smaller than this.
Definition at line 514 of file decodesignal.cpp.
|
private |
|
private |
Definition at line 985 of file decodesignal.cpp.
|
private |
Definition at line 964 of file decodesignal.cpp.
void pv::data::DecodeSignal::get_merged_binary_data_chunks_by_offset | ( | uint32_t | segment_id, |
const Decoder * | dec, | ||
uint32_t | bin_class_id, | ||
uint64_t | start, | ||
uint64_t | end, | ||
vector< uint8_t > * | dest | ||
) | const |
void pv::data::DecodeSignal::get_merged_binary_data_chunks_by_sample | ( | uint32_t | segment_id, |
const Decoder * | dec, | ||
uint32_t | bin_class_id, | ||
uint64_t | start_sample, | ||
uint64_t | end_sample, | ||
vector< uint8_t > * | dest | ||
) | const |
Definition at line 643 of file decodesignal.cpp.
vector< Row * > pv::data::DecodeSignal::get_rows | ( | bool | visible_only = false | ) |
vector< const Row * > pv::data::DecodeSignal::get_rows | ( | bool | visible_only = false | ) | const |
Definition at line 548 of file decodesignal.cpp.
|
virtual |
Returns the sample rate for this signal.
Reimplemented from pv::data::SignalBase.
Definition at line 461 of file decodesignal.cpp.
int64_t pv::data::DecodeSignal::get_working_sample_count | ( | uint32_t | segment_id | ) | const |
Returns the number of samples that can be worked on, i.e. the number of samples where samples are available for all connected channels.
Definition at line 483 of file decodesignal.cpp.
bool pv::data::DecodeSignal::is_decode_signal | ( | ) | const |
bool pv::data::DecodeSignal::is_paused | ( | ) | const |
Definition at line 285 of file decodesignal.cpp.
|
private |
Definition at line 1208 of file decodesignal.cpp.
|
staticprivate |
Definition at line 1762 of file decodesignal.cpp.
|
private |
Definition at line 1119 of file decodesignal.cpp.
|
signal |
|
signal |
|
privateslot |
|
privateslot |
Definition at line 1833 of file decodesignal.cpp.
|
privateslot |
Definition at line 1842 of file decodesignal.cpp.
|
privateslot |
Definition at line 1847 of file decodesignal.cpp.
|
privateslot |
void pv::data::DecodeSignal::pause_decode | ( | ) |
Definition at line 271 of file decodesignal.cpp.
void pv::data::DecodeSignal::remove_decoder | ( | int | index | ) |
void pv::data::DecodeSignal::reset_decode | ( | bool | shutting_down = false | ) |
Definition at line 166 of file decodesignal.cpp.
|
virtual |
Reimplemented from pv::data::SignalBase.
Definition at line 831 of file decodesignal.cpp.
void pv::data::DecodeSignal::resume_decode | ( | ) |
|
virtual |
Reimplemented from pv::data::SignalBase.
Definition at line 750 of file decodesignal.cpp.
|
virtual |
Set the color of the signal.
Reimplemented from pv::data::SignalBase.
Definition at line 83 of file decodesignal.cpp.
void pv::data::DecodeSignal::set_initial_pin_state | ( | const uint16_t | channel_id, |
const int | init_state | ||
) |
|
virtual |
Sets the name of the signal.
Reimplemented from pv::data::SignalBase.
Definition at line 76 of file decodesignal.cpp.
void pv::data::DecodeSignal::stack_decoder | ( | const srd_decoder * | decoder, |
bool | restart_decode = true |
||
) |
|
private |
Definition at line 1442 of file decodesignal.cpp.
const pv::util::Timestamp pv::data::DecodeSignal::start_time | ( | ) | const |
Definition at line 472 of file decodesignal.cpp.
|
private |
|
private |
bool pv::data::DecodeSignal::toggle_decoder_visibility | ( | int | index | ) |
|
private |
void pv::data::DecodeSignal::update_output_signals | ( | ) |
Definition at line 394 of file decodesignal.cpp.
|
private |
Definition at line 254 of file decodesignal.hpp.
|
private |
Definition at line 266 of file decodesignal.hpp.
|
mutableprivate |
Definition at line 269 of file decodesignal.hpp.
|
private |
Definition at line 273 of file decodesignal.hpp.
|
mutableprivate |
Definition at line 269 of file decodesignal.hpp.
|
mutableprivate |
Definition at line 268 of file decodesignal.hpp.
|
private |
Definition at line 275 of file decodesignal.hpp.
|
private |
Definition at line 272 of file decodesignal.hpp.
|
staticprivate |
Definition at line 100 of file decodesignal.hpp.
|
staticprivate |
Definition at line 98 of file decodesignal.hpp.
|
staticprivate |
Definition at line 99 of file decodesignal.hpp.
|
mutableprivate |
Definition at line 268 of file decodesignal.hpp.
|
mutableprivate |
Definition at line 269 of file decodesignal.hpp.
|
private |
Definition at line 258 of file decodesignal.hpp.
|
private |
Definition at line 260 of file decodesignal.hpp.
|
private |
Definition at line 273 of file decodesignal.hpp.
|
mutableprivate |
Definition at line 268 of file decodesignal.hpp.
|
private |
Definition at line 272 of file decodesignal.hpp.
|
private |
Definition at line 259 of file decodesignal.hpp.
|
private |
Definition at line 277 of file decodesignal.hpp.
|
private |
Definition at line 278 of file decodesignal.hpp.
|
mutableprivate |
Definition at line 268 of file decodesignal.hpp.
|
private |
Definition at line 279 of file decodesignal.hpp.
|
private |
Definition at line 265 of file decodesignal.hpp.
|
private |
Definition at line 252 of file decodesignal.hpp.
|
private |
Definition at line 256 of file decodesignal.hpp.
|
private |
Definition at line 262 of file decodesignal.hpp.
|
private |
Definition at line 263 of file decodesignal.hpp.