discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re: [Discuss-gnuradio] 802.15.4 how to forward a parameter to a c++


From: bjoernm
Subject: Re: Re: [Discuss-gnuradio] 802.15.4 how to forward a parameter to a c++ block
Date: Thu, 27 May 2010 09:45:44 +0200
User-agent: Internet Messaging Program (IMP) H3 (4.2)

Zitat von "Markus Becker" <address@hidden>:

>> >>> Hi,
>> >>>
>> >>> I'm currently using the UCLA ZigBee PHY implementation posted on:
>> >>> https://www.cgran.org/wiki/UCLAZigBee
>> >>> with gnuradio.
>> >>>
>> >>> My question is the following:
>> >>> How can I forward a parameter from: src/python/ieee802_15_4_pkt.py
>> >>> ... e.g. from the "send_pkt(...)" function (or any other)
>> >>> to the c++ block in : src/lib/ucla_symbols_to_chips_bi.cc ?
>> >>>
>> >>> Or more generally speaking: How can I forward a parameter from a
>> >>> python application to the c++ processing block?
>> >>> If possible it would be great to use the io_signatures...
>> >>
>> >> during instantiation of the block or during runtime?  If it's during
>> >> instantiation, you can use a parameter to the constructor of your C++
>> >> block.  But, if you want something during runtime I do not think it
>> >> is possible given the current architecture.  You do not explicitly
>> >> call the work() function where the processing is done, this is done
>> >> within the GNU Radio framework.
>> >>
>> >> - George
>> >
>> > Well I'd need it during runtime.
>> > What about using a shared memory block between the python and the
>> > c++ block? Or what about calling a function from within the c++
>> > block, which would get the parameter from the python block or a
>> > specific memory block
>> >
>> > Thanks for the help!
>> >
>> > - Bjoern
>>
>> Or how could I extend "ucla_symbols_to_chips_bi" to have more inputs,
>> such that I could have one more stream forwarded from
>> "ieee_802_15_4.py" to "ucla_symbols_to_chips_bi"?
>
> For that you need to change the io_signature.
>
> gr_make_io_signature (1, -1, sizeof (unsigned char)),
> to
> gr_make_io_signature (2, -1, sizeof (unsigned char)),

Ah, great, thanks a lot!
But where can I find that new stream to fill!? In other words:
-how can I generate a new variable / stream and
-where do I submit it, such that it is forwarded to the corresponding
c++ block, and
-how can I access it from within the c++ block!?

that is where the python code comes in. basically you need to connect some
other block to the second port of the ucla block, e.g.:

        self.connect(self.fmdemod, (self.sub, 0))
        self.connect(self.fmdemod, self.freq_offset, (self.sub, 1))


try playing around with the gnuradio companion grc and look at the created
python code. then the connection between io_signature and block connections
becomes clear.

Thanks for replying!! I tried that using the GRC, but unfortunately I can't get to the level of io_signatures!? Isn't there a way to uniquely identify , which the streams are that are passed between the c++ and the python blocks? such that one of them could be duplicated in order to forward one more stream?

SO main question is how to identify the streams uniquely
and
how to generate one more!?

then to make a block accept more than one signature i have to change the entry:
gr_make_io_signature (2, -1, sizeof (unsigned char)),
Anything else? Probably the parameters of the work() function within the c++ block, right?

Thanks a lot in advanced for your help,
best
Björn





reply via email to

[Prev in Thread] Current Thread [Next in Thread]