Most of the times, the transmission is stable, but there are 3 times bad
things pop up. 'L' is shown for one time after running for some time. The
following warning is shown twice.

UHD Warning:
    x300_dac_ctrl: front-end sync failed. unexpected FIFO depth [0x7]
thread[thread-per-block[5]: <block gr uhd usrp sink (1)>]: RuntimeError:
x300_dac_ctrl: front-end sync failed. unexpected FIFO depth [0x7]

The X3xx is connected to the host using 1G Ethernet cable. The network card
is Intel Ethernet Converged Network Adapter X520-DA2. The card can support
10Gbps, but the sfp+ to rj45 adapter can supports only 1Gbps. The output of
lspci is shown below.

lspci
00:00.0 Host bridge: Intel Corporation Sky Lake Host Bridge/DRAM Registers
(rev 07)
00:01.0 PCI bridge: Intel Corporation Sky Lake PCIe Controller (x16) (rev
07)
00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI
Controller (rev 31)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H
Thermal subsystem (rev 31)
00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME
HECI #1 (rev 31)
00:16.3 Serial controller: Intel Corporation Sunrise Point-H KT Redirection
(rev 31)
00:17.0 RAID bus controller: Intel Corporation SATA Controller [RAID mode]
(rev 31)
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port
#9 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev
31)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)
00:1f.3 Audio device: Intel Corporation Sunrise Point-H HD Audio (rev 31)
00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2)
I219-LM (rev 31)
01:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+
Network Connection (rev 01)
01:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+
Network Connection (rev 01)
02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI]
Oland XT [Radeon HD 8670 / R7 250/350] (rev 83)
02:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Cape
Verde/Pitcairn HDMI Audio [Radeon HD 7700/7800 Series]

Rui


On Wed, Aug 2, 2017 at 1:17 PM, Marcus Müller <muel...@kit.edu> wrote:

