diff options
-rw-r--r-- | host/include/uhd/stream.hpp | 5 | ||||
-rw-r--r-- | host/lib/usrp/b100/io_impl.cpp | 3 | ||||
-rw-r--r-- | host/lib/usrp/e100/io_impl.cpp | 3 | ||||
-rw-r--r-- | host/lib/usrp/usrp2/io_impl.cpp | 3 |
4 files changed, 11 insertions, 3 deletions
diff --git a/host/include/uhd/stream.hpp b/host/include/uhd/stream.hpp index b41c1733d..352f63e4e 100644 --- a/host/include/uhd/stream.hpp +++ b/host/include/uhd/stream.hpp @@ -88,6 +88,11 @@ struct UHD_API stream_args_t{ * In the "next_burst" mode, the DSP drops incoming packets until a new burst is started. * In the "next_packet" mode, the DSP starts transmitting again at the next packet. * + * - spp: (samples per packet) controls the size of RX packets. + * When not specified, the packets are always maximum frame size. + * Users should specify this option to request smaller than default + * packets, probably with the intention of reducing packet latency. + * * The following are not implemented, but are listed for conceptual purposes: * - function: magnitude or phase/magnitude * - units: numeric units like counts or dBm diff --git a/host/lib/usrp/b100/io_impl.cpp b/host/lib/usrp/b100/io_impl.cpp index 692ede6d5..494d5d123 100644 --- a/host/lib/usrp/b100/io_impl.cpp +++ b/host/lib/usrp/b100/io_impl.cpp @@ -211,7 +211,8 @@ rx_streamer::sptr b100_impl::get_rx_stream(const uhd::stream_args_t &args_){ - sizeof(vrt::if_packet_info_t().cid) //no class id ever used ; const size_t bpp = 2048 - hdr_size; //limited by FPGA pkt buffer size - const size_t spp = bpp/convert::get_bytes_per_item(args.otw_format); + const size_t bpi = convert::get_bytes_per_item(args.otw_format); + const size_t spp = unsigned(args.args.cast<double>("spp", bpp/bpi)); //make the new streamer given the samples per packet boost::shared_ptr<sph::recv_packet_streamer> my_streamer = boost::make_shared<sph::recv_packet_streamer>(spp); diff --git a/host/lib/usrp/e100/io_impl.cpp b/host/lib/usrp/e100/io_impl.cpp index 92905526c..441e32a8d 100644 --- a/host/lib/usrp/e100/io_impl.cpp +++ b/host/lib/usrp/e100/io_impl.cpp @@ -287,7 +287,8 @@ rx_streamer::sptr e100_impl::get_rx_stream(const uhd::stream_args_t &args_){ - sizeof(vrt::if_packet_info_t().cid) //no class id ever used ; const size_t bpp = _data_transport->get_recv_frame_size() - hdr_size; - const size_t spp = bpp/convert::get_bytes_per_item(args.otw_format); + const size_t bpi = convert::get_bytes_per_item(args.otw_format); + const size_t spp = unsigned(args.args.cast<double>("spp", bpp/bpi)); //make the new streamer given the samples per packet boost::shared_ptr<sph::recv_packet_streamer> my_streamer = boost::make_shared<sph::recv_packet_streamer>(spp); diff --git a/host/lib/usrp/usrp2/io_impl.cpp b/host/lib/usrp/usrp2/io_impl.cpp index fd81071fb..e3fa46920 100644 --- a/host/lib/usrp/usrp2/io_impl.cpp +++ b/host/lib/usrp/usrp2/io_impl.cpp @@ -389,7 +389,8 @@ rx_streamer::sptr usrp2_impl::get_rx_stream(const uhd::stream_args_t &args_){ - sizeof(vrt::if_packet_info_t().cid) //no class id ever used ; const size_t bpp = _mbc[_mbc.keys().front()].rx_dsp_xports[0]->get_recv_frame_size() - hdr_size; - const size_t spp = bpp/convert::get_bytes_per_item(args.otw_format); + const size_t bpi = convert::get_bytes_per_item(args.otw_format); + const size_t spp = unsigned(args.args.cast<double>("spp", bpp/bpi)); //make the new streamer given the samples per packet boost::shared_ptr<sph::recv_packet_streamer> my_streamer = boost::make_shared<sph::recv_packet_streamer>(spp); |