Line data Source code
1 : /**
2 : * @file trigger_primitive.cpp Python bindings for the trigger primitive formats
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 "trgdataformats/TriggerPrimitive.hpp"
10 :
11 : #include <pybind11/pybind11.h>
12 : #include <pybind11/stl.h>
13 :
14 : namespace py = pybind11;
15 :
16 : namespace dunedaq::trgdataformats::python {
17 :
18 : void
19 0 : register_trigger_primitive(py::module& m)
20 : {
21 :
22 :
23 0 : py::class_<TriggerPrimitive> trigger_primitive(m, "TriggerPrimitive", py::buffer_protocol());
24 0 : trigger_primitive
25 0 : .def(py::init())
26 0 : .def(py::init([](py::capsule capsule) {
27 0 : auto tp = *static_cast<TriggerPrimitive*>(capsule.get_pointer());
28 0 : return tp;
29 : } ))
30 0 : .def_property_readonly_static("s_trigger_primitive_version", [](py::object /*self*/) {return TriggerPrimitive::s_trigger_primitive_version;})
31 0 : .def_property_readonly("version", [](TriggerPrimitive& self) -> uint8_t {return self.version;})
32 0 : .def_property_readonly("time_start", [](TriggerPrimitive& self) -> uint64_t {return self.time_start;})
33 0 : .def_property_readonly("samples_to_peak", [](TriggerPrimitive& self) -> uint16_t {return self.samples_to_peak;})
34 0 : .def_property_readonly("samples_over_threshold", [](TriggerPrimitive& self) -> uint16_t {return self.samples_over_threshold;})
35 0 : .def_property_readonly("channel", [](TriggerPrimitive& self) -> uint32_t {return uint32_t(self.channel);})
36 0 : .def_property_readonly("adc_integral", [](TriggerPrimitive& self) -> uint32_t {return self.adc_integral;})
37 0 : .def_property_readonly("adc_peak", [](TriggerPrimitive& self) -> uint16_t {return self.adc_peak;})
38 0 : .def_property_readonly("detid", [](TriggerPrimitive& self) -> uint8_t {return self.detid;})
39 0 : .def_property_readonly("flag", [](TriggerPrimitive& self) -> uint8_t {return self.flag;})
40 0 : .def_static("sizeof", [](){ return sizeof(TriggerPrimitive); })
41 : ;
42 :
43 0 : }
44 :
45 : } // namespace dunedaq::trgdataformats::python
|