MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / TrimQueue

Method TrimQueue

lib/mdflib/mdflib/src/samplequeue.cpp:62–86  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

60}
61
62void SampleQueue::TrimQueue() {
63 // Last Time - First Time <= Pre-trig time. Note that we must include start
64 // sample, so ignore the last sample
65 const auto start_time = writer_.StartTime();
66 const auto pre_trig_time = writer_.PreTrigTimeNs();
67
68 while (queue_.size() > 1) {
69
70 const auto next_time = queue_[1].timestamp;
71 const auto last_time = queue_.back().timestamp;
72 if (start_time > 0) {
73 // Measurement started
74 if (next_time >= start_time - pre_trig_time) {
75 break;
76 }
77 } else {
78 // Measurement not started. The queue shall be at least the pre-trig time
79 const auto buffer_time = last_time - next_time;
80 if (buffer_time <= pre_trig_time) {
81 break;
82 }
83 }
84 PopSample();
85 }
86}
87
88void SampleQueue::SaveQueue(std::unique_lock<std::mutex>& lock) {
89 // Save uncompressed data in last DG3 block

Callers 1

WorkThreadMethod · 0.45

Calls 3

PreTrigTimeNsMethod · 0.80
StartTimeMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected