Hi Marcus, Thank you very much for your explicit explanations. Yeah, I found it so hard to do what I thought. As you said I determined the type as "byte" and there is no problem. But there is another problem! I have defined something like this in c++:
#define X 0x01864CFB 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