Forum: GNU Radio Consuming block of data in python block

Posted by maiconkist (Guest)
on 2013-01-29 02:41
(Received via mailing list)
Hi list,

I'm trying to implement my first GNURadio block in python.

I followed the how_to_square_ff tutorial.

In that block, each input generates an output. Now what I want is to 
change
this behavior so that the how_to_square_ff receives a block of data (512 
for
example) and output only a single value (I know it is strange, but is 
only
for learning purpose).

How I declare this in my block ?
Now the declaration is  as follow:

    gr.sync_block.__init__(
        self,
        name = "my_block",
        in_sig =  [numpy.float32], # Input signature: 1 float at a time 
(want
512)
        out_sig = [numpy.float32], # Output signature: 1 float at a time
        )

Thanks



--
View this message in context: 
http://gnuradio.4.n7.nabble.com/Consuming-block-of...
Sent from the GnuRadio mailing list archive at Nabble.com.
Posted by Sreeraj Rajendran (Guest)
on 2013-01-29 07:01
(Received via mailing list)
As Josh explained in [1] input can be anything that you can represent as 
a numpy data type.

Try using something like

gr.block.__init__(self, name="my block",

 in_sig=[numpy.dtype((numpy.float32,2))],

 out_sig=[numpy.float32])


Also go through fixed/arbitrary ratio blocks in [2] for implementing 
blocks with different rate.


[1]http://www.ruby-forum.com/topic/4407846
[2]https://github.com/guruofquality/grextras/wiki/Blo...


-Sreeraj



________________________________
 From: maiconkist <maiconkist@gmail.com>
To: Discuss-gnuradio@gnu.org
Sent: Tuesday, 29 January 2013 7:10 AM
Subject: [Discuss-gnuradio] Consuming block of data in python block

Hi list,

I'm trying to implement my first GNURadio block in python.

I followed the how_to_square_ff tutorial.

In that block, each input generates an output. Now what I want is to 
change
this behavior so that the how_to_square_ff receives a block of data (512 
for
example) and output only a single value (I know it is strange, but is 
only
for learning purpose).

How I declare this in my block ?
Now the declaration is as follow:

  gr.sync_block.__init__(
    self,
    name = "my_block",
    in_sig = [numpy.float32], # Input signature: 1 float at a time (want
512)
    out_sig = [numpy.float32], # Output signature: 1 float at a time
    )

Thanks



--
View this message in context: 
http://gnuradio.4.n7.nabble.com/Consuming-block-of...
Sent from the GnuRadio mailing list archive at Nabble.com.
Posted by Martin Braun (CEL) (Guest)
on 2013-01-29 09:04
(Received via mailing list)
On Tue, Jan 29, 2013 at 02:00:15PM +0800, Sreeraj Rajendran wrote:
>                   out_sig=[numpy.float32])
>
>
>
> Also go through fixed/arbitrary ratio blocks in [2] for implementing blocks
> with different rate.

$ gr_modtool -t decimator -l python BLOCKNAME

will take you there.

M

--
Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)

Dipl.-Ing. Martin Braun
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-43790
Fax: +49 721 608-46071
www.cel.kit.edu

KIT -- University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.