conflict merge fix

This commit is contained in:
2021-07-22 11:53:00 +02:00
23 changed files with 371 additions and 78 deletions

View File

@@ -12,7 +12,7 @@ import subprocess
from parse import remove_comments
allow_bitwise_op = ["M3_GainCaps"]
allow_bitwise_op = ["EthernetInterface"]
allow_bitwise_op = ["ethernetInterface"]
op_key = {"operator|": "__or__",
"operator&" : "__and__"}
@@ -23,7 +23,7 @@ def single_line_enum(line):
def extract_enums(lines):
# deal with enum class EthernetInterface : int32_t
# deal with enum class ethernetInterface : int32_t
# and normal enum burstMode {
line_iter = iter(lines)
@@ -90,7 +90,7 @@ def generate_enum_string(enums):
#Here add the operators
for op in operators:
data.append(f"\n\t.def(\"{op_key[op]}\", py::overload_cast< const slsDetectorDefs::EthernetInterface&, const slsDetectorDefs::EthernetInterface&>(&{op}))")
data.append(f"\n\t.def(\"{op_key[op]}\", py::overload_cast< const slsDetectorDefs::ethernetInterface&, const slsDetectorDefs::ethernetInterface&>(&{op}))")
data.append(';\n\n')

View File

@@ -7,6 +7,7 @@ timingMode = slsDetectorDefs.timingMode
speedLevel = slsDetectorDefs.speedLevel
dacIndex = slsDetectorDefs.dacIndex
detectorType = slsDetectorDefs.detectorType
ethernetInterface = slsDetectorDefs.ethernetInterface
defs = slsDetectorDefs
@@ -2352,6 +2353,13 @@ class Detector(CppDetectorApi):
@property
@element
def vetostream(self):
"""[Gotthard2] Enabling/ disabling veto interface
Note
----
Default: both off
Options: NONE, I3GBE, 10GBE (debugging)
Debugging interface also enables second interface in receiver (separate file), which also restarts zmq streaming if enabled.
"""
return self.getVetoStream()
@vetostream.setter
@@ -2360,6 +2368,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

View File

@@ -1087,15 +1087,26 @@ void init_det(py::module &m) {
Detector::setVeto,
py::arg(), py::arg() = Positions{})
.def("getVetoStream",
(Result<defs::EthernetInterface>(Detector::*)(sls::Positions)
(Result<defs::ethernetInterface>(Detector::*)(sls::Positions)
const) &
Detector::getVetoStream,
py::arg() = Positions{})
.def("setVetoStream",
(void (Detector::*)(const defs::EthernetInterface,
(void (Detector::*)(const defs::ethernetInterface,
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) &

View File

@@ -289,19 +289,24 @@ void init_enums(py::module &m) {
.value("BOTTOM", slsDetectorDefs::portPosition::BOTTOM)
.export_values();
py::enum_<slsDetectorDefs::EthernetInterface>(Defs, "EthernetInterface",
py::enum_<slsDetectorDefs::ethernetInterface>(Defs, "ethernetInterface",
py::arithmetic())
.value("NONE", slsDetectorDefs::EthernetInterface::NONE)
.value("I3GBE", slsDetectorDefs::EthernetInterface::I3GBE)
.value("I10GBE", slsDetectorDefs::EthernetInterface::I10GBE)
.value("ALL", slsDetectorDefs::EthernetInterface::ALL)
.value("NONE", slsDetectorDefs::ethernetInterface::NONE)
.value("I3GBE", slsDetectorDefs::ethernetInterface::I3GBE)
.value("I10GBE", slsDetectorDefs::ethernetInterface::I10GBE)
.value("ALL", slsDetectorDefs::ethernetInterface::ALL)
.export_values()
.def("__or__",
py::overload_cast<const slsDetectorDefs::EthernetInterface &,
const slsDetectorDefs::EthernetInterface &>(
py::overload_cast<const slsDetectorDefs::ethernetInterface &,
const slsDetectorDefs::ethernetInterface &>(
&operator|))
.def("__and__",
py::overload_cast<const slsDetectorDefs::EthernetInterface &,
const slsDetectorDefs::EthernetInterface &>(
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();
}