Thursday, July 19, 2012

Re: [Discuss-gnuradio] Creating a signal source block using Python

> I was trying that earlier, however, I get this error from my code
> output_items[0][:] = x #where x equals a numpy.complex64 array with
> a length of 32
>
> ValueError: operands could not be broadcast together with shapes
> (4096) (32)
Try something like:

n_processed = len(x)
output_items[0][:n_processed] = x
return n_processed

I hope that helps.

-Gerald
>
>
> On Thu, Jul 19, 2012 at 2:44 PM, Josh Blum <josh@ettus.com
> <mailto:josh@ettus.com>> wrote:
>
>
>
> On 07/19/2012 11:28 AM, Anisha Gorur wrote:
> > It works now, thanks! It was a combination of a couple dumb
> errors on my
> > part. One last thing, I was wondering if there was a way to
> change the
> > length of output_items[0]? It is 4096 by default I believe.
> > Thanks,
> > Anisha
>
> The item length is basically randomly decided by the scheduler.
> However,
> you call set_output_multiple(x) and you will be guaranteed to get x*N
> items where N is an integer. Also, you dont have to actually fill all
> items, just fill the number you plan to produce.
>
> -josh
>
> >
> > On Thu, Jul 19, 2012 at 2:13 PM, Josh Blum <josh@ettus.com
> <mailto:josh@ettus.com>> wrote:
> >
> >>
> >>
> >> On 07/18/2012 11:32 AM, Anisha Gorur wrote:
> >>> Hello All,
> >>>
> >>> I've been attempting to create my own source block in Python.
> I have been
> >>> reading the blocks coding guide here:
> >>>
> >>
> https://github.com/guruofquality/grextras/wiki/Blocks-Coding-Guide#wiki-work-operation-modes
> >> ,
> >>> but so far my source only outputs zeros.
> >>> An outline of my code is as follows:
> >>>
> >>> class constSource(gr.block):
> >>> def __init__(self):
> >>> gr.block.__init__(self, name = "signal
> source", in_sig =
> >>> None,out_sig = [numpy.complex64])
> >>>
> >>> def work(self, input_items, output_items):
> >>> num_output_items = len(output_items[0])
> >>>
> >>> #I put the code to create what I want to stream here,
> the code
> >>> creates a numpy.complex64 array with a length of 32. I then return
> >>> num_output_items
> >>
> >>
> >> You didnt include the code, but I am guessing that you are not
> assigning
> >> anything to the output vector?
> >>
> >> numpy array assignment look like this
> >> output_items[0][some kind of index selection] = data
> >>
> >> Look closely at how the examples do this
> >>
> >> -josh
> >>
> >>> return num_output_items
> >>>
> >>> I then write my constSource block to a file and I try to see
> the output
> >> of
> >>> the file using a scope sink, but it is just a constant stream
> of zeros.
> >> Am
> >>
> >>
> >> _______________________________________________
> >> Discuss-gnuradio mailing list
> >> Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org>
> >> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> >>
> >
> >
> >
>
>
>
>
> --
> Anisha Gorur
> Class of 2012
> Electrical Engineering
>



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

No comments:

Post a Comment