> I'd consider that good news, because that definitely means that your PC is
> up to the task of supplying samples fast enough :)
>
> Still, we're getting "L"s. So let's reduce the test case: Same USRP Sink
> as you use here, but with a Null Source directly feeding it. Is that stable?
>
> While we're at it: can you describe how the X3xx is connected? Can you
> maybe even share info on the network card you're using (lspci might help)?
>
> Best regards,
>
> Marcus
>
> On 08/02/2017 06:01 PM, Rui ZOU wrote:
>
> Sorry for the confusion, because I thought whenever a hardware is not used
> throttle block must be used.
>
> This time, no USRP, no throttle block, the rate is 11.6MS/s. The python
> test takes several top CPU consumption PIDs as shown by the htop screen
> capture.
>
> ******* MESSAGE DEBUG PRINT ********
> (((rate_now . 1.14922e+07) (rate_avg . 1.16197e+07)))
> ************************************
>
>
> On Wed, Aug 2, 2017 at 11:45 AM, Marcus Müller <muel...@kit.edu> wrote:
>
>> I'm really confused at this point. In no point in your testing should be
>> Throttle involved. So, please, can you do a test with:
>>
>> Null Source
>> Probe Rate -> Message Debug
>> No UHD USRP Sink
>> No Throttle
>>
>> and tell me a) how fast you were and b) how much CPU you used ?
>> Thanks!
>>
>> Marcus
>>
>> On 08/02/2017 05:18 PM, Rui ZOU wrote:
>>
>> The screen capture of htop when running the python script, test.py, is
>> attached.
>>
>> On Wed, Aug 2, 2017 at 11:10 AM, Rui ZOU <zourui.mkithap...@gmail.com>
>> wrote:
>>
>>> Throttle block is NEVER in use when USRP Sink is used.
>>>
>>> On Wed, Aug 2, 2017 at 11:08 AM, Rui ZOU <zourui.mkithap...@gmail.com>
>>> wrote:
>>>
>>>> USRP sink
>>>>
>>>> On Wed, Aug 2, 2017 at 11:08 AM, Rui ZOU <zourui.mkithap...@gmail.com>
>>>> wrote:
>>>>
>>>>> My previous email shows the rate WITHOUT
>>>>>
>>>>> On Wed, Aug 2, 2017 at 11:05 AM, Marcus Müller <muel...@kit.edu>
>>>>> wrote:
>>>>>
>>>>>> WAIT! Throttle? I didn't see that in either of the flow graphs you
>>>>>> sent me first (twoparatx, onefile2tx)
>>>>>>
>>>>>> Seriously?! Your GRC will even print a warning that you mustn't use
>>>>>> Throttle together with hardware if you have both Throttle and a USRP 
>>>>>> sink.
>>>>>>
>>>>>> Remove the Throttle, and try again.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 08/02/2017 05:00 PM, Rui ZOU wrote:
>>>>>>
>>>>>> Changed to null source, the rate is still around twice the sample
>>>>>> rate (390.625k) for throttle block.
>>>>>>
>>>>>> ******* MESSAGE DEBUG PRINT ********
>>>>>> (((rate_now . 781360) (rate_avg . 786529)))
>>>>>> ************************************
>>>>>>
>>>>>> When the throttle block is bypassed, the rate jumps up to around
>>>>>> 11.3MS/s.
>>>>>>
>>>>>> ******* MESSAGE DEBUG PRINT ********
>>>>>> (((rate_now . 1.16071e+07) (rate_avg . 1.12848e+07)))
>>>>>> ************************************
>>>>>>
>>>>>> The rate is similar to using file source, 0.78MS/s with throttle and
>>>>>> 11.3MS/s when throttle bypassed.
>>>>>>
>>>>>> Rui
>>>>>>
>>>>>> On Wed, Aug 2, 2017 at 10:37 AM, Marcus Müller <muel...@kit.edu>
>>>>>> wrote:
>>>>>>
>>>>>>> Ok, there's something fishy here. That rate (without the USRP Sink)
>>>>>>> is ridiculously low. Can you replace the file_source with a null_source?
>>>>>>> That way, we can rule out storage as the bottleneck.
>>>>>>>
>>>>>>> The probe_rate does nothing but just count how many items fly by,
>>>>>>> and then send a message at its output port every update period. The
>>>>>>> message_debug just prints messages.
>>>>>>>
>>>>>>> If it's not storage: are you perhaps running in a powersaver mode?
>>>>>>> Even so, the rate would be too low. I really don't know what's going 
>>>>>>> wrong
>>>>>>> here. Run your flow graph, run "top" in a terminal, check that the 
>>>>>>> python
>>>>>>> process and its spawned child threads really consume most of the CPU. If
>>>>>>> that's not the case, you've got something else eating away on your CPU.
>>>>>>>
>>>>>>> Best regards,
>>>>>>>
>>>>>>> Marcus
>>>>>>>
>>>>>>> On 08/02/2017 04:22 PM, Rui ZOU wrote:
>>>>>>>
>>>>>>> Not sure if the debug setup is the expected since it's the first
>>>>>>> time I use the 'Probe Rate' and 'Message Debug' blocks whose functions 
>>>>>>> are
>>>>>>> not very clear to me now just after reading the contents under the 
>>>>>>> document
>>>>>>> tag. If there are other ways to learn about new blocks, please advise.
>>>>>>>
>>>>>>> The rates I get when the USRP Sink disabled is around 0.78MS/s I
>>>>>>> guess from the debug output, shown below.
>>>>>>>
>>>>>>> ******* MESSAGE DEBUG PRINT ********
>>>>>>> (((rate_now . 782916) (rate_avg . 784937)))
>>>>>>> ************************************
>>>>>>>
>>>>>>> After enabling the USRP Sink, I got lots of 'L's and 2.4MS/s, shown
>>>>>>> below.
>>>>>>>
>>>>>>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>>>>>>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>>>>>>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>>>>>>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>>>>>>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>>>>>>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>>>>>>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL*******
>>>>>>> MESSAGE DEBUG PRINT ********
>>>>>>> (((rate_now . 2.36319e+06) (rate_avg . 2.36319e+06)))
>>>>>>> ************************************
>>>>>>>
>>>>>>> GRC and python files are attached.
>>>>>>>
>>>>>>> Rui
>>>>>>>
>>>>>>> On Wed, Aug 2, 2017 at 3:57 AM, Marcus Müller <muel...@kit.edu>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Huh, I really don't know what's happening there :/ I sadly don't
>>>>>>>> have the USRP to test this live with me right now, but there's 
>>>>>>>> absolutely
>>>>>>>> no timed commands involved¹
>>>>>>>>
>>>>>>>> So, trying to weed out bugs:
>>>>>>>>
>>>>>>>> * I've replaced the USRP sink with a "Probe Rate" block, connected
>>>>>>>> to a "Message Debug"'s print port. I saw samples fly by with more than 
>>>>>>>> 7
>>>>>>>> MS/s, so there really shouldn't be a bottleneck here – can you try to 
>>>>>>>> do
>>>>>>>> the same and see whether your system can get similar rates? 7MS/s is 
>>>>>>>> still
>>>>>>>> far too little for my taste, but that is FM-Modulation-limited²
>>>>>>>> * Can you delete your subdev spec? in a 2-channel case, that should
>>>>>>>> be the implicit one, anyways.
>>>>>>>>
>>>>>>>> Best regards,
>>>>>>>>
>>>>>>>> Marcus
>>>>>>>>
>>>>>>>> ¹ "timed commands" are a USRP feature that allows certain things to
>>>>>>>> happen at well-defined times. You get an L when a timed command 
>>>>>>>> reaches the
>>>>>>>> USRP after the specified time has already passed. In your flow graph, 
>>>>>>>> all
>>>>>>>> that could happen is that a sample packet reaches the USRP after it 
>>>>>>>> should
>>>>>>>> – but that's unlikely, you'd get a "U" instead.
>>>>>>>>
>>>>>>>> ² at least on my machine, most of the time is spent in the FM
>>>>>>>> modulator. Which is kind of annoying, because looking into that, what 
>>>>>>>> costs
>>>>>>>> most time is the "keeping the phase within 0;2pi" floating point modulo
>>>>>>>> operation. I might get the urge to fix that.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On 08/01/2017 08:31 PM, Rui ZOU wrote:
>>>>>>>>
>>>>>>>> Hi Marcus,
>>>>>>>>
>>>>>>>> I have fixed the two parallel SISO by removing packeting encoding,
>>>>>>>> using QT GUI instead of WX. But the 'L' indicator still comes on, even
>>>>>>>> sooner than previous version. The GRC and generated python files are
>>>>>>>> attached.
>>>>>>>>
>>>>>>>> Rui
>>>>>>>>
>>>>>>>> On Tue, Aug 1, 2017 at 12:04 PM, Marcus Müller <muel...@kit.edu>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Ah, cool, but then I wouldn't start by packetizing data.
>>>>>>>>>
>>>>>>>>> Simply send your file GMSK-Modulated; drop the packet encoding;
>>>>>>>>> think about it: the MIMO coding (usually) happens *after* the data 
>>>>>>>>> has been
>>>>>>>>> formed to logical data units.
>>>>>>>>>
>>>>>>>>> A few notes on your flowgraphs: Don't use the WX GUI elements in
>>>>>>>>> new flowgraphs. We have deprecated them, since no-one can maintain 
>>>>>>>>> them,
>>>>>>>>> and the Qt GUI sinks have shown to be both more stable and efficient. 
>>>>>>>>> As
>>>>>>>>> far as I can foresee your application's needs, Qt has replacements 
>>>>>>>>> for all
>>>>>>>>> the WX visualizations you'd need.
>>>>>>>>>
>>>>>>>>> For the receiver, I'd guess you'd first simply start by just
>>>>>>>>> recording from to channels, and then experimenting with things like
>>>>>>>>> cross-correlation, and estimating the channel matrix based on your 
>>>>>>>>> known
>>>>>>>>> transmit signal. I wouldn't be surprised if the channel is rather 
>>>>>>>>> boring in
>>>>>>>>> your setup – I blindly assume you're doing this indoors, and that 
>>>>>>>>> limits
>>>>>>>>> the path difference and the amount of change (and hence, the delay 
>>>>>>>>> spread
>>>>>>>>> and the doppler spread) your signals are subject to, especially since 
>>>>>>>>> your
>>>>>>>>> bandwidth is so low. Of course, having a flat channel is nice :) but 
>>>>>>>>> it
>>>>>>>>> also means that it might be quite hard to get any actual MIMO gain, 
>>>>>>>>> because
>>>>>>>>> the two RX antennas might be very correlated. If in doubt, increase
>>>>>>>>> bandwidth. Be agressive with roll-off / Bandwidth factors of your 
>>>>>>>>> GMSK.
>>>>>>>>> Cheers,
>>>>>>>>> Marcus
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 08/01/2017 05:51 PM, Rui ZOU wrote:
>>>>>>>>>
>>>>>>>>> Hi Marcus,
>>>>>>>>>
>>>>>>>>> My goal is to first build a 2-by-2 space multiplexing MIMO using
>>>>>>>>> two X310s and GNU Radio. As I'm new to all this stuff, I'm starting 
>>>>>>>>> from
>>>>>>>>> building 2 parallel SISOs. If there are some good kick-start 
>>>>>>>>> materials or
>>>>>>>>> any resources, they will be very valuable. Thanks.
>>>>>>>>>
>>>>>>>>> Rui
>>>>>>>>>
>>>>>>>>> On Tue, Aug 1, 2017 at 11:37 AM, Marcus Müller <muel...@kit.edu>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Rui,
>>>>>>>>>>
>>>>>>>>>> sorry, I might simply have missed those, and didn't find your
>>>>>>>>>> first email when I saw your recent one! I apologize.
>>>>>>>>>>
>>>>>>>>>> So, hm, interestingly, we have a severe bug in the packet_encoder
>>>>>>>>>> block (its design is pretty bad, and that triggers an unexpected 
>>>>>>>>>> behaviour
>>>>>>>>>> underneath). That might mean the packet_encoder is just consuming 
>>>>>>>>>> items as
>>>>>>>>>> fast as it can, without actually producing packets. In other words,
>>>>>>>>>> packet_encoder is broken; you can't use it right now.
>>>>>>>>>>
>>>>>>>>>> The more appropriate way of dealing with data might be in the
>>>>>>>>>> example flowgraphs that you'd find under 
>>>>>>>>>> /usr/[local/]share/doc/gnuradi
>>>>>>>>>> o/examples/digital/packet_loopback_hier.grc ; it's a lot more
>>>>>>>>>> complicated, though, and you'd have to write a message / PDU source 
>>>>>>>>>> that
>>>>>>>>>> gives you the data you want to transmit, rather than the Random PDU 
>>>>>>>>>> block!
>>>>>>>>>>
>>>>>>>>>> I don't really know if that is the way to go. What is it, that
>>>>>>>>>> you want to build? Maybe the mailing list can advise?
>>>>>>>>>>
>>>>>>>>>> Best regards,
>>>>>>>>>>
>>>>>>>>>> Marcus
>>>>>>>>>>
>>>>>>>>>> On 08/01/2017 05:26 PM, Rui ZOU wrote:
>>>>>>>>>>
>>>>>>>>>> Here are the two flowgraphs I have used. I have tried to attach
>>>>>>>>>> the two files in my first email. Probably failed in doing that. If 
>>>>>>>>>> still
>>>>>>>>>> not seen, please let me know so I will try again. Thanks for your 
>>>>>>>>>> help.
>>>>>>>>>>
>>>>>>>>>> Running the first flow graph will cause GRC stop responding
>>>>>>>>>> instantly, while the second one can run for a little while and 
>>>>>>>>>> produce lots
>>>>>>>>>> of 'L' before going not responsive.
>>>>>>>>>>
>>>>>>>>>> Rui
>>>>>>>>>>
>>>>>>>>>> On Tue, Aug 1, 2017 at 11:09 AM, Marcus Müller <muel...@kit.edu>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Rui,
>>>>>>>>>>>
>>>>>>>>>>> don't know, to me, it looks like replying didn't work out great,
>>>>>>>>>>> since my mail client showed your mail in a new thread. Really, 
>>>>>>>>>>> replying to
>>>>>>>>>>> a mailing list mail should be nothing more than hitting the "reply" 
>>>>>>>>>>> or
>>>>>>>>>>> "reply all" button.
>>>>>>>>>>>
>>>>>>>>>>> Anyway, even the slowest PC/laptop/Raspberry Pi/… I could think
>>>>>>>>>>> of would be able to deal with these rates, so there's very, very 
>>>>>>>>>>> likely
>>>>>>>>>>> something wrong with the GNU Radio flowgraph you're using. Maybe 
>>>>>>>>>>> you'd want
>>>>>>>>>>> to share that!
>>>>>>>>>>>
>>>>>>>>>>> Best regards,
>>>>>>>>>>>
>>>>>>>>>>> Marcus
>>>>>>>>>>>
>>>>>>>>>>> On 08/01/2017 04:59 PM, Rui ZOU wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi Marcus,
>>>>>>>>>>>
>>>>>>>>>>> Sorry for leaving the title empty, that's the first time to post
>>>>>>>>>>> to a mailing list. This is also the first time to reply, no sure if 
>>>>>>>>>>> I
>>>>>>>>>>> replied correctly.
>>>>>>>>>>>
>>>>>>>>>>> I use 390.625k as the sampling rate because this is the lowest I
>>>>>>>>>>> can get using the Ettus X310 without giving me a warning saying 
>>>>>>>>>>> that the
>>>>>>>>>>> sampling rate cannot be provided by the hardware. The application 
>>>>>>>>>>> is just
>>>>>>>>>>> transmitting a file using GMSK modulation on the two daughter 
>>>>>>>>>>> boards of
>>>>>>>>>>> X310.
>>>>>>>>>>>
>>>>>>>>>>> Rui
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Discuss-gnuradio mailing 
>>>>>>>>>>> listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>>>>>>>>
>>>>>>>>>>>
>
>

