aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/rfnoc
diff options
context:
space:
mode:
authorAaron Rossetto <aaron.rossetto@ni.com>2020-06-04 16:24:01 -0500
committerAaron Rossetto <aaron.rossetto@ni.com>2020-06-18 07:48:25 -0500
commit19f19c77a91dcba6c1bf0f99e73ae9ffca1d75a4 (patch)
treeadd0fe189b23ec9638f284205df562992cf2c41d /host/lib/rfnoc
parentcb40ecf2f5d1a0c3381b29f425fdf30f89c8ec29 (diff)
downloaduhd-19f19c77a91dcba6c1bf0f99e73ae9ffca1d75a4.tar.gz
uhd-19f19c77a91dcba6c1bf0f99e73ae9ffca1d75a4.tar.bz2
uhd-19f19c77a91dcba6c1bf0f99e73ae9ffca1d75a4.zip
python: Add FFT RFNoC block controller bindings
Diffstat (limited to 'host/lib/rfnoc')
-rw-r--r--host/lib/rfnoc/fft_block_control_python.hpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/host/lib/rfnoc/fft_block_control_python.hpp b/host/lib/rfnoc/fft_block_control_python.hpp
new file mode 100644
index 000000000..1c97105ce
--- /dev/null
+++ b/host/lib/rfnoc/fft_block_control_python.hpp
@@ -0,0 +1,46 @@
+//
+// Copyright 2020 Ettus Research, a National Instruments Brand
+//
+// SPDX-License-Identifier: GPL-3.0-or-later
+//
+
+#pragma once
+
+#include "block_controller_factory_python.hpp"
+#include <uhd/rfnoc/fft_block_control.hpp>
+
+using namespace uhd::rfnoc;
+
+void export_fft_block_control(py::module& m)
+{
+ py::enum_<fft_shift>(m, "fft_shift")
+ .value("NORMAL", fft_shift::NORMAL)
+ .value("REVERSE", fft_shift::REVERSE)
+ .value("NATURAL", fft_shift::NATURAL)
+ .export_values();
+
+ py::enum_<fft_direction>(m, "fft_direction")
+ .value("REVERSE", fft_direction::REVERSE)
+ .value("FORWARD", fft_direction::FORWARD)
+ .export_values();
+
+ py::enum_<fft_magnitude>(m, "fft_magnitude")
+ .value("COMPLEX", fft_magnitude::COMPLEX)
+ .value("MAGNITUDE", fft_magnitude::MAGNITUDE)
+ .value("MAGNITUDE_SQUARED", fft_magnitude::MAGNITUDE_SQUARED)
+ .export_values();
+
+ py::class_<fft_block_control, noc_block_base, fft_block_control::sptr>(
+ m, "fft_block_control")
+ .def(py::init(&block_controller_factory<fft_block_control>::make_from))
+ .def("set_direction", &fft_block_control::set_direction)
+ .def("get_direction", &fft_block_control::get_direction)
+ .def("set_magnitude", &fft_block_control::set_magnitude)
+ .def("get_magnitude", &fft_block_control::get_magnitude)
+ .def("set_shift_config", &fft_block_control::set_shift_config)
+ .def("get_shift_config", &fft_block_control::get_shift_config)
+ .def("set_scaling", &fft_block_control::set_scaling)
+ .def("get_scaling", &fft_block_control::get_scaling)
+ .def("set_length", &fft_block_control::set_length)
+ .def("get_length", &fft_block_control::get_length);
+}