aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul David <paul.david@ettus.com>2017-01-24 19:53:55 -0500
committerMartin Braun <martin.braun@ettus.com>2017-02-10 17:16:14 -0800
commitee59dc309d2b3a57eea3160e4fd9ec8a1089101c (patch)
tree043fe851db8cdca1779a81200219d8307fc4c832
parent26cc20847cde543e759aa5cee9a27eaa69c5dd9e (diff)
downloaduhd-ee59dc309d2b3a57eea3160e4fd9ec8a1089101c.tar.gz
uhd-ee59dc309d2b3a57eea3160e4fd9ec8a1089101c.tar.bz2
uhd-ee59dc309d2b3a57eea3160e4fd9ec8a1089101c.zip
device: Removed deprecated functionality
- Some of the functions, such as get_max_recv_samps_per_packet, throw on RFNoC enabled devices like the X300 - Deprecated functions should not stay in the codebase
-rw-r--r--host/include/uhd/CMakeLists.txt1
-rw-r--r--host/include/uhd/device.hpp12
-rw-r--r--host/include/uhd/device_deprecated.ipp201
3 files changed, 10 insertions, 204 deletions
diff --git a/host/include/uhd/CMakeLists.txt b/host/include/uhd/CMakeLists.txt
index 42c89a9f3..805db13de 100644
--- a/host/include/uhd/CMakeLists.txt
+++ b/host/include/uhd/CMakeLists.txt
@@ -34,7 +34,6 @@ UHD_INSTALL(FILES
convert.hpp
deprecated.hpp
device.hpp
- device_deprecated.ipp
exception.hpp
property_tree.ipp
property_tree.hpp
diff --git a/host/include/uhd/device.hpp b/host/include/uhd/device.hpp
index 894b48c47..28b81a0f6 100644
--- a/host/include/uhd/device.hpp
+++ b/host/include/uhd/device.hpp
@@ -105,14 +105,22 @@ public:
*/
virtual tx_streamer::sptr get_tx_stream(const stream_args_t &args) = 0;
+ /*!
+ * Receive and asynchronous message from the device.
+ * \param async_metadata the metadata to be filled in
+ * \param timeout the timeout in seconds to wait for a message
+ * \return true when the async_metadata is valid, false for timeout
+ */
+ virtual bool recv_async_msg(
+ async_metadata_t &async_metadata, double timeout = 0.1
+ ) = 0;
+
//! Get access to the underlying property structure
uhd::property_tree::sptr get_tree(void) const;
//! Get device type
device_filter_t get_device_type() const;
- #include <uhd/device_deprecated.ipp>
-
protected:
uhd::property_tree::sptr _tree;
device_filter_t _type;
diff --git a/host/include/uhd/device_deprecated.ipp b/host/include/uhd/device_deprecated.ipp
deleted file mode 100644
index 2741df4e3..000000000
--- a/host/include/uhd/device_deprecated.ipp
+++ /dev/null
@@ -1,201 +0,0 @@
-//
-// Copyright 2010-2011 Ettus Research LLC
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-//
-
-//this file is included inside device class
-//it supports the old send/recv functions
-//this was replaced by the streamer API
-
-#define _lazymin(x, y) (((x) > (y))? (y) : (x))
-
-/*!
- * Send modes for the device send routine.
- */
-enum send_mode_t{
- //! Tells the send routine to send the entire buffer
- SEND_MODE_FULL_BUFF = 0,
- //! Tells the send routine to return after one packet
- SEND_MODE_ONE_PACKET = 1
-};
-
-/*!
- * Recv modes for the device recv routine.
- */
-enum recv_mode_t{
- //! Tells the recv routine to recv the entire buffer
- RECV_MODE_FULL_BUFF = 0,
- //! Tells the recv routine to return after one packet
- RECV_MODE_ONE_PACKET = 1
-};
-
-//! Typedef for a pointer to a single, or a collection of send buffers
-typedef ref_vector<const void *> send_buffs_type;
-
-//! Typedef for a pointer to a single, or a collection of recv buffers
-typedef ref_vector<void *> recv_buffs_type;
-
-/*!
- * Send buffers containing IF data described by the metadata.
- *
- * Send handles fragmentation as follows:
- * If the buffer has more samples than the maximum per packet,
- * the send method will fragment the samples across several packets.
- * Send will respect the burst flags when fragmenting to ensure
- * that start of burst can only be set on the first fragment and
- * that end of burst can only be set on the final fragment.
- * Fragmentation only applies in the full buffer send mode.
- *
- * This is a blocking call and will not return until the number
- * of samples returned have been read out of each buffer.
- * Under a timeout condition, the number of samples returned
- * may be less than the number of samples specified.
- *
- * \param buffs a vector of read-only memory containing IF data
- * \param nsamps_per_buff the number of samples to send, per buffer
- * \param metadata data describing the buffer's contents
- * \param io_type the type of data loaded in the buffer
- * \param send_mode tells send how to unload the buffer
- * \param timeout the timeout in seconds to wait on a packet
- * \return the number of samples sent
- */
-size_t send(
- const send_buffs_type &buffs,
- size_t nsamps_per_buff,
- const tx_metadata_t &metadata,
- const io_type_t &io_type,
- send_mode_t send_mode,
- double timeout = 0.1
-){
- if (_tx_streamer.get() == NULL or _tx_streamer->get_num_channels() != buffs.size() or _send_tid != io_type.tid){
- _send_tid = io_type.tid;
- _tx_streamer.reset(); //cleanup possible old one
- stream_args_t args;
- args.cpu_format = (_send_tid == io_type_t::COMPLEX_FLOAT32)? "fc32" : "sc16";
- args.otw_format = "sc16";
- args.args["noclear"] = "1";
- for (size_t ch = 0; ch < buffs.size(); ch++)
- args.channels.push_back(ch); //linear mapping
- _tx_streamer = get_tx_stream(args);
- }
- const size_t nsamps = (send_mode == SEND_MODE_ONE_PACKET)?
- _lazymin(nsamps_per_buff, get_max_send_samps_per_packet()) :
- nsamps_per_buff;
- return _tx_streamer->send(buffs, nsamps, metadata, timeout);
-}
-
-/*!
- * Receive buffers containing IF data described by the metadata.
- *
- * Receive handles fragmentation as follows:
- * If the buffer has insufficient space to hold all samples
- * that were received in a single packet over-the-wire,
- * then the buffer will be completely filled and the implementation
- * will hold a pointer into the remaining portion of the packet.
- * Subsequent calls will load from the remainder of the packet,
- * and will flag the metadata to show that this is a fragment.
- * The next call to receive, after the remainder becomes exhausted,
- * will perform an over-the-wire receive as usual.
- * See the rx metadata fragment flags and offset fields for details.
- *
- * This is a blocking call and will not return until the number
- * of samples returned have been written into each buffer.
- * Under a timeout condition, the number of samples returned
- * may be less than the number of samples specified.
- *
- * When using the full buffer recv mode, the metadata only applies
- * to the first packet received and written into the recv buffers.
- * Use the one packet recv mode to get per packet metadata.
- *
- * \param buffs a vector of writable memory to fill with IF data
- * \param nsamps_per_buff the size of each buffer in number of samples
- * \param metadata data to fill describing the buffer
- * \param io_type the type of data to fill into the buffer
- * \param recv_mode tells recv how to load the buffer
- * \param timeout the timeout in seconds to wait for a packet
- * \return the number of samples received or 0 on error
- */
-size_t recv(
- const recv_buffs_type &buffs,
- size_t nsamps_per_buff,
- rx_metadata_t &metadata,
- const io_type_t &io_type,
- recv_mode_t recv_mode,
- double timeout = 0.1
-){
- if (_rx_streamer.get() == NULL or _rx_streamer->get_num_channels() != buffs.size() or _recv_tid != io_type.tid){
- _recv_tid = io_type.tid;
- _rx_streamer.reset(); //cleanup possible old one
- stream_args_t args;
- args.cpu_format = (_recv_tid == io_type_t::COMPLEX_FLOAT32)? "fc32" : "sc16";
- args.otw_format = "sc16";
- args.args["noclear"] = "1";
- for (size_t ch = 0; ch < buffs.size(); ch++)
- args.channels.push_back(ch); //linear mapping
- _rx_streamer = get_rx_stream(args);
- }
- const size_t nsamps = (recv_mode == RECV_MODE_ONE_PACKET)?
- _lazymin(nsamps_per_buff, get_max_recv_samps_per_packet()) :
- nsamps_per_buff;
- return _rx_streamer->recv(buffs, nsamps, metadata, timeout);
-}
-
-/*!
- * Get the maximum number of samples per packet on send.
- * \return the number of samples
- */
-size_t get_max_send_samps_per_packet(void){
- if (_tx_streamer.get() == NULL){
- stream_args_t args;
- args.cpu_format = "fc32";
- args.otw_format = "sc16";
- args.args["noclear"] = "1";
- _tx_streamer = get_tx_stream(args);
- _send_tid = io_type_t::COMPLEX_FLOAT32;
- }
- return _tx_streamer->get_max_num_samps();
-}
-
-/*!
- * Get the maximum number of samples per packet on recv.
- * \return the number of samples
- */
-size_t get_max_recv_samps_per_packet(void){
- if (_rx_streamer.get() == NULL){
- stream_args_t args;
- args.cpu_format = "fc32";
- args.otw_format = "sc16";
- args.args["noclear"] = "1";
- _rx_streamer = get_rx_stream(args);
- _recv_tid = io_type_t::COMPLEX_FLOAT32;
- }
- return _rx_streamer->get_max_num_samps();
-}
-
-/*!
- * Receive and asynchronous message from the device.
- * \param async_metadata the metadata to be filled in
- * \param timeout the timeout in seconds to wait for a message
- * \return true when the async_metadata is valid, false for timeout
- */
-virtual bool recv_async_msg(
- async_metadata_t &async_metadata, double timeout = 0.1
-) = 0;
-
-private:
- rx_streamer::sptr _rx_streamer;
- io_type_t::tid_t _recv_tid;
- tx_streamer::sptr _tx_streamer;
- io_type_t::tid_t _send_tid;