mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-05-05 20:30:03 +02:00
fixes
This commit is contained in:
parent
f9feabaacf
commit
abb26adc76
@ -86,11 +86,8 @@ void HDF5VirtualFile::CreateVirtualFile(
|
||||
DSetCreatPropList plist;
|
||||
plist.setFillValue(dataType, &fill_value);
|
||||
|
||||
// property list for parameters (fill value and datatype)
|
||||
// property list for parameters (datatype)
|
||||
std::vector<DSetCreatPropList> plistPara(paraSize);
|
||||
for (unsigned int p = 0; p < paraSize; ++p) {
|
||||
plistPara[p].setFillValue(parameterDataTypes[p], &fill_value);
|
||||
}
|
||||
|
||||
// hyperslab
|
||||
int numMajorHyperslab = numImagesCaught / maxFramesPerFile;
|
||||
|
@ -127,6 +127,8 @@ struct MasterAttributes {
|
||||
};
|
||||
|
||||
void WriteHDF5Attributes(H5File *fd, Group *group) {
|
||||
char c[1024];
|
||||
memset(c, 0, sizeof(c));
|
||||
// clang-format off
|
||||
// version
|
||||
{
|
||||
@ -142,24 +144,27 @@ struct MasterAttributes {
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSpace dataspace = DataSpace(H5S_SCALAR);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Timestamp", strdatatype, dataspace);
|
||||
dataset.write(std::string(ctime(&t)), strdatatype);
|
||||
group->createDataSet("Timestamp", strdatatype, dataspace);
|
||||
sls::strcpy_safe(c, std::string(ctime(&t)));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
// detector type
|
||||
{
|
||||
DataSpace dataspace = DataSpace(H5S_SCALAR);
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Detector Type", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(detType), strdatatype);
|
||||
group->createDataSet("Detector Type", strdatatype, dataspace);
|
||||
sls::strcpy_safe(c, sls::ToString(detType));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
// timing mode
|
||||
{
|
||||
DataSpace dataspace = DataSpace(H5S_SCALAR);
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Timing Mode", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(timingMode), strdatatype);
|
||||
group->createDataSet("Timing Mode", strdatatype, dataspace);
|
||||
sls::strcpy_safe(c, sls::ToString(timingMode));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
// Image Size
|
||||
{
|
||||
@ -170,8 +175,9 @@ struct MasterAttributes {
|
||||
DataSpace dataspaceAttr = DataSpace(H5S_SCALAR);
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
Attribute attribute =
|
||||
dataset.createAttribute("Unit", strdatatype, dataspaceAttr);
|
||||
attribute.write(strdatatype, std::string("bytes"));
|
||||
dataset.createAttribute("Unit", strdatatype, dataspaceAttr);
|
||||
sls::strcpy_safe(c, "bytes");
|
||||
attribute.write(strdatatype, c);
|
||||
}
|
||||
//TODO: make this into an array?
|
||||
// x
|
||||
@ -200,8 +206,9 @@ struct MasterAttributes {
|
||||
DataSpace dataspace = DataSpace(H5S_SCALAR);
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Frame Discard Policy", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(frameDiscardMode), strdatatype);
|
||||
group->createDataSet("Frame Discard Policy", strdatatype, dataspace);
|
||||
sls::strcpy_safe(c, sls::ToString(frameDiscardMode));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
// Frame Padding
|
||||
{
|
||||
@ -215,8 +222,9 @@ struct MasterAttributes {
|
||||
DataSpace dataspace = DataSpace(H5S_SCALAR);
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Scan Parameters", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(scanParams), strdatatype);
|
||||
group->createDataSet("Scan Parameters", strdatatype, dataspace);
|
||||
sls::strcpy_safe(c, sls::ToString(scanParams));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
// Total Frames
|
||||
{
|
||||
@ -231,8 +239,9 @@ struct MasterAttributes {
|
||||
StrType strdatatype(PredType::C_S1, json.length());
|
||||
DataSpace dataspace = DataSpace(H5S_SCALAR);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Additional JSON Header", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(additionalJsonHeader), strdatatype);
|
||||
group->createDataSet("Additional JSON Header", strdatatype, dataspace);
|
||||
sls::strcpy_safe(c, sls::ToString(additionalJsonHeader));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
};
|
||||
|
||||
@ -240,16 +249,22 @@ struct MasterAttributes {
|
||||
DataSpace dataspace = DataSpace(H5S_SCALAR);
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Exposure Time", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(exptime), strdatatype);
|
||||
group->createDataSet("Exposure Time", strdatatype, dataspace);
|
||||
char c[1024];
|
||||
memset(c, 0, sizeof(c));
|
||||
sls::strcpy_safe(c, sls::ToString(exptime));
|
||||
dataset.write(c, strdatatype);
|
||||
};
|
||||
|
||||
void WriteHDF5Period(H5File *fd, Group *group) {
|
||||
DataSpace dataspace = DataSpace(H5S_SCALAR);
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Acquisition Period", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(period), strdatatype);
|
||||
group->createDataSet("Acquisition Period", strdatatype, dataspace);
|
||||
char c[1024];
|
||||
memset(c, 0, sizeof(c));
|
||||
sls::strcpy_safe(c, sls::ToString(period));
|
||||
dataset.write(c, strdatatype);
|
||||
};
|
||||
|
||||
void WriteHDF5DynamicRange(H5File *fd, Group *group) {
|
||||
@ -260,8 +275,9 @@ struct MasterAttributes {
|
||||
DataSpace dataspaceAttr = DataSpace(H5S_SCALAR);
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
Attribute attribute =
|
||||
dataset.createAttribute("Unit", strdatatype, dataspaceAttr);
|
||||
attribute.write(strdatatype, std::string("bits"));
|
||||
dataset.createAttribute("Unit", strdatatype, dataspaceAttr);
|
||||
char c[1024] = "bits";
|
||||
attribute.write( strdatatype, c);
|
||||
};
|
||||
|
||||
void WriteHDF5TenGiga(H5File *fd, Group *group) {
|
||||
@ -371,6 +387,8 @@ class EigerMasterAttributes : public MasterAttributes {
|
||||
MasterAttributes::WriteHDF5TenGiga(fd, group);
|
||||
MasterAttributes::WriteHDF5Exptime(fd, group);
|
||||
MasterAttributes::WriteHDF5Period(fd, group);
|
||||
char c[1024];
|
||||
memset(c, 0, sizeof(c));
|
||||
// threshold
|
||||
{
|
||||
DataSpace dataspace = DataSpace(H5S_SCALAR);
|
||||
@ -380,8 +398,9 @@ class EigerMasterAttributes : public MasterAttributes {
|
||||
DataSpace dataspaceAttr = DataSpace(H5S_SCALAR);
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
Attribute attribute =
|
||||
dataset.createAttribute("Unit", strdatatype, dataspaceAttr);
|
||||
attribute.write(strdatatype, std::string("eV"));
|
||||
dataset.createAttribute("Unit", strdatatype, dataspaceAttr);
|
||||
sls::strcpy_safe(c, "eV");
|
||||
attribute.write(strdatatype, c);
|
||||
}
|
||||
// SubExptime
|
||||
{
|
||||
@ -389,21 +408,23 @@ class EigerMasterAttributes : public MasterAttributes {
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset = group->createDataSet("Sub Exposure Time",
|
||||
strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(subExptime), strdatatype);
|
||||
sls::strcpy_safe(c, sls::ToString(subExptime));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
// SubPeriod
|
||||
{
|
||||
DataSpace dataspace = DataSpace(H5S_SCALAR);
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Sub Period", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(subPeriod), strdatatype);
|
||||
group->createDataSet("Sub Period", strdatatype, dataspace);
|
||||
sls::strcpy_safe(c, sls::ToString(subPeriod));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
// Quad
|
||||
{
|
||||
DataSpace dataspace = DataSpace(H5S_SCALAR);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Quad", PredType::NATIVE_INT, dataspace);
|
||||
group->createDataSet("Quad", PredType::NATIVE_INT, dataspace);
|
||||
dataset.write(&quad, PredType::NATIVE_INT);
|
||||
}
|
||||
// numLinesReadout
|
||||
@ -419,7 +440,8 @@ class EigerMasterAttributes : public MasterAttributes {
|
||||
StrType strdatatype(PredType::C_S1, 1024);
|
||||
DataSet dataset = group->createDataSet("Rate Corrections",
|
||||
strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(ratecorr), strdatatype);
|
||||
sls::strcpy_safe(c, sls::ToString(ratecorr));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
};
|
||||
#endif
|
||||
@ -462,6 +484,8 @@ class Mythen3MasterAttributes : public MasterAttributes {
|
||||
MasterAttributes::WriteHDF5DynamicRange(fd, group);
|
||||
MasterAttributes::WriteHDF5TenGiga(fd, group);
|
||||
MasterAttributes::WriteHDF5Period(fd, group);
|
||||
char c[1024];
|
||||
memset(c, 0, sizeof(c));
|
||||
// Counter Mask
|
||||
{
|
||||
DataSpace dataspace = DataSpace(H5S_SCALAR);
|
||||
@ -475,7 +499,8 @@ class Mythen3MasterAttributes : public MasterAttributes {
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Exposure Time1", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(exptime1), strdatatype);
|
||||
sls::strcpy_safe(c, sls::ToString(exptime1));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
// Exptime2
|
||||
{
|
||||
@ -483,7 +508,8 @@ class Mythen3MasterAttributes : public MasterAttributes {
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Exposure Time2", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(exptime2), strdatatype);
|
||||
sls::strcpy_safe(c, sls::ToString(exptime2));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
// Exptime3
|
||||
{
|
||||
@ -491,7 +517,8 @@ class Mythen3MasterAttributes : public MasterAttributes {
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Exposure Time3", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(exptime3), strdatatype);
|
||||
sls::strcpy_safe(c, sls::ToString(exptime3));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
// GateDelay1
|
||||
{
|
||||
@ -499,7 +526,8 @@ class Mythen3MasterAttributes : public MasterAttributes {
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Gate Delay1", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(gateDelay1), strdatatype);
|
||||
sls::strcpy_safe(c, sls::ToString(gateDelay1));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
// GateDelay2
|
||||
{
|
||||
@ -507,7 +535,8 @@ class Mythen3MasterAttributes : public MasterAttributes {
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Gate Delay2", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(gateDelay2), strdatatype);
|
||||
sls::strcpy_safe(c, sls::ToString(gateDelay2));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
// GateDelay3
|
||||
{
|
||||
@ -515,7 +544,8 @@ class Mythen3MasterAttributes : public MasterAttributes {
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Gate Delay3", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(gateDelay3), strdatatype);
|
||||
sls::strcpy_safe(c, sls::ToString(gateDelay3));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
// Gates
|
||||
{
|
||||
@ -530,7 +560,8 @@ class Mythen3MasterAttributes : public MasterAttributes {
|
||||
StrType strdatatype(PredType::C_S1, 1024);
|
||||
DataSet dataset = group->createDataSet("Threshold Energies",
|
||||
strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(thresholdAllEnergyeV), strdatatype);
|
||||
sls::strcpy_safe(c, sls::ToString(thresholdAllEnergyeV));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
};
|
||||
#endif
|
||||
@ -562,7 +593,10 @@ class Gotthard2MasterAttributes : public MasterAttributes {
|
||||
StrType strdatatype(PredType::C_S1, 256);
|
||||
DataSet dataset =
|
||||
group->createDataSet("Burst Mode", strdatatype, dataspace);
|
||||
dataset.write(sls::ToString(burstMode), strdatatype);
|
||||
char c[1024];
|
||||
memset(c, 0, sizeof(c));
|
||||
sls::strcpy_safe(c, sls::ToString(burstMode));
|
||||
dataset.write(c, strdatatype);
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user