diff options
Diffstat (limited to 'mpm/include')
-rw-r--r-- | mpm/include/mpm/ad9361/ad9361_ctrl.hpp | 24 | ||||
-rw-r--r-- | mpm/include/mpm/ad937x/ad937x_ctrl.hpp | 85 | ||||
-rw-r--r-- | mpm/include/mpm/dboards/magnesium_manager.hpp | 10 | ||||
-rw-r--r-- | mpm/include/mpm/dboards/neon_manager.hpp | 9 | ||||
-rw-r--r-- | mpm/include/mpm/i2c/i2c_python.hpp | 19 | ||||
-rw-r--r-- | mpm/include/mpm/spi/spi_python.hpp | 13 | ||||
-rw-r--r-- | mpm/include/mpm/types/types_python.hpp | 28 | ||||
-rw-r--r-- | mpm/include/mpm/xbar_iface.hpp | 12 |
8 files changed, 94 insertions, 106 deletions
diff --git a/mpm/include/mpm/ad9361/ad9361_ctrl.hpp b/mpm/include/mpm/ad9361/ad9361_ctrl.hpp index 8bcd7f7c4..7673d7460 100644 --- a/mpm/include/mpm/ad9361/ad9361_ctrl.hpp +++ b/mpm/include/mpm/ad9361/ad9361_ctrl.hpp @@ -1,5 +1,6 @@ // // Copyright 2018 Ettus Research, a National Instruments Company +// Copyright 2019 Ettus Research, a National Instruments Brand // // SPDX-License-Identifier: GPL-3.0-or-later // @@ -20,23 +21,18 @@ using uhd::usrp::ad9361_ctrl; // TODO: pull in filter_info_base #ifdef LIBMPM_PYTHON -void export_catalina() +void export_catalina(py::module& top_module) { - LIBMPM_BOOST_PREAMBLE("ad9361") using namespace mpm::chips; - bp::class_<ad9361_ctrl, boost::noncopyable, boost::shared_ptr<ad9361_ctrl>>( - "ad9361_ctrl", bp::no_init) - .def("get_gain_names", &ad9361_ctrl::get_gain_names) - .staticmethod("get_gain_names") + auto m = top_module.def_submodule("ad9361"); + + py::class_<ad9361_ctrl, boost::shared_ptr<ad9361_ctrl>>(m, "ad9361_ctrl") + .def_static("get_gain_names", &ad9361_ctrl::get_gain_names) // Make this "Python private" because the return value can't be serialized - .def("_get_gain_range", &ad9361_ctrl::get_gain_range) - .staticmethod("_get_gain_range") - .def("get_rf_freq_range", &ad9361_ctrl::get_rf_freq_range) - .staticmethod("get_rf_freq_range") - .def("get_bw_filter_range", &ad9361_ctrl::get_bw_filter_range) - .staticmethod("get_bw_filter_range") - .def("get_clock_rate_range", &ad9361_ctrl::get_clock_rate_range) - .staticmethod("get_clock_rate_range") + .def_static("_get_gain_range", &ad9361_ctrl::get_gain_range) + .def_static("get_rf_freq_range", &ad9361_ctrl::get_rf_freq_range) + .def_static("get_bw_filter_range", &ad9361_ctrl::get_bw_filter_range) + .def_static("get_clock_rate_range", &ad9361_ctrl::get_clock_rate_range) .def("set_bw_filter", &ad9361_ctrl::set_bw_filter) .def("set_gain", &ad9361_ctrl::set_gain) .def("set_agc", &ad9361_ctrl::set_agc) diff --git a/mpm/include/mpm/ad937x/ad937x_ctrl.hpp b/mpm/include/mpm/ad937x/ad937x_ctrl.hpp index 7274c433a..6d28eccd1 100644 --- a/mpm/include/mpm/ad937x/ad937x_ctrl.hpp +++ b/mpm/include/mpm/ad937x/ad937x_ctrl.hpp @@ -1,5 +1,6 @@ // // Copyright 2017 Ettus Research, a National Instruments Company +// Copyright 2019 Ettus Research, a National Instruments Brand // // SPDX-License-Identifier: GPL-3.0-or-later // @@ -274,12 +275,12 @@ public: }}; /* namespace mpm::chips */ #ifdef LIBMPM_PYTHON -void export_mykonos() +void export_mykonos(py::module& top_module) { - LIBMPM_BOOST_PREAMBLE("ad937x") using namespace mpm::chips; - bp::class_<ad937x_ctrl, boost::noncopyable, std::shared_ptr<ad937x_ctrl>>( - "ad937x_ctrl", bp::no_init) + auto m = top_module.def_submodule("ad937x"); + + py::class_<ad937x_ctrl, std::shared_ptr<ad937x_ctrl>>(m, "ad937x_ctrl") .def("set_master_clock_rate", &ad937x_ctrl::set_master_clock_rate) .def("begin_initialization", &ad937x_ctrl::begin_initialization) .def("async__finish_initialization", @@ -348,45 +349,45 @@ void export_mykonos() .def("set_fir", &ad937x_ctrl::set_fir) .def("get_fir", &ad937x_ctrl::get_fir) .def("get_temperature", &ad937x_ctrl::get_temperature) - .def_readonly("TX_BB_FILTER", &ad937x_ctrl::TX_BB_FILTER) - .def_readonly("ADC_TUNER", &ad937x_ctrl::ADC_TUNER) - .def_readonly("TIA_3DB_CORNER", &ad937x_ctrl::TIA_3DB_CORNER) - .def_readonly("DC_OFFSET", &ad937x_ctrl::DC_OFFSET) - .def_readonly("TX_ATTENUATION_DELAY", &ad937x_ctrl::TX_ATTENUATION_DELAY) - .def_readonly("RX_GAIN_DELAY", &ad937x_ctrl::RX_GAIN_DELAY) - .def_readonly("FLASH_CAL", &ad937x_ctrl::FLASH_CAL) - .def_readonly("PATH_DELAY", &ad937x_ctrl::PATH_DELAY) - .def_readonly("TX_LO_LEAKAGE_INTERNAL", &ad937x_ctrl::TX_LO_LEAKAGE_INTERNAL) - .def_readonly("TX_LO_LEAKAGE_EXTERNAL", &ad937x_ctrl::TX_LO_LEAKAGE_EXTERNAL) - .def_readonly("TX_QEC_INIT", &ad937x_ctrl::TX_QEC_INIT) - .def_readonly("LOOPBACK_RX_LO_DELAY", &ad937x_ctrl::LOOPBACK_RX_LO_DELAY) - .def_readonly("LOOPBACK_RX_RX_QEC_INIT", &ad937x_ctrl::LOOPBACK_RX_RX_QEC_INIT) - .def_readonly("RX_LO_DELAY", &ad937x_ctrl::RX_LO_DELAY) - .def_readonly("RX_QEC_INIT", &ad937x_ctrl::RX_QEC_INIT) - .def_readonly("DPD_INIT", &ad937x_ctrl::DPD_INIT) - .def_readonly("CLGC_INIT", &ad937x_ctrl::CLGC_INIT) - .def_readonly("VSWR_INIT", &ad937x_ctrl::VSWR_INIT) - .def_readonly("TRACK_RX1_QEC", &ad937x_ctrl::TRACK_RX1_QEC) - .def_readonly("TRACK_RX2_QEC", &ad937x_ctrl::TRACK_RX2_QEC) - .def_readonly("TRACK_ORX1_QEC", &ad937x_ctrl::TRACK_ORX1_QEC) - .def_readonly("TRACK_ORX2_QEC", &ad937x_ctrl::TRACK_ORX2_QEC) - .def_readonly("TRACK_TX1_LOL", &ad937x_ctrl::TRACK_TX1_LOL) - .def_readonly("TRACK_TX2_LOL", &ad937x_ctrl::TRACK_TX2_LOL) - .def_readonly("TRACK_TX1_QEC", &ad937x_ctrl::TRACK_TX1_QEC) - .def_readonly("TRACK_TX2_QEC", &ad937x_ctrl::TRACK_TX2_QEC) - .def_readonly("TRACK_TX1_DPD", &ad937x_ctrl::TRACK_TX1_DPD) - .def_readonly("TRACK_TX2_DPD", &ad937x_ctrl::TRACK_TX2_DPD) - .def_readonly("TRACK_TX1_CLGC", &ad937x_ctrl::TRACK_TX1_CLGC) - .def_readonly("TRACK_TX2_CLGC", &ad937x_ctrl::TRACK_TX2_CLGC) - .def_readonly("TRACK_TX1_VSWR", &ad937x_ctrl::TRACK_TX1_VSWR) - .def_readonly("TRACK_TX2_VSWR", &ad937x_ctrl::TRACK_TX2_VSWR) - .def_readonly("TRACK_ORX1_QEC_SNLO", &ad937x_ctrl::TRACK_ORX1_QEC_SNLO) - .def_readonly("TRACK_ORX2_QEC_SNLO", &ad937x_ctrl::TRACK_ORX2_QEC_SNLO) - .def_readonly("TRACK_SRX_QEC", &ad937x_ctrl::TRACK_SRX_QEC) - .def_readonly("DEFAULT_INIT_CALS_MASKS", &ad937x_ctrl::DEFAULT_INIT_CALS_MASKS) - .def_readonly( + .def_readonly_static("TX_BB_FILTER", &ad937x_ctrl::TX_BB_FILTER) + .def_readonly_static("ADC_TUNER", &ad937x_ctrl::ADC_TUNER) + .def_readonly_static("TIA_3DB_CORNER", &ad937x_ctrl::TIA_3DB_CORNER) + .def_readonly_static("DC_OFFSET", &ad937x_ctrl::DC_OFFSET) + .def_readonly_static("TX_ATTENUATION_DELAY", &ad937x_ctrl::TX_ATTENUATION_DELAY) + .def_readonly_static("RX_GAIN_DELAY", &ad937x_ctrl::RX_GAIN_DELAY) + .def_readonly_static("FLASH_CAL", &ad937x_ctrl::FLASH_CAL) + .def_readonly_static("PATH_DELAY", &ad937x_ctrl::PATH_DELAY) + .def_readonly_static("TX_LO_LEAKAGE_INTERNAL", &ad937x_ctrl::TX_LO_LEAKAGE_INTERNAL) + .def_readonly_static("TX_LO_LEAKAGE_EXTERNAL", &ad937x_ctrl::TX_LO_LEAKAGE_EXTERNAL) + .def_readonly_static("TX_QEC_INIT", &ad937x_ctrl::TX_QEC_INIT) + .def_readonly_static("LOOPBACK_RX_LO_DELAY", &ad937x_ctrl::LOOPBACK_RX_LO_DELAY) + .def_readonly_static("LOOPBACK_RX_RX_QEC_INIT", &ad937x_ctrl::LOOPBACK_RX_RX_QEC_INIT) + .def_readonly_static("RX_LO_DELAY", &ad937x_ctrl::RX_LO_DELAY) + .def_readonly_static("RX_QEC_INIT", &ad937x_ctrl::RX_QEC_INIT) + .def_readonly_static("DPD_INIT", &ad937x_ctrl::DPD_INIT) + .def_readonly_static("CLGC_INIT", &ad937x_ctrl::CLGC_INIT) + .def_readonly_static("VSWR_INIT", &ad937x_ctrl::VSWR_INIT) + .def_readonly_static("TRACK_RX1_QEC", &ad937x_ctrl::TRACK_RX1_QEC) + .def_readonly_static("TRACK_RX2_QEC", &ad937x_ctrl::TRACK_RX2_QEC) + .def_readonly_static("TRACK_ORX1_QEC", &ad937x_ctrl::TRACK_ORX1_QEC) + .def_readonly_static("TRACK_ORX2_QEC", &ad937x_ctrl::TRACK_ORX2_QEC) + .def_readonly_static("TRACK_TX1_LOL", &ad937x_ctrl::TRACK_TX1_LOL) + .def_readonly_static("TRACK_TX2_LOL", &ad937x_ctrl::TRACK_TX2_LOL) + .def_readonly_static("TRACK_TX1_QEC", &ad937x_ctrl::TRACK_TX1_QEC) + .def_readonly_static("TRACK_TX2_QEC", &ad937x_ctrl::TRACK_TX2_QEC) + .def_readonly_static("TRACK_TX1_DPD", &ad937x_ctrl::TRACK_TX1_DPD) + .def_readonly_static("TRACK_TX2_DPD", &ad937x_ctrl::TRACK_TX2_DPD) + .def_readonly_static("TRACK_TX1_CLGC", &ad937x_ctrl::TRACK_TX1_CLGC) + .def_readonly_static("TRACK_TX2_CLGC", &ad937x_ctrl::TRACK_TX2_CLGC) + .def_readonly_static("TRACK_TX1_VSWR", &ad937x_ctrl::TRACK_TX1_VSWR) + .def_readonly_static("TRACK_TX2_VSWR", &ad937x_ctrl::TRACK_TX2_VSWR) + .def_readonly_static("TRACK_ORX1_QEC_SNLO", &ad937x_ctrl::TRACK_ORX1_QEC_SNLO) + .def_readonly_static("TRACK_ORX2_QEC_SNLO", &ad937x_ctrl::TRACK_ORX2_QEC_SNLO) + .def_readonly_static("TRACK_SRX_QEC", &ad937x_ctrl::TRACK_SRX_QEC) + .def_readonly_static("DEFAULT_INIT_CALS_MASKS", &ad937x_ctrl::DEFAULT_INIT_CALS_MASKS) + .def_readonly_static( "DEFAULT_TRACKING_CALS_MASKS", &ad937x_ctrl::DEFAULT_TRACKING_CALS_MASKS) - .def_readonly( + .def_readonly_static( "DEFAULT_INIT_CALS_TIMEOUT", &ad937x_ctrl::DEFAULT_INIT_CALS_TIMEOUT); } #endif diff --git a/mpm/include/mpm/dboards/magnesium_manager.hpp b/mpm/include/mpm/dboards/magnesium_manager.hpp index ab2a20864..76f61d203 100644 --- a/mpm/include/mpm/dboards/magnesium_manager.hpp +++ b/mpm/include/mpm/dboards/magnesium_manager.hpp @@ -1,5 +1,6 @@ // // Copyright 2017 Ettus Research, a National Instruments Company +// Copyright 2019 Ettus Research, a National Instruments Brand // // SPDX-License-Identifier: GPL-3.0-or-later // @@ -45,12 +46,13 @@ private: }}; /* namespace mpm::dboards */ #ifdef LIBMPM_PYTHON -void export_magnesium() +void export_magnesium(py::module& top_module) { - LIBMPM_BOOST_PREAMBLE("dboards") using namespace mpm::dboards; - bp::class_<mpm::dboards::magnesium_manager>( - "magnesium_manager", bp::init<std::string, size_t>()) + auto m = top_module.def_submodule("dboards"); + + py::class_<mpm::dboards::magnesium_manager>(m, "magnesium_manager") + .def(py::init<std::string, size_t>()) .def("get_spi_lock", &mpm::dboards::magnesium_manager::get_spi_lock) .def("get_radio_ctrl", &mpm::dboards::magnesium_manager::get_radio_ctrl); } diff --git a/mpm/include/mpm/dboards/neon_manager.hpp b/mpm/include/mpm/dboards/neon_manager.hpp index 580b9cd38..22f0f0544 100644 --- a/mpm/include/mpm/dboards/neon_manager.hpp +++ b/mpm/include/mpm/dboards/neon_manager.hpp @@ -1,5 +1,6 @@ // // Copyright 2018 Ettus Research, a National Instruments Company +// Copyright 2019 Ettus Research, a National Instruments Brand // // SPDX-License-Identifier: GPL-3.0-or-later // @@ -33,11 +34,13 @@ private: }}; /* namespace mpm::dboards */ #ifdef LIBMPM_PYTHON -void export_neon() +void export_neon(py::module& top_module) { - LIBMPM_BOOST_PREAMBLE("dboards") using namespace mpm::dboards; - bp::class_<mpm::dboards::neon_manager>("neon_manager", bp::init<std::string>()) + auto m = top_module.def_submodule("dboards"); + + py::class_<mpm::dboards::neon_manager>(m, "neon_manager") + .def(py::init<std::string>()) .def("get_radio_ctrl", &mpm::dboards::neon_manager::get_radio_ctrl); } #endif diff --git a/mpm/include/mpm/i2c/i2c_python.hpp b/mpm/include/mpm/i2c/i2c_python.hpp index f358ea687..ebc9cb0a1 100644 --- a/mpm/include/mpm/i2c/i2c_python.hpp +++ b/mpm/include/mpm/i2c/i2c_python.hpp @@ -1,5 +1,6 @@ // // Copyright 2018 Ettus Research, a National Instruments Company +// Copyright 2019 Ettus Research, a National Instruments Brand // // SPDX-License-Identifier: GPL-3.0-or-later // @@ -9,21 +10,9 @@ #include "i2c_iface.hpp" #include "i2c_regs_iface.hpp" -void export_i2c() +void export_i2c(py::module& top_module) { - LIBMPM_BOOST_PREAMBLE("i2c") + auto m = top_module.def_submodule("i2c"); - bp::def("make_i2cdev_regs_iface", &mpm::i2c::make_i2cdev_regs_iface); - /* - bp::def("make_i2cdev", &mpm::i2c::i2c_iface::make_i2cdev); - - int (mpm::i2c::i2c_iface::*transfer_vec)(std::vector<uint8_t>*, - std::vector<uint8_t>*) = - &mpm::i2c::i2c_iface::transfer; - - bp::class_<mpm::i2c::i2c_iface, boost::noncopyable, - std::shared_ptr<mpm::i2c::i2c_iface> >("i2c_iface", bp::no_init) - .def("transfer", transfer_vec) - ; - */ + m.def("make_i2cdev_regs_iface", &mpm::i2c::make_i2cdev_regs_iface); } diff --git a/mpm/include/mpm/spi/spi_python.hpp b/mpm/include/mpm/spi/spi_python.hpp index 2b609c44a..464df8d8b 100644 --- a/mpm/include/mpm/spi/spi_python.hpp +++ b/mpm/include/mpm/spi/spi_python.hpp @@ -1,5 +1,6 @@ // // Copyright 2017 Ettus Research, a National Instruments Company +// Copyright 2019 Ettus Research, a National Instruments Brand // // SPDX-License-Identifier: GPL-3.0-or-later // @@ -9,15 +10,13 @@ #include "spi_iface.hpp" #include "spi_regs_iface.hpp" -void export_spi() +void export_spi(py::module& top_module) { - LIBMPM_BOOST_PREAMBLE("spi") + auto m = top_module.def_submodule("spi"); - bp::def("make_spidev_regs_iface", &mpm::spi::make_spidev_regs_iface); - bp::def("make_spidev", &mpm::spi::spi_iface::make_spidev); + m.def("make_spidev_regs_iface", &mpm::spi::make_spidev_regs_iface); + m.def("make_spidev", &mpm::spi::spi_iface::make_spidev); - bp::class_<mpm::spi::spi_iface, - boost::noncopyable, - std::shared_ptr<mpm::spi::spi_iface>>("spi_iface", bp::no_init) + py::class_<mpm::spi::spi_iface, std::shared_ptr<mpm::spi::spi_iface>>(m, "spi_iface") .def("transfer24_8", &mpm::spi::spi_iface::transfer24_8); } diff --git a/mpm/include/mpm/types/types_python.hpp b/mpm/include/mpm/types/types_python.hpp index d523c2065..b934605ad 100644 --- a/mpm/include/mpm/types/types_python.hpp +++ b/mpm/include/mpm/types/types_python.hpp @@ -1,5 +1,6 @@ // // Copyright 2017 Ettus Research, a National Instruments Company +// Copyright 2019 Ettus Research, a National Instruments Brand // // SPDX-License-Identifier: GPL-3.0-or-later // @@ -11,39 +12,36 @@ #include "mmap_regs_iface.hpp" #include "regs_iface.hpp" -void export_types() +void export_types(py::module& top_module) { - LIBMPM_BOOST_PREAMBLE("types") using namespace mpm::types; - bp::class_<lockable, boost::noncopyable, std::shared_ptr<lockable>>( - "lockable", bp::no_init) + auto m = top_module.def_submodule("types"); + + py::class_<lockable, std::shared_ptr<lockable>>(m, "lockable") .def("lock", &lockable::lock) .def("unlock", &lockable::unlock); - bp::class_<regs_iface, boost::noncopyable, std::shared_ptr<regs_iface>>( - "regs_iface", bp::no_init) + py::class_<regs_iface, std::shared_ptr<regs_iface>>(m, "regs_iface") .def("peek8", ®s_iface::peek8) .def("poke8", ®s_iface::poke8) .def("peek16", ®s_iface::peek16) .def("poke16", ®s_iface::poke16); - bp::class_<log_buf, boost::noncopyable, std::shared_ptr<log_buf>>( - "log_buf", bp::no_init) - .def("make_singleton", &log_buf::make_singleton) - .staticmethod("make_singleton") + py::class_<log_buf, std::shared_ptr<log_buf>>(m, "log_buf") + .def_static("make_singleton", &log_buf::make_singleton) .def("set_notify_callback", - +[](log_buf& self, boost::python::object object) { + +[](log_buf& self, py::object object) { self.set_notify_callback(object); }) - .def("pop", +[](log_buf& self) { + .def("pop", [](log_buf& self) { auto log_msg = self.pop(); - return bp::make_tuple(static_cast<int>(std::get<0>(log_msg)), + return py::make_tuple(static_cast<int>(std::get<0>(log_msg)), std::get<1>(log_msg), std::get<2>(log_msg)); }); - bp::class_<mmap_regs_iface, boost::noncopyable, std::shared_ptr<mmap_regs_iface>>( - "mmap_regs_iface", bp::init<std::string, size_t, size_t, bool, bool>()) + py::class_<mmap_regs_iface, std::shared_ptr<mmap_regs_iface>>(m, "mmap_regs_iface") + .def(py::init<std::string, size_t, size_t, bool, bool>()) .def("open", &mmap_regs_iface::open) .def("close", &mmap_regs_iface::close) .def("peek32", &mmap_regs_iface::peek32) diff --git a/mpm/include/mpm/xbar_iface.hpp b/mpm/include/mpm/xbar_iface.hpp index c76aed640..bf4399593 100644 --- a/mpm/include/mpm/xbar_iface.hpp +++ b/mpm/include/mpm/xbar_iface.hpp @@ -1,5 +1,6 @@ // // Copyright 2017 Ettus Research, a National Instruments Company +// Copyright 2019 Ettus Research, a National Instruments Brand // // SPDX-License-Identifier: GPL-3.0-or-later // @@ -47,13 +48,12 @@ private: #ifdef LIBMPM_PYTHON -void export_xbar() +void export_xbar(py::module& top_module) { - LIBMPM_BOOST_PREAMBLE("xbar") - bp::class_<mpm::xbar_iface, boost::noncopyable, std::shared_ptr<mpm::xbar_iface>>( - "xbar", bp::no_init) - .def("make", &mpm::xbar_iface::make) - .staticmethod("make") + auto m = top_module.def_submodule("xbar"); + + py::class_<mpm::xbar_iface, std::shared_ptr<mpm::xbar_iface>>(m, "xbar") + .def(py::init(&mpm::xbar_iface::make)) .def("set_route", &mpm::xbar_iface::set_route) .def("del_route", &mpm::xbar_iface::del_route); } |