File indexing completed on 2024-04-06 12:10:56
0001 #include <iostream>
0002 #include <iomanip>
0003
0004 #include <stdio.h>
0005 #include <string.h>
0006 #include <stdint.h>
0007
0008 using namespace std;
0009
0010 #include "EventFilter/L1TXRawToDigi/interface/UCTDAQRawData.h"
0011 #include "EventFilter/L1TXRawToDigi/interface/UCTAMCRawData.h"
0012 #include "EventFilter/L1TXRawToDigi/interface/UCTCTP7RawData.h"
0013
0014 int main(int argc, char** argv) {
0015 uint32_t index = 0;
0016 uint64_t fedRawDataArray[694] = {0};
0017 char line[256] = {0};
0018 while (cin.getline(line, 256)) {
0019 char* saveptr;
0020 char* iToken = strtok_r(line, ":", &saveptr);
0021 if (iToken == 0)
0022 continue;
0023 if (sscanf(iToken, "%d", &index) == 1) {
0024 if (index < 694) {
0025 char* fToken = strtok_r(nullptr, "\n", &saveptr);
0026 if (fToken == 0)
0027 continue;
0028 if (sscanf(fToken, "%lX", &fedRawDataArray[index]) != 1) {
0029 cerr << "oops! format error :(" << endl;
0030 continue;
0031 }
0032 } else {
0033 cerr << "oops! index is too high :(" << endl;
0034 }
0035 } else {
0036 cout << line << endl;
0037 }
0038 }
0039 if (index == 0) {
0040 cout << "error: failed to read input" << std::endl;
0041 return 1;
0042 }
0043
0044 UCTDAQRawData daqData(fedRawDataArray);
0045 daqData.print();
0046 for (uint32_t i = 0; i < daqData.nAMCs(); i++) {
0047 UCTAMCRawData amcData(daqData.amcPayload(i));
0048 cout << endl;
0049 amcData.print();
0050 cout << endl;
0051 UCTCTP7RawData ctp7Data(amcData.payload());
0052 ctp7Data.print();
0053 cout << endl;
0054 }
0055 cout << "Goodbye!" << endl;
0056 }