GRC problems

Hi list,

I discovered 2 problems with GRC recently.

  1. I have a custom block with a message port (with a fixed port name)
    and some stream ports which include a … definition.
    The whole thing works fine as long as I have a fixed number of ports.
    Each declared separately. But as soon as I use a nport statement GRC
    won’t display this block correctly [1]. Even worse if I enter values
    which affect the number of ports, the whole flowgraph will disappear.
    Just a grey flowgraph page.

  2. To make things easier for me (and to not create a well known kind of
    artwork) I use hier blocks. This works fine as long as I have fixed size
    vector ports. But adding a parameter block, say vlen, for vector size to
    dynamically change the hier block doesn’t work. The python generator
    does not generate the hier block python file with vlen as vector size.
    Instead it puts in the default value. A parameter block without default
    value results in an error. A hard coded vector size is not exactly
    helpful in this case.

I didn’t have time to dig into it yet. Thus I thought I share my
experience with you. Maybe I am not the only one with this problem and
someone already knows how to fix it.

Happy hacking
Johannes

[1]

msg
message
1

in complex $vlen $ports

I’ll confirm that #2 is either a bug or merely unexpected behavior. I
work
around it by prototyping hier blocks as custom GRC blocks, then using
that
to build an OOT module block that actually works. Being unable to enter
parameters at run time is severely limiting.

I’ve not experienced #1, that functionality seems to work once I get the
python file and the GRC file matching. I was getting the same errors
for a
while until I found the right idiom.

Jared

Re: #1, if the block’s xml is malformed then GRC will basically show
nothing (that grey flowgraph page you describe). Are you defining $ports
in
the make node? Compare to a similar block to make sure everything is
defined properly.
https://github.com/gnuradio/gnuradio/blob/master/gr-blocks/grc/blocks_streams_to_stream.xml

I’m not sure of a way to debug what section might be wrong, so compare
against other blocks with message ports too.

On Sat, Oct 12, 2013 at 12:58 PM, Jared C.

On 12.10.2013 10:58, Jared C. wrote:

I’ll confirm that #2 is either a bug or merely unexpected behavior. I
work around it by prototyping hier blocks as custom GRC blocks, then
using that to build an OOT module block that actually works. Being
unable to enter parameters at run time is severely limiting.

For now this is the solution of choice. But in my opinion a graphical
representation helps to understand a flowgraph and I want to create
everything as self-explanatory as possible.

I’ve not experienced #1, that functionality seems to work once I get the
python file and the GRC file matching. I was getting the same errors
for a while until I found the right idiom.

Can you share your setup? Or point to a repository? That would be very
helpful.

Johannes

Hi Nathan,

My guess is that the problem is a bit more tricky.

The XML block definition works fine as long as the message port is not
present. I can use nports as shown in stream_to_streams.

It also works fine as long as the nports statement is not used and a
message port is defined. This means copy and paste the stream port
definition for every port. Assign a port name manually etc.

Nevertheless the combination using nports and message ports in one XML
definition fails. I hope that clarifies my problem description.

Johannes

Check the order, there’s apparently only one tag order that works. I
brought it up last week and was told it was known behavior.

Jared

Hi Johannes,

I think this is the same problem that I had in

http://comments.gmane.org/gmane.comp.gnu.radio.general/44365

maybe you can try this patch

https://github.com/bastibl/gnuradio/commit/09d50587421a468bb2ce217b527f6d0cbf24c030

Bastian

On 10/12/2013 10:58 PM, Johannes D. wrote:

https://github.com/gnuradio/gnuradio/blob/master/gr-blocks/grc/blocks_streams_to_stream.xml

 I work around it by prototyping hier blocks as custom GRC blocks,
 <mailto:[email protected]>> wrote:
     ports.
     vector ports. But adding a parameter block, say vlen, for vector
     experience with you. Maybe I am not the only one with this
       <optional>1</optional>
     Discuss-gnuradio mailing list

Discuss-gnuradio mailing list
[email protected]
Discuss-gnuradio Info Page


Dipl.-Inform. Bastian B.
Institute of Computer Science
University of Innsbruck, Austria
Phone: +43 512 507-53288 / Fax: -53079
http://ccs.uibk.ac.at/~bloessl/

Hi Johannes,

try this for #2:

Sebastian