Re: Using other blocks inside OOT

2020-02-04 Thread Desmond F
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

2020-02-04 Thread Sylvain Munaut
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

2020-02-04 Thread Desmond Fenfe
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