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

            Line data    Source code
       1              : /**
       2              :  * @file wibeth.cpp Python bindings for the TDEEthFrame 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/TDEEthFrame.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_tdeeth(py::module& m)
      20              : {
      21              : 
      22              :   // NOLINTBEGIN(build/unsigned)
      23              : 
      24              :   // py::class_<TDEEthFrame::TDEHeader>(m, "TDEHeader")
      25              :   //   .def_property("channel",
      26              :   //     [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.channel;},
      27              :   //     [](TDEEthFrame::TDEHeader& self, uint32_t channel) {self.channel = channel;}
      28              :   //     )
      29              :   //   .def_property("version",
      30              :   //     [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.version;},
      31              :   //     [](TDEEthFrame::TDEHeader& self, uint32_t version) {self.version = version;}
      32              :   //     )
      33              :   //   // .def_property("reserved",
      34              :   //     // [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.reserved;},
      35              :   //     // [](TDEEthFrame::TDEHeader& self, uint32_t reserved) {self.reserved = reserved;}
      36              :   //     // )
      37              :   //   .def_property("cd",
      38              :   //     [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.cd;},
      39              :   //     [](TDEEthFrame::TDEHeader& self, uint32_t cd) {self.version = cd;}
      40              :   //     )
      41              :   //   .def_property("context",
      42              :   //     [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.context;},
      43              :   //     [](TDEEthFrame::TDEHeader& self, uint32_t context) {self.version = context;}
      44              :   //     )
      45              :   //   .def_property("ready",
      46              :   //     [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.ready;},
      47              :   //     [](TDEEthFrame::TDEHeader& self, uint32_t ready) {self.ready = ready;}
      48              :   //     )
      49              :   //   .def_property("calibration",
      50              :   //     [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.calibration;},
      51              :   //     [](TDEEthFrame::TDEHeader& self, uint32_t calibration) {self.calibration = calibration;}
      52              :   //     )
      53              :   //   .def_property("pulser",
      54              :   //     [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.pulser;},
      55              :   //     [](TDEEthFrame::TDEHeader& self, uint32_t pulser) {self.pulser = pulser;}
      56              :   //     )
      57              :   //   .def_property("femb_sync",
      58              :   //     [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.femb_sync;},
      59              :   //     [](TDEEthFrame::TDEHeader& self, uint32_t femb_sync) {self.femb_sync = femb_sync;}
      60              :   //     )
      61              :   //   .def_property("wib_sync",
      62              :   //     [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.wib_sync;},
      63              :   //     [](TDEEthFrame::TDEHeader& self, uint32_t wib_sync) {self.wib_sync = wib_sync;}
      64              :   //     )
      65              :   //   .def_property("lol",
      66              :   //     [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.lol;},
      67              :   //     [](TDEEthFrame::TDEHeader& self, uint32_t lol) {self.lol = lol;}
      68              :   //     )
      69              :   //   .def_property("link_valid",
      70              :   //     [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.link_valid;},
      71              :   //     [](TDEEthFrame::TDEHeader& self, uint32_t link_valid) {self.link_valid = link_valid;}
      72              :   //     )
      73              :   //   .def_property("crc_err",
      74              :   //     [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.crc_err;},
      75              :   //     [](TDEEthFrame::TDEHeader& self, uint32_t crc_err) {self.crc_err = crc_err;}
      76              :   //     )
      77              :   //   .def_property("colddata_timestamp_1",
      78              :   //     [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.colddata_timestamp_1;},
      79              :   //     [](TDEEthFrame::TDEHeader& self, uint32_t colddata_timestamp_1) {self.lol = colddata_timestamp_1;}
      80              :   //     )
      81              :   //   .def_property("colddata_timestamp_0",
      82              :   //     [](TDEEthFrame::TDEHeader& self) -> uint32_t {return self.colddata_timestamp_0;},
      83              :   //     [](TDEEthFrame::TDEHeader& self, uint32_t colddata_timestamp_0) {self.colddata_timestamp_0 =
      84              :   //     colddata_timestamp_0;}
      85              :   //     )
      86              :   //   .def_property("extra_data",
      87              :   //     [](TDEEthFrame::TDEHeader& self) -> uint64_t {return self.extra_data;},
      88              :   //     [](TDEEthFrame::TDEHeader& self, uint64_t extra_data) {self.extra_data = extra_data;}
      89              :   //     )
      90              :   //   ;
      91              : 
      92            0 :   py::class_<TDEEthFrame::TDEEthHeader>(m, "TDEEthHeader")
      93            0 :     .def_property(
      94              :       "channel",
      95            0 :       [](TDEEthFrame::TDEEthHeader& self) -> uint16_t { return self.channel; },
      96            0 :       [](TDEEthFrame::TDEEthHeader& self, uint16_t channel) { self.channel = channel; })
      97            0 :     .def_property(
      98              :       "version",
      99            0 :       [](TDEEthFrame::TDEEthHeader& self) -> uint16_t { return self.version; },
     100            0 :       [](TDEEthFrame::TDEEthHeader& self, uint16_t version) { self.version = version; })
     101            0 :     .def_property(
     102              :       "tde_header",
     103            0 :       [](TDEEthFrame::TDEEthHeader& self) -> uint16_t { return self.tde_header; },
     104            0 :       [](TDEEthFrame::TDEEthHeader& self, uint16_t tde_header) { self.tde_header = tde_header; })
     105            0 :     .def_property(
     106              :       "tde_errors",
     107            0 :       [](TDEEthFrame::TDEEthHeader& self) -> uint16_t { return self.tde_errors; },
     108            0 :       [](TDEEthFrame::TDEEthHeader& self, uint16_t tde_errors) { self.tde_errors = tde_errors; })
     109            0 :     .def_property(
     110              :       "TAItime",
     111            0 :       [](TDEEthFrame::TDEEthHeader& self) -> uint64_t { return self.TAItime; },
     112            0 :       [](TDEEthFrame::TDEEthHeader& self, uint64_t TAItime) { self.TAItime = TAItime; });
     113              : 
     114            0 :   py::class_<TDEEthFrame>(m, "TDEEthFrame", py::buffer_protocol())
     115            0 :     .def(py::init())
     116            0 :     .def(py::init([](py::capsule capsule) {
     117            0 :       auto tfp = *static_cast<TDEEthFrame*>(capsule.get_pointer());
     118            0 :       return tfp;
     119              :     }))
     120            0 :     .def(py::init([](py::bytes bytes) {
     121            0 :       py::buffer_info info(py::buffer(bytes).request());
     122            0 :       auto tfp = *static_cast<TDEEthFrame*>(info.ptr);
     123            0 :       return tfp;
     124            0 :     }))
     125            0 :     .def(
     126              :       "get_daqheader",
     127            0 :       [](TDEEthFrame& self) -> const detdataformats::DAQEthHeader& { return self.daq_header; },
     128            0 :       py::return_value_policy::reference_internal)
     129            0 :     .def(
     130              :       "get_tdeheader",
     131            0 :       [](TDEEthFrame& self) -> const TDEEthFrame::TDEEthHeader& { return self.header; },
     132            0 :       py::return_value_policy::reference_internal)
     133            0 :     .def("get_adc", &TDEEthFrame::get_adc)
     134            0 :     .def("set_adc", &TDEEthFrame::set_adc)
     135            0 :     .def("get_timestamp", &TDEEthFrame::get_timestamp)
     136            0 :     .def("set_timestamp", &TDEEthFrame::set_timestamp)
     137            0 :     .def("get_channel", &TDEEthFrame::get_channel)
     138            0 :     .def("set_channel", &TDEEthFrame::set_channel)
     139            0 :     .def_static("sizeof", []() { return sizeof(TDEEthFrame); })
     140            0 :     .def("get_bytes", [](TDEEthFrame* fr) -> py::bytes {
     141            0 :       return py::bytes(reinterpret_cast<char*>(fr), sizeof(TDEEthFrame)); // NOLINT reinterpret_cast
     142              :     });
     143            0 : }
     144              : 
     145              : // NOLINTEND(build/unsigned)
     146              : 
     147              : } // namespace dunedaq::fddetdataformats::python
        

Generated by: LCOV version 2.0-1