[USRP-users] set_processor_affinity for python block

john liu johncorad1988 at gmail.com
Wed Nov 1 21:39:41 EDT 2017


Hi,Tom,
This is my grc setting:
[image: 内嵌图片 1]


And this is grc generated python file:

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 analog
from gnuradio import blocks
from gnuradio import eng_notation
from gnuradio import gr
from gnuradio import qtgui
from gnuradio.eng_option import eng_option
from gnuradio.filter import firdes
from optparse import OptionParser
import pyproject2
import sip
import sys


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

    def __init__(self):
        gr.top_block.__init__(self, "Top Block")
        Qt.QWidget.__init__(self)
        self.setWindowTitle("Top Block")
        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", "top_block")
        self.restoreGeometry(self.settings.value("geometry").toByteArray())

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

        ##################################################
        # Blocks
        ##################################################
        self.qtgui_time_sink_x_0 = qtgui.time_sink_c(
         1024, #size
         samp_rate, #samp_rate
         "", #name
         1 #number of inputs
        )
        self.qtgui_time_sink_x_0.set_update_time(0.10)
        self.qtgui_time_sink_x_0.set_y_axis(-1, 1)

        self.qtgui_time_sink_x_0.set_y_label('Amplitude', "")

        self.qtgui_time_sink_x_0.enable_tags(-1, True)
        self.qtgui_time_sink_x_0.set_trigger_mode(qtgui.TRIG_MODE_FREE,
qtgui.TRIG_SLOPE_POS, 0.0, 0, 0, "")
        self.qtgui_time_sink_x_0.enable_autoscale(False)
        self.qtgui_time_sink_x_0.enable_grid(False)
        self.qtgui_time_sink_x_0.enable_axis_labels(True)
        self.qtgui_time_sink_x_0.enable_control_panel(False)

        if not True:
          self.qtgui_time_sink_x_0.disable_legend()

        labels = ['', '', '', '', '',
                  '', '', '', '', '']
        widths = [1, 1, 1, 1, 1,
                  1, 1, 1, 1, 1]
        colors = ["blue", "red", "green", "black", "cyan",
                  "magenta", "yellow", "dark red", "dark green", "blue"]
        styles = [1, 1, 1, 1, 1,
                  1, 1, 1, 1, 1]
        markers = [-1, -1, -1, -1, -1,
                   -1, -1, -1, -1, -1]
        alphas = [1.0, 1.0, 1.0, 1.0, 1.0,
                  1.0, 1.0, 1.0, 1.0, 1.0]

        for i in xrange(2*1):
            if len(labels[i]) == 0:
                if(i % 2 == 0):
                    self.qtgui_time_sink_x_0.set_line_label(i, "Re{{Data
{0}}}".format(i/2))
                else:
                    self.qtgui_time_sink_x_0.set_line_label(i, "Im{{Data
{0}}}".format(i/2))
            else:
                self.qtgui_time_sink_x_0.set_line_label(i, labels[i])
            self.qtgui_time_sink_x_0.set_line_width(i, widths[i])
            self.qtgui_time_sink_x_0.set_line_color(i, colors[i])
            self.qtgui_time_sink_x_0.set_line_style(i, styles[i])
            self.qtgui_time_sink_x_0.set_line_marker(i, markers[i])
            self.qtgui_time_sink_x_0.set_line_alpha(i, alphas[i])

        self._qtgui_time_sink_x_0_win =
sip.wrapinstance(self.qtgui_time_sink_x_0.pyqwidget(), Qt.QWidget)
        self.top_layout.addWidget(self._qtgui_time_sink_x_0_win)
        *(self.qtgui_time_sink_x_0).set_processor_affinity([2])*
        self.pyproject2_aa_0 = pyproject2.aa()
        *(self.pyproject2_aa_0).set_processor_affinity([1])*
        self.blocks_vector_to_stream_0 =
blocks.vector_to_stream(gr.sizeof_gr_complex*1, 64)
        self.blocks_throttle_0 = blocks.throttle(gr.sizeof_gr_complex*1,
samp_rate,True)
        self.blocks_stream_to_vector_0 =
blocks.stream_to_vector(gr.sizeof_gr_complex*1, 64)
        self.analog_sig_source_x_0 = analog.sig_source_c(samp_rate,
analog.GR_COS_WAVE, 1000, 1, 0)


So the *(self.pyproject2_aa_0).set_processor_affinity([1]) *keep same as
your suggestion.

but the error as below:

/top_block.py", line 118, in __init__
    (self.pyproject2_aa_0).set_processor_affinity([1])
AttributeError: 'aa' object has no attribute 'set_processor_affinity'

It looks like the block could not find the "set_processor_affinity".

thank you.

best regards
John


On Mon, Oct 30, 2017 at 8:50 AM, john liu <johncorad1988 at gmail.com> wrote:

> i will try it.
> thank you,Tom
>
> On Fri, Oct 27, 2017 at 1:41 PM, Tom Bereknyei <tom at dds.mil> wrote:
>
>> Try something like this:
>>
>> self._gateway_block__gateway.set_processor_affinity([0])
>>
>>
>> On Thu, Oct 26, 2017 at 22:11 john liu via USRP-users <
>> usrp-users at lists.ettus.com> wrote:
>>
>>> Hi all,
>>> Does anyone know how to solve this problem?
>>>
>>> best regards
>>> John
>>>
>>> On Wed, Oct 25, 2017 at 10:43 AM, john liu <johncorad1988 at gmail.com>
>>> wrote:
>>>
>>>> Dear all,
>>>> We write a python block based gr-sync,everything ok,but which can
>>>> not set_processor_affinity.error as below:
>>>> object has no attribute 'set_processor_affinity'
>>>> So we need other special settings?
>>>>
>>>> best regards
>>>> John
>>>>
>>>
>>> _______________________________________________
>>> USRP-users mailing list
>>> USRP-users at lists.ettus.com
>>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>>>
>> --
>> Maj Tom Bereknyei
>> Defense Digital Service
>> tom at dds.mil
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20171102/45cb0fdc/attachment-0002.html>


More information about the USRP-users mailing list