Hi Martin and Nick

Thanks for your answers. I overwrite the start method proposed for Martin
and works in a suitable and simple way.

Thank you so much.
Regards
Isaac.

El mié., 18 nov. 2020 a las 1:27, Martin Lülf (<m...@mluelf.de>) escribió:

> Dear Isaac,
>
> you can overwrite the start method of gr::block
>
> https://www.gnuradio.org/doc/doxygen/classgr_1_1block.html#a7f58745d1374b30a7b866406dc97850f
>
> This function will be called once the processing starts.
>
> Yours
> Martin
>
>
> On 2020-11-18 02:35, isaac mario tupac davila wrote:
> > Hi Marcus
> >
> > Thanks for your answer. I am restructuring the design of my OOT block.
> >
> > I'd like to ask a last question about it...I am trying to send some
> > commands (array of bytes) to an external hardware only ONCE before
> > starting with my real time data acquisition . The problem is that if I
> > implement the sending of the commands in the general work of my block,
> > the commands will be sent each time the general work finishes and starts
> > again. My solution proposed is to begin the execution of my flowgraph
> > and send an external signal (specificallykill -SIGIO PID) from terminal
> > to call the implemented method which sends the commands, so that my
> > general work will only focus on the data acquisition and I will send the
> > commands only once.
> >
> > My question is: Is there a facility or tool that GNU Radio gives me to
> > solve this situation? There should be a more suitable solution.
> >
> > Any help or recommendation would be appreciated.
> > Thanks
> >
> > Regards
> > Isaac.
> >
> >
> >
> > El dom., 15 nov. 2020 a las 13:50, Marcus Müller (<mmuel...@gnuradio.org
> > <mailto:mmuel...@gnuradio.org>>) escribió:
> >
> >     Hello,
> >
> >     On 15.11.20 06:26, isaac mario tupac davila wrote:
> >      > Hello
> >      >
> >      > I'm Isaac.
> >
> >     Hi Isaac, nice having you.
> >
> >      > I have a question about threads..... I've created three
> >      > threads and I want to pass real data from one thread to the next
> >     block
> >      > directly without returning to the general work method.
> >
> >     That sounds like a misguided design approach. Please don't do that.
> >
> >     The work function is meant to be seen as atomically processing a bit
> of
> >     data from its input to its output.
> >
> >     If you need asynchronous messaging, then use the msg_passing
> facilities.
> >     These make sure you don't change the state of the block while its
> >     general_work is executing.
> >
> >      > I could give
> >      > value to the out array in the thread but for some reason the data
> >      > doesn't pass to the next block. I am not sure if it's because I
> >     didn't
> >      > put: return noutput_items in the thread,
> >
> >     What you describe as thread makes no sense – the way GNU Radio is,
> >     there's exactly one thread executing a block's general_work at a
> time,
> >     and that's the thread of the block_executor. And `return` ends that
> >     execution; that's how C++ works.
> >
> >      > as normally this is in the
> >      > general work method... I also add that the function is defined in
> the
> >      > thread as void*function and I defined the out array as a
> >     complex<short>*.
> >      >
> >      > Any help would be appreciated.
> >
> >     I'm afraid there's something not GNU Radio-compatible in the way
> you've
> >     architected your system, but we sadly don't know your system well
> enough
> >     to comment on what to change.
> >
> >     Best regards,
> >     Marcus
> >
>
>

Reply via email to