mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-20 16:48:01 +02:00
wip
This commit is contained in:
@ -56,103 +56,92 @@ class MasterAttributes {
|
||||
uint64_t dbitlist{0};
|
||||
slsDetectorDefs::ROI roi{};
|
||||
uint32_t counterMask{0};
|
||||
ns exptime1{0};
|
||||
ns exptime2{0};
|
||||
ns exptime3{0};
|
||||
ns gateDelay1{0};
|
||||
ns gateDelay2{0};
|
||||
ns gateDelay3{0};
|
||||
std::array<ns, 3> exptimeArray{};
|
||||
std::array<ns, 3> gateDelayArray{};
|
||||
uint32_t gates;
|
||||
std::map<std::string, std::string> additionalJsonHeader;
|
||||
|
||||
// Final Attributes (after acquisition)
|
||||
uint64_t framesInFile{0};
|
||||
|
||||
MasterAttributes() = default;
|
||||
virtual ~MasterAttributes() = default;
|
||||
virtual void
|
||||
GetSpecificBinaryAttributes(rapidjson::Writer<rapidjson::StringBuffer> *w);
|
||||
~MasterAttributes() = default;
|
||||
|
||||
void GetBinaryAttributes(rapidjson::Writer<rapidjson::StringBuffer> *w);
|
||||
#ifdef HDF5C
|
||||
void WriteHDF5Attributes(H5File *fd, Group *group);
|
||||
#endif
|
||||
|
||||
void
|
||||
GetCommonBinaryAttributes(rapidjson::Writer<rapidjson::StringBuffer> *w);
|
||||
void
|
||||
GetFinalBinaryAttributes(rapidjson::Writer<rapidjson::StringBuffer> *w);
|
||||
#ifdef HDF5C
|
||||
virtual void WriteMasterHDF5Attributes(H5File *fd, Group *group);
|
||||
void WriteHDF5Attributes(H5File *fd, Group *group);
|
||||
void WriteCommonHDF5Attributes(H5File *fd, Group *group);
|
||||
void WriteFinalHDF5Attributes(H5File *fd, Group *group);
|
||||
void WriteHDF5Exptime(H5File *fd, Group *group);
|
||||
void WriteHDF5Period(H5File *fd, Group *group);
|
||||
void WriteHDF5DynamicRange(H5File *fd, Group *group);
|
||||
void WriteHDF5TenGiga(H5File *fd, Group *group);
|
||||
void WriteHDF5ROI(H5File *fd, Group *group);
|
||||
void WriteHDF5NumUDPInterfaces(H5File *fd, Group *group);
|
||||
void WriteHDF5ReadNRows(H5File *fd, Group *group);
|
||||
void WriteHDF5ThresholdEnergy(H5File *fd, Group *group);
|
||||
void WriteHDF5ThresholdEnergies(H5File *fd, Group *group);
|
||||
void WriteHDF5SubExpTime(H5File *fd, Group *group);
|
||||
void WriteHDF5SubPeriod(H5File *fd, Group *group);
|
||||
void WriteHDF5SubQuad(H5File *fd, Group *group);
|
||||
void WriteHDF5RateCorrections(H5File *fd, Group *group);
|
||||
void WriteHDF5CounterMask(H5File *fd, Group *group);
|
||||
void WriteHDF5ExptimeArray(H5File *fd, Group *group);
|
||||
void WriteHDF5GateDelayArray(H5File *fd, Group *group);
|
||||
void WriteHDF5Gates(H5File *fd, Group *group);
|
||||
void WriteHDF5BurstMode(H5File *fd, Group *group);
|
||||
void WriteHDF5AdcMask(H5File *fd, Group *group);
|
||||
void WriteHDF5AnalogFlag(H5File *fd, Group *group);
|
||||
void WriteHDF5AnalogSamples(H5File *fd, Group *group);
|
||||
void WriteHDF5DigitalFlag(H5File *fd, Group *group);
|
||||
void WriteHDF5DigitalSamples(H5File *fd, Group *group);
|
||||
void WriteHDF5DbitOffset(H5File *fd, Group *group);
|
||||
void WriteHDF5DbitList(H5File *fd, Group *group);
|
||||
#endif
|
||||
};
|
||||
|
||||
class GotthardMasterAttributes : public MasterAttributes {
|
||||
public:
|
||||
GotthardMasterAttributes() = default;
|
||||
void GetSpecificBinaryAttributes(
|
||||
rapidjson::Writer<rapidjson::StringBuffer> *w) override;
|
||||
void
|
||||
GetGotthardBinaryAttributes(rapidjson::Writer<rapidjson::StringBuffer> *w);
|
||||
#ifdef HDF5C
|
||||
void WriteMasterHDF5Attributes(H5File *fd, Group *group) override;
|
||||
void WriteGotthardHDF5Attributes(H5File *fd, Group *group);
|
||||
#endif
|
||||
};
|
||||
|
||||
class JungfrauMasterAttributes : public MasterAttributes {
|
||||
public:
|
||||
JungfrauMasterAttributes() = default;
|
||||
void GetSpecificBinaryAttributes(
|
||||
rapidjson::Writer<rapidjson::StringBuffer> *w) override;
|
||||
void
|
||||
GetJungfrauBinaryAttributes(rapidjson::Writer<rapidjson::StringBuffer> *w);
|
||||
#ifdef HDF5C
|
||||
void WriteMasterHDF5Attributes(H5File *fd, Group *group) override;
|
||||
void WriteJungfrauHDF5Attributes(H5File *fd, Group *group);
|
||||
#endif
|
||||
};
|
||||
|
||||
class EigerMasterAttributes : public MasterAttributes {
|
||||
public:
|
||||
EigerMasterAttributes() = default;
|
||||
void GetSpecificBinaryAttributes(
|
||||
rapidjson::Writer<rapidjson::StringBuffer> *w) override;
|
||||
void
|
||||
GetEigerBinaryAttributes(rapidjson::Writer<rapidjson::StringBuffer> *w);
|
||||
#ifdef HDF5C
|
||||
void WriteMasterHDF5Attributes(H5File *fd, Group *group) override;
|
||||
void WriteEigerHDF5Attributes(H5File *fd, Group *group);
|
||||
#endif
|
||||
};
|
||||
|
||||
class Mythen3MasterAttributes : public MasterAttributes {
|
||||
public:
|
||||
Mythen3MasterAttributes() = default;
|
||||
void GetSpecificBinaryAttributes(
|
||||
rapidjson::Writer<rapidjson::StringBuffer> *w) override;
|
||||
void
|
||||
GetMythen3BinaryAttributes(rapidjson::Writer<rapidjson::StringBuffer> *w);
|
||||
#ifdef HDF5C
|
||||
void WriteMasterHDF5Attributes(H5File *fd, Group *group) override;
|
||||
void WriteMythen3HDF5Attributes(H5File *fd, Group *group);
|
||||
#endif
|
||||
};
|
||||
|
||||
class Gotthard2MasterAttributes : public MasterAttributes {
|
||||
public:
|
||||
Gotthard2MasterAttributes() = default;
|
||||
void GetSpecificBinaryAttributes(
|
||||
rapidjson::Writer<rapidjson::StringBuffer> *w) override;
|
||||
void
|
||||
GetGotthard2BinaryAttributes(rapidjson::Writer<rapidjson::StringBuffer> *w);
|
||||
#ifdef HDF5C
|
||||
void WriteMasterHDF5Attributes(H5File *fd, Group *group) override;
|
||||
void WriteGotthard2HDF5Attributes(H5File *fd, Group *group);
|
||||
#endif
|
||||
};
|
||||
|
||||
class MoenchMasterAttributes : public MasterAttributes {
|
||||
public:
|
||||
MoenchMasterAttributes() = default;
|
||||
void GetSpecificBinaryAttributes(
|
||||
rapidjson::Writer<rapidjson::StringBuffer> *w) override;
|
||||
void
|
||||
GetMoenchBinaryAttributes(rapidjson::Writer<rapidjson::StringBuffer> *w);
|
||||
#ifdef HDF5C
|
||||
void WriteMasterHDF5Attributes(H5File *fd, Group *group) override;
|
||||
void WriteMoenchHDF5Attributes(H5File *fd, Group *group);
|
||||
#endif
|
||||
};
|
||||
|
||||
class CtbMasterAttributes : public MasterAttributes {
|
||||
public:
|
||||
CtbMasterAttributes() = default;
|
||||
void GetSpecificBinaryAttributes(
|
||||
rapidjson::Writer<rapidjson::StringBuffer> *w) override;
|
||||
void GetCtbBinaryAttributes(rapidjson::Writer<rapidjson::StringBuffer> *w);
|
||||
#ifdef HDF5C
|
||||
void WriteMasterHDF5Attributes(H5File *fd, Group *group) override;
|
||||
void WriteCtbHDF5Attributes(H5File *fd, Group *group);
|
||||
#endif
|
||||
};
|
||||
|
Reference in New Issue
Block a user