>> >>> 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.