1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-11-14 22:27:12 +00:00

Adding new a multichannel file source suitable for multifrequency captures stored in different files to avoid stream synchronization problems in post-processing

This commit is contained in:
Javier Arribas
2019-06-17 18:13:06 +02:00
parent d49959d264
commit 81ee21f8cf
6 changed files with 482 additions and 10 deletions

View File

@@ -44,8 +44,8 @@ Gnss_Sdr_Valve::Gnss_Sdr_Valve(size_t sizeof_stream_item,
uint64_t nitems,
gr::msg_queue::sptr queue,
bool stop_flowgraph) : gr::sync_block("valve",
gr::io_signature::make(1, 1, sizeof_stream_item),
gr::io_signature::make(1, 1, sizeof_stream_item)),
gr::io_signature::make(1, 20, sizeof_stream_item),
gr::io_signature::make(1, 20, sizeof_stream_item)),
d_nitems(nitems),
d_ncopied_items(0),
d_queue(std::move(queue)),
@@ -99,11 +99,17 @@ int Gnss_Sdr_Valve::work(int noutput_items,
{
return 0;
}
memcpy(output_items[0], input_items[0], n * input_signature()->sizeof_stream_item(0));
//multichannel support
for (int ch = 0; ch < output_items.size(); ch++)
{
memcpy(output_items[ch], input_items[ch], n * input_signature()->sizeof_stream_item(ch));
}
d_ncopied_items += n;
return n;
}
memcpy(output_items[0], input_items[0], noutput_items * input_signature()->sizeof_stream_item(0));
for (int ch = 0; ch < output_items.size(); ch++)
{
memcpy(output_items[ch], input_items[ch], noutput_items * input_signature()->sizeof_stream_item(ch));
}
return noutput_items;
}