DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::detdataformats::python Namespace Reference

Functions

void register_daqethheader (py::module &m)
 
void register_daqheader (py::module &m)
 
void register_detid (py::module &m)
 
void register_hsi (py::module &m)
 
 PYBIND11_MODULE (_daq_detdataformats_py, m)
 
void register_detid (pybind11::module &)
 
void register_daqheader (pybind11::module &)
 
void register_daqethheader (pybind11::module &)
 
void register_hsi (pybind11::module &)
 

Function Documentation

◆ PYBIND11_MODULE()

dunedaq::detdataformats::python::PYBIND11_MODULE ( _daq_detdataformats_py ,
m  )

Definition at line 18 of file module.cpp.

18 {
19
20 m.doc() = "c++ implementation of the dunedaq detdataformats modules"; // optional module docstring
21
25 register_hsi(m);
26
27}
void register_hsi(py::module &m)
Definition hsi.cpp:18
void register_daqethheader(py::module &m)
void register_daqheader(py::module &m)
Definition daqheader.cpp:21
void register_detid(py::module &m)
Definition detid.cpp:21

◆ register_daqethheader() [1/2]

void dunedaq::detdataformats::python::register_daqethheader ( py::module & m)

Definition at line 21 of file daqethheader.cpp.

21 {
22
23 py::class_<DAQEthHeader>(m, "DAQEthHeader", py::buffer_protocol())
24 .def_property("version",
25 [](DAQEthHeader& self) -> uint32_t { return self.version; },
26 [](DAQEthHeader& self, uint32_t version) { self.version = version; }
27 )
28 .def_property("det_id",
29 [](DAQEthHeader& self) -> uint32_t { return self.det_id; },
30 [](DAQEthHeader& self, uint32_t det_id) { self.det_id = det_id; }
31 )
32 .def_property("crate_id",
33 [](DAQEthHeader& self) -> uint32_t { return self.crate_id; },
34 [](DAQEthHeader& self, uint32_t crate_id) { self.crate_id = crate_id; }
35 )
36 .def_property("slot_id",
37 [](DAQEthHeader& self) -> uint32_t { return self.slot_id; },
38 [](DAQEthHeader& self, uint32_t slot_id) { self.slot_id = slot_id; }
39 )
40 .def_property("stream_id",
41 [](DAQEthHeader& self) -> uint32_t { return self.stream_id; },
42 [](DAQEthHeader& self, uint32_t stream_id) { self.stream_id = stream_id; }
43 )
44 .def_property("reserved",
45 [](DAQEthHeader& self) -> uint32_t { return self.reserved; },
46 [](DAQEthHeader& self, uint32_t reserved) { self.reserved = reserved; }
47 )
48 .def_property("seq_id",
49 [](DAQEthHeader& self) -> uint32_t { return self.seq_id; },
50 [](DAQEthHeader& self, uint32_t seq_id) { self.seq_id = seq_id; }
51 )
52 .def_property("block_length",
53 [](DAQEthHeader& self) -> uint32_t { return self.block_length; },
54 [](DAQEthHeader& self, uint32_t block_length) { self.block_length = block_length; }
55 )
56 .def_property("timestamp",
57 [](DAQEthHeader& self) -> uint64_t { return self.timestamp; },
58 [](DAQEthHeader& self, uint64_t timestamp) { self.timestamp = timestamp; }
59 )
60 .def("get_timestamp", &DAQEthHeader::get_timestamp)
61 ;
62}
DAQEthHeader is a versioned and unified structure for every FE electronics.

◆ register_daqethheader() [2/2]

void dunedaq::detdataformats::python::register_daqethheader ( pybind11::module & )

◆ register_daqheader() [1/2]

void dunedaq::detdataformats::python::register_daqheader ( py::module & m)

Definition at line 21 of file daqheader.cpp.

21 {
22
23 py::class_<DAQHeader>(m, "DAQHeader", py::buffer_protocol())
24 .def_property("version",
25 [](DAQHeader& self) -> uint32_t { return self.version; },
26 [](DAQHeader& self, uint32_t version) { self.version = version; }
27 )
28 .def_property("det_id",
29 [](DAQHeader& self) -> uint32_t { return self.det_id; },
30 [](DAQHeader& self, uint32_t det_id) { self.det_id = det_id; }
31 )
32 .def_property("crate_id",
33 [](DAQHeader& self) -> uint32_t { return self.crate_id; },
34 [](DAQHeader& self, uint32_t crate_id) { self.crate_id = crate_id; }
35 )
36 .def_property("slot_id",
37 [](DAQHeader& self) -> uint32_t { return self.slot_id; },
38 [](DAQHeader& self, uint32_t slot_id) { self.slot_id = slot_id; }
39 )
40 .def_property("link_id",
41 [](DAQHeader& self) -> uint32_t { return self.link_id; },
42 [](DAQHeader& self, uint32_t link_id) { self.link_id = link_id; }
43 )
44 .def("get_timestamp", &DAQHeader::get_timestamp)
45 ;
46}
DAQHeader is a versioned and unified structure for every FE electronics.
Definition DAQHeader.hpp:22

