From 3fe5ccf700a0c6f27dca9511386460194dcc593c Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Tue, 3 Mar 2020 16:10:06 -0800 Subject: uhd: cal: Add iq_cal calibration data container class This class can be used to store calibration coefficients for the X300 DC offset and IQ imbalance calibration. Note: This also modifies Doxyfile.in to not document files generated by flatc. --- host/lib/cal/cal_python.hpp | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'host/lib/cal/cal_python.hpp') diff --git a/host/lib/cal/cal_python.hpp b/host/lib/cal/cal_python.hpp index 0fe87046f..39a13d94c 100644 --- a/host/lib/cal/cal_python.hpp +++ b/host/lib/cal/cal_python.hpp @@ -8,6 +8,8 @@ #define INCLUDED_UHD_CAL_PYTHON_HPP #include +#include +#include std::vector pybytes_to_vector(const py::bytes& data) { @@ -56,6 +58,42 @@ void export_cal(py::module& m) [](const std::string& key, const std::string& serial, const py::bytes data) { database::write_cal_data(key, serial, pybytes_to_vector(data)); }); + + py::enum_(m, "interp_mode") + .value("NEAREST_NEIGHBOR", interp_mode::NEAREST_NEIGHBOR) + .value("LINEAR", interp_mode::LINEAR); + + py::class_>(m, "container") + .def("get_name", &container::get_name) + .def("get_serial", &container::get_serial) + .def("get_timestamp", &container::get_name) + .def("serialize", + [](std::shared_ptr& self) { + return vector_to_pybytes(self->serialize()); + }) + .def("deserialize", [](std::shared_ptr& self, const py::bytes data) { + self->deserialize(pybytes_to_vector(data)); + }); + + py::class_(m, "iq_cal") + .def(py::init([](const std::string& name, + const std::string& serial, + const uint64_t timestamp) { + return iq_cal::make(name, serial, timestamp); + })) + .def(py::init([]() { return iq_cal::make(); })) + .def(py::init([](const py::bytes data) { + return container::make(pybytes_to_vector(data)); + })) + .def("set_interp_mode", &iq_cal::set_interp_mode) + .def("get_cal_coeff", &iq_cal::get_cal_coeff) + .def("set_cal_coeff", + &iq_cal::set_cal_coeff, + py::arg("freq"), + py::arg("coeff"), + py::arg("suppression_abs") = 0, + py::arg("suppression_delta") = 0) + .def("clear", &iq_cal::clear); } #endif /* INCLUDED_UHD_CAL_PYTHON_HPP */ -- cgit v1.2.3