Hello again, Marcus.
I can collect the data using Vector Sink, but it always collects the data because there
are no open and close commands. I can never stop Vector Sink.
On the other hand, I tried considering the scheme you suggested. The problem is that
even if I reset the head block with the "tb.blocks_head_0.reset()" command, it doesn't
work again. The receiver turns itself off and I cannot have the process repeated.
I am sharing all the links with you below.
self.connect((self.analog_sig_source_x_0, 0), (self.uhd_usrp_sink_0, 0))
self.connect((self.uhd_usrp_source_0, 0), (self.blocks_stream_to_vector_0_0_0,
0))
self.connect((self.blocks_stream_to_vector_0_0_0, 0), (self.fft_vxx_0, 0))
self.connect((self.fft_vxx_0, 0), (self.blocks_head_0, 0))
self.connect((self.blocks_head_0, 0), (self.blocks_vector_to_stream_0, 0))
self.connect((self.blocks_vector_to_stream_0, 0),
(self.blocks_multiply_const_xx_0, 0))
self.connect((self.blocks_multiply_const_xx_0, 0), (self.blocks_skiphead_0, 0))
self.connect((self.blocks_skiphead_0, 0), (self.blocks_keep_one_in_n_0, 0))
self.connect((self.blocks_keep_one_in_n_0, 0),
(self.blocks_complex_to_mag_squared_0, 0))
self.connect((self.blocks_complex_to_mag_squared_0, 0),
(self.blocks_nlog10_ff_0, 0))
self.connect((self.blocks_nlog10_ff_0, 0), (self.blocks_max_xx_0, 0))
self.connect((self.blocks_max_xx_0, 0), (self.blocks_file_sink_0, 0))
# self.connect((self.blocks_nlog10_ff_0, 0), (self.blocks_vector_sink_x_0, 0))
What do I need to perform the transaction without the head block receiver ever shutting
down?
On the other hand, can I keep Vector Sink on or off whenever I want with the connect and
disconnect commands?
Marcus Müller <mmuel...@gnuradio.org>, 9 Ağu 2023 Çar, 12:40 tarihinde şunu
yazdı:
Hey Henry,
I'm forwarding this to the mailing list, so that others can have a look at
it as well!
Let me quickly address a few things:
On 08.08.23 21:32, Henry Powell wrote:
> The flow graph starts. I collect data and save it to a file with
file_sink. I read
the
> file and get the maximum value from the file (differently, I can do this
with keep
1 in n,
> but I would be happy if we proceed through the current situation), then I
am
saving the
> maximum value in a list from the data I have saved in the file. I reset
the file
with the
> file_sink open and close commands.
Interesting! How do you know when to open / close? I ask because this
sounds a bit
difficult, as, depending on the blocks with which you capture and process
your data,
there
might still be samples "in flight" after your collection finishes.
> I repeat this maybe 2000 times, varying from
> measurement to measurement. After recording all the maximum values in a
list, the
flow
> graph terminates itself.
>
> Writing data to a file and reading from there makes me lose speed. I am
looking
for an
> alternative solution to it.
Ah, what about this concept:
┌───────────┐
┌────────────┐ ┌──────────┐ │Make Chunks│ ┌─────────┐ ┌──────┐
┌─────────┐
│ │ │ │ │of constant│ │Find max-│ │ Head
│ │
│
│Data Capture│───►│Processing│──►│ "single- │───►│imum per │───►│
│───►│File Sink│
│ │ │ │ │experiment"│ │ chunk │ │N=2000│
│
│
└────────────┘ └──────────┘ │ size │ └─────────┘ └──────┘
└─────────┘
└───────────┘
Instead of "taking the data out of GNU Radio" in an asynchronous manner,
you could look
for the maximum within the framework of GNU Radio itself. That solves all
the file
handling overhead.
You can also still save all your experimental data to a file for later
analysis
(just add
*another* File Sink, after "Processing" in parallel with "Make Chunks…").
> If you're saying that I can do it with a vector sink block, I'm trying it
right
now. I
> will let you know the results tomorrow.
Well, the Vector Sink would be easier than the File Sink, but as sketched
above I
think a
different solution might be preferable.
> Thank you for your reply. Have a nice day.
You have good days, as well!
Marcus
> Marcus Müller <mmuel...@gnuradio.org <mailto:mmuel...@gnuradio.org>>, 8
Ağu 2023 Sal,
> 11:55 tarihinde şunu yazdı:
>
> Hi Henry,
>
> that sounds like the description of the Vector Sink block!
>
> But in all honesty, maybe you want to take a different approach
altogether; really
> depends
> on when during the life cycle of a flow graph you need that data.
Could you maybe
> describe
> how often and when you want to get data from your GNU Radio flowgraph?
>
> Best regards,
> Marcus
>
> On 08.08.23 07:26, Henry Powell wrote:
> > Hello, at the end of my grc I use file sink and then, I read the
data from
the file. I
> > repeat this process so many times. My problem is that writing to
files and
reading
> from
> > them takes too much time, approximately 120ms. I know this does
not seem
too much but
> > for my application it's too much. So, I want to append data to a
list and
get from
> there.
> >
> > I tried writing an embedded python block via this link:
> > https://wiki.gnuradio.org/index.php/Embedded_Python_Block
> <https://wiki.gnuradio.org/index.php/Embedded_Python_Block> but i
failed.
> > Is there any example embedded python block you wrote about
before? Or a
different
> solution?
> >
> > If you can help me, I would really appreciate it.
>