discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] B200/mini GPIO


From: Martin Braun
Subject: Re: [Discuss-gnuradio] B200/mini GPIO
Date: Fri, 10 Jun 2016 11:38:32 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0

Just pass the sptr. That's safe. That's its purpose.

M

On 06/10/2016 04:44 AM, Santos Campos wrote:
> Pretty close! I was hoping to make a kind of usrp sink to control the
> board remotely.
> [usrp source] -> (demodulate signal to a 0/1) -> [custom block to mux
> gpio ports]
> 
> So I'm familiar with pass by reference for functions and how to use them
> after.
> I'm not sure what it means to PbR into a whole block though. Does this mean
> it's okay to add an extra parameter to my work function? 
> 
> 
> 
> 
> On Thu, Jun 9, 2016 at 12:17 PM, Martin Braun <address@hidden
> <javascript:_e(%7B%7D,'cvml','address@hidden');>> wrote:
> 
>     Santos,
> 
>     I could not follow this.
>     Here's what I think you want:
> 
>     - USRP Source => Other Blocks
>     - Your GPIO Block is on the side
> 
>     In C++, pass a reference of the USRP source into your block. There, use
>     get_device() to return a multi_usrp::sptr. With that, you can do
>     whatever you want.
> 
>     M
> 
> 
> 
>     On 06/08/2016 11:06 AM, Santos Campos wrote:
>     > Ah sorry, I meant to mention I'm writing it in c++ not python.
>     > Yes, I saw that get_device() returns a sptr. I think I had a poor choice
>     > of words.
>     > I was unclear on how to even pass the existing usrp into my oot module,
>     > BUT I think I have a better idea now.
>     >
>     > Would something this work?:
>     >       std::string args = "";
>     >       ...
>     >       uhd::usrp::multi_usrp::sptr dummy_usrp =
>     > uhd::usrp::multi_usrp::make(args); //okay to pass an empty string 
> address?
>     >       uhd::device::sptr usrp = dummy_usrp->get_device(); //creates a
>     > shared pointer to a usrp device created in an earlier block (usrp
>     > source, etc..)
>     >       //reference usrp like normal
>     > This DID compile, but it'd be great to have reassurance from the gurus.
>     > I'm about to try it out as well.
>     > Although I'm a bit confused as to why I don't have to define
>     > get_device() since it's a virtual function. Did the layers of wrappers
>     > take care of it? (hopefully it's not embarrassingly obvious. My c++ fu
>     > is a little rusty)
>     >
>     > Y'all are awesome :),
>     > -Santos
>     >
>     > On Wed, Jun 8, 2016 at 12:12 PM, Martin Braun <address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     > <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>> wrote:
>     >
>     >     get_device() returns a shared pointer. Note this function is not 
> exposed
>     >     in Python -- you need to pass the object into another C++ object, 
> and
>     >     there call get_device().
>     >
>     >     M
>     >
>     >     On 06/08/2016 06:38 AM, Santos Campos wrote:
>     >     > Hi, Martin!
>     >     > I tried taking a peek at how the usrp sink might handle a 
> preceding usrp
>     >     > source (for inspiration).
>     >     > Does it (and the way you described) declare a usrp device and do 
> some
>     >     > kind of shallow copy with the get_device() method?
>     >     >
>     >     > On Mon, Jun 6, 2016 at 5:54 PM, Martin Braun <address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>
>     >     > <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>>> wrote:
>     >     >
>     >     >     Nah, you can just pass in the existing one into your
>     module and grab a
>     >     >     reference to the multi_usrp from there.
>     >     >
>     >     >     M
>     >     >
>     >     >     On 06/03/2016 12:57 PM, Santos Campos wrote:
>     >     >     > Hello again again!
>     >     >     > So I'm trying to write an OOT module to control the
>     gpio from GRC.
>     >     >     > Would I have to create a usrp device in the module's
>     code if I am using
>     >     >     > a usrp source?
>     >     >     > My gut says to probably not re-declare it since it's
>     already in use, but
>     >     >     > I'm not sure how I could bring it into scope if I
>     don't have to
>     >     >     > re-declare it.
>     >     >     > I tried poking around for the usrp sink code to see
>     what it did but
>     >     >     > couldn't find it.
>     >     >     >
>     >     >     > On Wed, Jun 1, 2016 at 11:45 AM, Santos Campos
>     <address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>
>     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>>
>     >     >     > <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>
>     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>>>> wrote:
>     >     >     >
>     >     >     >     Worked like a charm! Thanks for the helpful comments!
>     >     >     >     Like I said originally, I'm trying to use the gpio
>     to remotely
>     >     >     >     switch between 2 antennas.
>     >     >     >     Currently trying to familiarize myself with boost
>     and the uhd api.
>     >     >     >     Will undoubtedly be back to the listserv with
>     questions on those.
>     >     >     >
>     >     >     >
>     >     >     >     On Wed, Jun 1, 2016 at 11:23 AM, Marcus D. Leech
>     <address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>
>     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>>
>     >     >     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>
>     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>>>> wrote:
>     >     >     >
>     >     >     >         On 06/01/2016 10:23 AM, Santos Campos wrote:
>     >     >     >>         Hello again, all! I've finally come back to
>     this after a while.
>     >     >     >>         I'm trying to get the example code to compile
>     but having some
>     >     >     >>         trouble. Does anyone have any experience with
>     using the uhd
>     >     >     >>         gpio api?
>     >     >     >>         I tried using this to compile:
>     >     >     >>
>     >     >     >>             $ gcc -I/usr/include/boost
>     >     >     >>         -I/home/santosec/uhd/host/include/uhd
>     gpio.cpp -o gpio
>     >     >     >>
>     >     >     >>         but I got a whole mess of compiler errors.
>     >     >     >>
>     >     >     >>
>     >     >     >         And, to follow-up with details:
>     >     >     >
>     >     >     >       
>      http://files.ettus.com/manual/page_build_guide.html
>     >     >     >
>     >     >     >         Also:
>     >     >     >
>     >     >     >         AN-445 and AN-204 from here:
>     >     >     >
>     >     >     >         https://kb.ettus.com/Application_Notes
>     >     >     >
>     >     >     >
>     >     >     >>         On Wed, May 4, 2016 at 11:25 AM, Marcus D. Leech
>     >     >     >>         <address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>
>     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>>
>     >     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>
>     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>>>> wrote:
>     >     >     >>
>     >     >     >>             On 05/04/2016 11:18 AM, Santos Campos wrote:
>     >     >     >>>             Hello! I am curious if it is possible to
>     use a pin or
>     >     >     >>>             something on either the B200 or B200
>     mini to send a
>     >     >     >>>             control signal.
>     >     >     >>>
>     >     >     >>>             We were hoping to be able to switch
>     between 2 antennas if
>     >     >     >>>             the board received some signal. It looks
>     like there could
>     >     >     >>>             be some available pins, but we were
>     unsure if they would
>     >     >     >>>             be able to fulfill our purpose. If not,
>     any ideas around
>     >     >     >>>             this issue would be welcome!
>     >     >     >>>
>     >     >     >>>             Any help would be much appreciated!
>     >     >     >>>
>     >     >     >>>
>     >     >     >>>           
>      _______________________________________________
>     >     >     >>>             Discuss-gnuradio mailing list
>     >     >     >>>             address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>
>     >     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>
>     >     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>>>
>     >     >     >>>             
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>     >     >     >>             The API for the B2xx GPIO is the same as for 
> X3xx.
>     >     >     >>
>     >     >     >>             There's example code:
>     >     >     >>
>     >     >     >>             .../uhd/examples/gpio.cpp
>     >     >     >>
>     >     >     >>
>     >     >     >>
>     >     >     >>             _______________________________________________
>     >     >     >>             Discuss-gnuradio mailing list
>     >     >     >>             address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>
>     >     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>
>     >     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>>>
>     >     >     >>
>     >      https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>     >     >     >>
>     >     >     >>
>     >     >     >
>     >     >     >
>     >     >     >
>     >     >     >
>     >     >     >
>     >     >     > _______________________________________________
>     >     >     > Discuss-gnuradio mailing list
>     >     >     > address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>
>     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>>
>     >     >     > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>     >     >     >
>     >     >
>     >     >
>     >     >     _______________________________________________
>     >     >     Discuss-gnuradio mailing list
>     >     >     address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>
>     >     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>>
>     >     >     https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>     >     >
>     >     >
>     >
>     >
>     >     _______________________________________________
>     >     Discuss-gnuradio mailing list
>     >     address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     <mailto:address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>>
>     >     https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>     >
>     >
> 
> 
>     _______________________________________________
>     Discuss-gnuradio mailing list
>     address@hidden
>     <javascript:_e(%7B%7D,'cvml','address@hidden');>
>     https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> 
> 




reply via email to

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