discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Float is required error for customized Block


From: Tellrell White
Subject: Re: [Discuss-gnuradio] Float is required error for customized Block
Date: Wed, 3 Jan 2018 07:47:03 -0500

I made two edits to the code. I took out float() and took Gilad's suggestion to use np.log10() which operates on a list. Making these changes results in the following error

 c = np.log10(in1)         #converts 1024 values stored in in1 to dB and stores them in c
AttributeError: log10
thread[thread-per-block[8]: <block ED_block (22)>]: caught unrecognized exception

I'm assuming its because of the size of the values.

On Tue, Jan 2, 2018 at 11:26 PM, Gilad Beeri (ApolloShield) <address@hidden> wrote:
Have just looked at your code from my mobile.
You want to check numpy.log10 and numpy.greater (there will be other ways to do the same thing).


On Tue, Jan 2, 2018, 20:18 Gilad Beeri (ApolloShield) <address@hidden> wrote:
This is related to Python, not GNU Radio per se. It seems that you pass in1 to math.log10().
I assume that you define in1 as input_items[1], which is a list of items to process (not a single item), while the log function expects to get a float, not a list.

Something like:
for item in in1:
  c = math.log10(item) 

should work for you. I guess there's a numpy function that will run the log function on a list more efficiently.



On Tue, Jan 2, 2018, 20:10 Tellrell White <address@hidden> wrote:
Hello Guys

I'm creating a customized block in the GNU Radio framework using python that takes in a number of input items and once that number of input items surpasses a certain number, 1024 of the input items are taken and stored into an array, and then those items are converted to dB and lastly compared to a threshold value, 5 in this case. If any of the values are greater than the threshold value, a message is printed indicating a signal is present, and if none of the values are greater than 5, this is indicated with a message stating "No signal is present".

When I run the flow graph which uses this block I get the following error.

handler caught exception: a float is required
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/gnuradio/gr/gateway.py", line 55, in eval
    try: self._callback()
  File "/usr/local/lib/python2.7/dist-packages/gnuradio/gr/gateway.py", line 144, in __gr_block_handle
    ) for i in self.__out_indexes],
  File "/home/tellrell/Ener_detec.py", line 42, in general_work
    c = math.log10(in1)         #converts 1024 values stored in in1 to dB and stores them in c
TypeError: a float is required
thread[thread-per-block[8]: <block ED_block (22)>]: caught unrecognized exception



The .py script for the customized block along with the corresponding .grc file are attached below.

Any help would be great.

Tellrell
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


reply via email to

[Prev in Thread] Current Thread [Next in Thread]