Aha, I knew I had unit tests. Study these carefully: https://github.com/guruofquality/grextras/blob/master/python/qa_block_gateway.py#L104
And just for sanity, make sure that "make test" passed for you :-) -josh On 07/13/2012 01:20 PM, Anisha Gorur wrote: > Also, I've been assuming that nitems_written/read is from gr_block_detail, > and add_item_tag is from gr_block and that they have both been swigged, > since you used them in your example. Is it possible that they haven't been? > Thanks > -Anisha > > On Fri, Jul 13, 2012 at 3:57 PM, Anisha Gorur <[email protected]> wrote: > >> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 >>>>>>> [email protected] >>>>>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> >> -- >> Anisha Gorur >> Class of 2012 >> Electrical Engineering >> >> > > _______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
