Yes. I will cause your OOT blocks to be installed in the same place as all the other GNU Radio blocks.

Ron

On 08/08/2015 03:56 PM, Washbourne, Logan wrote:
Kevin,

It worked! I really appreciate your help!!

Ron,

So that install prefix should be pointing to where I installed gnuradio?

(Never can know too many ways to skin a cat-metaphorically)



Logan Washbourne
Electrical Engineering Graduate Student
(Electromagnetics)


On Sat, Aug 8, 2015 at 5:43 PM, Kevin McQuiggin <[email protected] <mailto:[email protected]>> wrote:

    Hi Logan:

    I just went through the same process!  My new OOT block wasn't
    being found.  The solution is to add a [grc] segment to the
    config.conf file in ~/.gnuradio:

    I had to create the .gnuradio directory, then add the simple
    two-line [grc] stanza to a new config.conf file:

    [grc]
    local_blocks_path=/usr/local/share/gnuradio/grc/blocks

    This tells grc to look for additional blocks in the stated
    directory.  So you would do something like:

    cd
    mkdir .gnuradio
    cd .gnuradio
    vi config.conf

    Then add the two lines above, your OOT block install path may be
    different so I'd check it first.

    Hope this helps,

    Kevin

    > On Aug 8, 2015, at 3:33 PM, Washbourne, Logan
    <[email protected]
    <mailto:[email protected]>> wrote:
    >
    > Hello all,
    >
    > I am trying to create a simple OOT block. Eventually I would
    like to create a block that lets a transmitting agent know if
    their message was received or not, but for now I am just trying to
    create a block that multiplies the input values by 2 (very similar
    to the guided tutorial example of the square_ff block).
    >
    > So the problem is that when I follow all of the instructions no
    errors appear but when I open up the GRC, my module and blocks are
    not there.
    >
    > So hopefully no one minds if I explain how I have installed
    Gnuradio on my machine and the process of creating the OOT module,
    in hopes someone might find where I made an error.
    >
    > I have already gotten previous help and responses on here that
    really did help me out so I'd like to say again, thank you to the
    community.
    >
    > Ok, so I used Pybombs to install Gnuradio.
    >
    > /home/username/Thesis/pybombs is where I installed pybombs.
    >
    > Before installing gnuradio I changed the permissions to the path
    of /opt/gnuradio/pybombs by using: sudo chown username:mygroupname
    /opt/gnuradio/pybombs (thanks to Nathan West)
    >
    > I then used ./pybombs install gnuradio.
    >
    > I changed the install prefix to /opt/gnuradio/pybombs
    >
    > Then I used ./pybobms env
    > source /opt/gnuradio/pybombs/setup_env.sh (sometimes I have to
    rerun this to get the GRC to open, not sure what I'm doing to undo
    this command)
    >
    > Then I created the folder, /home/username/Thesis/OOT
    >
    > I then used gr_modtool newmod ACK
    >
    > Then /home/username/Thesis/OOT/gr-ACK gr_modtool add -t general
    check
    >
    > altered the QA file
    > rewrote the check_impl.cc file
    >
    > Created the build folder(/home/username/Thesis/OOT/gr-ACK/build
    >
    > ran cmake ../
    > ran make
    > ran make test
    >
    > Everything passed(after some debugging, array indices start at 0
    btw)
    >
    > I then ran gr_modtool makexml check in the gr-ACK folder
    >
    > Then cd build
    >
    > sudo make install
    > sudo ldconfig
    >
    > gnuradio-companion
    >
    > And I can't find my module or block.
    >
    > I have a feeling that I'm still installing gnuradio or my OOT
    blocks in the wrong places, but I'm not sure how to remedy it.
    >
    > *********check_impl.cc***********
    >
    > #ifdef HAVE_CONFIG_H
    > #include "config.h"
    > #endif
    >
    > #include <gnuradio/io_signature.h>
    > #include "check_impl.h"
    >
    > namespace gr {
    >   namespace ACK {
    >
    >     check::sptr
    >     check::make()
    >     {
    >       return gnuradio::get_initial_sptr
    >         (new check_impl());
    >     }
    >
    >     /*
    >      * The private constructor
    >      */
    >     check_impl::check_impl()
    >       : gr::block("check",
    >               gr::io_signature::make(1,1, sizeof (float)),
    >               gr::io_signature::make(1,1, sizeof (float)))
    >     {}
    >
    >     /*
    >      * Our virtual destructor.
    >      */
    >     check_impl::~check_impl()
    >     {
    >     }
    >
    >     void
    >     check_impl::forecast (int noutput_items, gr_vector_int
    &ninput_items_required)
    >     {
    >         ninput_items_required[0] = noutput_items;
    >     }
    >
    >     int
    >     check_impl::general_work (int noutput_items,
    >                        gr_vector_int &ninput_items,
    >                        gr_vector_const_void_star &input_items,
    >                        gr_vector_void_star &output_items)
    >     {
    >         const float *in = (const float *) input_items[0];
    >         float *out = (float *) output_items[0];
    >
    >         // Do <+signal processing+>
    >         // Tell runtime system how many input items we consumed on
    >         // each input stream.
    >
    >     for(int i = 0; i < noutput_items ;i++)
    >     {
    >         out[i] = in[i] * 2;
    >     }
    >
    >
    >         consume_each (noutput_items);
    >
    >         // Tell runtime system how many output items we produced.
    >         return noutput_items;
    >     }
    >
    >   } /* namespace ACK */
    > } /* namespace gr */
    >
    >
    > ***********qa_check.py**********************
    >
    > #!/usr/bin/env python
    >
    >
    > from gnuradio import gr, gr_unittest
    > from gnuradio import blocks
    > import ACK_swig as ACK
    >
    > class qa_check (gr_unittest.TestCase):
    >
    >     def setUp (self):
    >         self.tb = gr.top_block ()
    >
    >     def tearDown (self):
    >         self.tb = None
    >
    >     def test_001_check (self):
    >
    >     src_data = (3, 4, 5.5, 2, 3)
    >     expected_result = (6, 8, 11, 4, 6)
    >     src = blocks.vector_source_f(src_data)
    >     sqr = ACK.check()
    >     dst = blocks.vector_sink_f()
    >     self.tb.connect(src,sqr)
    >     self.tb.connect(sqr,dst)
    >     self.tb.run()
    >     result_data = dst.data()
    >  self.assertFloatTuplesAlmostEqual(expected_result,result_data,6)
    >
    >
    >
    >
    >
    >
    > if __name__ == '__main__':
    >     gr_unittest.run(qa_check, "qa_check.xml")
    >
    >
    >
    >
    > I really appreciate all of your time,
    >
    > Logan Washbourne
    > Electrical Engineering Graduate Student
    > (Electromagnetics)
    >
    > _______________________________________________
    > Discuss-gnuradio mailing list
    > [email protected] <mailto:[email protected]>
    > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio





_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to