Hi Josh,

I modified in my .h file:

#include <gnuradio/block.h>

and also, I inherit from gnu radio as follows:

//* This uses the preferred technique: subclassing gr_sync_block.
//class asrp_test_temporal : public gr_sync_block
class asrp_test_temporal : public gnuradio::block    // <--Here, I added
the inherit
{
private:
// Definition

Then, in the .cc file I wrote:

: gnuradio::block ("test_temporal",
             gr_make_io_signature(0, 0, 0),
             gr_make_io_signature(0, 0, 0),
             msg_signature(false, 1))


When I compile again, the complain is different. It displays:

asrp_test_temporal.cc:75:26: error: cannot allocate an object of abstract
type 'asrp_test_temporal'
./asrp_test_temporal.h:99:7: note:   because the following virtual
functions are pure within 'asrp_test_temporal':
/usr/local/include/gnuradio/block.h:236:17: note:     virtual int
gnuradio::block::work(const InputItems&, const OutputItems&)
make[2]: *** [asrp_test_temporal.lo] Error 1

According to the instruction in block coding:
https://github.com/guruofquality/grextras/wiki/Blocks-Coding-Guide, I only
need to write the msg_signature(#input,#output), but I decided to use the
gr_make_io_signature anyway, because I am reading the code for the example
of "socket_to_blob.cc".

1. Do I need to use gr_make_io_signature or just msg_signature is enough?.

Many thanks for your kind help,

Regards,

Jose.



On Wed, Sep 19, 2012 at 3:33 PM, Josh Blum <j...@ettus.com> wrote:

>
>
> On 09/19/2012 01:11 AM, Jose Torres Diaz wrote:
> > Hi,
> >
> > I'm trying to use "message passing" technique in order to create a block
> > that generates 29 Octets. Currently, I'm using a block that generates 29
> > Octets and then use tag streaming. In the .cc file, IO signature looks
> like:
> >
> > gr_sync_block ("st1_pktsrc_dummy_b",
> >            gr_make_io_signature (0, 0, 0),
> >            gr_make_io_signature (MIN_OUT, MAX_OUT, sizeof (unsigned
> char)))
> >
> > While, the stream tags looks like this:
> >
> > add_item_tag(0, tag_pos,
> >              d_burst_start_key,
> >              pmt_sob,
> >              d_my_unique_id)
> >
> > Now, I want to change this approach to message passing as it is explained
> > here: https://github.com/guruofquality/grextras/wiki/Blocks-Coding-Guide
> .
> > So, I changed the lines indicated above, for the following:
> >
> >  : gr_sync_block ("test_temporal",
> >                    gr_make_io_signature(0, 0, 0),
> >                    gr_make_io_signature(0, 0, 0),
> >                    msg_signature(false, 1))
> >
>
> Careful here, check the coding guide,
> you need to  #include <gnuradio/block.h>
> and inherit from gnuradio::block
>
> -josh
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to