◆ register_daqheader() [2/2]

void dunedaq::detdataformats::python::register_daqheader ( pybind11::module & )

◆ register_detid() [1/2]

void dunedaq::detdataformats::python::register_detid ( py::module & m)

Definition at line 21 of file detid.cpp.

21 {
22 py::class_<DetID> py_detid(m, "DetID");
23 py_detid.def(py::init())
24 .def(py::init<const DetID::Subdetector&>())
25 .def("__repr__", [](const DetID& gid) {
26 std::ostringstream oss;
27 oss << "<detdataformats::DetID " << gid.to_string() << ">";
28 return oss.str();
29 })
30 .def("to_string", &DetID::to_string)
31 .def("is_in_valid_state", &DetID::is_in_valid_state)
32 .def("subdetector_to_string", &DetID::subdetector_to_string)
33 .def("string_to_subdetector", &DetID::string_to_subdetector);
34
35 py::enum_<DetID::Subdetector>(py_detid, "Subdetector")
36 .value("kUnknown", DetID::Subdetector::kUnknown)
37 .value("kDAQ", DetID::Subdetector::kDAQ)
38 .value("kHD_PDS", DetID::Subdetector::kHD_PDS)
39 .value("kHD_TPC", DetID::Subdetector::kHD_TPC)
40 .value("kHD_CRT", DetID::Subdetector::kHD_CRT)
41 .value("kVD_CathodePDS", DetID::Subdetector::kVD_CathodePDS)
42 .value("kVD_MembranePDS", DetID::Subdetector::kVD_MembranePDS)
43 .value("kVD_BottomTPC", DetID::Subdetector::kVD_BottomTPC)
44 .value("kVD_TopTPC", DetID::Subdetector::kVD_TopTPC)
45 .value("kNDLAr_TPC", DetID::Subdetector::kNDLAr_TPC)
46 .value("kNDLAr_PDS", DetID::Subdetector::kNDLAr_PDS)
47 .value("kND_GAr", DetID::Subdetector::kND_GAr)
48 .export_values();
49
50 py_detid.def_readwrite("version", &DetID::version)
51 .def_readwrite("subdetector", &DetID::subdetector);
52}
DetID is a versioned structure containing the 6 bits field of the unique identifier for a subdetector...
Definition DetID.hpp:30
std::string to_string() const
Definition DetID.hpp:77

◆ register_detid() [2/2]

void dunedaq::detdataformats::python::register_detid ( pybind11::module & )

◆ register_hsi() [1/2]

void dunedaq::detdataformats::python::register_hsi ( py::module & m)

Definition at line 18 of file hsi.cpp.

19{
20
21 py::class_<HSIFrame> (m, "HSIFrame", py::buffer_protocol())
22 .def(py::init())
23 .def(py::init([](py::capsule capsule) {
24 auto hsfp = *static_cast<HSIFrame*>(capsule.get_pointer());
25 return hsfp;
26 } ))
27 .def(py::init([](py::bytes bytes){
28 py::buffer_info info(py::buffer(bytes).request());
29 auto wfp = *static_cast<HSIFrame*>(info.ptr);
30 return wfp;
31 }))
32 .def("get_timestamp", &HSIFrame::get_timestamp)
33 .def_property_readonly("version", [](const HSIFrame& self) -> uint64_t {return self.version;})
34 .def_property_readonly("detector_id", [](const HSIFrame& self) -> uint64_t {return self.detector_id;})
35 .def_property_readonly("crate", [](const HSIFrame& self) -> uint64_t {return self.crate;})
36 .def_property_readonly("slot", [](const HSIFrame& self) -> uint64_t {return self.slot;})
37 .def_property_readonly("link", [](const HSIFrame& self) -> uint64_t {return self.link;})
38 .def_property_readonly("input_low", [](const HSIFrame& self) -> uint64_t {return self.input_low;})
39 .def_property_readonly("input_high", [](const HSIFrame& self) -> uint64_t {return self.input_high;})
40 .def_property_readonly("trigger", [](const HSIFrame& self) -> uint64_t {return self.trigger;})
41 .def_property_readonly("sequence", [](const HSIFrame& self) -> uint64_t {return self.sequence;})
42 .def_static("sizeof", [](){ return sizeof(HSIFrame); })
43 ;
44}

◆ register_hsi() [2/2]

void dunedaq::detdataformats::python::register_hsi ( pybind11::module & )