Greetings everybody, I have been trying to design a simple parallel output shift register, use gr.buffer & gr.buffer_reader. But I am having the error:
------------------------------------------------------------------------------------------------------------------------------------------------------------ File "dataST.py", line 61, in <module> tb = top_block() File "dataST.py", line 40, in __init__ self.my_buffer=gr.buffer(11,gr.sizeof_char*1,self.my_h) File "/usr/local/lib/python2.7/dist-packages/gnuradio/gr/gnuradio_core_runtime.py", line 312, in buffer return _gnuradio_core_runtime.buffer(*args, **kwargs) TypeError: in method 'buffer', argument 3 of type 'gr_block_sptr' ------------------------------------------------------------------------------------------------------------------------------------------------------------ You can see all of my program below: from gnuradio import eng_notation from gnuradio import gr from gnuradio.eng_option import eng_option from gnuradio.gr import firdes from grc_gnuradio import wxgui as grc_wxgui from optparse import OptionParser import wx import time class top_block(grc_wxgui.top_block_gui): def __init__(self): grc_wxgui.top_block_gui.__init__(self, title="Top Block") _icon_path = "/usr/share/icons/hicolor/32x32/apps/gnuradio-grc.png" self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY)) ################################################## # Variables ################################################## self.samp_rate = samp_rate = 1000000 ##a################################################ # Blocks ################################################## self.my_vec_src = gr.vector_source_b((1, 1, 1, 1,1, 1, 1, 1,1, 1, 1), True, 1) #self.my_vec_snk = gr.vector_sink_b(1) self.my_thro = gr.throttle(gr.sizeof_char*1, samp_rate) self.my_h = gr.head(gr.sizeof_char*1, 11) # buffer self.my_buffer=gr.buffer(11,gr.sizeof_char*1,self.my_h) self.my_buffer_reader=gr.buffer_reader(self.my_buffer,11) ################################################## # Connections ################################################## self.connect((self.my_vec_src, 0), (self.my_thro, 0)) self.connect((self.my_thro, 0), (self.my_h, 0)) self.connect((self.my_h, 0), (self.my_buffer, 0)) def get_samp_rate(self): return self.samp_rate def set_samp_rate(self, samp_rate): self.samp_rate = samp_rate if __name__ == '__main__': parser = OptionParser(option_class=eng_option, usage="%prog: [options]") (options, args) = parser.parse_args() tb = top_block() tb.Run(True) while(True): #time.sleep(10) if(tb.my_buffer.done()): my_data=tb.my_buffer_reader.read_pointer() print "data: ",my_data --------------------------------------------------------------------------------------------------------------------------------------------------- Is there anyway to use gr_buffer & gr_buffer_reader properly to design a simple parallel output shift register? I searched not only the other discussions in the forum, but also examples I can find. I also tried to find a use of gr_buffer in python files, also in doxygen, nothing... Third argument , "link" , is confusing, I tried to make a connection between gr_buffer and gr_throttle instead of gr_head, unfortunately it does not work, too. What should I do? Thanks in advance, Abdullah
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio