Hello, We found two errors in the file:
1. samp_rate parameter is not defined. 2. There is an indention error. The lines with "self.$(id).set_arg("spp", $spp)" should not have leading spaces. Thanks, John On Thu, Oct 5, 2017 at 11:38 AM, Avila, Jose A via USRP-users < usrp-users@lists.ettus.com> wrote: > Thanks for the response and attached is the XML file, also the last commit > is > > > > > > *commit 23508458f31e8b50264045ee0a34d07c7abc807d Author: Derek Kozel > <derek.ko...@ettus.com <derek.ko...@ettus.com>> Date: Thu Jun 29 08:37:14 > 2017 -0700 * > > ------------------------------ > *From:* Nicolas Cuervo <nicolas.cue...@ettus.com> > *Sent:* Wednesday, October 4, 2017 10:39:43 PM > *To:* Avila, Jose A > *Cc:* usrp-users@lists.ettus.com > *Subject:* Re: [USRP-users] Error in RFNoC grc with OOT module > > Hello Jose, > > this might be an indentation problem at the XML that is located at > your_oot/grc/your_block.xml. Do you mind sharing with us that file? > > Also, I remember seeing this error in earlier versions of the tool, so it > would be interesting to know if it still happens, and under what > conditions. Could you please tell us which is the last commit that you are > pointing to at "gr-ettus"? To check, please go to your gr-ettus repository > and run: > > $ git log > > If it is not updated, it is always recommended to update. > > Regards, > -N > > On Wed, Oct 4, 2017 at 11:02 PM, Avila, Jose A via USRP-users < > usrp-users@lists.ettus.com> wrote: > >> Hello we are developing an OOT module following the tutorial, but similar >> to siggen, but are currently encountering an error that comes up with >> >> >> *./testtwochannel.py* >> >> The error that comes up is the following >> >> >> >> >> * File "./testtwochannel.py", line 97 >> self.siggen2ch_twochannelsiggen_0 = Template error: >> siggen2ch.twochannelsiggen( >> ^ SyntaxError: invalid >> syntax* >> >> The file in question is the following: >> >> >> #!/usr/bin/env python2 >> # -*- coding: utf-8 -*- >> ################################################## >> # GNU Radio Python Flow Graph >> # Title: Testtwochannel >> # Generated: Wed Oct 4 14:35:59 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 eng_notation >> from gnuradio import gr >> from gnuradio import qtgui >> from gnuradio import uhd >> from gnuradio.eng_option import eng_option >> from gnuradio.filter import firdes >> from optparse import OptionParser >> import SimpleXMLRPCServer >> import ettus >> import siggen2ch >> import sip >> import sys >> import threading >> from gnuradio import qtgui >> >> >> class testtwochannel(gr.top_block, Qt.QWidget): >> >> def __init__(self): >> gr.top_block.__init__(self, "Testtwochannel") >> Qt.QWidget.__init__(self) >> self.setWindowTitle("Testtwochannel") >> qtgui.util.check_set_qss() >> 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", "testtwochannel") >> self.restoreGeometry(self.settings.value("geometry").toByteA >> rray()) >> >> ################################################## >> # Variables >> ################################################## >> self.samp_rate = samp_rate = 10e6 >> self.waveform = waveform = "SINE_WAVE" >> self.ip_addr = ip_addr = "192.168.10.100" >> self.gain = gain = 1.0 >> self.freq = freq = samp_rate/10 >> self.enable = enable = False >> self.device3 = device3 = ettus.device3(uhd.device_addr_t( >> ",".join(('type=e3x0', "")) )) >> self.ampl_q = ampl_q = 1 >> self.ampl_i = ampl_i = 1 >> >> ################################################## >> # Blocks >> ################################################## >> self.xmlrpc_server_0 = >> SimpleXMLRPCServer.SimpleXMLRPCServer(('0.0.0.0', >> 8080), allow_none=True) >> self.xmlrpc_server_0.register_instance(self) >> self.xmlrpc_server_0_thread = threading.Thread(target=self.x >> mlrpc_server_0.serve_forever) >> self.xmlrpc_server_0_thread.daemon = True >> self.xmlrpc_server_0_thread.start() >> self.uhd_rfnoc_streamer_fifo_0 = ettus.rfnoc_generic( >> self.device3, >> uhd.stream_args( # TX Stream Args >> cpu_format="fc32", >> otw_format="sc16", >> args="gr_vlen={0},{1}".format(1, "" if 1 == 1 else >> "spp={0}".format(1)), >> ), >> uhd.stream_args( # RX Stream Args >> cpu_format="fc32", >> otw_format="sc16", >> args="gr_vlen={0},{1}".format(1, "" if 1 == 1 else >> "spp={0}".format(1)), >> ), >> "FIFO", -1, -1, >> ) >> self.siggen2ch_twochannelsiggen_0 = Template error: >> siggen2ch.twochannelsiggen( >> self.device3, >> uhd.stream_args( # TX Stream Args >> cpu_format="fc32", >> otw_format="sc16", >> args="gr_vlen={0},{1}".format(${grvlen}, "" if >> $grvlen == 1 else "spp={0}".format($grvlen)), >> ), >> uhd.stream_args( # RX Stream Args >> cpu_format="fc32", >> otw_format="sc16", >> args="gr_vlen={0},{1}".format(${grvlen}, "" if >> $grvlen == 1 else "spp={0}".format($grvlen)), >> ), >> $block_index, >> $device_index >> ) >> self.$(id).set_arg("spp", $spp) >> self.$(id).set_arg("frequency1", ((2*$frequency1)/$samp_rate)) >> self.$(id).set_arg("cartesian1", $cartesian1) >> self.$(id).set_arg("frequency2", ((2*$frequency2)/$samp_rate)) >> self.$(id).set_arg("cartesian2", $cartesian2) >> self.$(id).set_arg("gain", $gain) >> self.$(id).set_arg("enable", $enable) >> >> cannot find 'samp_rate' >> self.qtgui_freq_sink_x_0 = qtgui.freq_sink_c( >> 1024, #size >> firdes.WIN_BLACKMAN_hARRIS, #wintype >> 0, #fc >> samp_rate, #bw >> "", #name >> 1 #number of inputs >> ) >> self.qtgui_freq_sink_x_0.set_update_time(0.10) >> self.qtgui_freq_sink_x_0.set_y_axis(-140, 10) >> self.qtgui_freq_sink_x_0.set_y_label('Relative Gain', 'dB') >> self.qtgui_freq_sink_x_0.set_trigger_mode(qtgui.TRIG_MODE_FREE, >> 0.0, 0, "") >> self.qtgui_freq_sink_x_0.enable_autoscale(False) >> self.qtgui_freq_sink_x_0.enable_grid(False) >> self.qtgui_freq_sink_x_0.set_fft_average(1.0) >> self.qtgui_freq_sink_x_0.enable_axis_labels(True) >> self.qtgui_freq_sink_x_0.enable_control_panel(False) >> >> if not True: >> self.qtgui_freq_sink_x_0.disable_legend() >> >> if "complex" == "float" or "complex" == "msg_float": >> self.qtgui_freq_sink_x_0.set_plot_pos_half(not True) >> >> labels = ['', '', '', '', '', >> '', '', '', '', ''] >> widths = [1, 1, 1, 1, 1, >> 1, 1, 1, 1, 1] >> colors = ["blue", "red", "green", "black", "cyan", >> "magenta", "yellow", "dark red", "dark green", "dark >> blue"] >> 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(1): >> if len(labels[i]) == 0: >> self.qtgui_freq_sink_x_0.set_line_label(i, "Data >> {0}".format(i)) >> else: >> self.qtgui_freq_sink_x_0.set_line_label(i, labels[i]) >> self.qtgui_freq_sink_x_0.set_line_width(i, widths[i]) >> self.qtgui_freq_sink_x_0.set_line_color(i, colors[i]) >> self.qtgui_freq_sink_x_0.set_line_alpha(i, alphas[i]) >> >> self._qtgui_freq_sink_x_0_win = >> sip.wrapinstance(self.qtgui_freq_sink_x_0.pyqwidget(), >> Qt.QWidget) >> self.top_layout.addWidget(self._qtgui_freq_sink_x_0_win) >> >> ################################################## >> # Connections >> ################################################## >> self.connect((self.uhd_rfnoc_streamer_fifo_0, 0), >> (self.qtgui_freq_sink_x_0, 0)) >> >> self.device3.connect(self.siggen2ch_twochannelsiggen_0.get_block_id(), >> 0, self.uhd_rfnoc_streamer_fifo_0.get_block_id(), 0) >> >> def closeEvent(self, event): >> self.settings = Qt.QSettings("GNU Radio", "testtwochannel") >> 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.siggen2ch_twochannelsiggen_0.Template error: >> set_arg("frequency1", ((2*$frequency1)/$self.samp_rate)) >> cannot find 'samp_rate' >> self.siggen2ch_twochannelsiggen_0.Template error: >> set_arg("frequency2", ((2*$frequency2)/$self.samp_rate)) >> cannot find 'samp_rate' >> self.qtgui_freq_sink_x_0.set_frequency_range(0, self.samp_rate) >> self.set_freq(self.samp_rate/10) >> >> def get_waveform(self): >> return self.waveform >> >> def set_waveform(self, waveform): >> self.waveform = waveform >> >> def get_ip_addr(self): >> return self.ip_addr >> >> def set_ip_addr(self, ip_addr): >> self.ip_addr = ip_addr >> >> def get_gain(self): >> return self.gain >> >> def set_gain(self, gain): >> self.gain = gain >> >> def get_freq(self): >> return self.freq >> >> def set_freq(self, freq): >> self.freq = freq >> >> def get_enable(self): >> return self.enable >> >> def set_enable(self, enable): >> self.enable = enable >> >> def get_device3(self): >> return self.device3 >> >> def set_device3(self, device3): >> self.device3 = device3 >> >> def get_ampl_q(self): >> return self.ampl_q >> >> def set_ampl_q(self, ampl_q): >> self.ampl_q = ampl_q >> >> def get_ampl_i(self): >> return self.ampl_i >> >> def set_ampl_i(self, ampl_i): >> self.ampl_i = ampl_i >> >> >> def main(top_block_cls=testtwochannel, 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() >> >> >> Thank you >> >> >> >> _______________________________________________ >> USRP-users mailing list >> USRP-users@lists.ettus.com >> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >> >> > > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > >
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com