Re: Using other blocks inside OOT
Thanks for your reply On Tue, Feb 4, 2020 at 10:28 AM Sylvain Munaut <246...@gmail.com> wrote: > > Hi, > > > Now I'd like to take each message, demod it using the GFSK block which I've > > tested that it work successfully on stream, run sanity on the bits > > (preamble, trailer, FEC) and if the packet is good, send a new message with > > the bits and the original I/Q signal to the next block for further > > processing. > > > > 1. What will be the best way to do it in a flow-graph? > > 2. Is it possible to reuse code from other blocks directly/imperatively > > without connecting the block into a flow-graph? > > You can't "call" another block yourself really, unless you want to > re-implement enough of gnuradio runtime for it to run ... > > What you can do to make it transparent is make a hierarchical block > (hier_block2) that actually contains your custom block and the gfsk > block internally. Can I examine the output of the GFSK bits at this point, or should I create an additional block that drops the packets that doesn't pass sanity? > > Now for your particular application, I would have two custom blocks : > - One that detects the bursts and adds tags on the stream. I'm actually implementing this in 2 blocks, one that tags the stream with "start", "end" and "cancel" and another block that aggregates the samples between "start" and "end" that don't have "cancel" in between. Is there a better way to do it? > - You take the output of that and feed it to the GFSK demod > - Then another block that takes as input both the GFSK demod and the > output of the first block directly looks at the tags and recreates > messages by resyncing both streams. > > And then you can encapsulate all of this in a hier_block. > > Cheers, > > Sylvain
Re: Using other blocks inside OOT
Hi, > Now I'd like to take each message, demod it using the GFSK block which I've > tested that it work successfully on stream, run sanity on the bits (preamble, > trailer, FEC) and if the packet is good, send a new message with the bits and > the original I/Q signal to the next block for further processing. > > 1. What will be the best way to do it in a flow-graph? > 2. Is it possible to reuse code from other blocks directly/imperatively > without connecting the block into a flow-graph? You can't "call" another block yourself really, unless you want to re-implement enough of gnuradio runtime for it to run ... What you can do to make it transparent is make a hierarchical block (hier_block2) that actually contains your custom block and the gfsk block internally. This way your "users" only instantiate one block, but internally it contains several. Now for your particular application, I would have two custom blocks : - One that detects the bursts and adds tags on the stream. - You take the output of that and feed it to the GFSK demod - Then another block that takes as input both the GFSK demod and the output of the first block directly looks at the tags and recreates messages by resyncing both streams. And then you can encapsulate all of this in a hier_block. Cheers, Sylvain
Using other blocks inside OOT
Hi all, I'm trying to demodulate a GFSK signal in a very noisy environment, I'd like to extract packets and pack their bits together with the corresponding original I/Q signal items in a single message. I wrote a module that detect bursts that has no significant power variation (clean packets) and sends them as messages. Now I'd like to take each message, demod it using the GFSK block which I've tested that it work successfully on stream, run sanity on the bits (preamble, trailer, FEC) and if the packet is good, send a new message with the bits and the original I/Q signal to the next block for further processing. 1. What will be the best way to do it in a flow-graph? 2. Is it possible to reuse code from other blocks directly/imperatively without connecting the block into a flow-graph? Thanks, Desmond