// // Copyright 2017-2018 Ettus Research, a National Instruments Company // Copyright 2019 Ettus Research, a National Instruments Brand // // SPDX-License-Identifier: GPL-3.0-or-later // #ifndef INCLUDED_UHD_USRP_DBOARD_IFACE_PYTHON_HPP #define INCLUDED_UHD_USRP_DBOARD_IFACE_PYTHON_HPP #include "../include/uhdlib/usrp/gpio_defs.hpp" #include #include void export_dboard_iface(py::module& m) { using dboard_iface = uhd::usrp::dboard_iface; using special_props_t = uhd::usrp::dboard_iface_special_props_t; using unit_t = dboard_iface::unit_t; using aux_dac_t = dboard_iface::aux_dac_t; using aux_adc_t = dboard_iface::aux_adc_t; using gpio_atr_reg_t = uhd::usrp::gpio_atr::gpio_atr_reg_t; using gpio_atr_mode_t = uhd::usrp::gpio_atr::gpio_atr_mode_t; py::enum_(m, "gpio_atr_reg") .value("ATR_REG_IDLE", gpio_atr_reg_t::ATR_REG_IDLE) .value("ATR_REG_TX_ONLY", gpio_atr_reg_t::ATR_REG_TX_ONLY) .value("ATR_REG_RX_ONLY", gpio_atr_reg_t::ATR_REG_RX_ONLY) .value("ATR_REG_FULL_DUPLEX", gpio_atr_reg_t::ATR_REG_FULL_DUPLEX); py::enum_(m, "gpio_atr_mode") .value("MODE_ATR", gpio_atr_mode_t::MODE_ATR) .value("MODE_GPIO", gpio_atr_mode_t::MODE_GPIO); py::enum_(m, "unit") .value("UNIT_RX", unit_t::UNIT_RX) .value("UNIT_TX", unit_t::UNIT_TX) .value("UNIT_BOTH", unit_t::UNIT_BOTH); py::enum_(m, "aux_dac") .value("AUX_DAC_A", aux_dac_t::AUX_DAC_A) .value("AUX_DAC_B", aux_dac_t::AUX_DAC_B) .value("AUX_DAC_C", aux_dac_t::AUX_DAC_C) .value("AUX_DAC_D", aux_dac_t::AUX_DAC_D); py::enum_(m, "aux_adc") .value("AUX_ADC_A", aux_adc_t::AUX_ADC_A) .value("AUX_ADC_B", aux_adc_t::AUX_ADC_B); py::class_(m, "special_props") // Properties .def_readwrite("soft_clock_divider", &special_props_t::soft_clock_divider) .def_readwrite("mangle_i2c_addrs", &special_props_t::mangle_i2c_addrs); py::class_(m, "dboard_iface") // Methods .def("get_special_props", &dboard_iface::get_special_props) .def("write_aux_dac", &dboard_iface::write_aux_dac) .def("read_aux_adc", &dboard_iface::read_aux_adc) .def("set_pin_ctrl", &dboard_iface::set_pin_ctrl) .def("get_pin_ctrl", &dboard_iface::get_pin_ctrl) .def("set_atr_reg", &dboard_iface::set_atr_reg) .def("get_atr_reg", &dboard_iface::get_atr_reg) .def("set_gpio_ddr", &dboard_iface::set_gpio_ddr) .def("get_gpio_ddr", &dboard_iface::get_gpio_ddr) .def("get_gpio_out", &dboard_iface::get_gpio_out) .def("set_gpio_out", &dboard_iface::set_gpio_out) .def("read_gpio", &dboard_iface::read_gpio) .def("write_spi", &dboard_iface::write_spi) .def("read_write_spi", &dboard_iface::read_write_spi) .def("set_clock_rate", &dboard_iface::set_clock_rate) .def("get_clock_rate", &dboard_iface::get_clock_rate) .def("get_clock_rates", &dboard_iface::get_clock_rates) .def("set_clock_enabled", &dboard_iface::set_clock_enabled) .def("get_codec_rate", &dboard_iface::get_codec_rate) .def("set_fe_connection", &dboard_iface::set_fe_connection) .def("get_command_time", &dboard_iface::get_command_time) .def("set_command_time", &dboard_iface::set_command_time) .def("sleep", &dboard_iface::sleep); } #endif /* INCLUDED_UHD_USRP_DBOARD_IFACE_PYTHON_HPP */