>From a quick look at the gr-osmosdr code, the GRC/YAML file advertises a
"command" port, but the actual C++ code does not handle messages. You might
want to ask about this on the osmocom list.

On Fri, Feb 4, 2022 at 10:13 AM Kimmo Lehtinen <kimmo.lehti...@yahoo.fi>
wrote:

> Hi all,
>
>
> I am trying to send a messsage from a Python block (of type gr.sync_block)
> to
> 'osmocom source', so that I can change the frequency of the receiver.
>
> First, I have in the Python block the command
>
> self.message_port_register_out(pmt.intern('msg_out'))
>
> and then in the work-function of the Python block I give
>
> self.freq = 80e6
> key = pmt.intern("freq")
> value = pmt.to_pmt(self.freq)
> self.message_port_pub(pmt.intern('msg_out'), pmt.cons(key, value))
>
> Then, if I connect the 'msg_out' port of the Python block to 'print' port
> of the
> 'Message debug' block, it prints
>
> ******* MESSAGE DEBUG PRINT ********
> (freq . 8e+07)
>
> But if I connect the 'msg_out' port to 'command' port of the 'osmocom
> source'
> block, I get the following error:
>
> --------
> Could not find port: command in:
>
> Traceback (most recent call last):
>   File "/home/kimmo/Hydra-plain-fft/Hydra_options.py", line 718, in
> <module>
>     main()
>
>   File "/home/kimmo/Hydra-plain-fft/Hydra_options.py", line 696, in main
>     tb = top_block_cls()
>
>   File "/home/kimmo/Hydra-plain-fft/Hydra_options.py", line 410, in
> __init__
>     self.msg_connect((self.epy_block_2, 'msg_out'),
> (self.osmosdr_source_0, 'command'))
>
>   File "/usr/lib/python3/dist-packages/gnuradio/gr/hier_block2.py", line
> 60, in wrapped
>     func(self, src.to_basic_block(), srcport, dst.to_basic_block(),
> dstport)
>
>   File "/usr/lib/python3/dist-packages/gnuradio/gr/hier_block2.py", line
> 132, in msg_connect
>     self.primitive_msg_connect(*args)
>
>   File "/usr/lib/python3/dist-packages/gnuradio/gr/runtime_swig.py", line
> 4541, in primitive_msg_connect
>     return _runtime_swig.top_block_sptr_primitive_msg_connect(self, *args)
>
> RuntimeError: invalid msg port in connect() or disconnect()
> --------
>
>
> In the genereted Python file there are the following commands which are
> related to
> message passing:
>
> self.msg_connect((self.epy_block_2, 'msg_out'),
> (self.blocks_message_debug_0, 'print'))
> self.msg_connect((self.epy_block_2, 'msg_out'), (self.osmosdr_source_0,
> 'command'))
>
>
> I am using Gnuradio 3.8.1.0 (Python 3.8.10) in Ubuntu 20.04.3 LTS
>
> cheers, Kimmo
>
>
>

Reply via email to