Attachment: test.grc
Description: Binary data

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
##################################################
# GNU Radio Python Flow Graph
# Title: Test
# Generated: Wed Aug  2 14:05:51 2017
##################################################

if __name__ == '__main__':
    import ctypes
    import sys
    if sys.platform.startswith('linux'):
        try:
            x11 = ctypes.cdll.LoadLibrary('libX11.so')
            x11.XInitThreads()
        except:
            print "Warning: failed to XInitThreads()"

from PyQt4 import Qt
from gnuradio import blocks
from gnuradio import eng_notation
from gnuradio import gr
from gnuradio import uhd
from gnuradio.eng_option import eng_option
from gnuradio.filter import firdes
from optparse import OptionParser
import sys
import time


class test(gr.top_block, Qt.QWidget):

    def __init__(self):
        gr.top_block.__init__(self, "Test")
        Qt.QWidget.__init__(self)
        self.setWindowTitle("Test")
        try:
            self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc'))
        except:
            pass
        self.top_scroll_layout = Qt.QVBoxLayout()
        self.setLayout(self.top_scroll_layout)
        self.top_scroll = Qt.QScrollArea()
        self.top_scroll.setFrameStyle(Qt.QFrame.NoFrame)
        self.top_scroll_layout.addWidget(self.top_scroll)
        self.top_scroll.setWidgetResizable(True)
        self.top_widget = Qt.QWidget()
        self.top_scroll.setWidget(self.top_widget)
        self.top_layout = Qt.QVBoxLayout(self.top_widget)
        self.top_grid_layout = Qt.QGridLayout()
        self.top_layout.addLayout(self.top_grid_layout)

        self.settings = Qt.QSettings("GNU Radio", "test")
        self.restoreGeometry(self.settings.value("geometry").toByteArray())

        ##################################################
        # Variables
        ##################################################
        self.samp_rate = samp_rate = 390.625e3

        ##################################################
        # Blocks
        ##################################################
        self.uhd_usrp_sink_0 = uhd.usrp_sink(
        	",".join(("addr0=192.168.10.2", "")),
        	uhd.stream_args(
        		cpu_format="fc32",
        		channels=range(2),
        	),
        )
        self.uhd_usrp_sink_0.set_samp_rate(samp_rate)
        self.uhd_usrp_sink_0.set_center_freq(2.41e9, 0)
        self.uhd_usrp_sink_0.set_gain(20, 0)
        self.uhd_usrp_sink_0.set_antenna('TX/RX', 0)
        self.uhd_usrp_sink_0.set_center_freq(2.47e9, 1)
        self.uhd_usrp_sink_0.set_gain(20, 1)
        self.uhd_usrp_sink_0.set_antenna('TX/RX', 1)
        self.blocks_stream_mux_0 = blocks.stream_mux(gr.sizeof_gr_complex*1, (1, 1))
        self.blocks_probe_rate_0 = blocks.probe_rate(gr.sizeof_gr_complex*1, 500.0, 0.15)
        self.blocks_null_source_0 = blocks.null_source(gr.sizeof_gr_complex*1)
        self.blocks_message_debug_0 = blocks.message_debug()

        ##################################################
        # Connections
        ##################################################
        self.msg_connect((self.blocks_probe_rate_0, 'rate'), (self.blocks_message_debug_0, 'print'))    
        self.connect((self.blocks_null_source_0, 0), (self.blocks_stream_mux_0, 0))    
        self.connect((self.blocks_null_source_0, 0), (self.blocks_stream_mux_0, 1))    
        self.connect((self.blocks_null_source_0, 0), (self.uhd_usrp_sink_0, 0))    
        self.connect((self.blocks_null_source_0, 0), (self.uhd_usrp_sink_0, 1))    
        self.connect((self.blocks_stream_mux_0, 0), (self.blocks_probe_rate_0, 0))    

    def closeEvent(self, event):
        self.settings = Qt.QSettings("GNU Radio", "test")
        self.settings.setValue("geometry", self.saveGeometry())
        event.accept()

    def get_samp_rate(self):
        return self.samp_rate

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


def main(top_block_cls=test, options=None):

    from distutils.version import StrictVersion
    if StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0"):
        style = gr.prefs().get_string('qtgui', 'style', 'raster')
        Qt.QApplication.setGraphicsSystem(style)
    qapp = Qt.QApplication(sys.argv)

    tb = top_block_cls()
    tb.start()
    tb.show()

    def quitting():
        tb.stop()
        tb.wait()
    qapp.connect(qapp, Qt.SIGNAL("aboutToQuit()"), quitting)
    qapp.exec_()


if __name__ == '__main__':
    main()
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to