[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] Creation of a block (PSDU 29 octets) using messag
From: |
Josh Blum |
Subject: |
Re: [Discuss-gnuradio] Creation of a block (PSDU 29 octets) using message passing technique |
Date: |
Wed, 19 Sep 2012 21:17:08 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120827 Thunderbird/15.0 |
On 09/19/2012 07:42 PM, Jose Torres Diaz wrote:
> 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
>
Double check the error, it just wants you to create a work method with
the given definition. The signature stuff looks just fine.
-josh
> 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 <address@hidden> 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
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>