mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-04 00:50:42 +02:00
python support for vetoalg
This commit is contained in:
parent
91eba6a8b8
commit
ae0d1cc0d4
@ -7,6 +7,7 @@ timingMode = slsDetectorDefs.timingMode
|
||||
speedLevel = slsDetectorDefs.speedLevel
|
||||
dacIndex = slsDetectorDefs.dacIndex
|
||||
detectorType = slsDetectorDefs.detectorType
|
||||
ethernetInterface = slsDetectorDefs.ethernetInterface
|
||||
|
||||
from .utils import element_if_equal, all_equal, get_set_bits, list_to_bitmask
|
||||
from .utils import Geometry, to_geo, element, reduce_time, is_iterable
|
||||
@ -2343,6 +2344,25 @@ class Detector(CppDetectorApi):
|
||||
args = (args,)
|
||||
ut.set_using_dict(self.setVetoStream, *args)
|
||||
|
||||
@property
|
||||
def vetoalg(self):
|
||||
"""[Gotthard2] Algorithm used for veto
|
||||
Example
|
||||
----------
|
||||
>>> d.vetoalg = defs.DEFAULT_ALGORITHM, defs.I10GBE
|
||||
"""
|
||||
result = {}
|
||||
interface = [ethernetInterface.I3GBE, ethernetInterface.I10GBE]
|
||||
for eth in interface:
|
||||
result[eth] = element_if_equal(self.getVetoAlgorithm(eth))
|
||||
return result
|
||||
|
||||
|
||||
@vetoalg.setter
|
||||
def vetoalg(self, args):
|
||||
if not isinstance(args, tuple):
|
||||
args = (args,)
|
||||
ut.set_using_dict(self.setVetoAlgorithm, *args)
|
||||
|
||||
"""
|
||||
Mythen3 specific
|
||||
|
@ -1084,6 +1084,17 @@ void init_det(py::module &m) {
|
||||
sls::Positions)) &
|
||||
Detector::setVetoStream,
|
||||
py::arg(), py::arg() = Positions{})
|
||||
.def("getVetoAlgorithm",
|
||||
(Result<defs::vetoAlgorithm>(Detector::*)(
|
||||
const defs::ethernetInterface, sls::Positions) const) &
|
||||
Detector::getVetoAlgorithm,
|
||||
py::arg(), py::arg() = Positions{})
|
||||
.def("setVetoAlgorithm",
|
||||
(void (Detector::*)(const defs::vetoAlgorithm,
|
||||
const defs::ethernetInterface,
|
||||
sls::Positions)) &
|
||||
Detector::setVetoAlgorithm,
|
||||
py::arg(), py::arg(), py::arg() = Positions{})
|
||||
.def("getADCConfiguration",
|
||||
(Result<int>(Detector::*)(const int, const int, sls::Positions)
|
||||
const) &
|
||||
|
@ -293,4 +293,9 @@ void init_enums(py::module &m) {
|
||||
py::overload_cast<const slsDetectorDefs::ethernetInterface &,
|
||||
const slsDetectorDefs::ethernetInterface &>(
|
||||
&operator&));
|
||||
|
||||
py::enum_<slsDetectorDefs::vetoAlgorithm>(Defs, "vetoAlgorithm")
|
||||
.value("DEFAULT_ALGORITHM",
|
||||
slsDetectorDefs::vetoAlgorithm::DEFAULT_ALGORITHM)
|
||||
.export_values();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user