2
0
forked from Ivasoft/DSView

get a right capture time for logic with loop mode

This commit is contained in:
dreamsource-tai
2024-07-29 17:10:23 +08:00
parent e0976ae8e7
commit 9aaebe56cf
3 changed files with 9 additions and 1 deletions

View File

@@ -104,6 +104,7 @@ namespace pv
_is_triged = false;
_dso_status_valid = false;
_is_task_end = false;
_capture_work_time = 0;
_data_list.push_back(new SessionData());
_data_list.push_back(new SessionData());
@@ -1476,7 +1477,7 @@ namespace pv
if (mode == LOGIC){
auto logic_data = _capture_data->get_logic();
if (is_loop_mode() && logic_data->get_loop_offset() > 0){
uint64_t milliseconds = logic_data->get_ring_sample_count() / 1000000;
uint64_t milliseconds = _capture_work_time / 1000000;
QDateTime sessionTime = QDateTime::currentDateTime();
sessionTime = sessionTime.addMSecs(-milliseconds);
set_session_time(sessionTime);

View File

@@ -455,6 +455,10 @@ public:
void ProcessPowerEvent(bool bEnterSleep);
inline void set_capture_work_time(uint64_t tm){
_capture_work_time = tm;
}
private:
void set_cur_samplelimits(uint64_t samplelimits);
void set_cur_snap_samplerate(uint64_t samplerate);
@@ -623,6 +627,7 @@ private:
IDecoderPannel *_decoder_pannel;
sr_status _dso_status;
bool _dso_status_valid;
uint64_t _capture_work_time;
private:
// TODO: This should not be necessary. Multiple concurrent

View File

@@ -792,6 +792,8 @@ namespace pv
_sample_rate.currentIndex())
.value<uint64_t>();
_session->set_capture_work_time((uint64_t)sample_duration);
if (_device_agent->have_instance())
{
if (sample_rate != _device_agent->get_sample_rate())