aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/cal
diff options
context:
space:
mode:
authorSamuel O'Brien <sam.obrien@ni.com>2020-06-25 15:43:32 -0500
committerAaron Rossetto <aaron.rossetto@ni.com>2020-07-16 09:59:25 -0500
commit919a147afcbecace5107a4d0a4da556cfd56df92 (patch)
treec7b5faea5b89069232e7fb9f7cfebe1e495f4bca /host/lib/cal
parentbe6491428db599867129733f73e7ce0ce23e05a7 (diff)
downloaduhd-919a147afcbecace5107a4d0a4da556cfd56df92.tar.gz
uhd-919a147afcbecace5107a4d0a4da556cfd56df92.tar.bz2
uhd-919a147afcbecace5107a4d0a4da556cfd56df92.zip
python: Add bindings for C++ CHDR Parser
This commit adds pybind11 glue code for the userland chdr parsing code introduced in the uhd::utils::chdr namespace. Additionally, it moves some pybind11 adapter code to a common pybind_adaptors.hpp file which originally existed in the cal_python.hpp file. This commit also adds unit tests for the python bindings using a captured wireshark trace which is located in rfnoc_packets_*.py and some handwritten packets in hardcoded_packets.py Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
Diffstat (limited to 'host/lib/cal')
-rw-r--r--host/lib/cal/cal_python.hpp22
1 files changed, 3 insertions, 19 deletions
diff --git a/host/lib/cal/cal_python.hpp b/host/lib/cal/cal_python.hpp
index 513dda344..fa38c568b 100644
--- a/host/lib/cal/cal_python.hpp
+++ b/host/lib/cal/cal_python.hpp
@@ -11,26 +11,9 @@
#include <uhd/cal/iq_cal.hpp>
#include <uhd/cal/pwr_cal.hpp>
#include <uhd/utils/interpolation.hpp>
+#include <uhd/utils/pybind_adaptors.hpp>
#include <pybind11/stl.h>
-namespace pybind11 { namespace detail {
-template <typename T>
-struct type_caster<boost::optional<T>> : optional_caster<boost::optional<T>>
-{
-};
-}}
-
-std::vector<uint8_t> pybytes_to_vector(const py::bytes& data)
-{
- const std::string data_str = std::string(data);
- return std::vector<uint8_t>(data_str.cbegin(), data_str.cend());
-}
-
-py::bytes vector_to_pybytes(const std::vector<uint8_t>& data)
-{
- return py::bytes(std::string(data.cbegin(), data.cend()));
-}
-
void export_cal(py::module& m)
{
using namespace uhd::usrp::cal;
@@ -48,7 +31,8 @@ void export_cal(py::module& m)
.value("NONE", source::NONE);
py::class_<database>(m, "database")
- .def_static("read_cal_data",
+ .def_static(
+ "read_cal_data",
[](const std::string& key,
const std::string& serial,
const source source_type) {