# Error creating block with different input signature

**URL:** <https://www.ruby-forum.com/t/error-creating-block-with-different-input-signature/230282>\
**Category:** GNU Radio\
**Created:** [June 8, 2014, 3:34pm UTC](https://www.ruby-forum.com/t/error-creating-block-with-different-input-signature/230282 "2014-06-08T15:34:24Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jason\_sam](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/7993a0/32.png) [@jason\_sam](https://www.ruby-forum.com/u/jason_sam)\
**Post date:** [June 8, 2014, 3:34pm UTC](https://www.ruby-forum.com/t/error-creating-block-with-different-input-signature/230282/1 "2014-06-08T15:34:24Z")

</div>

Hi,  
I am trying to create a C++ block with different input signatures in  
each  
of the inputs.I tried the following 2 methods.

1. I followed the example in “pfb\_clock\_sync\_ccf” and created the io  
signature as:

static int ios[] = {sizeof(gr\_complex)\*8, sizeof(float),  
sizeof(float), sizeof(float)};  
static std::vector iosig(ios, ios+sizeof(ios)/sizeof(int));

beamforming\_sum\_vcc\_impl::beamforming\_sum\_vcc\_impl(int num\_channels)  
: gr::sync\_block(“beamforming\_sum\_vcc”,  
gr::io\_signature::makev(1,4, iosig),  
gr::io\_signature::make(1, 1, sizeof(gr\_complex))),  
N(num\_channels)

1. I also tried the method suggested in earlier posts.

static vector get\_input\_sizes(){  
std::vector input\_sizes;  
input\_sizes.push\_back(sizeof(gr\_complex)\*8);  
input\_sizes.push\_back(sizeof(gr\_complex));  
input\_sizes.push\_back(sizeof(gr\_complex));  
input\_sizes.push\_back(sizeof(gr\_complex));

```
return input_sizes;
}

```

beamforming\_sum\_vcc\_impl::beamforming\_sum\_vcc\_impl(int num\_channels)  
: gr::sync\_block(“beamforming\_sum\_vcc”,  
gr::io\_signature::makev(1,4,get\_input\_sizes()),  
gr::io\_signature::make(1, 1, sizeof(gr\_complex))),  
N(num\_channels)

In both the cases I am getting the following error when doing the  
makexml  
process.  
Any help?

Error: Can’t parse input signature.  
Traceback (most recent call last):  
File “./gr\_modtool”, line 47, in   
main()  
File “./gr\_modtool”, line 39, in main  
modtool.run()  
File  
“/usr/local/lib/python2.7/dist-packages/gnuradio/modtool/modtool\_makexml.py”,  
line 67, in run  
self.\_make\_grc\_xml\_from\_block\_data(params, iosig, blockname)  
File  
“/usr/local/lib/python2.7/dist-packages/gnuradio/modtool/modtool\_makexml.py”,  
line 91, in \_make\_grc\_xml\_from\_block\_data  
if iosig[inout][‘max\_ports’] == ‘-1’:  
KeyError: ‘in’

thanks,  
Saran

---

<div class="post-metadata">

**Author:** ![sarankumar](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/e36b37/32.png) [@sarankumar](https://www.ruby-forum.com/u/sarankumar)\
**Post date:** [June 9, 2014, 7:32am UTC](https://www.ruby-forum.com/t/error-creating-block-with-different-input-signature/230282/2 "2014-06-09T07:32:00Z")

</div>

Hi,

I don’t know why you have a problem with this!  
Just take a look at\* fll\_band\_edge\_cc\_impl.cc\* in the GNURadio tree :  
…/gnuradio-3.7.3/gr-digital/lib/  
Also see its grc in: …/gnuradio-3.7.3/gr-digital/grc

Best,  
Mostafa

---

<div class="post-metadata">

**Author:** ![sarankumar](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/e36b37/32.png) [@sarankumar](https://www.ruby-forum.com/u/sarankumar)\
**Post date:** [June 10, 2014, 2:15pm UTC](https://www.ruby-forum.com/t/error-creating-block-with-different-input-signature/230282/3 "2014-06-10T14:15:50Z")

</div>

On 06/08/2014 03:32 PM, sarankumar wrote:

> In both the cases I am getting the following error when doing the  
> makexml process.

As indicated, gr\_modtool makexml is experimental and doesn’t always  
work. In this case, you will have to craft the XML files by hand. Check  
those other blocks for examples.

M
