From d9630428843f2510d99cb494435e4dc273652250 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Mon, 27 Jun 2011 12:49:38 -0700 Subject: usrp2: work on setting up controllers --- host/lib/usrp2/usrp2_impl.hpp | 82 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 host/lib/usrp2/usrp2_impl.hpp (limited to 'host/lib/usrp2/usrp2_impl.hpp') 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 . +// + +#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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/*! + * 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; + + void set_mb_eeprom(const size_t which_mb, const uhd::usrp::mboard_eeprom_t &mb_eeprom); + +}; + +#endif /* INCLUDED_USRP2_IMPL_HPP */ -- cgit v1.2.3