[USRP-users] B210 Concurrent Process Access
marcus.mueller at ettus.com
Tue Dec 16 12:02:54 EST 2014
the "shared" in shared pointer refers to the fact that the pointer can
be shared between different functional units in the same process, and
there's not a single instance which has to make sure the objects gets
destructed as soon as no one is using it anymore; sadly, that doesn't
work across processesg :/
So, no, only one process can own a B2x0 at a time; that would require
UHD to act like a server process, whereas in fact it's designed to act
more like a library. You'd need a central process to handle UHD and your
two DSP processes talking to that via IPC, or something of the like.
You can build something like that rather rapidly using GNU Radio and
gr-uhd, the UHD wrapper framework included with it; GNU Radio comes with
things like socket sinks/sources, and you can even do really cool IPC
using zeromq, for example; since a few months, the USRP blocks for GNU
Radio listen to asynchronous messages telling them to tune etc, so this
might reduce your coding efforts further.
On 12/16/2014 05:53 PM, Peter Witkowski via USRP-users wrote:
> I have a quick question regarding how UHD handles concurrent processes
> accessing the same USRP.
> Say I have two applications (totally separate processes in Linux) and
> both want to talk to the same B210 (and use different channels on the
> B210). Can both processes communicate with the device concurrently?
> I noted that the make() call to multi_usrp returns a shared pointer,
> so I was wondering if (as a result) you can have multiple processes
> access the same physical device (with the same device arguments).
> Thanks in advance for the help.
> Peter Witkowski
> pwitkowski at gmail.com <mailto:pwitkowski at gmail.com>
> USRP-users mailing list
> USRP-users at lists.ettus.com
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the USRP-users