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