discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] How to implement a block derived from gr_block


From: George Barrinuevo
Subject: Re: [Discuss-gnuradio] How to implement a block derived from gr_block
Date: Tue, 10 Apr 2007 22:54:02 -0700 (PDT)

Eric,

Please disregard my last email.  I found the problem. 
The work() has 3 arguments passed in and
general_work() has 4 arguments.  When I made the
corrections, the 'make' worked fine.

Thanks,

--- George Barrinuevo <address@hidden> wrote:

> Eric,
> 
> I get make errors when I converted from
> gr_sync_block
> to gr_block.  I also used general_work() instead of
> work().  The error has to do something with virtual
> and pure in C++.  Do you know what is going on or
> how
> I can fix it?
> 
> /usr/local/include/gnuradio/gr_block.h:113: warning:
> 'virtual int gr_block::general_work(int,
> gr_vector_int&, gr_vector_const_void_star&,
> gr_vector_void_star&)' was hidden
> mycode_manchester_decode_bb.h:54: warning:   by 'int
> mycode_manchester_decode_bb::general_work(int,
> gr_vector_const_void_star&, gr_vector_void_star&)'
> if /bin/sh ../../libtool --tag=CXX --mode=compile
> g++
> -DHAVE_CONFIG_H -I. -I. -I../.. -DOMNITHREAD_POSIX=1
> -pthread -I/usr/local/include/gnuradio   
> -I/usr/include/python2.4    -g -O2 -Wall
> -Woverloaded-virtual -pthread -MT
> mycode_slicer_fb.lo
> -MD -MP -MF ".deps/mycode_slicer_fb.Tpo" -c -o
> mycode_slicer_fb.lo mycode_slicer_fb.cc; \
>         then mv -f ".deps/mycode_slicer_fb.Tpo"
> ".deps/mycode_slicer_fb.Plo"; else rm -f
> ".deps/mycode_slicer_fb.Tpo"; exit 1; fi
>  g++ -DHAVE_CONFIG_H -I. -I. -I../..
> -DOMNITHREAD_POSIX=1 -pthread
> -I/usr/local/include/gnuradio
> -I/usr/include/python2.4
> -g -O2 -Wall -Woverloaded-virtual -pthread -MT
> mycode_slicer_fb.lo -MD -MP -MF
> .deps/mycode_slicer_fb.Tpo -c mycode_slicer_fb.cc 
> -fPIC -DPIC -o .libs/mycode_slicer_fb.o
> if /bin/sh ../../libtool --tag=CXX --mode=compile
> g++
> -DHAVE_CONFIG_H -I. -I. -I../.. -DOMNITHREAD_POSIX=1
> -pthread -I/usr/local/include/gnuradio   
> -I/usr/include/python2.4    -g -O2 -Wall
> -Woverloaded-virtual -pthread -MT
> mycode_manchester_decode_bb.lo -MD -MP -MF
> ".deps/mycode_manchester_decode_bb.Tpo" -c -o
> mycode_manchester_decode_bb.lo
> mycode_manchester_decode_bb.cc; \
>         then mv -f
> ".deps/mycode_manchester_decode_bb.Tpo"
> ".deps/mycode_manchester_decode_bb.Plo"; else rm -f
> ".deps/mycode_manchester_decode_bb.Tpo"; exit 1; fi
>  g++ -DHAVE_CONFIG_H -I. -I. -I../..
> -DOMNITHREAD_POSIX=1 -pthread
> -I/usr/local/include/gnuradio
> -I/usr/include/python2.4
> -g -O2 -Wall -Woverloaded-virtual -pthread -MT
> mycode_manchester_decode_bb.lo -MD -MP -MF
> .deps/mycode_manchester_decode_bb.Tpo -c
> mycode_manchester_decode_bb.cc  -fPIC -DPIC -o
> .libs/mycode_manchester_decode_bb.o
> /usr/local/include/gnuradio/gr_block.h:113: warning:
> 'virtual int gr_block::general_work(int,
> gr_vector_int&, gr_vector_const_void_star&,
> gr_vector_void_star&)' was hidden
> ./mycode_manchester_decode_bb.h:54: warning:   by
> 'int
> mycode_manchester_decode_bb::general_work(int,
> gr_vector_const_void_star&, gr_vector_void_star&)'
> mycode_manchester_decode_bb.cc: In function
> 'mycode_manchester_decode_bb_sptr
> mycode_make_manchester_decode_bb()':
> mycode_manchester_decode_bb.cc:13: error: cannot
> allocate an object of abstract type
> 'mycode_manchester_decode_bb'
> ./mycode_manchester_decode_bb.h:37: note:   because
> the following virtual functions are pure within
> 'mycode_manchester_decode_bb':
> /usr/local/include/gnuradio/gr_block.h:113: note:   
>  
>  virtual int gr_block::general_work(int,
> gr_vector_int&, gr_vector_const_void_star&,
> gr_vector_void_star&)
> mycode_manchester_decode_bb.cc: In constructor
>
'mycode_manchester_decode_bb::mycode_manchester_decode_bb()':
> mycode_manchester_decode_bb.cc:33: warning: unused
> variable 'd_last_bit'
> mycode_manchester_decode_bb.cc:34: warning: unused
> variable 'd_get_symbol_now'
> mycode_manchester_decode_bb.cc:35: warning: unused
> variable 'd_out_bit'
> mycode_manchester_decode_bb.cc:36: warning: unused
> variable 'debug_ctr1'
> make[4]: *** [mycode_manchester_decode_bb.lo] Error
> 1
> make[4]: Leaving directory
>
`/home/gbarrinu/gnuradio_dl/gnuradio/gnuradio/gr-mycode/src/lib'
> make[3]: *** [all] Error 2
> make[3]: Leaving directory
>
`/home/gbarrinu/gnuradio_dl/gnuradio/gnuradio/gr-mycode/src/lib'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory
>
`/home/gbarrinu/gnuradio_dl/gnuradio/gnuradio/gr-mycode/src'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory
>
`/home/gbarrinu/gnuradio_dl/gnuradio/gnuradio/gr-mycode'
> make: *** [all] Error 2
> address@hidden gr-mycode]$                  
> 
> Thanks,
> --- Eric Blossom <address@hidden> wrote:
> 
> > On Tue, Apr 10, 2007 at 12:17:25AM -0700, George
> > Barrinuevo wrote:
> > > I created a block from gr_sync_block and later
> > found
> > > that it does not work properly since gr_sync_*
> > > requires that the input and output rate are
> > > synchronous, e.g. having 1:1, 1:N, N:1 fixed
> > ratio. 
> > > However, my block has varying input and output
> > rates
> > > which implies I need to derive it from gr_block.
> 
> > My
> > > question is, what is the procedure to convert a
> > block
> > > from gr_sync_block to gr_block?  I tried making
> > the
> > > changes, but got errors and 'make' time.  The
> main
> > > different I see is: 1) use gr_block instead of
> > > gr_sync_block, 2) use general_work() instead of
> > > work().
> > > 
> > > Am I missing anything?
> > > 
> > > Thanks,
> > > 
> > > 
> > > George Barrinuevo
> > > address@hidden
> > 
> > 
> > You'll need: consume_each and forecast.
> > 
> > See
> >
>
http://www.gnu.org/software/gnuradio/doc/howto-write-a-block.html
> > 
> > Eric
> > 
> 
> 
> George Barrinuevo
> address@hidden
> 
> 
> 
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
>
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> 


George Barrinuevo
address@hidden





reply via email to

[Prev in Thread] Current Thread [Next in Thread]