Skip to content

Commit 9aaebe5

Browse files
get a right capture time for logic with loop mode
1 parent e0976ae commit 9aaebe5

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

DSView/pv/sigsession.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ namespace pv
104104
_is_triged = false;
105105
_dso_status_valid = false;
106106
_is_task_end = false;
107+
_capture_work_time = 0;
107108

108109
_data_list.push_back(new SessionData());
109110
_data_list.push_back(new SessionData());
@@ -1476,7 +1477,7 @@ namespace pv
14761477
if (mode == LOGIC){
14771478
auto logic_data = _capture_data->get_logic();
14781479
if (is_loop_mode() && logic_data->get_loop_offset() > 0){
1479-
uint64_t milliseconds = logic_data->get_ring_sample_count() / 1000000;
1480+
uint64_t milliseconds = _capture_work_time / 1000000;
14801481
QDateTime sessionTime = QDateTime::currentDateTime();
14811482
sessionTime = sessionTime.addMSecs(-milliseconds);
14821483
set_session_time(sessionTime);

DSView/pv/sigsession.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,10 @@ class SigSession:
455455

456456
void ProcessPowerEvent(bool bEnterSleep);
457457

458+
inline void set_capture_work_time(uint64_t tm){
459+
_capture_work_time = tm;
460+
}
461+
458462
private:
459463
void set_cur_samplelimits(uint64_t samplelimits);
460464
void set_cur_snap_samplerate(uint64_t samplerate);
@@ -623,6 +627,7 @@ class SigSession:
623627
IDecoderPannel *_decoder_pannel;
624628
sr_status _dso_status;
625629
bool _dso_status_valid;
630+
uint64_t _capture_work_time;
626631

627632
private:
628633
// TODO: This should not be necessary. Multiple concurrent

DSView/pv/toolbars/samplingbar.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -792,6 +792,8 @@ namespace pv
792792
_sample_rate.currentIndex())
793793
.value<uint64_t>();
794794

795+
_session->set_capture_work_time((uint64_t)sample_duration);
796+
795797
if (_device_agent->have_instance())
796798
{
797799
if (sample_rate != _device_agent->get_sample_rate())

0 commit comments

Comments
 (0)