[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] Custom Block Issue
From: |
Josh Blum |
Subject: |
Re: [Discuss-gnuradio] Custom Block Issue |
Date: |
Mon, 30 Jul 2012 22:11:39 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120714 Thunderbird/14.0 |
On 07/30/2012 11:20 AM, Jonathan Fox wrote:
> On Fri, Jul 27, 2012 at 6:12 PM, Josh Blum <address@hidden> wrote:
>
>>
>>
>> On 07/27/2012 02:01 PM, Jonathan Fox wrote:
>>> I am trying to create a custom block that does energy detection. I used
>> the
>>> gr-modtool.py to generate the appropriate directory and files and added
>> my
>>> algorithm and necessary code to the header and cc. I also added the XML
>>> file for the GRC It compiled without error but when I tried testing it
>> out,
>>> I got this error:
>>>
>>> linux; GNU C++ version 4.6.3; Boost_104601; UHD_003.004.002-181-g25649781
>>>
>>> Traceback (most recent call last):
>>> File "/home/jonfox/spectrum_sensing_test.py", line 21, in <module>
>>> import specsense
>>> File "/usr/local/lib/python2.7/dist-packages/specsense/__init__.py",
>> line
>>> 45, in <module>
>>> from specsense_swig import *
>>> File
>>> "/usr/local/lib/python2.7/dist-packages/specsense/specsense_swig.py",
>> line
>>> 26, in <module>
>>> _specsense_swig = swig_import_helper()
>>> File
>>> "/usr/local/lib/python2.7/dist-packages/specsense/specsense_swig.py",
>> line
>>> 22, in swig_import_helper
>>> _mod = imp.load_module('_specsense_swig', fp, pathname, description)
>>> ImportError: libgnuradio-specsense.so: cannot open shared object file: No
>>> such file or directory
>>>
>>
>> First off, does the file really exist, if not is it installed, but under
>> the wrong name or wrong directory?
>>
>> If its there, sometimes running sudo ldconfig fixes issues like this.
>>
>>> specsense is the module I created with the modtool but I did not modify
>> the
>>> swig file. Any ideas on what I did wrong here?
>>>
>>> Also, it seems that my code for having a vector input does not hold up
>> and
>>> I have to manually change the input type in the appropriate python script
>>> despite setting it in GRC already. Is there any documentation on adding
>>> vector inputs and outputs?
>>>
>>
>> any code snippets with the problem that you can post?
>> -josh
>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>
> Sudo ldconfig worked. Now I get this:
>
> Traceback (most recent call last):
> File "/home/jonfox/gnuradio/spectrum_sensing_test.py", line 214, in
> <module>
> tb.Run(True)
> File
> "/usr/local/lib/python2.7/dist-packages/grc_gnuradio/wxgui/top_block_gui.py",
> line 76, in Run
> self.start()
> File "/usr/local/lib/python2.7/dist-packages/gnuradio/gr/top_block.py",
> line 97, in start
> self._tb.start(max_noutput_items)
> File
> "/usr/local/lib/python2.7/dist-packages/gnuradio/gr/gnuradio_core_runtime.py",
> line 1768, in start
> return _gnuradio_core_runtime.gr_top_block_sptr_start(self,
> max_noutput_items)
> RuntimeError: gr_buffer_add_reader: nzero_preload must be >= 0
>
Looks like thats what happens when history is initialized to something
<= 0. Perhaps something is not initialized in your app or defaulted to zero?
Perhaps a set of filter taps is empty, they often affect how history()
is set
-josh
~/src/gnuradio/gnuradio-core/src/lib/runtime$ grep gr_buffer_add_reader *
gr_buffer.cc:gr_buffer_add_reader (gr_buffer_sptr buf, int
nzero_preload, gr_block_sptr link)
gr_buffer.cc: throw std::invalid_argument("gr_buffer_add_reader:
nzero_preload must be >= 0");
gr_buffer.h: friend GR_CORE_API gr_buffer_reader_sptr
gr_buffer_add_reader (gr_buffer_sptr buf, int nzero_preload,
gr_block_sptr link);
gr_buffer.h:gr_buffer_add_reader (gr_buffer_sptr buf, int nzero_preload,
gr_block_sptr link=gr_block_sptr());
gr_buffer.h: gr_buffer_add_reader (gr_buffer_sptr buf, int
nzero_preload, gr_block_sptr link);
gr_buffer.i:%rename(buffer_add_reader) gr_buffer_add_reader;
gr_buffer.i:gr_buffer_reader_sptr gr_buffer_add_reader (gr_buffer_sptr
buf, int nzero_preload, gr_block_sptr link);
gr_flat_flowgraph.cc: detail->set_input(dst_port,
gr_buffer_add_reader(src_buffer, grblock->history()-1, grblock));
gr_flat_flowgraph.cc: detail->set_input(i,
gr_buffer_add_reader(src_buffer, block->history()-1, block));