On Fri, Aug 31, 2018 at 2:54 PM Leandro Echevarría via USRP-users <
usrp-users@lists.ettus.com> wrote:

> Hey everybody,
>
> I've got a question. I have a RFNoC block that has a unique NoC ID as a
> parameter, but is instantiated twice in my design (same situation as the
> Radio Cores or DDC/DUC blocks, that share the same NoC ID but are connected
> to different Crossbar ports when included more than once in the design).
>
> In my software tests I take control of both radio cores separately by
> doing this:
>
> uhd::rfnoc::block_id_t radio_ctrl_id0(0, "Radio", radio_id0); // RX0
> (DB-A)
> uhd::rfnoc::block_id_t radio_ctrl_id1(0, "Radio", radio_id1); // RX1
> (DB-B)
> uhd::rfnoc::radio_ctrl::sptr radio_ctrl0 = usrp->get_block_ctrl<
> uhd::rfnoc::radio_ctrl >(radio_ctrl_id0);
> uhd::rfnoc::radio_ctrl::sptr radio_ctrl1 = usrp->get_block_ctrl<
> uhd::rfnoc::radio_ctrl >(radio_ctrl_id1);
>
> And I'm taking control of custom, generic blocks like this:
>
> uhd::rfnoc::block_ctrl_base::sptr myblock_ctrl;
> if (usrp->has_block(cubepacketizer_blockid)) {
> myblock_ctrl = usrp->get_block_ctrl(myblock_id);
> blocks.push_back(myblock_ctrl->get_block_id());
> }
>
> What should I do now if, in this example, myblock_id is instantiated twice
> in my core, and I need to get a controller for one of each blocks?
> (For instance, to process two different signal paths, coming from both
> Radio Cores).
>

Your block ID will be (0, "CustomBlock", 0) for the first instance, and (0,
"CustomBlock", 1) for the other instance.

  auto custom_ctrl0 =
usrp->get_block_ctrl<custom::namespace::customblock_ctrl>(customblock_id0)

To get the custom control block.  Just like the radio example.

Brian
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to