Hi Marcus,
I actually have a deep, really deep,  problem with data types!!!! As you
see I have a preprocessor definition which is 32 bit number. I wanna pass
it to the make!!! how could I? If I use the gnuradio type " gr_uint32",
after turning my c++-written blocks, the GRC tells me:

*TypeError: in method 'xxxx_make', argument 1 of type 'gr_uint32'*

I put an option to the xml file :

*<option>*
*        <name>CRC16</name>*
*        <key>gr_uint32</key>*
*        <opt>CRC_type:0x00011021</opt>*
*</option>*

I know that this is not true, but I want to pass a 32-bit number to the
"make". How could I do?

please help me,

best,


On Wed, May 7, 2014 at 7:59 PM, Marcus Müller <mar...@hostalia.de> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi Mostafa,
>
>
> On 07.05.2014 16:34, Mostafa Alizadeh wrote:
> >
> > #define X 0x01864CFB
>
> Attention! This is a preprocessing define. This means that /prior/ to
> compilation, all occurences of X will be replaced by 0x01..., so your
> compiler will never see X.
>
> Is it possible that you want to define a default option for your make
> function? That works! you can just have a make function with a
> function stub like
> ...::make(int param1, float param2, unsigned char param3, int param4 =
> 0x0186);
>
> Again, XML files are only useful for defining the graphical
> representation of a GNU Radio block in GRC, it's not meant to define
> constants. There are ways to do that, but most of the time it's not
> what you want.
> You can set default values for input fields in the block options, you
> can also do dropdown menus. I don't know what you're really trying to
> do, so you might be best of to look at different blocks in GRC and
> find one that fits your problem best, and copy that block's XML.
>
> Greetings,
> Marcus
>
>
> > and I should pass X, instead of  this 0x01864CFB which is 32 bits
> > number to my "make" function of my block.
> >
> > What do you prefer for making a GRC xml file for this block?
> >
> > best,
> >
> >
> >
> > On Wed, May 7, 2014 at 5:54 PM, Marcus Müller
> > <marcus.muel...@ettus.com>wrote:
> >
> >> Hi Mostafa, this question is far more complex than you'd expect.
> >> I'll try to explain: - GRC is but a graphical interface to python
> >> code, which itself offers access GNU Radio blocks, partly written
> >> in python, mostly written in C++ and wrapped to python. It's
> >> always important to remember that GRC != GR - As you noticed,
> >> there is not always a direct matching between C++ and python
> >> types. This is an inherent problem caused by the fact that they
> >> are different internally. - When you create a block, and set up
> >> everything accordingly (which gr_modtool will do for you), then
> >> SWIG will generate wrapper code to make these classes (which are
> >> types!) available as blocks in python - also, you can generate
> >> XML files to represent blocks in GRC. Again, this will only be
> >> used to generate python code! If you want to define things so
> >> that you can not only use them in python, generate XML. This is
> >> covered in the "writing out of tree modules" tutorial. - there is
> >> a difference between sample streams and variables: a variable in
> >> GRC is usually used to configure parameters of a block. I don't
> >> really see a reason not to use a standard integer value here; ok,
> >> you're wasting dozens of bits. But honestly, you do that once, it
> >> doesn't matter. - for streams, there is a byte type. Internally,
> >> neither python, nor GNU Radio care about the type; they just care
> >> about the item size, so defining things like "bit", packed in
> >> "byte" does never make a difference.
> >>
> >> Hope that was a little helpful, Marcus Müller
> >>
> >>
> >>
> >> On Wed, May 7, 2014 at 3:01 PM, Mostafa Alizadeh
> >> <m.alizade...@gmail.com>wrote:
> >>
> >>> Hello everybody, I have a new type in my gnuradio blocks which
> >>> are defined in c++. However, the GRC don't know them. *The
> >>> first question is how I could make GRC of such blocks? *
> >>>
> >>> I think if I could be able to define them in python I could add
> >>> new types to the GRC of the block. Although I'm not so familiar
> >>> with python, I want to define new type as it was previously
> >>> defined in c++ as :
> >>>
> >>> *typedef unsigned char   bit; *
> >>>
> >>> *how could I define such variable in python!!!? *(may it helps
> >>> me to make my GRC block)
> >>>
> >>> Thank,
> >>>
> >>> _______________________________________________
> >>> Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org
> >>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> >>>
> >>>
> >>
> >
> >
> >
> > _______________________________________________ Discuss-gnuradio
> > mailing list Discuss-gnuradio@gnu.org
> > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> >
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>
> iQEcBAEBAgAGBQJTalFKAAoJEBQ6EdjyzlHtRHwIAJnlorrctCzyARolZl4gc6mJ
> 7gTeGZc43oGj/1Ise3I7lqcY7lmBMkErGDLiKWsyWYOW0HTSHobDQr9xOY/UK5j+
> HtaFAec2WeX9spTLNUBg87ZLTJlWBjoEvl6nT9xvbJSXDvoIBzF1cQ7EY1TkVU5V
> zLWRxwMA1G6LeP9JGCuxlA1t92hP7gLR+UOoff1EmWx2HbwF4Jin8frn6irrzqpi
> SCQ3X5VoMT2/vX10lFgbumEUhijTr5q9m3JvMIA2n7CBdq5SrLEpqjgZIHUPUxOs
> nAN9h6UZ8mSfAvxjik8X1frDpp0rJxl2iZH+r69OILBAt+nQQJzb88LHyRh7UyQ=
> =bJMO
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to