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:21:46 -0700 (PDT)

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





reply via email to

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