Hi Josh,

In order to add more information, I checked the the file asrp_swig.cc,
which generates the error (line 8800) and I have the following:

 SWIGINTERN PyObject *_wrap_asrp_test_temporal_sptr_detail(PyObject
*SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   boost::shared_ptr< asrp_test_temporal > *arg1 = (boost::shared_ptr<
asrp_test_temporal > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   gr_block_detail_sptr result;

   if(!PyArg_UnpackTuple(args,(char
*)"asrp_test_temporal_sptr_detail",1,1,&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0,
&argp1,SWIGTYPE_p_boost__shared_ptrT_asrp_test_temporal_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '"
"asrp_test_temporal_sptr_detail" "', argument " "1"" of type '"
"boost::shared_ptr< asrp_test_temporal > const *""'");
   }
   arg1 = reinterpret_cast< boost::shared_ptr< asrp_test_temporal > *
>(argp1);
   {
     try {
       result = (*arg1)->detail();
     }
     catch(std::exception &e) {
       SWIG_exception(SWIG_RuntimeError, e.what());
     }
     catch(...) {
       SWIG_exception(SWIG_RuntimeError, "Unknown exception");
     }

This files has the line "wrap_asrp_test_temporal_sptr_detail". Also, inside
the file block.h there is not "detail" parameter. I was using before in my
block "gr_sync_block" and I did not get any error, I think because the file
"gr_sync_block.h" does have a "detail" parameter. Is this right?, is this
error due to this "detail" parameter missing?, how can I overcome/solve
this issue?.

Many thanks for your help,

Jose


On Thu, Sep 20, 2012 at 4:58 PM, Jose Torres Diaz <torresdiaz.j...@gmail.com
> wrote:

> Hi Josh,
>
> I checked the code again. I am almost there, at this stage I don't get any
> error using gnuradio::block in my .cc file (see below):
>
>
> : gnuradio::block ("test_temporal",
>          gr_make_io_signature (0, 0, 0), //This is a source - no inputs
>
>          gr_make_io_signature(0, 0, 0),
>          msg_signature(false, 1))
>
> and I changed the work function in the following way:
>
> int asrp_test_temporal::work (const InputItems &input_items,
>                                            const OutputItems &output_items)
>
> However, when I compile this block, I am getting some errors with the swig
> file, which points out that my defined class has no member named 'detail'
> and 'set_detail'. The errors is shown below:
>
> asrp_swig.cc: In function 'PyObject*
> _wrap_asrp_test_temporal_sptr_detail(PyObject*, PyObject*)':
> asrp_swig.cc:8800:25: error: 'class asrp_test_temporal' has no member
> named 'detail'
> asrp_swig.cc: In function 'PyObject*
> _wrap_asrp_test_temporal_sptr_set_detail(PyObject*, PyObject*, PyObject*)':
> asrp_swig.cc:8852:16: error: 'class asrp_test_temporal' has no member
> named 'set_detail'
>
> Do you have any suggestion in this case?.
>
> Best Regards,
>
> Jose.
>
>
> On Thu, Sep 20, 2012 at 10:47 AM, Josh Blum <j...@ettus.com> wrote:
>
>>
>>
>> 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 <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