I don't think I'm writing the work function...

def work(self, input_items, output_items):
        item_index = 1 #which output item gets the tag?
        offset =  self.nitems_written(0) + item_index
        key = pmt.pmt_string_to_symbol("example_key")
        value = pmt.pmt_string_to_symbol("example_value")

        self.add_item_tag(0, offset, key, value)
#call work function
self.work(self.gr_vector_source_x_0, self.gr_file_sink_0)

Error: AttributeError: 'gr_top_block_sptr' object has no attribute
'nitems_written'

On Fri, Jul 13, 2012 at 3:25 PM, Josh Blum <j...@ettus.com> wrote:

>
>
> On 07/13/2012 12:08 PM, Anisha Gorur wrote:
> > Thanks for the examples, I will definitely be looking into them!
> > As for links, This one: http://gnuradio.org/cgit/jblum.git/log/?h=nextis
> > broken, it comes from one of the blocks coding guide here:
> >
> http://gnuradio.org/redmine/projects/gnuradio/wiki/BlocksCodingGuide/diff/2which
> > i found really helpful.
> >
>
> There was a lot of work in various branches off of gnuradio which I had
> merged into next. That branch is gone, and that work has been combined
> into the GrExtras project. The link and relevant coding guide was
> moved/updated: https://github.com/guruofquality/grextras/wiki
>
> > I also had one more quick question, I'm getting this error:
> > 'gr_top_block_sptr' object has no attribute 'add_item_tag', though I
> > thought add_item_tag was inherited from gr_block.
> > Thanks again!
> >
>
> Not sure, you might send a code snippet. It looks like you are calling a
> method of the top block, and not from the block's work function?
>
> -josh
>
> > On Fri, Jul 13, 2012 at 2:40 PM, Josh Blum <j...@ettus.com> wrote:
> >
> >>
> >>
> >> On 07/13/2012 10:08 AM, Anisha Gorur wrote:
> >>> Thanks!
> >>> Do you by any chance have links to specific code examples that could
> help
> >>> out? I've been trying to look at old examples you have posted to others
> >> on
> >>> this forum, however, some of the links from github seem to be broken.
> >>>
> >>
> >> Well, I dont have an example from python, but its just the same thing
> >> without semicolons. So this should be very helpful:
> >> http://gnuradio.org/cgit/gnuradio.git/tree/gr-uhd/examples/c++/
> >>
> >> Let me know if the links are bad on one of my wiki pages.
> >> At least I can fix those :-)
> >>
> >> -josh
> >>
> >>> On Fri, Jul 13, 2012 at 12:52 PM, Josh Blum <j...@ettus.com> wrote:
> >>>
> >>>>
> >>>>
> >>>> On 07/13/2012 08:51 AM, Anisha Gorur wrote:
> >>>>> Hello all,
> >>>>> I've been trying to work with stream tags in python, mainly using the
> >>>>> grextras blocks coding guide
> >>>>> here:https://github.com/guruofquality/grextras/wiki/Blo...
> >>>>> <
> >>>>
> >>
> https://github.com/guruofquality/grextras/wiki/Blocks-Coding-Guide#wiki-the-work-function
> >>>>> .
> >>>>>
> >>>>> I've set up a very simple flow graph, just a vector source, throttle
> >> and
> >>>>> file sink, and I would like to place a tag on the first element of
> the
> >>>>> vector that contains time metadata. I'm using this code:
> >>>>>
> >>>>> def work(self, input_items, output_items):
> >>>>> item_index = ? #which output item gets the tag?
> >>>>
> >>>> set item_index to x so the tag gets associated with
> outputs_items[0][x]
> >>>>
> >>>>> offset = self.nitems_written(0) + item_index
> >>>>> key = pmt.pmt_string_to_symbol("example_key")
> >>>>> value = pmt.pmt_string_to_symbol("example_value")
> >>>>>
> >>>>> #write at tag to output port 0 with given absolute item offset
> >>>>> self.add_item_tag(0, offset, key, value)
> >>>>>
> >>>>> I think the problem has something to do with not implementing the
> >>>>> correct modules. My question is, what are the appropriate modules to
> >>>>> import to read and write stream tags in python?
> >>>>>
> >>>>
> >>>> You might want to look more that that coding guide, at lot of the
> >>>> snippets are just work functions, but many contain full class
> >>>> definitions with import statements. For example:
> >>>>
> >>>> from gnuradio import gr
> >>>> import gnuradio.extras
> >>>>
> >>>> class my_sync_block(gr.block):
> >>>>
> >>>>     def __init__(self, args):
> >>>>         gr.block.__init__(self, name="my block", in_sig=[numpy.int32],
> >>>> out_sig=[numpy.int32])
> >>>>
> >>>>     def work(self, input_items, output_items):
> >>>>         #work stuff...
> >>>>         return len(output_items[0])
> >>>>
> >>>> -josh
> >>>>
> >>>> _______________________________________________
> >>>> Discuss-gnuradio mailing list
> >>>> 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

Reply via email to