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 > > > >