21{
22
23 py::class_<DAPHNEFrame>(m, "DAPHNEFrame", py::buffer_protocol())
24 .def(py::init())
25 .def(py::init([](py::capsule capsule) {
26 auto wfp = *
static_cast<DAPHNEFrame*
>(capsule.get_pointer());
27 return wfp;
28 } ))
29 .def(py::init([](py::bytes bytes){
30 py::buffer_info info(py::buffer(bytes).request());
32 return wfp;
33 }))
34 .def(
"get_daqheader", [](DAPHNEFrame& self) ->
const detdataformats::DAQHeader& {
return self.daq_header;}, py::return_value_policy::reference_internal)
35 .def("get_header", [](DAPHNEFrame& self) -> const DAPHNEFrame::Header& {return self.header;}, py::return_value_policy::reference_internal)
36 .def("get_peaks_data", [](DAPHNEFrame& self) -> const DAPHNEFrame::PeakDescriptorData& {return self.peaks_data;}, py::return_value_policy::reference_internal)
37 .def("get_adc", static_cast<uint16_t (DAPHNEFrame::*)(const int) const>(&DAPHNEFrame::get_adc))
38 .def("get_timestamp", &DAPHNEFrame::get_timestamp)
39 .def("get_channel", &DAPHNEFrame::get_channel)
40 .def_static("sizeof", [](){ return sizeof(DAPHNEFrame); })
41 ;
42
43 py::class_<DAPHNEFrame::Header>(m, "DAPHNEFrameHeader")
44 .def_property("channel",
45 [](DAPHNEFrame::Header& self) -> uint8_t { return self.channel; },
46 [](DAPHNEFrame::Header& self, uint8_t
channel) { self.channel =
channel; }
47 )
48 .def_property("algorithm_id",
49 [](DAPHNEFrame::Header& self) -> uint8_t { return self.algorithm_id; },
50 [](DAPHNEFrame::Header& self, uint8_t algorithm_id) { self.algorithm_id = algorithm_id; }
51 )
52 .def_property("r1",
53 [](DAPHNEFrame::Header& self) -> uint8_t { return self.r1; },
54 [](DAPHNEFrame::Header& self, uint8_t r1) { self.r1 = r1; }
55 )
56 .def_property("trigger_sample_value",
57 [](DAPHNEFrame::Header& self) -> uint16_t { return self.trigger_sample_value; },
58 [](DAPHNEFrame::Header& self, uint16_t tsv) { self.trigger_sample_value = tsv; }
59 )
60 .def_property("threshold",
61 [](DAPHNEFrame::Header& self) -> uint16_t { return self.threshold; },
62 [](DAPHNEFrame::Header& self, uint16_t threshold) { self.threshold = threshold; }
63 )
64 .def_property("baseline",
65 [](DAPHNEFrame::Header& self) -> uint16_t { return self.baseline; },
66 [](DAPHNEFrame::Header& self, uint16_t baseline) { self.baseline = baseline; }
67 )
68 ;
69
70 py::class_<DAPHNEFrame::PeakDescriptorData>(m, "DAPHNEFramePeakDescriptorData")
71 .def("is_found", &DAPHNEFrame::PeakDescriptorData::is_found)
72 .def("set_found", &DAPHNEFrame::PeakDescriptorData::set_found)
73
74 .def("get_adc_integral", &DAPHNEFrame::PeakDescriptorData::get_adc_integral)
75 .def("set_adc_integral", &DAPHNEFrame::PeakDescriptorData::set_adc_integral)
76
77 .def("get_num_subpeaks", &DAPHNEFrame::PeakDescriptorData::get_num_subpeaks)
78 .def("set_num_subpeaks", &DAPHNEFrame::PeakDescriptorData::set_num_subpeaks)
79
80 .def("get_samples_over_baseline", &DAPHNEFrame::PeakDescriptorData::get_samples_over_baseline)
81 .def("set_samples_over_baseline", &DAPHNEFrame::PeakDescriptorData::set_samples_over_baseline)
82
83 .def("get_adc_max", &DAPHNEFrame::PeakDescriptorData::get_adc_max)
84 .def("set_adc_max", &DAPHNEFrame::PeakDescriptorData::set_adc_max)
85
86 .def("get_sample_start", &DAPHNEFrame::PeakDescriptorData::get_sample_start)
87 .def("set_sample_start", &DAPHNEFrame::PeakDescriptorData::set_sample_start)
88
89 .def_property("num_subpeaks_0",
90 [](DAPHNEFrame::PeakDescriptorData& self) -> uint8_t { return self.num_subpeaks_0; },
91 [](DAPHNEFrame::PeakDescriptorData& self, uint8_t val) { self.num_subpeaks_0 = val; }
92 )
93 .def_property("adc_integral_0",
94 [](DAPHNEFrame::PeakDescriptorData& self) -> uint32_t { return self.adc_integral_0; },
95 [](DAPHNEFrame::PeakDescriptorData& self, uint32_t val) { self.adc_integral_0 = val; }
96 )
97 .def_property("found_0",
98 [](DAPHNEFrame::PeakDescriptorData& self) -> uint8_t { return self.found_0; },
99 [](DAPHNEFrame::PeakDescriptorData& self, uint8_t val) { self.found_0 = val; }
100 )
101 .def_property("adc_max_0",
102 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.adc_max_0; },
103 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.adc_max_0 = val; }
104 )
105 .def_property("sample_max_0",
106 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.sample_max_0; },
107 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.sample_max_0 = val; }
108 )
109 .def_property("samples_over_baseline_0",
110 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.samples_over_baseline_0; },
111 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.samples_over_baseline_0 = val; }
112 )
113
114 .def_property("num_subpeaks_1",
115 [](DAPHNEFrame::PeakDescriptorData& self) -> uint8_t { return self.num_subpeaks_1; },
116 [](DAPHNEFrame::PeakDescriptorData& self, uint8_t val) { self.num_subpeaks_1 = val; }
117 )
118 .def_property("adc_integral_1",
119 [](DAPHNEFrame::PeakDescriptorData& self) -> uint32_t { return self.adc_integral_1; },
120 [](DAPHNEFrame::PeakDescriptorData& self, uint32_t val) { self.adc_integral_1 = val; }
121 )
122 .def_property("found_1",
123 [](DAPHNEFrame::PeakDescriptorData& self) -> uint8_t { return self.found_1; },
124 [](DAPHNEFrame::PeakDescriptorData& self, uint8_t val) { self.found_1 = val; }
125 )
126 .def_property("adc_max_1",
127 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.adc_max_1; },
128 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.adc_max_1 = val; }
129 )
130 .def_property("sample_max_1",
131 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.sample_max_1; },
132 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.sample_max_1 = val; }
133 )
134 .def_property("samples_over_baseline_1",
135 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.samples_over_baseline_1; },
136 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.samples_over_baseline_1 = val; }
137 )
138
139 .def_property("num_subpeaks_2",
140 [](DAPHNEFrame::PeakDescriptorData& self) -> uint8_t { return self.num_subpeaks_2; },
141 [](DAPHNEFrame::PeakDescriptorData& self, uint8_t val) { self.num_subpeaks_2 = val; }
142 )
143 .def_property("adc_integral_2",
144 [](DAPHNEFrame::PeakDescriptorData& self) -> uint32_t { return self.adc_integral_2; },
145 [](DAPHNEFrame::PeakDescriptorData& self, uint32_t val) { self.adc_integral_2 = val; }
146 )
147 .def_property("found_2",
148 [](DAPHNEFrame::PeakDescriptorData& self) -> uint8_t { return self.found_2; },
149 [](DAPHNEFrame::PeakDescriptorData& self, uint8_t val) { self.found_2 = val; }
150 )
151 .def_property("adc_max_2",
152 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.adc_max_2; },
153 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.adc_max_2 = val; }
154 )
155 .def_property("sample_max_2",
156 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.sample_max_2; },
157 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.sample_max_2 = val; }
158 )
159 .def_property("samples_over_baseline_2",
160 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.samples_over_baseline_2; },
161 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.samples_over_baseline_2 = val; }
162 )
163
164 .def_property("num_subpeaks_3",
165 [](DAPHNEFrame::PeakDescriptorData& self) -> uint8_t { return self.num_subpeaks_3; },
166 [](DAPHNEFrame::PeakDescriptorData& self, uint8_t val) { self.num_subpeaks_3 = val; }
167 )
168 .def_property("adc_integral_3",
169 [](DAPHNEFrame::PeakDescriptorData& self) -> uint32_t { return self.adc_integral_3; },
170 [](DAPHNEFrame::PeakDescriptorData& self, uint32_t val) { self.adc_integral_3 = val; }
171 )
172 .def_property("found_3",
173 [](DAPHNEFrame::PeakDescriptorData& self) -> uint8_t { return self.found_3; },
174 [](DAPHNEFrame::PeakDescriptorData& self, uint8_t val) { self.found_3 = val; }
175 )
176 .def_property("adc_max_3",
177 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.adc_max_3; },
178 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.adc_max_3 = val; }
179 )
180 .def_property("sample_max_3",
181 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.sample_max_3; },
182 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.sample_max_3 = val; }
183 )
184 .def_property("samples_over_baseline_3",
185 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.samples_over_baseline_3; },
186 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.samples_over_baseline_3 = val; }
187 )
188
189 .def_property("num_subpeaks_4",
190 [](DAPHNEFrame::PeakDescriptorData& self) -> uint8_t { return self.num_subpeaks_4; },
191 [](DAPHNEFrame::PeakDescriptorData& self, uint8_t val) { self.num_subpeaks_4 = val; }
192 )
193 .def_property("adc_integral_4",
194 [](DAPHNEFrame::PeakDescriptorData& self) -> uint32_t { return self.adc_integral_4; },
195 [](DAPHNEFrame::PeakDescriptorData& self, uint32_t val) { self.adc_integral_4 = val; }
196 )
197 .def_property("found_4",
198 [](DAPHNEFrame::PeakDescriptorData& self) -> uint8_t { return self.found_4; },
199 [](DAPHNEFrame::PeakDescriptorData& self, uint8_t val) { self.found_4 = val; }
200 )
201 .def_property("adc_max_4",
202 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.adc_max_4; },
203 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.adc_max_4 = val; }
204 )
205 .def_property("sample_max_4",
206 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.sample_max_4; },
207 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.sample_max_4 = val; }
208 )
209 .def_property("samples_over_baseline_4",
210 [](DAPHNEFrame::PeakDescriptorData& self) -> uint16_t { return self.samples_over_baseline_4; },
211 [](DAPHNEFrame::PeakDescriptorData& self, uint16_t val) { self.samples_over_baseline_4 = val; }
212 )
213 ;
214
215 py::class_<DAPHNEStreamFrame::Header>(m, "DAPHNEStreamHeader")
216 .def_property("channel_0",
217 [](DAPHNEStreamFrame::Header& self) -> uint32_t { return self.channel_0; },
218 [](DAPHNEStreamFrame::Header& self, uint32_t channel_0) { self.channel_0 = channel_0; }
219 )
220 .def_property("channel_1",
221 [](DAPHNEStreamFrame::Header& self) -> uint32_t { return self.channel_1; },
222 [](DAPHNEStreamFrame::Header& self, uint32_t channel_1) { self.channel_1 = channel_1; }
223 )
224 .def_property("channel_2",
225 [](DAPHNEStreamFrame::Header& self) -> uint32_t { return self.channel_2; },
226 [](DAPHNEStreamFrame::Header& self, uint32_t channel_2) { self.channel_2 = channel_2; }
227 )
228 .def_property("channel_3",
229 [](DAPHNEStreamFrame::Header& self) -> uint32_t { return self.channel_3; },
230 [](DAPHNEStreamFrame::Header& self, uint32_t channel_3) { self.channel_3 = channel_3; }
231 )
232 ;
233
234
235 py::class_<DAPHNEStreamFrame>(m, "DAPHNEStreamFrame", py::buffer_protocol())
236 .def(py::init())
237 .def(py::init([](py::capsule capsule) {
238 auto wfp = *static_cast<DAPHNEStreamFrame*>(capsule.get_pointer());
239 return wfp;
240 } ))
241 .def("get_daqheader", [](DAPHNEStreamFrame& self) -> const detdataformats::DAQHeader& {return self.daq_header;}, py::return_value_policy::reference_internal)
242 .def("get_header", [](DAPHNEStreamFrame& self) -> const DAPHNEStreamFrame::Header& {return self.header;}, py::return_value_policy::reference_internal)
243
244 .def("get_timestamp", &DAPHNEStreamFrame::get_timestamp)
245 .def("set_timestamp", &DAPHNEStreamFrame::set_timestamp)
246 .def("get_adc", &DAPHNEStreamFrame::get_adc)
247 .def("set_adc", &DAPHNEStreamFrame::set_adc)
248 .def_static("sizeof", [](){ return sizeof(DAPHNEStreamFrame); })
249 .def("get_bytes",
250 [](DAPHNEStreamFrame* fr) -> py::bytes {
251 return py::bytes(reinterpret_cast<char*>(fr), sizeof(DAPHNEStreamFrame));
252 }
253 )
254 ;
255}