udp ports type pass, disabled with api yet
Build on RHEL9 docker image / build (push) Successful in 4m31s
Build on RHEL8 docker image / build (push) Successful in 5m9s
Run Simulator Tests on local RHEL9 / build (push) Successful in 18m15s
Run Simulator Tests on local RHEL8 / build (push) Successful in 21m53s

This commit is contained in:
2026-05-18 10:50:32 +02:00
parent e39dcb13b8
commit 8bcbc3d594
3 changed files with 135 additions and 25 deletions
+38 -16
View File
@@ -53,6 +53,10 @@ void MasterAttributes::GetJungfrauBinaryAttributes(writer *w) {
WriteBinaryExposureTme(w);
WriteBinaryAcquisitionPeriod(w);
WriteBinaryNumberOfUDPInterfaces(w);
if (numUDPInterfaces == 2) {
WriteBinaryUDPPortsType(w);
WriteBinaryUDPPortsDisabled(w);
}
WriteBinaryNumberOfRows(w);
WriteBinaryReadoutSpeed(w);
}
@@ -63,6 +67,10 @@ void MasterAttributes::WriteJungfrauHDF5Attributes(H5::Group *group) {
WriteHDF5ExposureTime(group);
WriteHDF5AcquisitionPeriod(group);
WriteHDF5NumberOfUDPInterfaces(group);
if (numUDPInterfaces == 2) {
WriteHDF5UDPPortsType(group);
WriteHDF5UDPPortsDisabled(group);
}
WriteHDF5NumberOfRows(group);
WriteHDF5ReadoutSpeed(group);
}
@@ -73,6 +81,10 @@ void MasterAttributes::GetMoenchBinaryAttributes(writer *w) {
WriteBinaryExposureTme(w);
WriteBinaryAcquisitionPeriod(w);
WriteBinaryNumberOfUDPInterfaces(w);
if (numUDPInterfaces == 2) {
WriteBinaryUDPPortsType(w);
WriteBinaryUDPPortsDisabled(w);
}
WriteBinaryNumberOfRows(w);
WriteBinaryReadoutSpeed(w);
}
@@ -83,6 +95,10 @@ void MasterAttributes::WriteMoenchHDF5Attributes(H5::Group *group) {
WriteHDF5ExposureTime(group);
WriteHDF5AcquisitionPeriod(group);
WriteHDF5NumberOfUDPInterfaces(group);
if (numUDPInterfaces == 2) {
WriteHDF5UDPPortsType(group);
WriteHDF5UDPPortsDisabled(group);
}
WriteHDF5NumberOfRows(group);
WriteHDF5ReadoutSpeed(group);
}
@@ -98,6 +114,8 @@ void MasterAttributes::GetEigerBinaryAttributes(writer *w) {
WriteBinarySubExposureTime(w);
WriteBinarySubAcquisitionPeriod(w);
WriteBinaryQuad(w);
WriteBinaryUDPPortsType(w);
WriteBinaryUDPPortsDisabled(w);
WriteBinaryNumberOfRows(w);
WriteBinaryRateCorrections(w);
WriteBinaryReadoutSpeed(w);
@@ -114,6 +132,8 @@ void MasterAttributes::WriteEigerHDF5Attributes(H5::Group *group) {
WriteHDF5SubExposureTime(group);
WriteHDF5SubAcquisitionPeriod(group);
WriteHDF5Quad(group);
WriteHDF5UDPPortsType(group);
WriteHDF5UDPPortsDisabled(group);
WriteHDF5NumberOfRows(group);
WriteHDF5RateCorrections(group);
WriteHDF5ReadoutSpeed(group);
@@ -413,19 +433,11 @@ void MasterAttributes::WriteHDF5AcquisitionPeriod(H5::Group *group) {
void MasterAttributes::WriteBinaryNumberOfUDPInterfaces(writer *w) {
WriteBinary(w, N_NUM_UDP_INTERFACES.data(), numUDPInterfaces);
if (numUDPInterfaces == 2 && detType != defs::GOTTHARD2) {
WriteBinaryUDPPortsType(w);
WriteBinaryUDPPortsDisabled(w);
}
}
#ifdef HDF5C
void MasterAttributes::WriteHDF5NumberOfUDPInterfaces(H5::Group *group) {
WriteHDF5Int(group, N_NUM_UDP_INTERFACES.data(), numUDPInterfaces);
if (numUDPInterfaces == 2 && detType != defs::GOTTHARD2) {
WriteHDF5UDPPortsType(group);
WriteHDF5UDPPortsDisabled(group);
}
}
#endif
@@ -732,15 +744,25 @@ void MasterAttributes::WriteHDF5String(H5::Group *group,
void MasterAttributes::WriteHDF5StringArray(
H5::Group *group, const std::string &name,
const std::vector<std::string> &value) {
std::vector<const char *> c;
for (auto &s : value) {
c.push_back(s.c_str());
try {
std::vector<const char *> c;
for (auto &s : value) {
c.push_back(s.c_str());
}
hsize_t dims[1] = {c.size()};
H5::DataSpace dataspace(1, dims);
H5::StrType strdatatype(H5::PredType::C_S1, H5T_VARIABLE);
H5::DataSet dataset =
group->createDataSet(name, strdatatype, dataspace);
dataset.write(c.data(), strdatatype);
} catch (H5::Exception &e) {
e.printErrorStack();
throw RuntimeError("Could not write attribute " + name +
" in HDf5 file");
} catch (std::exception &e) {
throw RuntimeError("Other excetion: Could not write attribute " + name +
" in HDf5 file. " + std::string(e.what()));
}
hsize_t dims[1] = {c.size()};
H5::DataSpace dataspace(1, dims);
H5::StrType strdatatype(H5::PredType::C_S1, H5T_VARIABLE);
H5::DataSet dataset = group->createDataSet(name, strdatatype, dataspace);
dataset.write(c.data(), strdatatype);
}
#endif