added reorder to documentation, added flag to master binary and hdf5 file
Some checks failed
CMake / Configure and build using cmake (push) Failing after 11s

This commit is contained in:
mazzol_a 2025-03-19 11:51:28 +01:00
parent c54b1cb6af
commit b7e17d1320
8 changed files with 25 additions and 4 deletions

View File

@ -359,6 +359,7 @@ Chip Test Board
"Digital Flag": 0, "Digital Flag": 0,
"Digital Samples": 1000, "Digital Samples": 1000,
"Dbit Offset": 0, "Dbit Offset": 0,
"Dbit Reorder": 1,
"Dbit Bitset": 0, "Dbit Bitset": 0,
"Transceiver Mask": "0x3", "Transceiver Mask": "0x3",
"Transceiver Flag": 0, "Transceiver Flag": 0,

View File

@ -345,6 +345,9 @@ Chip Test Board
+-----------------------+-------------------------------------------------+ +-----------------------+-------------------------------------------------+
| Dbit Offset | Digital offset of valid data in bytes | | Dbit Offset | Digital offset of valid data in bytes |
+-----------------------+-------------------------------------------------+ +-----------------------+-------------------------------------------------+
| Dbit Reorder | Group bits of all samples together to have them |
| | contiguous in the file |
+-----------------------+-------------------------------------------------+
| Dbit Bitset | Digital 64 bit mask of bits enabled in receiver | | Dbit Bitset | Digital 64 bit mask of bits enabled in receiver |
+-----------------------+-------------------------------------------------+ +-----------------------+-------------------------------------------------+
| Transceiver Mask | Mask of channels enabled in Transceiver | | Transceiver Mask | Mask of channels enabled in Transceiver |

View File

@ -1807,7 +1807,7 @@ int ClientInterface::set_dbit_reorder(Interface &socket) {
throw RuntimeError("Invalid dbit reorder: " + std::to_string(arg)); throw RuntimeError("Invalid dbit reorder: " + std::to_string(arg));
} }
verifyIdle(socket); verifyIdle(socket);
LOG(logDEBUG1) << "Setting Dbit offset: " << arg; LOG(logDEBUG1) << "Setting Dbit reorder: " << arg;
impl()->setDbitReorder(arg); impl()->setDbitReorder(arg);
return socket.Send(OK); return socket.Send(OK);
} }

View File

@ -177,7 +177,7 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
uint32_t streamingTimerInMs; uint32_t streamingTimerInMs;
uint32_t streamingStartFnum; uint32_t streamingStartFnum;
uint32_t currentFreqCount{0}; uint32_t currentFreqCount{0};
struct timespec timerbegin {}; struct timespec timerbegin{};
bool framePadding; bool framePadding;
std::vector<int> ctbDbitList; std::vector<int> ctbDbitList;
int ctbDbitOffset{0}; int ctbDbitOffset{0};

View File

