diff options
author | Josh Blum <josh@joshknows.com> | 2010-04-05 18:32:33 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-04-05 18:32:33 -0700 |
commit | 8740bc7149717673c4580767142ce2563035d4cb (patch) | |
tree | e90e8087d2fa1d4d833c9f9bdc22714a65b1e446 /host | |
parent | ed5cb33eb402c5d34c330d1b9dcb99658c628a72 (diff) | |
download | uhd-8740bc7149717673c4580767142ce2563035d4cb.tar.gz uhd-8740bc7149717673c4580767142ce2563035d4cb.tar.bz2 uhd-8740bc7149717673c4580767142ce2563035d4cb.zip |
handle tx fragment eob flag case
Diffstat (limited to 'host')
-rw-r--r-- | host/include/uhd/device.hpp | 1 | ||||
-rw-r--r-- | host/lib/usrp/usrp2/io_impl.cpp | 8 |
2 files changed, 8 insertions, 1 deletions
diff --git a/host/include/uhd/device.hpp b/host/include/uhd/device.hpp index bf7e0753d..ae75e6dc8 100644 --- a/host/include/uhd/device.hpp +++ b/host/include/uhd/device.hpp @@ -83,6 +83,7 @@ public: * If the buffer has more samples than the maximum supported, * the send method will send the maximum number of samples * as supported by the transport and return the number sent. + * In this case, the end of burst flag will be forced to false. * It is up to the caller to call send again on the un-sent * portions of the buffer, until the buffer is exhausted. * diff --git a/host/lib/usrp/usrp2/io_impl.cpp b/host/lib/usrp/usrp2/io_impl.cpp index 5820841d7..a58e32619 100644 --- a/host/lib/usrp/usrp2/io_impl.cpp +++ b/host/lib/usrp/usrp2/io_impl.cpp @@ -171,15 +171,21 @@ void usrp2_impl::recv_raw(rx_metadata_t &metadata){ **********************************************************************/ size_t usrp2_impl::send( const asio::const_buffer &buff, - const tx_metadata_t &metadata, + const tx_metadata_t &metadata_, const io_type_t &io_type ){ + tx_metadata_t metadata = metadata_; //rw copy to change later + boost::uint32_t tx_mem[_mtu/sizeof(boost::uint32_t)]; size_t num_samps = std::min( asio::buffer_size(buff)/io_type.size, size_t(_max_tx_samples_per_packet) ); + //kill the end of burst flag if this is a fragment + if (asio::buffer_size(buff)/io_type.size < num_samps) + metadata.end_of_burst = false; + size_t num_header_words32, num_packet_words32; size_t packet_count = _tx_stream_id_to_packet_seq[metadata.stream_id]++; |