Thanks, this was a huge help! -Anisha On Fri, Jul 13, 2012 at 4:26 PM, Josh Blum <[email protected]> wrote:
> 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 > >> > >> > > > > > > -- Anisha Gorur Class of 2012 Electrical Engineering
_______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
