Issue Description
Right now there is not a proper way to disconnect a streamer once it is connected to a RFNoC block. There are two sub-issues
rfnoc_graph::disconnect() takes std::string streamer_id argument, however there is no public API to get streamer_id. Users need to guess the id (by looking at source code)
uhd::transport::tx_streamer_zero_copy never clears _xports so users cannot call connect_channel() twice. Users need to create a new streamer object to workaround this.
Setup Details
I use replay block to buffer both tx/rx samples for all channels, which use all replay block's ports. When I want to write/read samples from host, I need to disconnect one port, connect it to the streamer, and disconnect when I'm done. Current public API does not support this use case.
Expected Behavior
Have an API rfnoc_graph::disconnect(uhd::tx_streamer& streamer, size_t port)
Issue Description
Right now there is not a proper way to disconnect a streamer once it is connected to a RFNoC block. There are two sub-issues
rfnoc_graph::disconnect()takesstd::string streamer_idargument, however there is no public API to getstreamer_id. Users need to guess the id (by looking at source code)uhd::transport::tx_streamer_zero_copynever clears_xportsso users cannot callconnect_channel()twice. Users need to create a new streamer object to workaround this.Setup Details
I use replay block to buffer both tx/rx samples for all channels, which use all replay block's ports. When I want to write/read samples from host, I need to disconnect one port, connect it to the streamer, and disconnect when I'm done. Current public API does not support this use case.
Expected Behavior
Have an API
rfnoc_graph::disconnect(uhd::tx_streamer& streamer, size_t port)