Forum: GNU Radio issue about message port of grextras

Ec4ea2aebff994efc0b16c3daa4fce36?d=identicon&s=25 Damon (Guest)
on 2014-04-22 11:11
(Received via mailing list)
Hi all,

Recently I am learning the grextras project. I am confused about the
message port which is designed in grextras.
Why will we not get a error when the message ports do not connect to
other message ports? I thought those port actually is data stream ports,
so they should be connected to other ports.

Best regards,
Damon
C539637020fd56193dd6daec746c4a84?d=identicon&s=25 Tom Rondeau (Guest)
on 2014-04-23 15:51
(Received via mailing list)
On Tue, Apr 22, 2014 at 5:09 AM, Damon <qiu.guowang007@gmail.com> wrote:

>
Damon,
grextras is an external project from GNU Radio and not related to the
core
functionality.

But GNU Radio's message passing structure does not require connections.
It's a publish-subscribe model, and a block will publish a message
regardless of whether or not another block is subscribed and listening.

Tom
Ec4ea2aebff994efc0b16c3daa4fce36?d=identicon&s=25 Damon (Guest)
on 2014-04-24 06:03
(Received via mailing list)
Hi Tom,

Thanks for you reply.

I am wondering why the data stream ports of byte or integer 8 could be
disconnected by other ports.

Here is an example. The connecting code is commented out, but we can run
this program without getting a error.

#!/usr/bin/env python
##################################################
# Gnuradio Python Flow Graph
# Title: Top Block
# Generated: Thu Apr 24 11:57:08 2014
##################################################

from gnuradio import blocks
from gnuradio import eng_notation
from gnuradio import gr
from gnuradio.eng_option import eng_option
from gnuradio.filter import firdes
from optparse import OptionParser

class top_block(gr.top_block):

    def __init__(self):
        gr.top_block.__init__(self, "Top Block")

        ##################################################
        # Variables
        ##################################################
        self.samp_rate = samp_rate = 32000

        ##################################################
        # Blocks
        ##################################################
        self.blocks_null_source_0 = blocks.null_source(gr.sizeof_char*1)
        self.blocks_null_sink_0 = blocks.null_sink(gr.sizeof_char*1)

        ##################################################
        # Connections
        ##################################################
        #self.connect((self.blocks_null_source_0, 0),
(self.blocks_null_sink_0, 0))


# QT sink close method reimplementation

    def get_samp_rate(self):
        return self.samp_rate

    def set_samp_rate(self, samp_rate):
        self.samp_rate = samp_rate

if __name__ == '__main__':
    parser = OptionParser(option_class=eng_option, usage="%prog:
[options]")
    (options, args) = parser.parse_args()
    tb = top_block()
    tb.start()
    raw_input('Press Enter to quit: ')
    tb.stop()
    tb.wait()



Best regards,
Damon


2014-04-23 21:46 GMT+08:00 Tom Rondeau <tom@trondeau.com>:
C539637020fd56193dd6daec746c4a84?d=identicon&s=25 Tom Rondeau (Guest)
on 2014-04-25 04:45
(Received via mailing list)
On Thu, Apr 24, 2014 at 12:01 AM, Damon <qiu.guowang007@gmail.com>
wrote:

> #!/usr/bin/env python
> from gnuradio.filter import firdes
>         self.samp_rate = samp_rate = 32000
>         #self.connect((self.blocks_null_source_0, 0),
>
>
>
> Best regards,
> Damon
>


I really don't understand the question. Why do you think this behavior
is
wrong? There are no blocks in the flowgraph; that's not a condition to
say
it won't run. When you hit start, it'll try to start all threads; there
are
none, so it will immediately exit. The raw_input is a Python thing, so
that
will continue to block.

Tom
Ec4ea2aebff994efc0b16c3daa4fce36?d=identicon&s=25 Damon (Guest)
on 2014-04-25 08:17
(Received via mailing list)
I got it. If the message port defined in grextras is disconnected, the
message sink or source block will not in the flowgraph.
Thanks Tom.

Best regards,
Damon
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.