aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp2/usrp2_impl.hpp
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-06-27 12:49:38 -0700
committerJosh Blum <josh@joshknows.com>2011-06-27 12:49:38 -0700
commitd9630428843f2510d99cb494435e4dc273652250 (patch)
treed7083a6c804dd0f7466b0ef0416c7183766f5fe4 /host/lib/usrp2/usrp2_impl.hpp
parent99eabb0a6b70a3bdb4f1cb0844894c4023dcd629 (diff)
downloaduhd-d9630428843f2510d99cb494435e4dc273652250.tar.gz
uhd-d9630428843f2510d99cb494435e4dc273652250.tar.bz2
uhd-d9630428843f2510d99cb494435e4dc273652250.zip
usrp2: work on setting up controllers
Diffstat (limited to 'host/lib/usrp2/usrp2_impl.hpp')
-rw-r--r--host/lib/usrp2/usrp2_impl.hpp82
1 files changed, 82 insertions, 0 deletions
diff --git a/host/lib/usrp2/usrp2_impl.hpp b/host/lib/usrp2/usrp2_impl.hpp
new file mode 100644
index 000000000..c3a859851
--- /dev/null
+++ b/host/lib/usrp2/usrp2_impl.hpp
@@ -0,0 +1,82 @@
+//
+// 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/>.
+//
+
+#ifndef INCLUDED_USRP2_IMPL_HPP
+#define INCLUDED_USRP2_IMPL_HPP
+
+#include "usrp2_iface.hpp"
+#include "clock_ctrl.hpp"
+#include "codec_ctrl.hpp"
+#include "rx_frontend_core_200.hpp"
+#include "tx_frontend_core_200.hpp"
+#include "rx_dsp_core_200.hpp"
+#include "tx_dsp_core_200.hpp"
+#include <uhd/property_tree.hpp>
+#include <uhd/usrp/gps_ctrl.hpp>
+#include <uhd/device.hpp>
+#include <uhd/utils/pimpl.hpp>
+#include <uhd/types/dict.hpp>
+#include <uhd/types/otw_type.hpp>
+#include <uhd/types/stream_cmd.hpp>
+#include <uhd/types/clock_config.hpp>
+#include <uhd/usrp/dboard_eeprom.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/function.hpp>
+#include <uhd/transport/vrt_if_packet.hpp>
+#include <uhd/transport/udp_simple.hpp>
+#include <uhd/transport/udp_zero_copy.hpp>
+#include <uhd/usrp/dboard_manager.hpp>
+#include <uhd/usrp/subdev_spec.hpp>
+
+/*!
+ * Make a usrp2 dboard interface.
+ * \param iface the usrp2 interface object
+ * \param clk_ctrl the clock control object
+ * \return a sptr to a new dboard interface
+ */
+uhd::usrp::dboard_iface::sptr make_usrp2_dboard_iface(
+ usrp2_iface::sptr iface,
+ usrp2_clock_ctrl::sptr clk_ctrl
+);
+
+/*!
+ * USRP2 implementation guts:
+ * The implementation details are encapsulated here.
+ * Handles device properties and streaming...
+ */
+class usrp2_impl{
+public:
+ usrp2_impl(const uhd::device_addr_t &_device_addr);
+ uhd::property_tree::sptr _tree;
+private:
+ struct mboard_stuff_type{
+ usrp2_iface::sptr iface;
+ usrp2_clock_ctrl::sptr clock;
+ usrp2_codec_ctrl::sptr codec;
+ rx_frontend_core_200::sptr rx_fe;
+ tx_frontend_core_200::sptr tx_fe;
+ rx_dsp_core_200::sptr rx_dsp;
+ tx_dsp_core_200::sptr tx_dsp;
+ //TODO time core
+ };
+ std::vector<mboard_stuff_type> _mboard_stuff;
+
+ void set_mb_eeprom(const size_t which_mb, const uhd::usrp::mboard_eeprom_t &mb_eeprom);
+
+};
+
+#endif /* INCLUDED_USRP2_IMPL_HPP */