Guys, i am not able to load gr.basic_block and make signal processing block in Python. Simplu, there is no binding within gnuradio/gr for that class. It works perfectly for gr.hier)block2 class. What might be the problem?
Thanks On Tue, Jan 29, 2013 at 12:57 PM, Nemanja Savic <vlasi...@gmail.com> wrote: > Hi Martin, > > here is the error I got when trying to use new version of gr_modtool: > > [savi_ne@ts-070046nl Desktop]$ gr_modtool.py help > > Using Python < 2.7 possibly buggy. Ahem. Please send all complaints to > /dev/null. > Traceback (most recent call last): > File "/usr/local/bin/gr_modtool.py", line 2665, in <module> > main() > File "/usr/local/bin/gr_modtool.py", line 2656, in main > modtool = cmd_dict[command]() > File "/usr/local/bin/gr_modtool.py", line 2629, in __init__ > ModTool.__init__(self) > File "/usr/local/bin/gr_modtool.py", line 282, in __init__ > self.parser = self.setup_parser() > File "/usr/local/bin/gr_modtool.py", line 290, in setup_parser > parser = OptionParser(usage=Templates['usage'], add_help_option=False) > NameError: global name 'Templates' is not defined > > > > On Mon, Jan 28, 2013 at 10:14 PM, Nemanja Savic <vlasi...@gmail.com>wrote: > >> Hi all, >> >> In my first post from today, where I reported error in gr_modtool, I was >> using script downloaded from github this morning (just to clarifu how old >> scriot I used). >> Basically I am trying to make my own packet deframer block, and they are >> more or less designed like that. This block was designed just to see how >> messages work. In GRC when I connect them in that way it works, but in test >> script above it doesn't work. >> Basically the problem comes from making similar block like packet >> deframer, but I am not able to import gr.block, or gr.basic_block in python >> (and gr.hier_block2 works perfectly) >> >> Cheers >> >> >> On Mon, Jan 28, 2013 at 5:05 PM, Martin Braun (CEL) <martin.br...@kit.edu >> > wrote: >> >>> - Try the latest gr_modtool from github >>> - What you're doing seems weird--why are you connecting message blocks? >>> These are meant as a hackish solution to access samples from outside >>> the flow graph. Perhaps you want the new PDU to stream blocks? >>> >>> MB >>> >>> On Mon, Jan 28, 2013 at 04:42:04PM +0100, Nemanja Savic wrote: >>> > Since I don't know why gr_modtool doesn't work for me, I took the >>> older working >>> > version and made very simple hier block in order to understand >>> messages flow in >>> > gnuradio. >>> > >>> > The block code is following: >>> > >>> > >>> > from gnuradio import gr >>> > >>> > class msg_proba(gr.hier_block2): >>> > def __init__(self, ): >>> > gr.hier_block2.__init__(self, "msg_proba", >>> > gr.io_signature(1, 1, gr.sizeof_char), # Input >>> signature >>> > gr.io_signature(1, 1, gr.sizeof_char)) # Output >>> signature >>> > >>> > gr_message_sink_0_msgq_out = gr_message_source_0_msgq_in = >>> > gr.msg_queue(4) >>> > >>> > self.gr_message_source_0 = >>> gr.message_source(gr.sizeof_char*1, >>> > gr_message_source_0_msgq_in) >>> > self.gr_message_sink_0 = gr.message_sink(gr.sizeof_char*1, >>> > gr_message_sink_0_msgq_out, False) >>> > >>> > self.connect(self, self.gr_message_sink_0) >>> > self.connect(self.gr_message_source_0, self) >>> > >>> > >>> > >>> > and the test code is following: >>> > >>> > >>> > >>> > from gnuradio import gr, gr_unittest >>> > import test >>> > import msg_proba >>> > >>> > class qa_msg_proba (gr_unittest.TestCase): >>> > >>> > def setUp (self): >>> > self.tb = gr.top_block () >>> > >>> > def tearDown (self): >>> > self.tb = None >>> > >>> > def test_001_msg_proba (self): >>> > >>> > self.src_data = () >>> > self.expected_result = () >>> > >>> > for i in range(51): >>> > self.src_data = self.src_data + (1,) >>> > self.expected_result = self.expected_result+(1,) >>> > >>> > self.src = gr.vector_source_b(self.src_data, False, 1) >>> > self.dst = gr.vector_sink_b () >>> > >>> > self.msg_pr = msg_proba.msg_proba() >>> > >>> > self.tb.connect(self.src, self.msg_pr, self.dst) >>> > >>> > self.tb.run () >>> > # check data >>> > result_data = dst.data () >>> > self.assertEqual (expected_result, result_data) >>> > >>> > if __name__ == '__main__': >>> > gr_unittest.main () >>> > >>> > >>> > When I run test, it doesn't finish. No errors, just stays active >>> without giving >>> > any results. >>> > >>> > Can somebody provide some explanation? >>> > >>> > >>> > >>> > >>> > On Mon, Jan 28, 2013 at 10:28 AM, Nemanja Savic <vlasi...@gmail.com> >>> wrote: >>> > >>> > >>> > I installed new version of gr_modtool script and it won't work. >>> The error >>> > is following: >>> > >>> > [savi_ne@ts-070046nl gr-test]$ gr_modtool.py add -N rx_tx_message >>> -t hier >>> > -l python >>> > Using Python < 2.7 possibly buggy. Ahem. Please send all >>> complaints to /dev >>> > /null. >>> > Operating in directory . >>> > GNU Radio module name identified: test >>> > Language: Python >>> > Block/code identifier: rx_tx_message >>> > Enter valid argument list, including default arguments: >>> > Add Python QA code? [Y/n] n >>> > Traversing python... >>> > Adding file 'rx_tx_message.py'... >>> > >>> > >>> > Traceback (most recent call last): >>> > >>> > File "/usr/local/bin/gr_modtool.py", line 3369, in <module> >>> > main() >>> > File "/usr/local/bin/gr_modtool.py", line 3362, in main >>> > modtool.run() >>> > File "/usr/local/bin/gr_modtool.py", line 1339, in run >>> > self._run_python() >>> > File "/usr/local/bin/gr_modtool.py", line 1479, in _run_python >>> > self._write_tpl('block_python', 'python', fname_py) >>> > File "/usr/local/bin/gr_modtool.py", line 1324, in _write_tpl >>> > open(os.path.join(path, fname), 'w').write(get_template(tpl, >>> > **self._info)) >>> > File "/usr/local/bin/gr_modtool.py", line 870, in get_template >>> > return str(GRMTemplate(Templates[tpl_id], searchList=kwargs)) >>> > File "/usr/local/bin/gr_modtool.py", line 865, in __init__ >>> > Cheetah.Template.Template.__init__(self, src, >>> searchList=searchList) >>> > File "/usr/lib64/python2.6/site-packages/Cheetah/Template.py", >>> line 1257, >>> > in __init__ >>> > self._compile(source, file, compilerSettings=compilerSettings) >>> > File "/usr/lib64/python2.6/site-packages/Cheetah/Template.py", >>> line 1551, >>> > in _compile >>> > keepRefToGeneratedCode=True) >>> > File "/usr/lib64/python2.6/site-packages/Cheetah/Template.py", >>> line 795, >>> > in compile >>> > raise parseError >>> > Cheetah.Parser.ParseError: >>> > >>> > Error in the Python code which Cheetah generated for this template: >>> > >>> =========================================================================== >>> > ===== >>> > >>> > expected an indented block (DynamicallyCompiledCheetahTemplate.py, >>> line >>> > 122) >>> > >>> > Line|Python Code >>> > ----|------------------------------------------------------------- >>> > 120 | deciminterp = '' >>> > 121 | else: # generated from line 42, col 1 >>> > 122 | write(u'''from gnuradio import gr >>> > ^ >>> > 123 |class ''') >>> > 124 | _v = VFFSL(SL,"blockname",True) # u'${blockname}' on >>> line 46, >>> > col 7 >>> > 125 | if _v is not None: write(_filter(_v, >>> rawExpr=u'${blockname}')) >>> > # from line 46, col 7. >>> > >>> > >>> =========================================================================== >>> > ===== >>> > >>> > Here is the corresponding Cheetah code. >>> > ** I had to guess the line & column numbers, so they are probably >>> > incorrect: >>> > >>> > Line 42, column 1 >>> > >>> > Line|Cheetah Code >>> > ----|------------------------------------------------------------- >>> > 39 |#else if $blocktype == 'decimator' >>> > 40 |#set $deciminterp = ', <+decimation+>' >>> > 41 |#set $deciminterp = '' >>> > 42 |#else >>> > ^ >>> > 43 |#end if >>> > 44 |from gnuradio import gr >>> > 45 | >>> > >>> > >>> > Any suggestions how to ovecome this except using older version >>> which worked >>> > perfectly? >>> > >>> > >>> > >>> > On Fri, Jan 25, 2013 at 9:22 PM, Nemanja Savic <vlasi...@gmail.com> >>> wrote: >>> > >>> > >>> > Thank you Martin, I will try that on Monday. >>> > >>> > I suppose that I have older version of gr_modtool, cause there >>> is no >>> > option -l for selecting language. >>> > >>> > My weekend would be maybe perfect If you or anybody else can >>> explain to >>> > me why my code won't work, cause I have more or less copied >>> block >>> > structure from grextras. >>> > >>> > >>> > Nice weekend >>> > >>> > Nemanja >>> > >>> > >>> > >>> > On Fri, Jan 25, 2013 at 5:18 PM, Martin Braun (CEL) < >>> > martin.br...@kit.edu> wrote: >>> > >>> > For a hier block in Python, do >>> > >>> > $ gr_modtool.py add -t hier -l python >>> > >>> > You need 3.6.3 to do that. >>> > >>> > Also, you'll need a new version of modtool (it usually >>> lags a bit >>> > behind >>> > changes in GNU Radio). >>> > >>> > MB >>> > >>> > >>> > >>> > On Fri, Jan 25, 2013 at 05:05:56PM +0100, Nemanja Savic >>> wrote: >>> > > Hi all, >>> > > >>> > > >>> > > today i was trying to make hierarchical signal >>> processing block >>> > in Python. I >>> > > started with gr_modtool script, and configured it for >>> hierpython >>> > block type. >>> > > >>> > > >>> > > My idea was to design block similar to packet framer, so >>> inside >>> > of the new >>> > > block, I connected binary slicer and Framer sink. I have >>> also >>> > declared message >>> > > queue. >>> > > >>> > > >>> > > Outside of main block, I designed another block which >>> should >>> > collect messages >>> > > sent by framer from the main block. >>> > > >>> > > >>> > > When I wanted to run this block, I got following error: >>> > > >>> > > >>> > > >>> > > Traceback (most recent call last): >>> > > File "/home/savi_ne/work/gnuradio/GRC/top_block.py", >>> line 439, >>> > in <module> >>> > > tb = top_block() >>> > > File "/home/savi_ne/work/gnuradio/GRC/top_block.py", >>> line 183, >>> > in __init__ >>> > > self.test_packet_proba_0 = test.packet_proba() >>> > > AttributeError: 'module' object has no attribute >>> 'packet_proba' >>> > > >>> > > >>> > > >>> > > Next I found that maybe I have to put following line in >>> > __init__.py file: >>> > > >>> > > from packet_proba import * >>> > > >>> > > >>> > > After that I got similar error: >>> > > >>> > > Traceback (most recent call last): >>> > > File "/home/savi_ne/work/gnuradio/GRC/top_block.py", >>> line 18, >>> > in <module> >>> > > import test >>> > > File "/usr/local/lib64/python2.6/site-packages/test/ >>> > __init__.py", line 49, in >>> > > <module> >>> > > from packet_proba import * >>> > > File "/usr/local/lib64/python2.6/site-packages/test/ >>> > packet_proba.py", line >>> > > 51, in <module> >>> > > class proba(gr.basic_block): >>> > > AttributeError: 'module' object has no attribute >>> 'basic_block' >>> > > >>> > > >>> > > I have also tried with gr.block instead of >>> gr.basic_block, but >>> > with identical >>> > > results. >>> > > >>> > > >>> > > Can anybody tell what's missing? >>> > > >>> > > >>> > > Thanks >>> > > >>> > > >>> > > -- >>> > > Nemanja Savić >>> > > >>> > >>> > >>> > > _______________________________________________ >>> > > Discuss-gnuradio mailing list >>> > > Discuss-gnuradio@gnu.org >>> > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >>> > >>> > >>> > -- >>> > Karlsruhe Institute of Technology (KIT) >>> > Communications Engineering Lab (CEL) >>> > >>> > Dipl.-Ing. Martin Braun >>> > Research Associate >>> > >>> > Kaiserstraße 12 >>> > Building 05.01 >>> > 76131 Karlsruhe >>> > >>> > Phone: +49 721 608-43790 >>> > Fax: +49 721 608-46071 >>> > www.cel.kit.edu >>> > >>> > KIT -- University of the State of Baden-Württemberg and >>> > National Laboratory of the Helmholtz Association >>> > >>> > _______________________________________________ >>> > Discuss-gnuradio mailing list >>> > Discuss-gnuradio@gnu.org >>> > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >>> > >>> > >>> > >>> > >>> > >>> > -- >>> > >>> > Nemanja Savić >>> > >>> > >>> > >>> > >>> > -- >>> > Nemanja Savić >>> > >>> > >>> > >>> > >>> > -- >>> > Nemanja Savić >>> > >>> >>> > _______________________________________________ >>> > Discuss-gnuradio mailing list >>> > Discuss-gnuradio@gnu.org >>> > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >>> >>> >>> -- >>> Karlsruhe Institute of Technology (KIT) >>> Communications Engineering Lab (CEL) >>> >>> Dipl.-Ing. Martin Braun >>> Research Associate >>> >>> Kaiserstraße 12 >>> Building 05.01 >>> 76131 Karlsruhe >>> >>> Phone: +49 721 608-43790 >>> Fax: +49 721 608-46071 >>> www.cel.kit.edu >>> >>> KIT -- University of the State of Baden-Württemberg and >>> National Laboratory of the Helmholtz Association >>> >>> _______________________________________________ >>> Discuss-gnuradio mailing list >>> Discuss-gnuradio@gnu.org >>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >>> >>> >> >> >> -- >> Nemanja Savić >> > > > > -- > Nemanja Savić > -- Nemanja Savić
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio