LCOV - code coverage report
Current view: top level - fddetdataformats/pybindsrc - tde.cpp (source / functions) Coverage Total Hit
Test: code.result Lines: 0.0 % 31 0
Test Date: 2026-05-24 15:29:04 Functions: 0.0 % 11 0

            Line data    Source code
       1              : /**
       2              :  * @file tde.cpp Python bindings for the TDE16Frame format
       3              :  *
       4              :  * This is part of the DUNE DAQ Software Suite, copyright 2020.
       5              :  * Licensing/copyright details are in the COPYING file that you should have
       6              :  * received with this code.
       7              :  */
       8              : 
       9              : #include "fddetdataformats/TDE16Frame.hpp"
      10              : 
      11              : #include <pybind11/pybind11.h>
      12              : #include <pybind11/stl.h>
      13              : 
      14              : namespace py = pybind11;
      15              : 
      16              : namespace dunedaq::fddetdataformats::python {
      17              : 
      18              : void
      19            0 : register_tde(py::module& m)
      20              : {
      21              : 
      22            0 :   py::class_<TDE16Frame>(m, "TDE16Frame", py::buffer_protocol())
      23            0 :     .def(py::init())
      24            0 :     .def(py::init([](py::capsule capsule) {
      25            0 :       auto wfp = *static_cast<TDE16Frame*>(capsule.get_pointer());
      26            0 :       return wfp;
      27              :     }))
      28            0 :     .def(py::init([](py::bytes bytes) {
      29            0 :       py::buffer_info info(py::buffer(bytes).request());
      30            0 :       auto wfp = *static_cast<TDE16Frame*>(info.ptr);
      31            0 :       return wfp;
      32            0 :     }))
      33            0 :     .def("get_timestamp", &TDE16Frame::get_timestamp)
      34            0 :     .def("set_timestamp", &TDE16Frame::set_timestamp)
      35            0 :     .def("get_channel", &TDE16Frame::get_channel)
      36            0 :     .def(
      37              :       "get_daq_header",
      38            0 :       [](TDE16Frame& self) -> detdataformats::DAQEthHeader* { return self.get_daq_header(); },
      39            0 :       py::return_value_policy::reference_internal)
      40            0 :     .def(
      41              :       "get_tde_header",
      42            0 :       [](TDE16Frame& self) -> TDEHeader* { return self.get_tde_header(); },
      43            0 :       py::return_value_policy::reference_internal)
      44            0 :     .def("get_adc_sample", &TDE16Frame::get_adc_sample)
      45            0 :     .def_static("sizeof", []() { return sizeof(TDE16Frame); })
      46            0 :     .def("get_bytes",
      47            0 :          [](TDE16Frame* fr) -> py::bytes { return py::bytes(reinterpret_cast<char*>(fr), sizeof(TDE16Frame)); });
      48              : 
      49            0 :   py::class_<TDEHeader>(m, "TDEHeader")
      50            0 :     .def_property_readonly("channel", [](TDEHeader& self) -> uint16_t { return self.channel; })
      51            0 :     .def_property_readonly("version", [](TDEHeader& self) -> uint16_t { return self.version; })
      52            0 :     .def_property_readonly("tde_header", [](TDEHeader& self) -> uint16_t { return self.tde_header; })
      53            0 :     .def_property_readonly("tde_errors", [](TDEHeader& self) -> uint16_t { return self.tde_errors; })
      54            0 :     .def_property_readonly("TAItime", [](TDEHeader& self) -> uint64_t { return self.TAItime; });
      55            0 : }
      56              : 
      57              : } // namespace dunedaq::fddetdataformats::python
        

Generated by: LCOV version 2.0-1