@ -992,7 +992,9 @@ void Implementation::StartMasterWriter() {
: 0; : 0;
masterAttributes.digitalSamples = generalData->nDigitalSamples; masterAttributes.digitalSamples = generalData->nDigitalSamples;
masterAttributes.dbitoffset = ctbDbitOffset; masterAttributes.dbitoffset = ctbDbitOffset;
masterAttributes.dbitreorder = ctbDbitReorder;
masterAttributes.dbitlist = 0; masterAttributes.dbitlist = 0;
for (auto &i : ctbDbitList) { for (auto &i : ctbDbitList) {
masterAttributes.dbitlist |= (static_cast<uint64_t>(1) << i); masterAttributes.dbitlist |= (static_cast<uint64_t>(1) << i);
} }

View File

@ -551,6 +551,13 @@ void MasterAttributes::WriteHDF5DbitOffset(H5::H5File *fd, H5::Group *group) {
dataset.write(&dbitoffset, H5::PredType::NATIVE_INT); dataset.write(&dbitoffset, H5::PredType::NATIVE_INT);
} }
void MasterAttributes::WriteHDF5DbitReorder(H5::H5File *fd, H5::Group *group) {
H5::DataSpace dataspace = H5::DataSpace(H5S_SCALAR);
H5::DataSet dataset = group->createDataSet(
"Dbit Reorder", H5::PredType::NATIVE_INT, dataspace);
dataset.write(&dbitreorder, H5::PredType::NATIVE_INT);
}
void MasterAttributes::WriteHDF5DbitList(H5::H5File *fd, H5::Group *group) { void MasterAttributes::WriteHDF5DbitList(H5::H5File *fd, H5::Group *group) {
H5::DataSpace dataspace = H5::DataSpace(H5S_SCALAR); H5::DataSpace dataspace = H5::DataSpace(H5S_SCALAR);
H5::DataSet dataset = group->createDataSet( H5::DataSet dataset = group->createDataSet(
@ -744,6 +751,8 @@ void MasterAttributes::GetCtbBinaryAttributes(
w->Uint(digitalSamples); w->Uint(digitalSamples);
w->Key("Dbit Offset"); w->Key("Dbit Offset");
w->Uint(dbitoffset); w->Uint(dbitoffset);
w->Key("Dbit Reorder");
w->Uint(dbitreorder);
w->Key("Dbit Bitset"); w->Key("Dbit Bitset");
w->Uint64(dbitlist); w->Uint64(dbitlist);
w->Key("Transceiver Mask"); w->Key("Transceiver Mask");
@ -766,6 +775,7 @@ void MasterAttributes::WriteCtbHDF5Attributes(H5::H5File *fd,
MasterAttributes::WriteHDF5DigitalFlag(fd, group); MasterAttributes::WriteHDF5DigitalFlag(fd, group);
MasterAttributes::WriteHDF5DigitalSamples(fd, group); MasterAttributes::WriteHDF5DigitalSamples(fd, group);
MasterAttributes::WriteHDF5DbitOffset(fd, group); MasterAttributes::WriteHDF5DbitOffset(fd, group);
MasterAttributes::WriteHDF5DbitReorder(fd, group);
MasterAttributes::WriteHDF5DbitList(fd, group); MasterAttributes::WriteHDF5DbitList(fd, group);
MasterAttributes::WriteHDF5TransceiverMask(fd, group); MasterAttributes::WriteHDF5TransceiverMask(fd, group);
MasterAttributes::WriteHDF5TransceiverFlag(fd, group); MasterAttributes::WriteHDF5TransceiverFlag(fd, group);
@ -791,6 +801,8 @@ void MasterAttributes::GetXilinxCtbBinaryAttributes(
w->Uint(digitalSamples); w->Uint(digitalSamples);
w->Key("Dbit Offset"); w->Key("Dbit Offset");
w->Uint(dbitoffset); w->Uint(dbitoffset);
w->Key("Dbit Reorder");
w->Uint(dbitreorder);
w->Key("Dbit Bitset"); w->Key("Dbit Bitset");
w->Uint64(dbitlist); w->Uint64(dbitlist);
w->Key("Transceiver Mask"); w->Key("Transceiver Mask");
@ -812,6 +824,7 @@ void MasterAttributes::WriteXilinxCtbHDF5Attributes(H5::H5File *fd,
MasterAttributes::WriteHDF5DigitalFlag(fd, group); MasterAttributes::WriteHDF5DigitalFlag(fd, group);
MasterAttributes::WriteHDF5DigitalSamples(fd, group); MasterAttributes::WriteHDF5DigitalSamples(fd, group);
MasterAttributes::WriteHDF5DbitOffset(fd, group); MasterAttributes::WriteHDF5DbitOffset(fd, group);
MasterAttributes::WriteHDF5DbitReorder(fd, group);
MasterAttributes::WriteHDF5DbitList(fd, group); MasterAttributes::WriteHDF5DbitList(fd, group);
MasterAttributes::WriteHDF5TransceiverMask(fd, group); MasterAttributes::WriteHDF5TransceiverMask(fd, group);
MasterAttributes::WriteHDF5TransceiverFlag(fd, group); MasterAttributes::WriteHDF5TransceiverFlag(fd, group);

View File

@ -51,6 +51,7 @@ class MasterAttributes {
uint32_t analogSamples{0}; uint32_t analogSamples{0};
uint32_t digital{0}; uint32_t digital{0};
uint32_t digitalSamples{0}; uint32_t digitalSamples{0};
uint32_t dbitreorder{1};
uint32_t dbitoffset{0}; uint32_t dbitoffset{0};
uint64_t dbitlist{0}; uint64_t dbitlist{0};
uint32_t transceiverMask{0}; uint32_t transceiverMask{0};
@ -104,6 +105,7 @@ class MasterAttributes {
void WriteHDF5DigitalSamples(H5::H5File *fd, H5::Group *group); void WriteHDF5DigitalSamples(H5::H5File *fd, H5::Group *group);
void WriteHDF5DbitOffset(H5::H5File *fd, H5::Group *group); void WriteHDF5DbitOffset(H5::H5File *fd, H5::Group *group);
void WriteHDF5DbitList(H5::H5File *fd, H5::Group *group); void WriteHDF5DbitList(H5::H5File *fd, H5::Group *group);
void WriteHDF5DbitReorder(H5::H5File *fd, H5::Group *group);
void WriteHDF5TransceiverMask(H5::H5File *fd, H5::Group *group); void WriteHDF5TransceiverMask(H5::H5File *fd, H5::Group *group);
void WriteHDF5TransceiverFlag(H5::H5File *fd, H5::Group *group); void WriteHDF5TransceiverFlag(H5::H5File *fd, H5::Group *group);
void WriteHDF5TransceiverSamples(H5::H5File *fd, H5::Group *group); void WriteHDF5TransceiverSamples(H5::H5File *fd, H5::Group *group);

View File

@ -19,8 +19,8 @@ namespace sls {
// files // files
// versions // versions
#define HDF5_WRITER_VERSION (6.6) // 1 decimal places #define HDF5_WRITER_VERSION (6.7) // 1 decimal places
#define BINARY_WRITER_VERSION (7.2) // 1 decimal places #define BINARY_WRITER_VERSION (7.3) // 1 decimal places
#define MAX_FRAMES_PER_FILE 20000 #define MAX_FRAMES_PER_FILE 20000
#define SHORT_MAX_FRAMES_PER_FILE 100000 #define SHORT_MAX_FRAMES_PER_FILE 100000