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:
@@ -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_;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user