1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-09-11 07:16:05 +00:00

Fixed extra data source

This commit is contained in:
Victor Castillo
2024-08-05 10:43:13 +02:00
parent 3387be636b
commit c3bdc6a03b
2 changed files with 6 additions and 6 deletions

View File

@@ -36,7 +36,7 @@ ExtraDataSource::ExtraDataSource(
repeat), repeat),
offset_in_samples_(offset_in_samples), offset_in_samples_(offset_in_samples),
sample_period_(sample_period), sample_period_(sample_period),
last_tagged_sample_(offset_in_samples_) next_tagged_sample_(offset_in_samples_)
{ {
if (io_signature->min_streams() != 1 and io_signature->max_streams() != 1) if (io_signature->min_streams() != 1 and io_signature->max_streams() != 1)
{ {
@@ -67,14 +67,14 @@ int ExtraDataSource::work(int noutput_items,
const int item_size = input_signature()->sizeof_stream_item(ch); const int item_size = input_signature()->sizeof_stream_item(ch);
std::memcpy(output_items[ch], input_items[ch], noutput_items * item_size); std::memcpy(output_items[ch], input_items[ch], noutput_items * item_size);
const uint64_t total_items_written = nitems_written(ch); const uint64_t total_items_written = nitems_written(ch) + noutput_items;
if (total_items_written >= sample_period_ + last_tagged_sample_) if (total_items_written >= next_tagged_sample_)
{ {
for (uint64_t sample = last_tagged_sample_ + sample_period_; sample < total_items_written; sample += sample_period_) for (uint64_t sample = next_tagged_sample_; sample < total_items_written; sample += sample_period_)
{ {
auto extra_data_item = get_next_item(); auto extra_data_item = get_next_item();
add_item_tag(ch, sample, pmt::mp("extra_data"), pmt::init_u8vector(extra_data_item.size(), extra_data_item)); add_item_tag(ch, sample, pmt::mp("extra_data"), pmt::init_u8vector(extra_data_item.size(), extra_data_item));
last_tagged_sample_ = sample; next_tagged_sample_ += sample_period_;
} }
} }

View File

@@ -63,7 +63,7 @@ private:
std::size_t offset_in_samples_; std::size_t offset_in_samples_;
std::size_t sample_period_; std::size_t sample_period_;
std::size_t last_tagged_sample_; std::size_t next_tagged_sample_;
}; };