aboutsummaryrefslogtreecommitdiffstats
path: root/AlignSample.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'AlignSample.cpp')
-rw-r--r--AlignSample.cpp28
1 files changed, 18 insertions, 10 deletions
diff --git a/AlignSample.cpp b/AlignSample.cpp
index 15dda60..dbb68c7 100644
--- a/AlignSample.cpp
+++ b/AlignSample.cpp
@@ -53,10 +53,6 @@ namespace fftw {
void AlignSample::push_tx_samples(complexf* samps, size_t len, double first_sample_time)
{
- if (first_sample_time > 5.1 and first_sample_time < 5.5) {
- fwrite(samps, sizeof(complexf), len, fd_tx);
- }
-
std::lock_guard<std::mutex> lock(m_mutex);
std::copy(samps, samps + len, std::back_inserter(m_txsamples));
@@ -67,16 +63,28 @@ void AlignSample::push_tx_samples(complexf* samps, size_t len, double first_samp
void AlignSample::push_rx_samples(complexf* samps, size_t len, double first_sample_time)
{
- if (first_sample_time > 5.1 and first_sample_time < 5.5) {
- fwrite(samps, sizeof(complexf), len, fd_rx);
- }
-
std::lock_guard<std::mutex> lock(m_mutex);
- std::copy(samps, samps + len, std::back_inserter(m_rxsamples));
+ if (m_first_rx_sample_time == 0 and first_sample_time != 0) {
+ std::copy(samps, samps + len, std::back_inserter(m_rxsamples));
- if (m_first_rx_sample_time == 0) {
m_first_rx_sample_time = first_sample_time;
+ m_num_rx_samples_dropped = 0;
+ }
+ else if (m_first_rx_sample_time != 0) {
+ // We have previously received samples with valid timestamp
+ std::copy(samps, samps + len, std::back_inserter(m_rxsamples));
}
+ else if (first_sample_time == 0) {
+ MDEBUG("RX timestamp missing\n");
+ }
+}
+
+void AlignSample::reset_rx()
+{
+ std::lock_guard<std::mutex> lock(m_mutex);
+ m_first_rx_sample_time = 0;
+ m_num_rx_samples_dropped = 0;
+ m_rxsamples.clear();
}
bool AlignSample::ready(size_t min_samples)