From 76e799c3aecfd9e20d06739b4bf31d0c37c03e52 Mon Sep 17 00:00:00 2001 From: MasterRoby3 Date: Sun, 6 Aug 2023 17:10:18 +0200 Subject: [PATCH] First dev commit --- a.out | Bin 0 -> 62984 bytes core | Bin 0 -> 499712 bytes prova.cpp | 5 ++ provider.cxx | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 140 insertions(+) create mode 100755 a.out create mode 100644 core create mode 100644 prova.cpp create mode 100644 provider.cxx diff --git a/a.out b/a.out new file mode 100755 index 0000000000000000000000000000000000000000..2c9b36b65a82b8e7ff69f0fad7c035f589244b11 GIT binary patch literal 62984 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 EU(#lCR{#J2 literal 0 HcmV?d00001 diff --git a/core b/core new file mode 100644 index 0000000000000000000000000000000000000000..c5a5dc19aa318f91693101ecbbd9e3b7d74f8a7f GIT binary patch literal 499712 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 + +int main() { + return 0; +} \ No newline at end of file diff --git a/provider.cxx b/provider.cxx new file mode 100644 index 0000000..7eac361 --- /dev/null +++ b/provider.cxx @@ -0,0 +1,135 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define START_OF_HEADER_MARKER 0xee1234ee + +#define MIN_FRAGMENTS 0 +#define MAX_FRAGMENTS 100 + +typedef struct Header { + uint32_t startOfHeaderMarker; + uint32_t headerSize; + uint32_t fragmentSize; + uint32_t runNumber; + uint32_t detectorEventNumber; + uint32_t numberOfStatusElements; + uint32_t *statusElementsArray; + friend std::ostream& operator <<(std::ostream& os, Header const& header) + { + return os << std::setw(8) << std::setfill('0') << header.startOfHeaderMarker << '\n' + << std::setw(8) << std::setfill('0') << header.headerSize << '\n' + << std::setw(8) << std::setfill('0') << header.fragmentSize << '\n' + << std::setw(8) << std::setfill('0') << header.runNumber << '\n' + << std::setw(8) << std::setfill('0') << header.detectorEventNumber << '\n' + << std::setw(8) << std::setfill('0') << header.numberOfStatusElements << '\n'; + } +} Header; + +typedef struct Fragment { + Header header; + uint32_t *payloadElements; +} Fragment; + +enum ERROR_CODES { + INCORRECT_ERROR = (1 << 0), + CORRUPTED_ERROR = (1 << 1), + MISSING_DATA_ERROR = (1 << 2), + TIMEOUT_ERROR = (1 << 3) +}; + +/* +int rndError(float p){ + float rndFloat = static_cast(rand()) / static_cast(RAND_MAX); + return rndFloat < p; +}*/ + + + + +int main(int argc, char* argv[]) { + //will use it later to obtain random number from hardware + std::random_device rd; + std::mt19937 generator(42); + std::discrete_distribution discrete_distr({0.9, 0.1}); + std::normal_distribution normal_distr(25., 10.); + std::uniform_int_distribution unif_int_distib; + std::uniform_real_distribution unif_float_distrib(0.5, 2); + + //commenting all old_style generation + //srand (static_cast (42)); + + bool out_condition = true; + uint32_t event_number = 0; + + uint32_t run_number = 0; + if (argc > 1) { + run_number = atoi(argv[1]); + } + + while (true) { + Header header; + header.startOfHeaderMarker = START_OF_HEADER_MARKER; + header.runNumber = run_number; + header.detectorEventNumber = event_number; + event_number++; + header.numberOfStatusElements = 0; + //if swap to old style just change with function above and prob 0.1 for 1 + uint8_t incorrectError = discrete_distr(generator); + uint8_t corruptedError = discrete_distr(generator); + uint8_t missingDataError = discrete_distr(generator); + uint8_t timeoutError = discrete_distr(generator); + + uint32_t firstStatusElement = 0x0; + + if (incorrectError) firstStatusElement |= INCORRECT_ERROR; + if (corruptedError) firstStatusElement |= CORRUPTED_ERROR; + if (missingDataError) firstStatusElement |= MISSING_DATA_ERROR; + if (timeoutError) firstStatusElement |= TIMEOUT_ERROR; + + if (firstStatusElement != 0x0) { + header.numberOfStatusElements = 1; + header.statusElementsArray = new uint32_t[header.numberOfStatusElements]; + header.statusElementsArray[0] = firstStatusElement; + } + + uint32_t payload_size = std::max(std::min(static_cast(std::round(normal_distr(generator))), MAX_FRAGMENTS), MIN_FRAGMENTS); + header.headerSize = 6 + header.numberOfStatusElements; + header.fragmentSize = header.headerSize + payload_size; + + Fragment fragment; + fragment.header = header; + fragment.payloadElements = new uint32_t[payload_size]; + for (uint32_t i = 0; i < payload_size; i++) { + fragment.payloadElements[i] = unif_int_distib(generator); + } + + std::cout << std::hex << std::setw(8) << std::setfill('0'); + std::cout << fragment.header; + for (uint8_t i = 0; i < fragment.header.numberOfStatusElements; i++) { + std::cout << "status element " << std::setw(8) << std::setfill('0') << fragment.header.statusElementsArray[i] << std::endl; + } + for (uint32_t i = 0; i < payload_size; i++) { + std::cout << "payload element " << std::setw(8) << std::setfill('0') << fragment.payloadElements[i] << std::endl; + } + std::cout << std::endl; + + if (header.numberOfStatusElements > 0){ + delete [] fragment.header.statusElementsArray; + } + delete [] fragment.payloadElements; + + + sleep(unif_float_distrib(generator)); + } + + return 0; +} \ No newline at end of file