diff options
Diffstat (limited to 'gr-blocks/python/blocks/bindings/control_loop_python.cc')
-rw-r--r-- | gr-blocks/python/blocks/bindings/control_loop_python.cc | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/gr-blocks/python/blocks/bindings/control_loop_python.cc b/gr-blocks/python/blocks/bindings/control_loop_python.cc new file mode 100644 index 0000000000..bd0a7f8032 --- /dev/null +++ b/gr-blocks/python/blocks/bindings/control_loop_python.cc @@ -0,0 +1,147 @@ +/* + * Copyright 2020 Free Software Foundation, Inc. + * + * This file is part of GNU Radio + * + * SPDX-License-Identifier: GPL-3.0-or-later + * + */ + +/***********************************************************************************/ +/* This file is automatically generated using bindtool and can be manually edited */ +/* The following lines can be configured to regenerate this file during cmake */ +/* If manual edits are made, the following tags should be modified accordingly. */ +/* BINDTOOL_GEN_AUTOMATIC(0) */ +/* BINDTOOL_USE_PYGCCXML(0) */ +/* BINDTOOL_HEADER_FILE(control_loop.h) */ +/* BINDTOOL_HEADER_FILE_HASH(26a23d368e328fb578707a7c18cafbe1) */ +/***********************************************************************************/ + +#include <pybind11/complex.h> +#include <pybind11/pybind11.h> +#include <pybind11/stl.h> + +namespace py = pybind11; + +#include <gnuradio/blocks/control_loop.h> +// pydoc.h is automatically generated in the build directory +#include <control_loop_pydoc.h> + +void bind_control_loop(py::module& m) +{ + + using control_loop = ::gr::blocks::control_loop; + + + py::class_<control_loop, std::shared_ptr<control_loop>>( + m, "control_loop", D(control_loop)) + + .def(py::init<>(), D(control_loop, control_loop, 0)) + .def(py::init<float, float, float>(), + py::arg("loop_bw"), + py::arg("max_freq"), + py::arg("min_freq"), + D(control_loop, control_loop, 1)) + .def(py::init<gr::blocks::control_loop const&>(), + py::arg("arg0"), + D(control_loop, control_loop, 2)) + + + .def("update_gains", &control_loop::update_gains, D(control_loop, update_gains)) + + + .def("advance_loop", + &control_loop::advance_loop, + py::arg("error"), + D(control_loop, advance_loop)) + + + .def("phase_wrap", &control_loop::phase_wrap, D(control_loop, phase_wrap)) + + + .def("frequency_limit", + &control_loop::frequency_limit, + D(control_loop, frequency_limit)) + + + .def("set_loop_bandwidth", + &control_loop::set_loop_bandwidth, + py::arg("bw"), + D(control_loop, set_loop_bandwidth)) + + + .def("set_damping_factor", + &control_loop::set_damping_factor, + py::arg("df"), + D(control_loop, set_damping_factor)) + + + .def("set_alpha", + &control_loop::set_alpha, + py::arg("alpha"), + D(control_loop, set_alpha)) + + + .def("set_beta", + &control_loop::set_beta, + py::arg("beta"), + D(control_loop, set_beta)) + + + .def("set_frequency", + &control_loop::set_frequency, + py::arg("freq"), + D(control_loop, set_frequency)) + + + .def("set_phase", + &control_loop::set_phase, + py::arg("phase"), + D(control_loop, set_phase)) + + + .def("set_max_freq", + &control_loop::set_max_freq, + py::arg("freq"), + D(control_loop, set_max_freq)) + + + .def("set_min_freq", + &control_loop::set_min_freq, + py::arg("freq"), + D(control_loop, set_min_freq)) + + + .def("get_loop_bandwidth", + &control_loop::get_loop_bandwidth, + D(control_loop, get_loop_bandwidth)) + + + .def("get_damping_factor", + &control_loop::get_damping_factor, + D(control_loop, get_damping_factor)) + + + .def("get_alpha", &control_loop::get_alpha, D(control_loop, get_alpha)) + + + .def("get_beta", &control_loop::get_beta, D(control_loop, get_beta)) + + + .def( + "get_frequency", &control_loop::get_frequency, D(control_loop, get_frequency)) + + + .def("get_phase", &control_loop::get_phase, D(control_loop, get_phase)) + + + .def("get_max_freq", &control_loop::get_max_freq, D(control_loop, get_max_freq)) + + + .def("get_min_freq", &control_loop::get_min_freq, D(control_loop, get_min_freq)) + + ; + + + m.def("tanhf_lut", &::gr::blocks::tanhf_lut, py::arg("x"), D(tanhf_lut)); +} |