projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Stopped ruler values colliding at high zoom
[pulseview.git]
/
pv
/
sigsession.cpp
diff --git
a/pv/sigsession.cpp
b/pv/sigsession.cpp
index 8ab7dab845708a1cc1c818e549096a1807b647b3..55b33087a3dbd5b2533df32001efe8836b934974 100644
(file)
--- a/
pv/sigsession.cpp
+++ b/
pv/sigsession.cpp
@@
-29,6
+29,8
@@
#include <assert.h>
#include <assert.h>
+#include <QDebug>
+
using namespace boost;
using namespace std;
using namespace boost;
using namespace std;
@@
-77,6
+79,21
@@
void SigSession::start_capture(struct sr_dev_inst *sdi,
{
stop_capture();
{
stop_capture();
+ // Check that at least one probe is enabled
+ const GSList *l;
+ for (l = sdi->probes; l; l = l->next) {
+ sr_probe *const probe = (sr_probe*)l->data;
+ assert(probe);
+ if (probe->enabled)
+ break;
+ }
+
+ if (!l) {
+ error_handler(tr("No probes enabled."));
+ return;
+ }
+
+ // Begin the session
_sampling_thread.reset(new boost::thread(
&SigSession::sample_thread_proc, this, sdi,
record_length, error_handler));
_sampling_thread.reset(new boost::thread(
&SigSession::sample_thread_proc, this, sdi,
record_length, error_handler));
@@
-244,7
+261,7
@@
void SigSession::feed_in_header(const sr_dev_inst *sdi)
case SR_PROBE_ANALOG:
signal = shared_ptr<view::Signal>(
new view::AnalogSignal(probe->name,
case SR_PROBE_ANALOG:
signal = shared_ptr<view::Signal>(
new view::AnalogSignal(probe->name,
- _analog_data));
+ _analog_data
, probe->index
));
break;
}
break;
}
@@
-277,10
+294,15
@@
void SigSession::feed_in_meta(const sr_dev_inst *sdi,
void SigSession::feed_in_logic(const sr_datafeed_logic &logic)
{
lock_guard<mutex> lock(_data_mutex);
void SigSession::feed_in_logic(const sr_datafeed_logic &logic)
{
lock_guard<mutex> lock(_data_mutex);
- if (!_cur_logic_snapshot)
+
+ if (!_logic_data)
{
{
- assert(_logic_data);
+ qDebug() << "Unexpected logic packet";
+ return;
+ }
+ if (!_cur_logic_snapshot)
+ {
// Create a new data snapshot
_cur_logic_snapshot = shared_ptr<data::LogicSnapshot>(
new data::LogicSnapshot(logic));
// Create a new data snapshot
_cur_logic_snapshot = shared_ptr<data::LogicSnapshot>(
new data::LogicSnapshot(logic));
@@
-298,10
+320,15
@@
void SigSession::feed_in_logic(const sr_datafeed_logic &logic)
void SigSession::feed_in_analog(const sr_datafeed_analog &analog)
{
lock_guard<mutex> lock(_data_mutex);
void SigSession::feed_in_analog(const sr_datafeed_analog &analog)
{
lock_guard<mutex> lock(_data_mutex);
- if (!_cur_analog_snapshot)
+
+ if(!_analog_data)
{
{
- assert(_analog_data);
+ qDebug() << "Unexpected analog packet";
+ return; // This analog packet was not expected.
+ }
+ if (!_cur_analog_snapshot)
+ {
// Create a new data snapshot
_cur_analog_snapshot = shared_ptr<data::AnalogSnapshot>(
new data::AnalogSnapshot(analog));
// Create a new data snapshot
_cur_analog_snapshot = shared_ptr<data::AnalogSnapshot>(
new data::AnalogSnapshot(analog));