[Top][All Lists]
[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