Hi,

a short note that might also help: The Replay block has many input ports.
You could use one input port for the Tx Streamer, and a different one for
the radio.

Also, in your list of actions, I don't see a need to actually disconnect
the Tx Streamer. Sounds like you'd be fine just leaving it connected. I
find it helpful, when possible, to do all the connection setup first, then
call commit(), and then only do streaming stuff (but yes, there are
scenarios where that doesn't work and then disconnecting is totally fine).

As for disconnecting: When you destroy the streamer object, it will get
properly disconnected. That is typically the approach I would recommend if
you really need to disconnect streamers.

--M

On Thu, Jan 29, 2026 at 9:00 AM Yang, Nan via USRP-users <
[email protected]> wrote:

> Hi Rob,
>
>
>
> Thank you for the suggestion. The ID is “TxStreamer#0”. I also found that
> disconnecting a streamer does not fully restore its status so I need to
> create new streamers every time. This works for me now. I opened an issue
> <https://github.com/EttusResearch/uhd/issues/903> though.
>
>
>
> Regards,
>
> Nan
>
>
>
> *From:* Rob Kossler <[email protected]>
> *Sent:* Tuesday, January 27, 2026 7:02 AM
> *To:* Yang, Nan <[email protected]>
> *Cc:* [email protected]
> *Subject:* [EXTERNAL] Re: [USRP-users] How to disconnect streamers on
> RFNoC graph
>
>
>
> I'm not sure but I seem to recall that the streamer ID could not be
> queried but that it used a naming convention (something like
> "tx_streamer_1") that you could guess and use to successfully disconnect
> the graph. Perhaps if you log DEBUG or TRACE level messages (or inspect
> Ettus code), you can see what the stream ID is.  I know that this is not
> the right answer, but it might get you by if the API is missing the needed
> functions to query the ID.
>
>
>
> Rob
>
>
>
> On Mon, Jan 26, 2026 at 5:52 PM Yang, Nan via USRP-users <
> [email protected]> wrote:
>
> Hello UHD folks,
>
>
>
> I’m trying to buffer all 4 channels tx/rx data on DRAM on X410. So my
> application does
>
>    1. Connect tx_streamer to replay block and write samples to DRAM
>    2. Disconnect tx_streamer
>    3. Connect replay block to radio block
>    4. Do tx and rx
>    5. Disconnect radio blocks
>    6. Connect replay block to rx_streamer and read samples
>
>
>
> I don’t find the correct API for step 2. The
> uhd::rfnoc::rfnoc_graph::disconnect() function takes std::string
> &streamer_id, however, I can’t find a public API that returns a
> streamer_id. The connect() function accepts uhd::tx_streamer::sptr and
> uhd::rx_streamer::sptr, I wonder if disconnect() should accept same
> argument types.
>
>
>
> If I skip step 2, I get an error in step 3.
>
>
>
> Regards,
>
> Nan
>
>
>
> _______________________________________________
> USRP-users mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
>
> _______________________________________________
> USRP-users mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
>
_______________________________________________
USRP-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to