From 1fbc1d09c96bcc0b394fa98ed02b770ceff18a1a Mon Sep 17 00:00:00 2001 From: Valerio Pastore Date: Fri, 12 Jan 2024 18:22:52 +0100 Subject: [PATCH 1/3] adding doxygen --- include/KafkaAvro_Provider.h | 110 ++++++++++++++++++++++++++--------- src/KafkaAvro_Provider.cpp | 6 +- 2 files changed, 87 insertions(+), 29 deletions(-) diff --git a/include/KafkaAvro_Provider.h b/include/KafkaAvro_Provider.h index 49bfcaf..c0dd5ab 100755 --- a/include/KafkaAvro_Provider.h +++ b/include/KafkaAvro_Provider.h @@ -1,7 +1,8 @@ -/* - * - * Created on: Mar 1, 2021 - * Author: astrisw + +/** + * @file KafkaAvro_Provider.h + * @brief This file contains the declaration of the KafkaAvroProvider class, which is a derived class of BaseProvider. + * It provides functionality for interacting with Kafka and encoding data to Avro format. */ #pragma once @@ -16,53 +17,82 @@ #include namespace inaf::oasbo::Providers { + +/** + * @class KafkaAvroProvider + * @brief The KafkaAvroProvider class is a derived class of BaseProvider and provides functionality for sending + * BasePackets to a Kafka topic in Avro format. + */ +/** + * @file KafkaAvro_Provider.h + * @brief This file contains the declaration of the KafkaAvroProvider class. + */ + +/** + * @class KafkaAvroProvider + * @brief The KafkaAvroProvider class is a derived class of BaseProvider and provides functionality for writing BasePacket objects to a Kafka topic. + */ class KafkaAvroProvider: public BaseProvider { protected: //Kafka - RdKafka::Producer *producer = nullptr; - std::atomic stopFlag = false; - std::thread pollThread; - bool pollThreadFlag = false; - std::mutex closeMutex; + RdKafka::Producer *producer = nullptr; /**< Pointer to the Kafka producer object. */ + std::atomic stopFlag = false; /**< Atomic flag to indicate if the provider should stop. */ + std::thread pollThread; /**< Thread for polling Kafka events. */ + bool pollThreadFlag = false; /**< Flag to indicate if the poll thread is running. */ + std::mutex closeMutex; /**< Mutex for thread-safe closing of the provider. */ - class KafkaDeliveryReportCb; - KafkaDeliveryReportCb *dr_cb = nullptr; - class KafkaConnectionCallback; - KafkaConnectionCallback *connection_cb = nullptr; + class KafkaDeliveryReportCb; /**< Forward declaration of the KafkaDeliveryReportCb class. */ + KafkaDeliveryReportCb *dr_cb = nullptr; /**< Pointer to the Kafka delivery report callback object. */ + class KafkaConnectionCallback; /**< Forward declaration of the KafkaConnectionCallback class. */ + KafkaConnectionCallback *connection_cb = nullptr; /**< Pointer to the Kafka connection callback object. */ // AVRO - avro::EncoderPtr avroencoder; + avro::EncoderPtr avroencoder; /**< Pointer to the AVRO encoder object. */ - KafkaAvroProvider(); - KafkaAvroProvider(std::string ip, int port, std::string topic); + KafkaAvroProvider(); /**< Default constructor. */ + KafkaAvroProvider(std::string ip, int port, std::string topic); /**< Constructor with parameters. */ + /** + * @brief Function for the polling thread. + */ void pollingThreadFunction(); + + /** + * @brief Function for encoding a BasePacket to AVRO format. + * @param packet The BasePacket to encode. + */ void encodeToAvro(PacketLib::BasePacket&); public: - std::string brokerIp; - int brokerPort; + std::string brokerIp; /**< The IP address of the Kafka broker. */ + int brokerPort; /**< The port number of the Kafka broker. */ + - void setDest(std::string dest) override { - this->dest = dest; - } - std::string getDest() override { - return dest; - } + void setDest(std::string dest) override; + + std::string getDest() override; int write(PacketLib::BasePacket&) override; + int write(PacketLib::BasePacket&, std::string dest) override; int close() override; + int open() override; + bool isOpen() override; - ~KafkaAvroProvider(); + + ~KafkaAvroProvider(); /**< Destructor. */ friend class KafkaAvroProviderBuilder; }; +/** + * @class KafkaAvroProviderBuilder + * @brief The KafkaAvroProviderBuilder class is used to build KafkaAvroProvider objects with configurable parameters. + */ class KafkaAvroProviderBuilder { protected: KafkaAvroProvider *provider; @@ -77,16 +107,44 @@ public: KafkaAvroProviderBuilder(std::string ip, int port, std::string topic); ~KafkaAvroProviderBuilder(); + /** + * @brief Resets the builder to its initial state. + */ void reset(); + /** + * @brief Configures the builder using a BaseConfigurator object. + * @param conf The BaseConfigurator object to configure from. + * @return A pointer to the KafkaAvroProviderBuilder. + */ KafkaAvroProviderBuilder* configFrom(Configurators::BaseConfigurator &conf); + /** + * @brief Sets the IP address for the KafkaAvroProvider. + * @param ip The IP address to set. + * @return A pointer to the KafkaAvroProviderBuilder. + */ KafkaAvroProviderBuilder* setIp(std::string ip); + /** + * @brief Sets the port number for the KafkaAvroProvider. + * @param port The port number to set. + * @return A pointer to the KafkaAvroProviderBuilder. + */ KafkaAvroProviderBuilder* setPort(int port); + /** + * @brief Sets the topic for the KafkaAvroProvider. + * @param topic The topic to set. + * @return A pointer to the KafkaAvroProviderBuilder. + */ KafkaAvroProviderBuilder* setTopic(std::string topic); + /** + * @brief Gets the built KafkaAvroProvider object. + * @return A pointer to the built KafkaAvroProvider. + */ KafkaAvroProvider* getProvider(); }; -} + +} // namespace inaf::oasbo::Providers diff --git a/src/KafkaAvro_Provider.cpp b/src/KafkaAvro_Provider.cpp index 1a847f9..59bdc80 100755 --- a/src/KafkaAvro_Provider.cpp +++ b/src/KafkaAvro_Provider.cpp @@ -187,15 +187,15 @@ void KafkaAvroProvider::pollingThreadFunction() { } now = time(nullptr); std::cout << "[" << std::put_time(localtime(&now), "%Y-%m-%d %H:%M:%S") - << "]\t[KafkaAvro Provider]\t" << "polling thread exit..." + << "]\t[KafkaAvro Provider]\t" << "polling thread stop..." << std::endl; } -int KafkaAvroProvider::write(PacketLib::BasePacket &packet) { +int KafkaAvroProvider::write(Packets::BasePacket &packet) { return KafkaAvroProvider::write(packet, this->dest); } -int KafkaAvroProvider::write(PacketLib::BasePacket &packet, std::string dest) { +int KafkaAvroProvider::write(PackePacketstLib::BasePacket &packet, std::string dest) { if (!isOpen()) { time_t now = time(nullptr); std::cerr << "[" << std::put_time(localtime(&now), "%Y-%m-%d %H:%M:%S") -- GitLab From e8d6f5babd08c6166ae748cf741bcb3fd40262cd Mon Sep 17 00:00:00 2001 From: valerio pastore Date: Fri, 12 Jan 2024 18:44:10 +0100 Subject: [PATCH 2/3] . --- deps/Base-DAQ | 2 +- include/KafkaAvro_Provider.h | 23 +- include/avroPackets/c11.h | 562 ++++++++++----------- include/avroPackets/c14.h | 731 ++++++++++++++-------------- include/avroPackets/cmd151.h | 132 +++-- include/avroPackets/hk101.h | 915 +++++++++++++++++------------------ include/avroPackets/s22.h | 16 +- include/avroPackets/var102.h | 426 ++++++++-------- include/avroPackets/var103.h | 426 ++++++++-------- src/KafkaAvro_Provider.cpp | 8 +- 10 files changed, 1550 insertions(+), 1691 deletions(-) diff --git a/deps/Base-DAQ b/deps/Base-DAQ index 8a0ea2d..a00f9a2 160000 --- a/deps/Base-DAQ +++ b/deps/Base-DAQ @@ -1 +1 @@ -Subproject commit 8a0ea2d0e699863df5fe1c91caf2d7b0855957be +Subproject commit a00f9a27afbf5f75dab7db2368b9b9b6fcb395e1 diff --git a/include/KafkaAvro_Provider.h b/include/KafkaAvro_Provider.h index c0dd5ab..c93f61d 100755 --- a/include/KafkaAvro_Provider.h +++ b/include/KafkaAvro_Provider.h @@ -1,10 +1,3 @@ - -/** - * @file KafkaAvro_Provider.h - * @brief This file contains the declaration of the KafkaAvroProvider class, which is a derived class of BaseProvider. - * It provides functionality for interacting with Kafka and encoding data to Avro format. - */ - #pragma once #include @@ -22,16 +15,9 @@ namespace inaf::oasbo::Providers { * @class KafkaAvroProvider * @brief The KafkaAvroProvider class is a derived class of BaseProvider and provides functionality for sending * BasePackets to a Kafka topic in Avro format. - */ -/** - * @file KafkaAvro_Provider.h - * @brief This file contains the declaration of the KafkaAvroProvider class. + * Check Base_Provider for other information. */ -/** - * @class KafkaAvroProvider - * @brief The KafkaAvroProvider class is a derived class of BaseProvider and provides functionality for writing BasePacket objects to a Kafka topic. - */ class KafkaAvroProvider: public BaseProvider { protected: @@ -62,20 +48,19 @@ protected: * @brief Function for encoding a BasePacket to AVRO format. * @param packet The BasePacket to encode. */ - void encodeToAvro(PacketLib::BasePacket&); + void encodeToAvro(Packets::BasePacket&); public: std::string brokerIp; /**< The IP address of the Kafka broker. */ int brokerPort; /**< The port number of the Kafka broker. */ - void setDest(std::string dest) override; std::string getDest() override; - int write(PacketLib::BasePacket&) override; + int write(Packets::BasePacket&) override; - int write(PacketLib::BasePacket&, std::string dest) override; + int write(Packets::BasePacket&, std::string dest) override; int close() override; diff --git a/include/avroPackets/c11.h b/include/avroPackets/c11.h index 7895cd9..072b639 100644 --- a/include/avroPackets/c11.h +++ b/include/avroPackets/c11.h @@ -16,7 +16,6 @@ * limitations under the License. */ - #pragma once #include @@ -33,309 +32,286 @@ static const int TRIGGER_COUNT_SIZE = 64; static const int NUM_PDM = 37; struct PDMBlock { - bool pdmVal; - int32_t spare_1; - int32_t pdmID; - std::vector triggerCounts; - int32_t sipmTemp1; - int32_t sipmTemp2; - int32_t sipmTemp3; - int32_t sipmHighVoltage; - int32_t sipmCurrent; - PDMBlock() : - pdmVal(bool()), - spare_1(int32_t()), - pdmID(int32_t()), - triggerCounts(std::vector()), - sipmTemp1(int32_t()), - sipmTemp2(int32_t()), - sipmTemp3(int32_t()), - sipmHighVoltage(int32_t()), - sipmCurrent(int32_t()) - { } + bool pdmVal; + int32_t spare_1; + int32_t pdmID; + std::vector triggerCounts; + int32_t sipmTemp1; + int32_t sipmTemp2; + int32_t sipmTemp3; + int32_t sipmHighVoltage; + int32_t sipmCurrent; + PDMBlock() : + pdmVal(bool()), spare_1(int32_t()), pdmID(int32_t()), triggerCounts( + std::vector()), sipmTemp1(int32_t()), sipmTemp2( + int32_t()), sipmTemp3(int32_t()), sipmHighVoltage( + int32_t()), sipmCurrent(int32_t()) { + } }; struct C11 { - int32_t telescopeID; - int32_t type; - int32_t subType; - int32_t ssc; - int32_t packetLength; - int32_t year; - int32_t month; - int32_t day; - int32_t hours; - int32_t minutes; - int32_t seconds; - bool validTime; - int32_t timeTagNanosec; - int32_t eventCounter; - bool lid; - bool fibSt; - bool fibCont; - bool fibPuls; - int32_t rgbCont; - int32_t rgbPuls; - int32_t spare_0; - int32_t pixelTriggerDiscriminatorThreshold; - bool ptm; - int32_t triggeredPixel; - int32_t timeWindow; - int32_t discriminatorChain; - std::vector PDMs; - C11() : - telescopeID(int32_t()), - type(int32_t()), - subType(int32_t()), - ssc(int32_t()), - packetLength(int32_t()), - year(int32_t()), - month(int32_t()), - day(int32_t()), - hours(int32_t()), - minutes(int32_t()), - seconds(int32_t()), - validTime(bool()), - timeTagNanosec(int32_t()), - eventCounter(int32_t()), - lid(bool()), - fibSt(bool()), - fibCont(bool()), - fibPuls(bool()), - rgbCont(int32_t()), - rgbPuls(int32_t()), - spare_0(int32_t()), - pixelTriggerDiscriminatorThreshold(int32_t()), - ptm(bool()), - triggeredPixel(int32_t()), - timeWindow(int32_t()), - discriminatorChain(int32_t()), - PDMs(std::vector()) - { } + int32_t telescopeID; + int32_t type; + int32_t subType; + int32_t ssc; + int32_t packetLength; + int32_t year; + int32_t month; + int32_t day; + int32_t hours; + int32_t minutes; + int32_t seconds; + bool validTime; + int32_t timeTagNanosec; + int32_t eventCounter; + bool lid; + bool fibSt; + bool fibCont; + bool fibPuls; + int32_t rgbCont; + int32_t rgbPuls; + int32_t spare_0; + int32_t pixelTriggerDiscriminatorThreshold; + bool ptm; + int32_t triggeredPixel; + int32_t timeWindow; + int32_t discriminatorChain; + std::vector PDMs; + C11() : + telescopeID(int32_t()), type(int32_t()), subType(int32_t()), ssc( + int32_t()), packetLength(int32_t()), year(int32_t()), month( + int32_t()), day(int32_t()), hours(int32_t()), minutes( + int32_t()), seconds(int32_t()), validTime(bool()), timeTagNanosec( + int32_t()), eventCounter(int32_t()), lid(bool()), fibSt( + bool()), fibCont(bool()), fibPuls(bool()), rgbCont( + int32_t()), rgbPuls(int32_t()), spare_0(int32_t()), pixelTriggerDiscriminatorThreshold( + int32_t()), ptm(bool()), triggeredPixel(int32_t()), timeWindow( + int32_t()), discriminatorChain(int32_t()), PDMs( + std::vector()) { + } }; } namespace avro { template<> struct codec_traits { - static void encode(Encoder& e, const C11::PDMBlock& v) { - avro::encode(e, v.pdmVal); - avro::encode(e, v.spare_1); - avro::encode(e, v.pdmID); - avro::encode(e, v.triggerCounts); - avro::encode(e, v.sipmTemp1); - avro::encode(e, v.sipmTemp2); - avro::encode(e, v.sipmTemp3); - avro::encode(e, v.sipmHighVoltage); - avro::encode(e, v.sipmCurrent); - } - static void decode(Decoder& d, C11::PDMBlock& v) { - if (avro::ResolvingDecoder *rd = - dynamic_cast(&d)) { - const std::vector fo = rd->fieldOrder(); - for (std::vector::const_iterator it = fo.begin(); - it != fo.end(); ++it) { - switch (*it) { - case 0: - avro::decode(d, v.pdmVal); - break; - case 1: - avro::decode(d, v.spare_1); - break; - case 2: - avro::decode(d, v.pdmID); - break; - case 3: - avro::decode(d, v.triggerCounts); - break; - case 4: - avro::decode(d, v.sipmTemp1); - break; - case 5: - avro::decode(d, v.sipmTemp2); - break; - case 6: - avro::decode(d, v.sipmTemp3); - break; - case 7: - avro::decode(d, v.sipmHighVoltage); - break; - case 8: - avro::decode(d, v.sipmCurrent); - break; - default: - break; - } - } - } else { - avro::decode(d, v.pdmVal); - avro::decode(d, v.spare_1); - avro::decode(d, v.pdmID); - avro::decode(d, v.triggerCounts); - avro::decode(d, v.sipmTemp1); - avro::decode(d, v.sipmTemp2); - avro::decode(d, v.sipmTemp3); - avro::decode(d, v.sipmHighVoltage); - avro::decode(d, v.sipmCurrent); - } - } + static void encode(Encoder &e, const C11::PDMBlock &v) { + avro::encode(e, v.pdmVal); + avro::encode(e, v.spare_1); + avro::encode(e, v.pdmID); + avro::encode(e, v.triggerCounts); + avro::encode(e, v.sipmTemp1); + avro::encode(e, v.sipmTemp2); + avro::encode(e, v.sipmTemp3); + avro::encode(e, v.sipmHighVoltage); + avro::encode(e, v.sipmCurrent); + } + static void decode(Decoder &d, C11::PDMBlock &v) { + if (avro::ResolvingDecoder *rd = + dynamic_cast(&d)) { + const std::vector fo = rd->fieldOrder(); + for (std::vector::const_iterator it = fo.begin(); + it != fo.end(); ++it) { + switch (*it) { + case 0: + avro::decode(d, v.pdmVal); + break; + case 1: + avro::decode(d, v.spare_1); + break; + case 2: + avro::decode(d, v.pdmID); + break; + case 3: + avro::decode(d, v.triggerCounts); + break; + case 4: + avro::decode(d, v.sipmTemp1); + break; + case 5: + avro::decode(d, v.sipmTemp2); + break; + case 6: + avro::decode(d, v.sipmTemp3); + break; + case 7: + avro::decode(d, v.sipmHighVoltage); + break; + case 8: + avro::decode(d, v.sipmCurrent); + break; + default: + break; + } + } + } else { + avro::decode(d, v.pdmVal); + avro::decode(d, v.spare_1); + avro::decode(d, v.pdmID); + avro::decode(d, v.triggerCounts); + avro::decode(d, v.sipmTemp1); + avro::decode(d, v.sipmTemp2); + avro::decode(d, v.sipmTemp3); + avro::decode(d, v.sipmHighVoltage); + avro::decode(d, v.sipmCurrent); + } + } }; template<> struct codec_traits { - static void encode(Encoder& e, const C11::C11& v) { - avro::encode(e, v.telescopeID); - avro::encode(e, v.type); - avro::encode(e, v.subType); - avro::encode(e, v.ssc); - avro::encode(e, v.packetLength); - avro::encode(e, v.year); - avro::encode(e, v.month); - avro::encode(e, v.day); - avro::encode(e, v.hours); - avro::encode(e, v.minutes); - avro::encode(e, v.seconds); - avro::encode(e, v.validTime); - avro::encode(e, v.timeTagNanosec); - avro::encode(e, v.eventCounter); - avro::encode(e, v.lid); - avro::encode(e, v.fibSt); - avro::encode(e, v.fibCont); - avro::encode(e, v.fibPuls); - avro::encode(e, v.rgbCont); - avro::encode(e, v.rgbPuls); - avro::encode(e, v.spare_0); - avro::encode(e, v.pixelTriggerDiscriminatorThreshold); - avro::encode(e, v.ptm); - avro::encode(e, v.triggeredPixel); - avro::encode(e, v.timeWindow); - avro::encode(e, v.discriminatorChain); - avro::encode(e, v.PDMs); - } - static void decode(Decoder& d, C11::C11& v) { - if (avro::ResolvingDecoder *rd = - dynamic_cast(&d)) { - const std::vector fo = rd->fieldOrder(); - for (std::vector::const_iterator it = fo.begin(); - it != fo.end(); ++it) { - switch (*it) { - case 0: - avro::decode(d, v.telescopeID); - break; - case 1: - avro::decode(d, v.type); - break; - case 2: - avro::decode(d, v.subType); - break; - case 3: - avro::decode(d, v.ssc); - break; - case 4: - avro::decode(d, v.packetLength); - break; - case 5: - avro::decode(d, v.year); - break; - case 6: - avro::decode(d, v.month); - break; - case 7: - avro::decode(d, v.day); - break; - case 8: - avro::decode(d, v.hours); - break; - case 9: - avro::decode(d, v.minutes); - break; - case 10: - avro::decode(d, v.seconds); - break; - case 11: - avro::decode(d, v.validTime); - break; - case 12: - avro::decode(d, v.timeTagNanosec); - break; - case 13: - avro::decode(d, v.eventCounter); - break; - case 14: - avro::decode(d, v.lid); - break; - case 15: - avro::decode(d, v.fibSt); - break; - case 16: - avro::decode(d, v.fibCont); - break; - case 17: - avro::decode(d, v.fibPuls); - break; - case 18: - avro::decode(d, v.rgbCont); - break; - case 19: - avro::decode(d, v.rgbPuls); - break; - case 20: - avro::decode(d, v.spare_0); - break; - case 21: - avro::decode(d, v.pixelTriggerDiscriminatorThreshold); - break; - case 22: - avro::decode(d, v.ptm); - break; - case 23: - avro::decode(d, v.triggeredPixel); - break; - case 24: - avro::decode(d, v.timeWindow); - break; - case 25: - avro::decode(d, v.discriminatorChain); - break; - case 26: - avro::decode(d, v.PDMs); - break; - default: - break; - } - } - } else { - avro::decode(d, v.telescopeID); - avro::decode(d, v.type); - avro::decode(d, v.subType); - avro::decode(d, v.ssc); - avro::decode(d, v.packetLength); - avro::decode(d, v.year); - avro::decode(d, v.month); - avro::decode(d, v.day); - avro::decode(d, v.hours); - avro::decode(d, v.minutes); - avro::decode(d, v.seconds); - avro::decode(d, v.validTime); - avro::decode(d, v.timeTagNanosec); - avro::decode(d, v.eventCounter); - avro::decode(d, v.lid); - avro::decode(d, v.fibSt); - avro::decode(d, v.fibCont); - avro::decode(d, v.fibPuls); - avro::decode(d, v.rgbCont); - avro::decode(d, v.rgbPuls); - avro::decode(d, v.spare_0); - avro::decode(d, v.pixelTriggerDiscriminatorThreshold); - avro::decode(d, v.ptm); - avro::decode(d, v.triggeredPixel); - avro::decode(d, v.timeWindow); - avro::decode(d, v.discriminatorChain); - avro::decode(d, v.PDMs); - } - } + static void encode(Encoder &e, const C11::C11 &v) { + avro::encode(e, v.telescopeID); + avro::encode(e, v.type); + avro::encode(e, v.subType); + avro::encode(e, v.ssc); + avro::encode(e, v.packetLength); + avro::encode(e, v.year); + avro::encode(e, v.month); + avro::encode(e, v.day); + avro::encode(e, v.hours); + avro::encode(e, v.minutes); + avro::encode(e, v.seconds); + avro::encode(e, v.validTime); + avro::encode(e, v.timeTagNanosec); + avro::encode(e, v.eventCounter); + avro::encode(e, v.lid); + avro::encode(e, v.fibSt); + avro::encode(e, v.fibCont); + avro::encode(e, v.fibPuls); + avro::encode(e, v.rgbCont); + avro::encode(e, v.rgbPuls); + avro::encode(e, v.spare_0); + avro::encode(e, v.pixelTriggerDiscriminatorThreshold); + avro::encode(e, v.ptm); + avro::encode(e, v.triggeredPixel); + avro::encode(e, v.timeWindow); + avro::encode(e, v.discriminatorChain); + avro::encode(e, v.PDMs); + } + static void decode(Decoder &d, C11::C11 &v) { + if (avro::ResolvingDecoder *rd = + dynamic_cast(&d)) { + const std::vector fo = rd->fieldOrder(); + for (std::vector::const_iterator it = fo.begin(); + it != fo.end(); ++it) { + switch (*it) { + case 0: + avro::decode(d, v.telescopeID); + break; + case 1: + avro::decode(d, v.type); + break; + case 2: + avro::decode(d, v.subType); + break; + case 3: + avro::decode(d, v.ssc); + break; + case 4: + avro::decode(d, v.packetLength); + break; + case 5: + avro::decode(d, v.year); + break; + case 6: + avro::decode(d, v.month); + break; + case 7: + avro::decode(d, v.day); + break; + case 8: + avro::decode(d, v.hours); + break; + case 9: + avro::decode(d, v.minutes); + break; + case 10: + avro::decode(d, v.seconds); + break; + case 11: + avro::decode(d, v.validTime); + break; + case 12: + avro::decode(d, v.timeTagNanosec); + break; + case 13: + avro::decode(d, v.eventCounter); + break; + case 14: + avro::decode(d, v.lid); + break; + case 15: + avro::decode(d, v.fibSt); + break; + case 16: + avro::decode(d, v.fibCont); + break; + case 17: + avro::decode(d, v.fibPuls); + break; + case 18: + avro::decode(d, v.rgbCont); + break; + case 19: + avro::decode(d, v.rgbPuls); + break; + case 20: + avro::decode(d, v.spare_0); + break; + case 21: + avro::decode(d, v.pixelTriggerDiscriminatorThreshold); + break; + case 22: + avro::decode(d, v.ptm); + break; + case 23: + avro::decode(d, v.triggeredPixel); + break; + case 24: + avro::decode(d, v.timeWindow); + break; + case 25: + avro::decode(d, v.discriminatorChain); + break; + case 26: + avro::decode(d, v.PDMs); + break; + default: + break; + } + } + } else { + avro::decode(d, v.telescopeID); + avro::decode(d, v.type); + avro::decode(d, v.subType); + avro::decode(d, v.ssc); + avro::decode(d, v.packetLength); + avro::decode(d, v.year); + avro::decode(d, v.month); + avro::decode(d, v.day); + avro::decode(d, v.hours); + avro::decode(d, v.minutes); + avro::decode(d, v.seconds); + avro::decode(d, v.validTime); + avro::decode(d, v.timeTagNanosec); + avro::decode(d, v.eventCounter); + avro::decode(d, v.lid); + avro::decode(d, v.fibSt); + avro::decode(d, v.fibCont); + avro::decode(d, v.fibPuls); + avro::decode(d, v.rgbCont); + avro::decode(d, v.rgbPuls); + avro::decode(d, v.spare_0); + avro::decode(d, v.pixelTriggerDiscriminatorThreshold); + avro::decode(d, v.ptm); + avro::decode(d, v.triggeredPixel); + avro::decode(d, v.timeWindow); + avro::decode(d, v.discriminatorChain); + avro::decode(d, v.PDMs); + } + } }; -void encodeC11(Encoder &avroencoder, - inaf::oasbo::PacketLib::BasePacket &packet) { +void encodeC11(Encoder &avroencoder, inaf::oasbo::Packets::BasePacket &packet) { // PACKET HEADER int offset; for (offset = 0; offset < 11; offset++) @@ -371,9 +347,9 @@ void encodeC11(Encoder &avroencoder, avroencoder.arrayStart(); avroencoder.setItemCount(C11::TRIGGER_COUNT_SIZE); - for(int i = 0; i < C11::TRIGGER_COUNT_SIZE; i++){ + for (int i = 0; i < C11::TRIGGER_COUNT_SIZE; i++) { avroencoder.startItem(); - avro::encode(avroencoder, (int32_t) packet[offset+i].value()); + avro::encode(avroencoder, (int32_t) packet[offset + i].value()); } offset += C11::TRIGGER_COUNT_SIZE; avroencoder.arrayEnd(); diff --git a/include/avroPackets/c14.h b/include/avroPackets/c14.h index 9995b3e..1fdff45 100644 --- a/include/avroPackets/c14.h +++ b/include/avroPackets/c14.h @@ -33,395 +33,364 @@ static const int LOW_GAINS_SIZE = 64; static const int HIGH_GAINS_SIZE = 64; static const int TIME_TRIGGERS_SIZE = 64; - struct PDMBlock { - bool pdmVal; - bool trgEnb; - bool trgPdm; - bool evtVal; - int32_t spare_3; - int32_t pdmID; - std::vector highgains; - std::vector lowgains; - std::vector timeTriggers; - int64_t hitRegister; - int64_t triggerMask; - int32_t sipmTemp1; - int32_t sipmTemp2; - int32_t sipmTemp3; - int32_t sipmHighVoltage; - int32_t sipmCurrent; - PDMBlock() : - pdmVal(bool()), - trgEnb(bool()), - trgPdm(bool()), - evtVal(bool()), - spare_3(int32_t()), - pdmID(int32_t()), - highgains(std::vector()), - lowgains(std::vector()), - timeTriggers(std::vector()), - hitRegister(int64_t()), - triggerMask(int64_t()), - sipmTemp1(int32_t()), - sipmTemp2(int32_t()), - sipmTemp3(int32_t()), - sipmHighVoltage(int32_t()), - sipmCurrent(int32_t()) - { } + bool pdmVal; + bool trgEnb; + bool trgPdm; + bool evtVal; + int32_t spare_3; + int32_t pdmID; + std::vector highgains; + std::vector lowgains; + std::vector timeTriggers; + int64_t hitRegister; + int64_t triggerMask; + int32_t sipmTemp1; + int32_t sipmTemp2; + int32_t sipmTemp3; + int32_t sipmHighVoltage; + int32_t sipmCurrent; + PDMBlock() : + pdmVal(bool()), trgEnb(bool()), trgPdm(bool()), evtVal(bool()), spare_3( + int32_t()), pdmID(int32_t()), highgains( + std::vector()), lowgains(std::vector()), timeTriggers( + std::vector()), hitRegister(int64_t()), triggerMask( + int64_t()), sipmTemp1(int32_t()), sipmTemp2(int32_t()), sipmTemp3( + int32_t()), sipmHighVoltage(int32_t()), sipmCurrent( + int32_t()) { + } }; struct C14 { - int32_t telescopeID; - int32_t type; - int32_t subType; - int32_t ssc; - int32_t packetLength; - int32_t year; - int32_t month; - int32_t day; - int32_t hours; - int32_t minutes; - int32_t seconds; - bool validTime; - int32_t timeTagNanosec; - int32_t eventCounter; - bool lid; - bool fibSt; - bool fibCont; - bool fibPuls; - int32_t rgbCont; - int32_t rgbPuls; - int32_t spare_0; - int32_t pixelTriggerDiscriminatorThreshold; - int32_t pixelTriggerChargeDiscriminatorThreshold; - bool ptm; - int32_t triggerPixelId; - int32_t triggerType; - int32_t triggerConfig; - int32_t spare_1; - int32_t extTriggerType; - int32_t extTriggerFrequency; - int32_t spare_2; - std::vector PDMs; - C14() : - telescopeID(int32_t()), - type(int32_t()), - subType(int32_t()), - ssc(int32_t()), - packetLength(int32_t()), - year(int32_t()), - month(int32_t()), - day(int32_t()), - hours(int32_t()), - minutes(int32_t()), - seconds(int32_t()), - validTime(bool()), - timeTagNanosec(int32_t()), - eventCounter(int32_t()), - lid(bool()), - fibSt(bool()), - fibCont(bool()), - fibPuls(bool()), - rgbCont(int32_t()), - rgbPuls(int32_t()), - spare_0(int32_t()), - pixelTriggerDiscriminatorThreshold(int32_t()), - pixelTriggerChargeDiscriminatorThreshold(int32_t()), - ptm(bool()), - triggerPixelId(int32_t()), - triggerType(int32_t()), - triggerConfig(int32_t()), - spare_1(int32_t()), - extTriggerType(int32_t()), - extTriggerFrequency(int32_t()), - spare_2(int32_t()), - PDMs(std::vector()) - { } + int32_t telescopeID; + int32_t type; + int32_t subType; + int32_t ssc; + int32_t packetLength; + int32_t year; + int32_t month; + int32_t day; + int32_t hours; + int32_t minutes; + int32_t seconds; + bool validTime; + int32_t timeTagNanosec; + int32_t eventCounter; + bool lid; + bool fibSt; + bool fibCont; + bool fibPuls; + int32_t rgbCont; + int32_t rgbPuls; + int32_t spare_0; + int32_t pixelTriggerDiscriminatorThreshold; + int32_t pixelTriggerChargeDiscriminatorThreshold; + bool ptm; + int32_t triggerPixelId; + int32_t triggerType; + int32_t triggerConfig; + int32_t spare_1; + int32_t extTriggerType; + int32_t extTriggerFrequency; + int32_t spare_2; + std::vector PDMs; + C14() : + telescopeID(int32_t()), type(int32_t()), subType(int32_t()), ssc( + int32_t()), packetLength(int32_t()), year(int32_t()), month( + int32_t()), day(int32_t()), hours(int32_t()), minutes( + int32_t()), seconds(int32_t()), validTime(bool()), timeTagNanosec( + int32_t()), eventCounter(int32_t()), lid(bool()), fibSt( + bool()), fibCont(bool()), fibPuls(bool()), rgbCont( + int32_t()), rgbPuls(int32_t()), spare_0(int32_t()), pixelTriggerDiscriminatorThreshold( + int32_t()), pixelTriggerChargeDiscriminatorThreshold( + int32_t()), ptm(bool()), triggerPixelId(int32_t()), triggerType( + int32_t()), triggerConfig(int32_t()), spare_1(int32_t()), extTriggerType( + int32_t()), extTriggerFrequency(int32_t()), spare_2( + int32_t()), PDMs(std::vector()) { + } }; } namespace avro { template<> struct codec_traits { - static void encode(Encoder& e, const C14::PDMBlock& v) { - avro::encode(e, v.pdmVal); - avro::encode(e, v.trgEnb); - avro::encode(e, v.trgPdm); - avro::encode(e, v.evtVal); - avro::encode(e, v.spare_3); - avro::encode(e, v.pdmID); - avro::encode(e, v.highgains); - avro::encode(e, v.lowgains); - avro::encode(e, v.timeTriggers); - avro::encode(e, v.hitRegister); - avro::encode(e, v.triggerMask); - avro::encode(e, v.sipmTemp1); - avro::encode(e, v.sipmTemp2); - avro::encode(e, v.sipmTemp3); - avro::encode(e, v.sipmHighVoltage); - avro::encode(e, v.sipmCurrent); - } - static void decode(Decoder& d, C14::PDMBlock& v) { - if (avro::ResolvingDecoder *rd = - dynamic_cast(&d)) { - const std::vector fo = rd->fieldOrder(); - for (std::vector::const_iterator it = fo.begin(); - it != fo.end(); ++it) { - switch (*it) { - case 0: - avro::decode(d, v.pdmVal); - break; - case 1: - avro::decode(d, v.trgEnb); - break; - case 2: - avro::decode(d, v.trgPdm); - break; - case 3: - avro::decode(d, v.evtVal); - break; - case 4: - avro::decode(d, v.spare_3); - break; - case 5: - avro::decode(d, v.pdmID); - break; - case 6: - avro::decode(d, v.highgains); - break; - case 7: - avro::decode(d, v.lowgains); - break; - case 8: - avro::decode(d, v.timeTriggers); - break; - case 9: - avro::decode(d, v.hitRegister); - break; - case 10: - avro::decode(d, v.triggerMask); - break; - case 11: - avro::decode(d, v.sipmTemp1); - break; - case 12: - avro::decode(d, v.sipmTemp2); - break; - case 13: - avro::decode(d, v.sipmTemp3); - break; - case 14: - avro::decode(d, v.sipmHighVoltage); - break; - case 15: - avro::decode(d, v.sipmCurrent); - break; - default: - break; - } - } - } else { - avro::decode(d, v.pdmVal); - avro::decode(d, v.trgEnb); - avro::decode(d, v.trgPdm); - avro::decode(d, v.evtVal); - avro::decode(d, v.spare_3); - avro::decode(d, v.pdmID); - avro::decode(d, v.highgains); - avro::decode(d, v.lowgains); - avro::decode(d, v.timeTriggers); - avro::decode(d, v.hitRegister); - avro::decode(d, v.triggerMask); - avro::decode(d, v.sipmTemp1); - avro::decode(d, v.sipmTemp2); - avro::decode(d, v.sipmTemp3); - avro::decode(d, v.sipmHighVoltage); - avro::decode(d, v.sipmCurrent); - } - } + static void encode(Encoder &e, const C14::PDMBlock &v) { + avro::encode(e, v.pdmVal); + avro::encode(e, v.trgEnb); + avro::encode(e, v.trgPdm); + avro::encode(e, v.evtVal); + avro::encode(e, v.spare_3); + avro::encode(e, v.pdmID); + avro::encode(e, v.highgains); + avro::encode(e, v.lowgains); + avro::encode(e, v.timeTriggers); + avro::encode(e, v.hitRegister); + avro::encode(e, v.triggerMask); + avro::encode(e, v.sipmTemp1); + avro::encode(e, v.sipmTemp2); + avro::encode(e, v.sipmTemp3); + avro::encode(e, v.sipmHighVoltage); + avro::encode(e, v.sipmCurrent); + } + static void decode(Decoder &d, C14::PDMBlock &v) { + if (avro::ResolvingDecoder *rd = + dynamic_cast(&d)) { + const std::vector fo = rd->fieldOrder(); + for (std::vector::const_iterator it = fo.begin(); + it != fo.end(); ++it) { + switch (*it) { + case 0: + avro::decode(d, v.pdmVal); + break; + case 1: + avro::decode(d, v.trgEnb); + break; + case 2: + avro::decode(d, v.trgPdm); + break; + case 3: + avro::decode(d, v.evtVal); + break; + case 4: + avro::decode(d, v.spare_3); + break; + case 5: + avro::decode(d, v.pdmID); + break; + case 6: + avro::decode(d, v.highgains); + break; + case 7: + avro::decode(d, v.lowgains); + break; + case 8: + avro::decode(d, v.timeTriggers); + break; + case 9: + avro::decode(d, v.hitRegister); + break; + case 10: + avro::decode(d, v.triggerMask); + break; + case 11: + avro::decode(d, v.sipmTemp1); + break; + case 12: + avro::decode(d, v.sipmTemp2); + break; + case 13: + avro::decode(d, v.sipmTemp3); + break; + case 14: + avro::decode(d, v.sipmHighVoltage); + break; + case 15: + avro::decode(d, v.sipmCurrent); + break; + default: + break; + } + } + } else { + avro::decode(d, v.pdmVal); + avro::decode(d, v.trgEnb); + avro::decode(d, v.trgPdm); + avro::decode(d, v.evtVal); + avro::decode(d, v.spare_3); + avro::decode(d, v.pdmID); + avro::decode(d, v.highgains); + avro::decode(d, v.lowgains); + avro::decode(d, v.timeTriggers); + avro::decode(d, v.hitRegister); + avro::decode(d, v.triggerMask); + avro::decode(d, v.sipmTemp1); + avro::decode(d, v.sipmTemp2); + avro::decode(d, v.sipmTemp3); + avro::decode(d, v.sipmHighVoltage); + avro::decode(d, v.sipmCurrent); + } + } }; template<> struct codec_traits { - static void encode(Encoder& e, const C14::C14& v) { - avro::encode(e, v.telescopeID); - avro::encode(e, v.type); - avro::encode(e, v.subType); - avro::encode(e, v.ssc); - avro::encode(e, v.packetLength); - avro::encode(e, v.year); - avro::encode(e, v.month); - avro::encode(e, v.day); - avro::encode(e, v.hours); - avro::encode(e, v.minutes); - avro::encode(e, v.seconds); - avro::encode(e, v.validTime); - avro::encode(e, v.timeTagNanosec); - avro::encode(e, v.eventCounter); - avro::encode(e, v.lid); - avro::encode(e, v.fibSt); - avro::encode(e, v.fibCont); - avro::encode(e, v.fibPuls); - avro::encode(e, v.rgbCont); - avro::encode(e, v.rgbPuls); - avro::encode(e, v.spare_0); - avro::encode(e, v.pixelTriggerDiscriminatorThreshold); - avro::encode(e, v.pixelTriggerChargeDiscriminatorThreshold); - avro::encode(e, v.ptm); - avro::encode(e, v.triggerPixelId); - avro::encode(e, v.triggerType); - avro::encode(e, v.triggerConfig); - avro::encode(e, v.spare_1); - avro::encode(e, v.extTriggerType); - avro::encode(e, v.extTriggerFrequency); - avro::encode(e, v.spare_2); - avro::encode(e, v.PDMs); - } - static void decode(Decoder& d, C14::C14& v) { - if (avro::ResolvingDecoder *rd = - dynamic_cast(&d)) { - const std::vector fo = rd->fieldOrder(); - for (std::vector::const_iterator it = fo.begin(); - it != fo.end(); ++it) { - switch (*it) { - case 0: - avro::decode(d, v.telescopeID); - break; - case 1: - avro::decode(d, v.type); - break; - case 2: - avro::decode(d, v.subType); - break; - case 3: - avro::decode(d, v.ssc); - break; - case 4: - avro::decode(d, v.packetLength); - break; - case 5: - avro::decode(d, v.year); - break; - case 6: - avro::decode(d, v.month); - break; - case 7: - avro::decode(d, v.day); - break; - case 8: - avro::decode(d, v.hours); - break; - case 9: - avro::decode(d, v.minutes); - break; - case 10: - avro::decode(d, v.seconds); - break; - case 11: - avro::decode(d, v.validTime); - break; - case 12: - avro::decode(d, v.timeTagNanosec); - break; - case 13: - avro::decode(d, v.eventCounter); - break; - case 14: - avro::decode(d, v.lid); - break; - case 15: - avro::decode(d, v.fibSt); - break; - case 16: - avro::decode(d, v.fibCont); - break; - case 17: - avro::decode(d, v.fibPuls); - break; - case 18: - avro::decode(d, v.rgbCont); - break; - case 19: - avro::decode(d, v.rgbPuls); - break; - case 20: - avro::decode(d, v.spare_0); - break; - case 21: - avro::decode(d, v.pixelTriggerDiscriminatorThreshold); - break; - case 22: - avro::decode(d, v.pixelTriggerChargeDiscriminatorThreshold); - break; - case 23: - avro::decode(d, v.ptm); - break; - case 24: - avro::decode(d, v.triggerPixelId); - break; - case 25: - avro::decode(d, v.triggerType); - break; - case 26: - avro::decode(d, v.triggerConfig); - break; - case 27: - avro::decode(d, v.spare_1); - break; - case 28: - avro::decode(d, v.extTriggerType); - break; - case 29: - avro::decode(d, v.extTriggerFrequency); - break; - case 30: - avro::decode(d, v.spare_2); - break; - case 31: - avro::decode(d, v.PDMs); - break; - default: - break; - } - } - } else { - avro::decode(d, v.telescopeID); - avro::decode(d, v.type); - avro::decode(d, v.subType); - avro::decode(d, v.ssc); - avro::decode(d, v.packetLength); - avro::decode(d, v.year); - avro::decode(d, v.month); - avro::decode(d, v.day); - avro::decode(d, v.hours); - avro::decode(d, v.minutes); - avro::decode(d, v.seconds); - avro::decode(d, v.validTime); - avro::decode(d, v.timeTagNanosec); - avro::decode(d, v.eventCounter); - avro::decode(d, v.lid); - avro::decode(d, v.fibSt); - avro::decode(d, v.fibCont); - avro::decode(d, v.fibPuls); - avro::decode(d, v.rgbCont); - avro::decode(d, v.rgbPuls); - avro::decode(d, v.spare_0); - avro::decode(d, v.pixelTriggerDiscriminatorThreshold); - avro::decode(d, v.pixelTriggerChargeDiscriminatorThreshold); - avro::decode(d, v.ptm); - avro::decode(d, v.triggerPixelId); - avro::decode(d, v.triggerType); - avro::decode(d, v.triggerConfig); - avro::decode(d, v.spare_1); - avro::decode(d, v.extTriggerType); - avro::decode(d, v.extTriggerFrequency); - avro::decode(d, v.spare_2); - avro::decode(d, v.PDMs); - } - } + static void encode(Encoder &e, const C14::C14 &v) { + avro::encode(e, v.telescopeID); + avro::encode(e, v.type); + avro::encode(e, v.subType); + avro::encode(e, v.ssc); + avro::encode(e, v.packetLength); + avro::encode(e, v.year); + avro::encode(e, v.month); + avro::encode(e, v.day); + avro::encode(e, v.hours); + avro::encode(e, v.minutes); + avro::encode(e, v.seconds); + avro::encode(e, v.validTime); + avro::encode(e, v.timeTagNanosec); + avro::encode(e, v.eventCounter); + avro::encode(e, v.lid); + avro::encode(e, v.fibSt); + avro::encode(e, v.fibCont); + avro::encode(e, v.fibPuls); + avro::encode(e, v.rgbCont); + avro::encode(e, v.rgbPuls); + avro::encode(e, v.spare_0); + avro::encode(e, v.pixelTriggerDiscriminatorThreshold); + avro::encode(e, v.pixelTriggerChargeDiscriminatorThreshold); + avro::encode(e, v.ptm); + avro::encode(e, v.triggerPixelId); + avro::encode(e, v.triggerType); + avro::encode(e, v.triggerConfig); + avro::encode(e, v.spare_1); + avro::encode(e, v.extTriggerType); + avro::encode(e, v.extTriggerFrequency); + avro::encode(e, v.spare_2); + avro::encode(e, v.PDMs); + } + static void decode(Decoder &d, C14::C14 &v) { + if (avro::ResolvingDecoder *rd = + dynamic_cast(&d)) { + const std::vector fo = rd->fieldOrder(); + for (std::vector::const_iterator it = fo.begin(); + it != fo.end(); ++it) { + switch (*it) { + case 0: + avro::decode(d, v.telescopeID); + break; + case 1: + avro::decode(d, v.type); + break; + case 2: + avro::decode(d, v.subType); + break; + case 3: + avro::decode(d, v.ssc); + break; + case 4: + avro::decode(d, v.packetLength); + break; + case 5: + avro::decode(d, v.year); + break; + case 6: + avro::decode(d, v.month); + break; + case 7: + avro::decode(d, v.day); + break; + case 8: + avro::decode(d, v.hours); + break; + case 9: + avro::decode(d, v.minutes); + break; + case 10: + avro::decode(d, v.seconds); + break; + case 11: + avro::decode(d, v.validTime); + break; + case 12: + avro::decode(d, v.timeTagNanosec); + break; + case 13: + avro::decode(d, v.eventCounter); + break; + case 14: + avro::decode(d, v.lid); + break; + case 15: + avro::decode(d, v.fibSt); + break; + case 16: + avro::decode(d, v.fibCont); + break; + case 17: + avro::decode(d, v.fibPuls); + break; + case 18: + avro::decode(d, v.rgbCont); + break; + case 19: + avro::decode(d, v.rgbPuls); + break; + case 20: + avro::decode(d, v.spare_0); + break; + case 21: + avro::decode(d, v.pixelTriggerDiscriminatorThreshold); + break; + case 22: + avro::decode(d, v.pixelTriggerChargeDiscriminatorThreshold); + break; + case 23: + avro::decode(d, v.ptm); + break; + case 24: + avro::decode(d, v.triggerPixelId); + break; + case 25: + avro::decode(d, v.triggerType); + break; + case 26: + avro::decode(d, v.triggerConfig); + break; + case 27: + avro::decode(d, v.spare_1); + break; + case 28: + avro::decode(d, v.extTriggerType); + break; + case 29: + avro::decode(d, v.extTriggerFrequency); + break; + case 30: + avro::decode(d, v.spare_2); + break; + case 31: + avro::decode(d, v.PDMs); + break; + default: + break; + } + } + } else { + avro::decode(d, v.telescopeID); + avro::decode(d, v.type); + avro::decode(d, v.subType); + avro::decode(d, v.ssc); + avro::decode(d, v.packetLength); + avro::decode(d, v.year); + avro::decode(d, v.month); + avro::decode(d, v.day); + avro::decode(d, v.hours); + avro::decode(d, v.minutes); + avro::decode(d, v.seconds); + avro::decode(d, v.validTime); + avro::decode(d, v.timeTagNanosec); + avro::decode(d, v.eventCounter); + avro::decode(d, v.lid); + avro::decode(d, v.fibSt); + avro::decode(d, v.fibCont); + avro::decode(d, v.fibPuls); + avro::decode(d, v.rgbCont); + avro::decode(d, v.rgbPuls); + avro::decode(d, v.spare_0); + avro::decode(d, v.pixelTriggerDiscriminatorThreshold); + avro::decode(d, v.pixelTriggerChargeDiscriminatorThreshold); + avro::decode(d, v.ptm); + avro::decode(d, v.triggerPixelId); + avro::decode(d, v.triggerType); + avro::decode(d, v.triggerConfig); + avro::decode(d, v.spare_1); + avro::decode(d, v.extTriggerType); + avro::decode(d, v.extTriggerFrequency); + avro::decode(d, v.spare_2); + avro::decode(d, v.PDMs); + } + } }; -void encodeC14(Encoder &avroencoder, - inaf::oasbo::PacketLib::BasePacket &packet) { +void encodeC14(Encoder &avroencoder, inaf::oasbo::Packets::BasePacket &packet) { // PACKET HEADER int offset; for (offset = 0; offset < 11; offset++) @@ -459,25 +428,25 @@ void encodeC14(Encoder &avroencoder, avroencoder.arrayStart(); avroencoder.setItemCount(C14::HIGH_GAINS_SIZE); - for(int i = 0; i < C14::HIGH_GAINS_SIZE; i++){ + for (int i = 0; i < C14::HIGH_GAINS_SIZE; i++) { avroencoder.startItem(); - avro::encode(avroencoder, (int32_t) packet[offset+i].value()); + avro::encode(avroencoder, (int32_t) packet[offset + i].value()); } offset += C14::HIGH_GAINS_SIZE; avroencoder.arrayEnd(); avroencoder.arrayStart(); avroencoder.setItemCount(C14::LOW_GAINS_SIZE); - for(int i = 0; i < C14::LOW_GAINS_SIZE; i++){ + for (int i = 0; i < C14::LOW_GAINS_SIZE; i++) { avroencoder.startItem(); - avro::encode(avroencoder, (int32_t) packet[offset+i].value()); + avro::encode(avroencoder, (int32_t) packet[offset + i].value()); } offset += C14::LOW_GAINS_SIZE; avroencoder.arrayEnd(); avroencoder.arrayStart(); avroencoder.setItemCount(C14::TIME_TRIGGERS_SIZE); - for(int i = 0; i < C14::TIME_TRIGGERS_SIZE; i++){ + for (int i = 0; i < C14::TIME_TRIGGERS_SIZE; i++) { avroencoder.startItem(); - avro::encode(avroencoder, (int32_t) packet[offset+i].value()); + avro::encode(avroencoder, (int32_t) packet[offset + i].value()); } offset += C14::TIME_TRIGGERS_SIZE; avroencoder.arrayEnd(); diff --git a/include/avroPackets/cmd151.h b/include/avroPackets/cmd151.h index 45814cd..9e04175 100644 --- a/include/avroPackets/cmd151.h +++ b/include/avroPackets/cmd151.h @@ -27,81 +27,77 @@ #include namespace CMD151 { struct CMD151 { - int32_t telescopeID; - int32_t type; - int32_t subType; - int32_t ssc; - int32_t packetLength; - int32_t spare; - int32_t sync; - CMD151() : - telescopeID(int32_t()), - type(int32_t()), - subType(int32_t()), - ssc(int32_t()), - packetLength(int32_t()), - spare(int32_t()), - sync(int32_t()) - { } + int32_t telescopeID; + int32_t type; + int32_t subType; + int32_t ssc; + int32_t packetLength; + int32_t spare; + int32_t sync; + CMD151() : + telescopeID(int32_t()), type(int32_t()), subType(int32_t()), ssc( + int32_t()), packetLength(int32_t()), spare(int32_t()), sync( + int32_t()) { + } }; } namespace avro { template<> struct codec_traits { - static void encode(Encoder& e, const CMD151::CMD151& v) { - avro::encode(e, v.telescopeID); - avro::encode(e, v.type); - avro::encode(e, v.subType); - avro::encode(e, v.ssc); - avro::encode(e, v.packetLength); - avro::encode(e, v.spare); - avro::encode(e, v.sync); - } - static void decode(Decoder& d, CMD151::CMD151& v) { - if (avro::ResolvingDecoder *rd = - dynamic_cast(&d)) { - const std::vector fo = rd->fieldOrder(); - for (std::vector::const_iterator it = fo.begin(); - it != fo.end(); ++it) { - switch (*it) { - case 0: - avro::decode(d, v.telescopeID); - break; - case 1: - avro::decode(d, v.type); - break; - case 2: - avro::decode(d, v.subType); - break; - case 3: - avro::decode(d, v.ssc); - break; - case 4: - avro::decode(d, v.packetLength); - break; - case 5: - avro::decode(d, v.spare); - break; - case 6: - avro::decode(d, v.sync); - break; - default: - break; - } - } - } else { - avro::decode(d, v.telescopeID); - avro::decode(d, v.type); - avro::decode(d, v.subType); - avro::decode(d, v.ssc); - avro::decode(d, v.packetLength); - avro::decode(d, v.spare); - avro::decode(d, v.sync); - } - } + static void encode(Encoder &e, const CMD151::CMD151 &v) { + avro::encode(e, v.telescopeID); + avro::encode(e, v.type); + avro::encode(e, v.subType); + avro::encode(e, v.ssc); + avro::encode(e, v.packetLength); + avro::encode(e, v.spare); + avro::encode(e, v.sync); + } + static void decode(Decoder &d, CMD151::CMD151 &v) { + if (avro::ResolvingDecoder *rd = + dynamic_cast(&d)) { + const std::vector fo = rd->fieldOrder(); + for (std::vector::const_iterator it = fo.begin(); + it != fo.end(); ++it) { + switch (*it) { + case 0: + avro::decode(d, v.telescopeID); + break; + case 1: + avro::decode(d, v.type); + break; + case 2: + avro::decode(d, v.subType); + break; + case 3: + avro::decode(d, v.ssc); + break; + case 4: + avro::decode(d, v.packetLength); + break; + case 5: + avro::decode(d, v.spare); + break; + case 6: + avro::decode(d, v.sync); + break; + default: + break; + } + } + } else { + avro::decode(d, v.telescopeID); + avro::decode(d, v.type); + avro::decode(d, v.subType); + avro::decode(d, v.ssc); + avro::decode(d, v.packetLength); + avro::decode(d, v.spare); + avro::decode(d, v.sync); + } + } }; void encodeCMD151(Encoder &avroencoder, - inaf::oasbo::PacketLib::BasePacket &packet) { + inaf::oasbo::Packets::BasePacket &packet) { // PACKET HEADER int offset; for (offset = 0; offset < 7; offset++) diff --git a/include/avroPackets/hk101.h b/include/avroPackets/hk101.h index 83cab7e..3192663 100644 --- a/include/avroPackets/hk101.h +++ b/include/avroPackets/hk101.h @@ -33,494 +33,461 @@ static const int NUM_PDM = 37; static const int SPARE1_LEN = 8; static const int SPARE3_LEN = 4; - struct PDMBlock { - bool pdmVal; - int32_t spare_2; - int32_t pdmID; - int32_t sipmTemp1; - int32_t sipmTemp2; - int32_t sipmTemp3; - int32_t citrocBoardTemp; - int32_t citrocBoardVoltage1; - int32_t citrocBoardVoltage2; - int32_t citrocBoardCurrent1; - int32_t citrocBoardCurrent2; - int32_t citrocBoardCurrent3; - int32_t fpgaTemperature; - int32_t fpgaVoltage; - int32_t sipmHighVoltage; - int32_t sipmCurrent; - int32_t cameraRate; - int32_t pdmTriggerRate; - std::vector pdmPixelsRate; - std::vector spare_3; - PDMBlock() : - pdmVal(bool()), - spare_2(int32_t()), - pdmID(int32_t()), - sipmTemp1(int32_t()), - sipmTemp2(int32_t()), - sipmTemp3(int32_t()), - citrocBoardTemp(int32_t()), - citrocBoardVoltage1(int32_t()), - citrocBoardVoltage2(int32_t()), - citrocBoardCurrent1(int32_t()), - citrocBoardCurrent2(int32_t()), - citrocBoardCurrent3(int32_t()), - fpgaTemperature(int32_t()), - fpgaVoltage(int32_t()), - sipmHighVoltage(int32_t()), - sipmCurrent(int32_t()), - cameraRate(int32_t()), - pdmTriggerRate(int32_t()), - pdmPixelsRate(std::vector()), - spare_3(std::vector()) - { } + bool pdmVal; + int32_t spare_2; + int32_t pdmID; + int32_t sipmTemp1; + int32_t sipmTemp2; + int32_t sipmTemp3; + int32_t citrocBoardTemp; + int32_t citrocBoardVoltage1; + int32_t citrocBoardVoltage2; + int32_t citrocBoardCurrent1; + int32_t citrocBoardCurrent2; + int32_t citrocBoardCurrent3; + int32_t fpgaTemperature; + int32_t fpgaVoltage; + int32_t sipmHighVoltage; + int32_t sipmCurrent; + int32_t cameraRate; + int32_t pdmTriggerRate; + std::vector pdmPixelsRate; + std::vector spare_3; + PDMBlock() : + pdmVal(bool()), spare_2(int32_t()), pdmID(int32_t()), sipmTemp1( + int32_t()), sipmTemp2(int32_t()), sipmTemp3(int32_t()), citrocBoardTemp( + int32_t()), citrocBoardVoltage1(int32_t()), citrocBoardVoltage2( + int32_t()), citrocBoardCurrent1(int32_t()), citrocBoardCurrent2( + int32_t()), citrocBoardCurrent3(int32_t()), fpgaTemperature( + int32_t()), fpgaVoltage(int32_t()), sipmHighVoltage( + int32_t()), sipmCurrent(int32_t()), cameraRate(int32_t()), pdmTriggerRate( + int32_t()), pdmPixelsRate(std::vector()), spare_3( + std::vector()) { + } }; struct HK101 { - int32_t telescopeID; - int32_t type; - int32_t subType; - int32_t ssc; - int32_t packetLength; - int32_t year; - int32_t month; - int32_t day; - int32_t hours; - int32_t minutes; - int32_t seconds; - bool validTime; - int32_t timeTagNanosec; - int32_t eventCounter; - bool lid; - bool fibSt; - bool fibCont; - bool fibPuls; - int32_t rgbCont; - int32_t rgbPuls; - int32_t spare_0; - int32_t cameraTemperature1; - int32_t cameraTemperature2; - int32_t cameraTemperature3; - int32_t cameraTemperature4; - int32_t cameraHumidity1; - int32_t cameraHumidity2; - int32_t cameraHumidity3; - int32_t cameraHumidity4; - int32_t bluLaserFrequency; - int32_t bluLaserDuration; - int32_t bluLaserVoltage; - int32_t greenLaserFrequency; - int32_t greenLaserDuration; - int32_t greenLaserVoltage; - int32_t laserDiodeTemperature; - int32_t cameraRateMeter; - int32_t totalCameraRateMeter; - int32_t deadTime; - std::vector spare_1; - std::vector PDMs; - HK101() : - telescopeID(int32_t()), - type(int32_t()), - subType(int32_t()), - ssc(int32_t()), - packetLength(int32_t()), - year(int32_t()), - month(int32_t()), - day(int32_t()), - hours(int32_t()), - minutes(int32_t()), - seconds(int32_t()), - validTime(bool()), - timeTagNanosec(int32_t()), - eventCounter(int32_t()), - lid(bool()), - fibSt(bool()), - fibCont(bool()), - fibPuls(bool()), - rgbCont(int32_t()), - rgbPuls(int32_t()), - spare_0(int32_t()), - cameraTemperature1(int32_t()), - cameraTemperature2(int32_t()), - cameraTemperature3(int32_t()), - cameraTemperature4(int32_t()), - cameraHumidity1(int32_t()), - cameraHumidity2(int32_t()), - cameraHumidity3(int32_t()), - cameraHumidity4(int32_t()), - bluLaserFrequency(int32_t()), - bluLaserDuration(int32_t()), - bluLaserVoltage(int32_t()), - greenLaserFrequency(int32_t()), - greenLaserDuration(int32_t()), - greenLaserVoltage(int32_t()), - laserDiodeTemperature(int32_t()), - cameraRateMeter(int32_t()), - totalCameraRateMeter(int32_t()), - deadTime(int32_t()), - spare_1(std::vector()), - PDMs(std::vector()) - { } + int32_t telescopeID; + int32_t type; + int32_t subType; + int32_t ssc; + int32_t packetLength; + int32_t year; + int32_t month; + int32_t day; + int32_t hours; + int32_t minutes; + int32_t seconds; + bool validTime; + int32_t timeTagNanosec; + int32_t eventCounter; + bool lid; + bool fibSt; + bool fibCont; + bool fibPuls; + int32_t rgbCont; + int32_t rgbPuls; + int32_t spare_0; + int32_t cameraTemperature1; + int32_t cameraTemperature2; + int32_t cameraTemperature3; + int32_t cameraTemperature4; + int32_t cameraHumidity1; + int32_t cameraHumidity2; + int32_t cameraHumidity3; + int32_t cameraHumidity4; + int32_t bluLaserFrequency; + int32_t bluLaserDuration; + int32_t bluLaserVoltage; + int32_t greenLaserFrequency; + int32_t greenLaserDuration; + int32_t greenLaserVoltage; + int32_t laserDiodeTemperature; + int32_t cameraRateMeter; + int32_t totalCameraRateMeter; + int32_t deadTime; + std::vector spare_1; + std::vector PDMs; + HK101() : + telescopeID(int32_t()), type(int32_t()), subType(int32_t()), ssc( + int32_t()), packetLength(int32_t()), year(int32_t()), month( + int32_t()), day(int32_t()), hours(int32_t()), minutes( + int32_t()), seconds(int32_t()), validTime(bool()), timeTagNanosec( + int32_t()), eventCounter(int32_t()), lid(bool()), fibSt( + bool()), fibCont(bool()), fibPuls(bool()), rgbCont( + int32_t()), rgbPuls(int32_t()), spare_0(int32_t()), cameraTemperature1( + int32_t()), cameraTemperature2(int32_t()), cameraTemperature3( + int32_t()), cameraTemperature4(int32_t()), cameraHumidity1( + int32_t()), cameraHumidity2(int32_t()), cameraHumidity3( + int32_t()), cameraHumidity4(int32_t()), bluLaserFrequency( + int32_t()), bluLaserDuration(int32_t()), bluLaserVoltage( + int32_t()), greenLaserFrequency(int32_t()), greenLaserDuration( + int32_t()), greenLaserVoltage(int32_t()), laserDiodeTemperature( + int32_t()), cameraRateMeter(int32_t()), totalCameraRateMeter( + int32_t()), deadTime(int32_t()), spare_1( + std::vector()), PDMs(std::vector()) { + } }; } namespace avro { template<> struct codec_traits { - static void encode(Encoder& e, const HK101::PDMBlock& v) { - avro::encode(e, v.pdmVal); - avro::encode(e, v.spare_2); - avro::encode(e, v.pdmID); - avro::encode(e, v.sipmTemp1); - avro::encode(e, v.sipmTemp2); - avro::encode(e, v.sipmTemp3); - avro::encode(e, v.citrocBoardTemp); - avro::encode(e, v.citrocBoardVoltage1); - avro::encode(e, v.citrocBoardVoltage2); - avro::encode(e, v.citrocBoardCurrent1); - avro::encode(e, v.citrocBoardCurrent2); - avro::encode(e, v.citrocBoardCurrent3); - avro::encode(e, v.fpgaTemperature); - avro::encode(e, v.fpgaVoltage); - avro::encode(e, v.sipmHighVoltage); - avro::encode(e, v.sipmCurrent); - avro::encode(e, v.cameraRate); - avro::encode(e, v.pdmTriggerRate); - avro::encode(e, v.pdmPixelsRate); - avro::encode(e, v.spare_3); - } - static void decode(Decoder& d, HK101::PDMBlock& v) { - if (avro::ResolvingDecoder *rd = - dynamic_cast(&d)) { - const std::vector fo = rd->fieldOrder(); - for (std::vector::const_iterator it = fo.begin(); - it != fo.end(); ++it) { - switch (*it) { - case 0: - avro::decode(d, v.pdmVal); - break; - case 1: - avro::decode(d, v.spare_2); - break; - case 2: - avro::decode(d, v.pdmID); - break; - case 3: - avro::decode(d, v.sipmTemp1); - break; - case 4: - avro::decode(d, v.sipmTemp2); - break; - case 5: - avro::decode(d, v.sipmTemp3); - break; - case 6: - avro::decode(d, v.citrocBoardTemp); - break; - case 7: - avro::decode(d, v.citrocBoardVoltage1); - break; - case 8: - avro::decode(d, v.citrocBoardVoltage2); - break; - case 9: - avro::decode(d, v.citrocBoardCurrent1); - break; - case 10: - avro::decode(d, v.citrocBoardCurrent2); - break; - case 11: - avro::decode(d, v.citrocBoardCurrent3); - break; - case 12: - avro::decode(d, v.fpgaTemperature); - break; - case 13: - avro::decode(d, v.fpgaVoltage); - break; - case 14: - avro::decode(d, v.sipmHighVoltage); - break; - case 15: - avro::decode(d, v.sipmCurrent); - break; - case 16: - avro::decode(d, v.cameraRate); - break; - case 17: - avro::decode(d, v.pdmTriggerRate); - break; - case 18: - avro::decode(d, v.pdmPixelsRate); - break; - case 19: - avro::decode(d, v.spare_3); - break; - default: - break; - } - } - } else { - avro::decode(d, v.pdmVal); - avro::decode(d, v.spare_2); - avro::decode(d, v.pdmID); - avro::decode(d, v.sipmTemp1); - avro::decode(d, v.sipmTemp2); - avro::decode(d, v.sipmTemp3); - avro::decode(d, v.citrocBoardTemp); - avro::decode(d, v.citrocBoardVoltage1); - avro::decode(d, v.citrocBoardVoltage2); - avro::decode(d, v.citrocBoardCurrent1); - avro::decode(d, v.citrocBoardCurrent2); - avro::decode(d, v.citrocBoardCurrent3); - avro::decode(d, v.fpgaTemperature); - avro::decode(d, v.fpgaVoltage); - avro::decode(d, v.sipmHighVoltage); - avro::decode(d, v.sipmCurrent); - avro::decode(d, v.cameraRate); - avro::decode(d, v.pdmTriggerRate); - avro::decode(d, v.pdmPixelsRate); - avro::decode(d, v.spare_3); - } - } + static void encode(Encoder &e, const HK101::PDMBlock &v) { + avro::encode(e, v.pdmVal); + avro::encode(e, v.spare_2); + avro::encode(e, v.pdmID); + avro::encode(e, v.sipmTemp1); + avro::encode(e, v.sipmTemp2); + avro::encode(e, v.sipmTemp3); + avro::encode(e, v.citrocBoardTemp); + avro::encode(e, v.citrocBoardVoltage1); + avro::encode(e, v.citrocBoardVoltage2); + avro::encode(e, v.citrocBoardCurrent1); + avro::encode(e, v.citrocBoardCurrent2); + avro::encode(e, v.citrocBoardCurrent3); + avro::encode(e, v.fpgaTemperature); + avro::encode(e, v.fpgaVoltage); + avro::encode(e, v.sipmHighVoltage); + avro::encode(e, v.sipmCurrent); + avro::encode(e, v.cameraRate); + avro::encode(e, v.pdmTriggerRate); + avro::encode(e, v.pdmPixelsRate); + avro::encode(e, v.spare_3); + } + static void decode(Decoder &d, HK101::PDMBlock &v) { + if (avro::ResolvingDecoder *rd = + dynamic_cast(&d)) { + const std::vector fo = rd->fieldOrder(); + for (std::vector::const_iterator it = fo.begin(); + it != fo.end(); ++it) { + switch (*it) { + case 0: + avro::decode(d, v.pdmVal); + break; + case 1: + avro::decode(d, v.spare_2); + break; + case 2: + avro::decode(d, v.pdmID); + break; + case 3: + avro::decode(d, v.sipmTemp1); + break; + case 4: + avro::decode(d, v.sipmTemp2); + break; + case 5: + avro::decode(d, v.sipmTemp3); + break; + case 6: + avro::decode(d, v.citrocBoardTemp); + break; + case 7: + avro::decode(d, v.citrocBoardVoltage1); + break; + case 8: + avro::decode(d, v.citrocBoardVoltage2); + break; + case 9: + avro::decode(d, v.citrocBoardCurrent1); + break; + case 10: + avro::decode(d, v.citrocBoardCurrent2); + break; + case 11: + avro::decode(d, v.citrocBoardCurrent3); + break; + case 12: + avro::decode(d, v.fpgaTemperature); + break; + case 13: + avro::decode(d, v.fpgaVoltage); + break; + case 14: + avro::decode(d, v.sipmHighVoltage); + break; + case 15: + avro::decode(d, v.sipmCurrent); + break; + case 16: + avro::decode(d, v.cameraRate); + break; + case 17: + avro::decode(d, v.pdmTriggerRate); + break; + case 18: + avro::decode(d, v.pdmPixelsRate); + break; + case 19: + avro::decode(d, v.spare_3); + break; + default: + break; + } + } + } else { + avro::decode(d, v.pdmVal); + avro::decode(d, v.spare_2); + avro::decode(d, v.pdmID); + avro::decode(d, v.sipmTemp1); + avro::decode(d, v.sipmTemp2); + avro::decode(d, v.sipmTemp3); + avro::decode(d, v.citrocBoardTemp); + avro::decode(d, v.citrocBoardVoltage1); + avro::decode(d, v.citrocBoardVoltage2); + avro::decode(d, v.citrocBoardCurrent1); + avro::decode(d, v.citrocBoardCurrent2); + avro::decode(d, v.citrocBoardCurrent3); + avro::decode(d, v.fpgaTemperature); + avro::decode(d, v.fpgaVoltage); + avro::decode(d, v.sipmHighVoltage); + avro::decode(d, v.sipmCurrent); + avro::decode(d, v.cameraRate); + avro::decode(d, v.pdmTriggerRate); + avro::decode(d, v.pdmPixelsRate); + avro::decode(d, v.spare_3); + } + } }; template<> struct codec_traits { - static void encode(Encoder& e, const HK101::HK101& v) { - avro::encode(e, v.telescopeID); - avro::encode(e, v.type); - avro::encode(e, v.subType); - avro::encode(e, v.ssc); - avro::encode(e, v.packetLength); - avro::encode(e, v.year); - avro::encode(e, v.month); - avro::encode(e, v.day); - avro::encode(e, v.hours); - avro::encode(e, v.minutes); - avro::encode(e, v.seconds); - avro::encode(e, v.validTime); - avro::encode(e, v.timeTagNanosec); - avro::encode(e, v.eventCounter); - avro::encode(e, v.lid); - avro::encode(e, v.fibSt); - avro::encode(e, v.fibCont); - avro::encode(e, v.fibPuls); - avro::encode(e, v.rgbCont); - avro::encode(e, v.rgbPuls); - avro::encode(e, v.spare_0); - avro::encode(e, v.cameraTemperature1); - avro::encode(e, v.cameraTemperature2); - avro::encode(e, v.cameraTemperature3); - avro::encode(e, v.cameraTemperature4); - avro::encode(e, v.cameraHumidity1); - avro::encode(e, v.cameraHumidity2); - avro::encode(e, v.cameraHumidity3); - avro::encode(e, v.cameraHumidity4); - avro::encode(e, v.bluLaserFrequency); - avro::encode(e, v.bluLaserDuration); - avro::encode(e, v.bluLaserVoltage); - avro::encode(e, v.greenLaserFrequency); - avro::encode(e, v.greenLaserDuration); - avro::encode(e, v.greenLaserVoltage); - avro::encode(e, v.laserDiodeTemperature); - avro::encode(e, v.cameraRateMeter); - avro::encode(e, v.totalCameraRateMeter); - avro::encode(e, v.deadTime); - avro::encode(e, v.spare_1); - avro::encode(e, v.PDMs); - } - static void decode(Decoder& d, HK101::HK101& v) { - if (avro::ResolvingDecoder *rd = - dynamic_cast(&d)) { - const std::vector fo = rd->fieldOrder(); - for (std::vector::const_iterator it = fo.begin(); - it != fo.end(); ++it) { - switch (*it) { - case 0: - avro::decode(d, v.telescopeID); - break; - case 1: - avro::decode(d, v.type); - break; - case 2: - avro::decode(d, v.subType); - break; - case 3: - avro::decode(d, v.ssc); - break; - case 4: - avro::decode(d, v.packetLength); - break; - case 5: - avro::decode(d, v.year); - break; - case 6: - avro::decode(d, v.month); - break; - case 7: - avro::decode(d, v.day); - break; - case 8: - avro::decode(d, v.hours); - break; - case 9: - avro::decode(d, v.minutes); - break; - case 10: - avro::decode(d, v.seconds); - break; - case 11: - avro::decode(d, v.validTime); - break; - case 12: - avro::decode(d, v.timeTagNanosec); - break; - case 13: - avro::decode(d, v.eventCounter); - break; - case 14: - avro::decode(d, v.lid); - break; - case 15: - avro::decode(d, v.fibSt); - break; - case 16: - avro::decode(d, v.fibCont); - break; - case 17: - avro::decode(d, v.fibPuls); - break; - case 18: - avro::decode(d, v.rgbCont); - break; - case 19: - avro::decode(d, v.rgbPuls); - break; - case 20: - avro::decode(d, v.spare_0); - break; - case 21: - avro::decode(d, v.cameraTemperature1); - break; - case 22: - avro::decode(d, v.cameraTemperature2); - break; - case 23: - avro::decode(d, v.cameraTemperature3); - break; - case 24: - avro::decode(d, v.cameraTemperature4); - break; - case 25: - avro::decode(d, v.cameraHumidity1); - break; - case 26: - avro::decode(d, v.cameraHumidity2); - break; - case 27: - avro::decode(d, v.cameraHumidity3); - break; - case 28: - avro::decode(d, v.cameraHumidity4); - break; - case 29: - avro::decode(d, v.bluLaserFrequency); - break; - case 30: - avro::decode(d, v.bluLaserDuration); - break; - case 31: - avro::decode(d, v.bluLaserVoltage); - break; - case 32: - avro::decode(d, v.greenLaserFrequency); - break; - case 33: - avro::decode(d, v.greenLaserDuration); - break; - case 34: - avro::decode(d, v.greenLaserVoltage); - break; - case 35: - avro::decode(d, v.laserDiodeTemperature); - break; - case 36: - avro::decode(d, v.cameraRateMeter); - break; - case 37: - avro::decode(d, v.totalCameraRateMeter); - break; - case 38: - avro::decode(d, v.deadTime); - break; - case 39: - avro::decode(d, v.spare_1); - break; - case 40: - avro::decode(d, v.PDMs); - break; - default: - break; - } - } - } else { - avro::decode(d, v.telescopeID); - avro::decode(d, v.type); - avro::decode(d, v.subType); - avro::decode(d, v.ssc); - avro::decode(d, v.packetLength); - avro::decode(d, v.year); - avro::decode(d, v.month); - avro::decode(d, v.day); - avro::decode(d, v.hours); - avro::decode(d, v.minutes); - avro::decode(d, v.seconds); - avro::decode(d, v.validTime); - avro::decode(d, v.timeTagNanosec); - avro::decode(d, v.eventCounter); - avro::decode(d, v.lid); - avro::decode(d, v.fibSt); - avro::decode(d, v.fibCont); - avro::decode(d, v.fibPuls); - avro::decode(d, v.rgbCont); - avro::decode(d, v.rgbPuls); - avro::decode(d, v.spare_0); - avro::decode(d, v.cameraTemperature1); - avro::decode(d, v.cameraTemperature2); - avro::decode(d, v.cameraTemperature3); - avro::decode(d, v.cameraTemperature4); - avro::decode(d, v.cameraHumidity1); - avro::decode(d, v.cameraHumidity2); - avro::decode(d, v.cameraHumidity3); - avro::decode(d, v.cameraHumidity4); - avro::decode(d, v.bluLaserFrequency); - avro::decode(d, v.bluLaserDuration); - avro::decode(d, v.bluLaserVoltage); - avro::decode(d, v.greenLaserFrequency); - avro::decode(d, v.greenLaserDuration); - avro::decode(d, v.greenLaserVoltage); - avro::decode(d, v.laserDiodeTemperature); - avro::decode(d, v.cameraRateMeter); - avro::decode(d, v.totalCameraRateMeter); - avro::decode(d, v.deadTime); - avro::decode(d, v.spare_1); - avro::decode(d, v.PDMs); - } - } + static void encode(Encoder &e, const HK101::HK101 &v) { + avro::encode(e, v.telescopeID); + avro::encode(e, v.type); + avro::encode(e, v.subType); + avro::encode(e, v.ssc); + avro::encode(e, v.packetLength); + avro::encode(e, v.year); + avro::encode(e, v.month); + avro::encode(e, v.day); + avro::encode(e, v.hours); + avro::encode(e, v.minutes); + avro::encode(e, v.seconds); + avro::encode(e, v.validTime); + avro::encode(e, v.timeTagNanosec); + avro::encode(e, v.eventCounter); + avro::encode(e, v.lid); + avro::encode(e, v.fibSt); + avro::encode(e, v.fibCont); + avro::encode(e, v.fibPuls); + avro::encode(e, v.rgbCont); + avro::encode(e, v.rgbPuls); + avro::encode(e, v.spare_0); + avro::encode(e, v.cameraTemperature1); + avro::encode(e, v.cameraTemperature2); + avro::encode(e, v.cameraTemperature3); + avro::encode(e, v.cameraTemperature4); + avro::encode(e, v.cameraHumidity1); + avro::encode(e, v.cameraHumidity2); + avro::encode(e, v.cameraHumidity3); + avro::encode(e, v.cameraHumidity4); + avro::encode(e, v.bluLaserFrequency); + avro::encode(e, v.bluLaserDuration); + avro::encode(e, v.bluLaserVoltage); + avro::encode(e, v.greenLaserFrequency); + avro::encode(e, v.greenLaserDuration); + avro::encode(e, v.greenLaserVoltage); + avro::encode(e, v.laserDiodeTemperature); + avro::encode(e, v.cameraRateMeter); + avro::encode(e, v.totalCameraRateMeter); + avro::encode(e, v.deadTime); + avro::encode(e, v.spare_1); + avro::encode(e, v.PDMs); + } + static void decode(Decoder &d, HK101::HK101 &v) { + if (avro::ResolvingDecoder *rd = + dynamic_cast(&d)) { + const std::vector fo = rd->fieldOrder(); + for (std::vector::const_iterator it = fo.begin(); + it != fo.end(); ++it) { + switch (*it) { + case 0: + avro::decode(d, v.telescopeID); + break; + case 1: + avro::decode(d, v.type); + break; + case 2: + avro::decode(d, v.subType); + break; + case 3: + avro::decode(d, v.ssc); + break; + case 4: + avro::decode(d, v.packetLength); + break; + case 5: + avro::decode(d, v.year); + break; + case 6: + avro::decode(d, v.month); + break; + case 7: + avro::decode(d, v.day); + break; + case 8: + avro::decode(d, v.hours); + break; + case 9: + avro::decode(d, v.minutes); + break; + case 10: + avro::decode(d, v.seconds); + break; + case 11: + avro::decode(d, v.validTime); + break; + case 12: + avro::decode(d, v.timeTagNanosec); + break; + case 13: + avro::decode(d, v.eventCounter); + break; + case 14: + avro::decode(d, v.lid); + break; + case 15: + avro::decode(d, v.fibSt); + break; + case 16: + avro::decode(d, v.fibCont); + break; + case 17: + avro::decode(d, v.fibPuls); + break; + case 18: + avro::decode(d, v.rgbCont); + break; + case 19: + avro::decode(d, v.rgbPuls); + break; + case 20: + avro::decode(d, v.spare_0); + break; + case 21: + avro::decode(d, v.cameraTemperature1); + break; + case 22: + avro::decode(d, v.cameraTemperature2); + break; + case 23: + avro::decode(d, v.cameraTemperature3); + break; + case 24: + avro::decode(d, v.cameraTemperature4); + break; + case 25: + avro::decode(d, v.cameraHumidity1); + break; + case 26: + avro::decode(d, v.cameraHumidity2); + break; + case 27: + avro::decode(d, v.cameraHumidity3); + break; + case 28: + avro::decode(d, v.cameraHumidity4); + break; + case 29: + avro::decode(d, v.bluLaserFrequency); + break; + case 30: + avro::decode(d, v.bluLaserDuration); + break; + case 31: + avro::decode(d, v.bluLaserVoltage); + break; + case 32: + avro::decode(d, v.greenLaserFrequency); + break; + case 33: + avro::decode(d, v.greenLaserDuration); + break; + case 34: + avro::decode(d, v.greenLaserVoltage); + break; + case 35: + avro::decode(d, v.laserDiodeTemperature); + break; + case 36: + avro::decode(d, v.cameraRateMeter); + break; + case 37: + avro::decode(d, v.totalCameraRateMeter); + break; + case 38: + avro::decode(d, v.deadTime); + break; + case 39: + avro::decode(d, v.spare_1); + break; + case 40: + avro::decode(d, v.PDMs); + break; + default: + break; + } + } + } else { + avro::decode(d, v.telescopeID); + avro::decode(d, v.type); + avro::decode(d, v.subType); + avro::decode(d, v.ssc); + avro::decode(d, v.packetLength); + avro::decode(d, v.year); + avro::decode(d, v.month); + avro::decode(d, v.day); + avro::decode(d, v.hours); + avro::decode(d, v.minutes); + avro::decode(d, v.seconds); + avro::decode(d, v.validTime); + avro::decode(d, v.timeTagNanosec); + avro::decode(d, v.eventCounter); + avro::decode(d, v.lid); + avro::decode(d, v.fibSt); + avro::decode(d, v.fibCont); + avro::decode(d, v.fibPuls); + avro::decode(d, v.rgbCont); + avro::decode(d, v.rgbPuls); + avro::decode(d, v.spare_0); + avro::decode(d, v.cameraTemperature1); + avro::decode(d, v.cameraTemperature2); + avro::decode(d, v.cameraTemperature3); + avro::decode(d, v.cameraTemperature4); + avro::decode(d, v.cameraHumidity1); + avro::decode(d, v.cameraHumidity2); + avro::decode(d, v.cameraHumidity3); + avro::decode(d, v.cameraHumidity4); + avro::decode(d, v.bluLaserFrequency); + avro::decode(d, v.bluLaserDuration); + avro::decode(d, v.bluLaserVoltage); + avro::decode(d, v.greenLaserFrequency); + avro::decode(d, v.greenLaserDuration); + avro::decode(d, v.greenLaserVoltage); + avro::decode(d, v.laserDiodeTemperature); + avro::decode(d, v.cameraRateMeter); + avro::decode(d, v.totalCameraRateMeter); + avro::decode(d, v.deadTime); + avro::decode(d, v.spare_1); + avro::decode(d, v.PDMs); + } + } }; void encodeHK101(Encoder &avroencoder, - inaf::oasbo::PacketLib::BasePacket &packet) { + inaf::oasbo::Packets::BasePacket &packet) { for (uint i = 0; i < packet.getPacketStructure().numberOfFields(); i++) { if (packet[i].has_value()) { size_t val = packet[i].value(); - std::string field(packet.getPacketStructure().fieldNameOfIndex(i).value()); + std::string field( + packet.getPacketStructure().fieldNameOfIndex(i).value()); int bitsize = packet.getPacketStructure().bitSizeOf(i).value(); - if (val > std::pow(2,bitsize)) - std::cout << packet[i].value() << " at index " << i << " named: " << field.substr(0,9) - << " size: " << packet.getPacketStructure().bitSizeOf(i).value() << std::endl; + if (val > std::pow(2, bitsize)) + std::cout << packet[i].value() << " at index " << i + << " named: " << field.substr(0, 9) << " size: " + << packet.getPacketStructure().bitSizeOf(i).value() + << std::endl; } } // PACKET HEADER @@ -542,7 +509,7 @@ void encodeHK101(Encoder &avroencoder, avroencoder.arrayStart(); avroencoder.setItemCount(HK101::SPARE1_LEN); - for(int i = 0; i < HK101::SPARE1_LEN; i++){ + for (int i = 0; i < HK101::SPARE1_LEN; i++) { avroencoder.startItem(); avro::encode(avroencoder, (int32_t) packet[offset++].value()); } @@ -555,21 +522,21 @@ void encodeHK101(Encoder &avroencoder, avroencoder.startItem(); avro::encode(avroencoder, (bool) packet[offset++].value()); - for(int i = 0; i < 17; i++){ + for (int i = 0; i < 17; i++) { avro::encode(avroencoder, (int32_t) packet[offset++].value()); } avroencoder.arrayStart(); avroencoder.setItemCount(HK101::PDM_PIXEL_RATE); - for(int i = 0; i < HK101::PDM_PIXEL_RATE; i++){ + for (int i = 0; i < HK101::PDM_PIXEL_RATE; i++) { avroencoder.startItem(); - avro::encode(avroencoder, (int32_t)packet[offset++].value()); + avro::encode(avroencoder, (int32_t) packet[offset++].value()); } avroencoder.arrayEnd(); avroencoder.arrayStart(); avroencoder.setItemCount(HK101::SPARE3_LEN); - for(int i = 0; i < HK101::SPARE3_LEN; i++){ + for (int i = 0; i < HK101::SPARE3_LEN; i++) { avroencoder.startItem(); avro::encode(avroencoder, (int32_t) packet[offset++].value()); } diff --git a/include/avroPackets/s22.h b/include/avroPackets/s22.h index bd64de4..72472ad 100644 --- a/include/avroPackets/s22.h +++ b/include/avroPackets/s22.h @@ -34,7 +34,6 @@ static const int LOW_GAINS_SIZE = 64; static const int TIME_TRIGGERS_SIZE = 64; static const int NUM_PDM = 37; - struct PDMBlock { bool pdmVal; bool trgEnb; @@ -360,8 +359,7 @@ template<> struct codec_traits { } }; -void encodeS22(Encoder &avroencoder, - inaf::oasbo::PacketLib::BasePacket &packet) { +void encodeS22(Encoder &avroencoder, inaf::oasbo::Packets::BasePacket &packet) { // PACKET HEADER int offset; for (offset = 0; offset < 11; offset++) @@ -395,25 +393,25 @@ void encodeS22(Encoder &avroencoder, avroencoder.arrayStart(); avroencoder.setItemCount(S22::HIGH_GAINS_SIZE); - for(int i = 0; i < S22::HIGH_GAINS_SIZE; i++){ + for (int i = 0; i < S22::HIGH_GAINS_SIZE; i++) { avroencoder.startItem(); - avro::encode(avroencoder, (int32_t) packet[offset+i].value()); + avro::encode(avroencoder, (int32_t) packet[offset + i].value()); } offset += S22::HIGH_GAINS_SIZE; avroencoder.arrayEnd(); avroencoder.arrayStart(); avroencoder.setItemCount(S22::LOW_GAINS_SIZE); - for(int i = 0; i < S22::LOW_GAINS_SIZE; i++){ + for (int i = 0; i < S22::LOW_GAINS_SIZE; i++) { avroencoder.startItem(); - avro::encode(avroencoder, (int32_t) packet[offset+i].value()); + avro::encode(avroencoder, (int32_t) packet[offset + i].value()); } offset += S22::LOW_GAINS_SIZE; avroencoder.arrayEnd(); avroencoder.arrayStart(); avroencoder.setItemCount(S22::TIME_TRIGGERS_SIZE); - for(int i = 0; i < S22::TIME_TRIGGERS_SIZE; i++){ + for (int i = 0; i < S22::TIME_TRIGGERS_SIZE; i++) { avroencoder.startItem(); - avro::encode(avroencoder, (int32_t) packet[offset+i].value()); + avro::encode(avroencoder, (int32_t) packet[offset + i].value()); } offset += S22::TIME_TRIGGERS_SIZE; avroencoder.arrayEnd(); diff --git a/include/avroPackets/var102.h b/include/avroPackets/var102.h index 5155fb1..3682d06 100644 --- a/include/avroPackets/var102.h +++ b/include/avroPackets/var102.h @@ -31,238 +31,222 @@ static const int VAR_PIXELS_SIZE = 64; static const int NUM_PDM = 37; struct PDMBlock { - bool pdmVal; - int32_t samplingPar; - int32_t pdmID; - std::vector var_pixels; - PDMBlock() : - pdmVal(bool()), - samplingPar(int32_t()), - pdmID(int32_t()), - var_pixels(std::vector()) - { } + bool pdmVal; + int32_t samplingPar; + int32_t pdmID; + std::vector var_pixels; + PDMBlock() : + pdmVal(bool()), samplingPar(int32_t()), pdmID(int32_t()), var_pixels( + std::vector()) { + } }; struct VAR102 { - int32_t telescopeID; - int32_t type; - int32_t subType; - int32_t ssc; - int32_t packetLength; - int32_t year; - int32_t month; - int32_t day; - int32_t hours; - int32_t minutes; - int32_t seconds; - bool validTime; - int32_t timeTagNanosec; - int32_t eventCounter; - bool lid; - bool fibSt; - bool fibCont; - bool fibPuls; - int32_t rgbCont; - int32_t rgbPuls; - int32_t spare_0; - std::vector PDMs; - VAR102() : - telescopeID(int32_t()), - type(int32_t()), - subType(int32_t()), - ssc(int32_t()), - packetLength(int32_t()), - year(int32_t()), - month(int32_t()), - day(int32_t()), - hours(int32_t()), - minutes(int32_t()), - seconds(int32_t()), - validTime(bool()), - timeTagNanosec(int32_t()), - eventCounter(int32_t()), - lid(bool()), - fibSt(bool()), - fibCont(bool()), - fibPuls(bool()), - rgbCont(int32_t()), - rgbPuls(int32_t()), - spare_0(int32_t()), - PDMs(std::vector()) - { } + int32_t telescopeID; + int32_t type; + int32_t subType; + int32_t ssc; + int32_t packetLength; + int32_t year; + int32_t month; + int32_t day; + int32_t hours; + int32_t minutes; + int32_t seconds; + bool validTime; + int32_t timeTagNanosec; + int32_t eventCounter; + bool lid; + bool fibSt; + bool fibCont; + bool fibPuls; + int32_t rgbCont; + int32_t rgbPuls; + int32_t spare_0; + std::vector PDMs; + VAR102() : + telescopeID(int32_t()), type(int32_t()), subType(int32_t()), ssc( + int32_t()), packetLength(int32_t()), year(int32_t()), month( + int32_t()), day(int32_t()), hours(int32_t()), minutes( + int32_t()), seconds(int32_t()), validTime(bool()), timeTagNanosec( + int32_t()), eventCounter(int32_t()), lid(bool()), fibSt( + bool()), fibCont(bool()), fibPuls(bool()), rgbCont( + int32_t()), rgbPuls(int32_t()), spare_0(int32_t()), PDMs( + std::vector()) { + } }; } namespace avro { template<> struct codec_traits { - static void encode(Encoder& e, const VAR102::PDMBlock& v) { - avro::encode(e, v.pdmVal); - avro::encode(e, v.samplingPar); - avro::encode(e, v.pdmID); - avro::encode(e, v.var_pixels); - } - static void decode(Decoder& d, VAR102::PDMBlock& v) { - if (avro::ResolvingDecoder *rd = - dynamic_cast(&d)) { - const std::vector fo = rd->fieldOrder(); - for (std::vector::const_iterator it = fo.begin(); - it != fo.end(); ++it) { - switch (*it) { - case 0: - avro::decode(d, v.pdmVal); - break; - case 1: - avro::decode(d, v.samplingPar); - break; - case 2: - avro::decode(d, v.pdmID); - break; - case 3: - avro::decode(d, v.var_pixels); - break; - default: - break; - } - } - } else { - avro::decode(d, v.pdmVal); - avro::decode(d, v.samplingPar); - avro::decode(d, v.pdmID); - avro::decode(d, v.var_pixels); - } - } + static void encode(Encoder &e, const VAR102::PDMBlock &v) { + avro::encode(e, v.pdmVal); + avro::encode(e, v.samplingPar); + avro::encode(e, v.pdmID); + avro::encode(e, v.var_pixels); + } + static void decode(Decoder &d, VAR102::PDMBlock &v) { + if (avro::ResolvingDecoder *rd = + dynamic_cast(&d)) { + const std::vector fo = rd->fieldOrder(); + for (std::vector::const_iterator it = fo.begin(); + it != fo.end(); ++it) { + switch (*it) { + case 0: + avro::decode(d, v.pdmVal); + break; + case 1: + avro::decode(d, v.samplingPar); + break; + case 2: + avro::decode(d, v.pdmID); + break; + case 3: + avro::decode(d, v.var_pixels); + break; + default: + break; + } + } + } else { + avro::decode(d, v.pdmVal); + avro::decode(d, v.samplingPar); + avro::decode(d, v.pdmID); + avro::decode(d, v.var_pixels); + } + } }; template<> struct codec_traits { - static void encode(Encoder& e, const VAR102::VAR102& v) { - avro::encode(e, v.telescopeID); - avro::encode(e, v.type); - avro::encode(e, v.subType); - avro::encode(e, v.ssc); - avro::encode(e, v.packetLength); - avro::encode(e, v.year); - avro::encode(e, v.month); - avro::encode(e, v.day); - avro::encode(e, v.hours); - avro::encode(e, v.minutes); - avro::encode(e, v.seconds); - avro::encode(e, v.validTime); - avro::encode(e, v.timeTagNanosec); - avro::encode(e, v.eventCounter); - avro::encode(e, v.lid); - avro::encode(e, v.fibSt); - avro::encode(e, v.fibCont); - avro::encode(e, v.fibPuls); - avro::encode(e, v.rgbCont); - avro::encode(e, v.rgbPuls); - avro::encode(e, v.spare_0); - avro::encode(e, v.PDMs); - } - static void decode(Decoder& d, VAR102::VAR102& v) { - if (avro::ResolvingDecoder *rd = - dynamic_cast(&d)) { - const std::vector fo = rd->fieldOrder(); - for (std::vector::const_iterator it = fo.begin(); - it != fo.end(); ++it) { - switch (*it) { - case 0: - avro::decode(d, v.telescopeID); - break; - case 1: - avro::decode(d, v.type); - break; - case 2: - avro::decode(d, v.subType); - break; - case 3: - avro::decode(d, v.ssc); - break; - case 4: - avro::decode(d, v.packetLength); - break; - case 5: - avro::decode(d, v.year); - break; - case 6: - avro::decode(d, v.month); - break; - case 7: - avro::decode(d, v.day); - break; - case 8: - avro::decode(d, v.hours); - break; - case 9: - avro::decode(d, v.minutes); - break; - case 10: - avro::decode(d, v.seconds); - break; - case 11: - avro::decode(d, v.validTime); - break; - case 12: - avro::decode(d, v.timeTagNanosec); - break; - case 13: - avro::decode(d, v.eventCounter); - break; - case 14: - avro::decode(d, v.lid); - break; - case 15: - avro::decode(d, v.fibSt); - break; - case 16: - avro::decode(d, v.fibCont); - break; - case 17: - avro::decode(d, v.fibPuls); - break; - case 18: - avro::decode(d, v.rgbCont); - break; - case 19: - avro::decode(d, v.rgbPuls); - break; - case 20: - avro::decode(d, v.spare_0); - break; - case 21: - avro::decode(d, v.PDMs); - break; - default: - break; - } - } - } else { - avro::decode(d, v.telescopeID); - avro::decode(d, v.type); - avro::decode(d, v.subType); - avro::decode(d, v.ssc); - avro::decode(d, v.packetLength); - avro::decode(d, v.year); - avro::decode(d, v.month); - avro::decode(d, v.day); - avro::decode(d, v.hours); - avro::decode(d, v.minutes); - avro::decode(d, v.seconds); - avro::decode(d, v.validTime); - avro::decode(d, v.timeTagNanosec); - avro::decode(d, v.eventCounter); - avro::decode(d, v.lid); - avro::decode(d, v.fibSt); - avro::decode(d, v.fibCont); - avro::decode(d, v.fibPuls); - avro::decode(d, v.rgbCont); - avro::decode(d, v.rgbPuls); - avro::decode(d, v.spare_0); - avro::decode(d, v.PDMs); - } - } + static void encode(Encoder &e, const VAR102::VAR102 &v) { + avro::encode(e, v.telescopeID); + avro::encode(e, v.type); + avro::encode(e, v.subType); + avro::encode(e, v.ssc); + avro::encode(e, v.packetLength); + avro::encode(e, v.year); + avro::encode(e, v.month); + avro::encode(e, v.day); + avro::encode(e, v.hours); + avro::encode(e, v.minutes); + avro::encode(e, v.seconds); + avro::encode(e, v.validTime); + avro::encode(e, v.timeTagNanosec); + avro::encode(e, v.eventCounter); + avro::encode(e, v.lid); + avro::encode(e, v.fibSt); + avro::encode(e, v.fibCont); + avro::encode(e, v.fibPuls); + avro::encode(e, v.rgbCont); + avro::encode(e, v.rgbPuls); + avro::encode(e, v.spare_0); + avro::encode(e, v.PDMs); + } + static void decode(Decoder &d, VAR102::VAR102 &v) { + if (avro::ResolvingDecoder *rd = + dynamic_cast(&d)) { + const std::vector fo = rd->fieldOrder(); + for (std::vector::const_iterator it = fo.begin(); + it != fo.end(); ++it) { + switch (*it) { + case 0: + avro::decode(d, v.telescopeID); + break; + case 1: + avro::decode(d, v.type); + break; + case 2: + avro::decode(d, v.subType); + break; + case 3: + avro::decode(d, v.ssc); + break; + case 4: + avro::decode(d, v.packetLength); + break; + case 5: + avro::decode(d, v.year); + break; + case 6: + avro::decode(d, v.month); + break; + case 7: + avro::decode(d, v.day); + break; + case 8: + avro::decode(d, v.hours); + break; + case 9: + avro::decode(d, v.minutes); + break; + case 10: + avro::decode(d, v.seconds); + break; + case 11: + avro::decode(d, v.validTime); + break; + case 12: + avro::decode(d, v.timeTagNanosec); + break; + case 13: + avro::decode(d, v.eventCounter); + break; + case 14: + avro::decode(d, v.lid); + break; + case 15: + avro::decode(d, v.fibSt); + break; + case 16: + avro::decode(d, v.fibCont); + break; + case 17: + avro::decode(d, v.fibPuls); + break; + case 18: + avro::decode(d, v.rgbCont); + break; + case 19: + avro::decode(d, v.rgbPuls); + break; + case 20: + avro::decode(d, v.spare_0); + break; + case 21: + avro::decode(d, v.PDMs); + break; + default: + break; + } + } + } else { + avro::decode(d, v.telescopeID); + avro::decode(d, v.type); + avro::decode(d, v.subType); + avro::decode(d, v.ssc); + avro::decode(d, v.packetLength); + avro::decode(d, v.year); + avro::decode(d, v.month); + avro::decode(d, v.day); + avro::decode(d, v.hours); + avro::decode(d, v.minutes); + avro::decode(d, v.seconds); + avro::decode(d, v.validTime); + avro::decode(d, v.timeTagNanosec); + avro::decode(d, v.eventCounter); + avro::decode(d, v.lid); + avro::decode(d, v.fibSt); + avro::decode(d, v.fibCont); + avro::decode(d, v.fibPuls); + avro::decode(d, v.rgbCont); + avro::decode(d, v.rgbPuls); + avro::decode(d, v.spare_0); + avro::decode(d, v.PDMs); + } + } }; void encodeVAR102(Encoder &avroencoder, - inaf::oasbo::PacketLib::BasePacket &packet) { + inaf::oasbo::Packets::BasePacket &packet) { // PACKET HEADER int offset; for (offset = 0; offset < 11; offset++) @@ -293,9 +277,9 @@ void encodeVAR102(Encoder &avroencoder, avroencoder.arrayStart(); avroencoder.setItemCount(VAR102::VAR_PIXELS_SIZE); - for(int i = 0; i < VAR102::VAR_PIXELS_SIZE; i++){ + for (int i = 0; i < VAR102::VAR_PIXELS_SIZE; i++) { avroencoder.startItem(); - avro::encode(avroencoder, (int32_t) packet[offset+i].value()); + avro::encode(avroencoder, (int32_t) packet[offset + i].value()); } offset += VAR102::VAR_PIXELS_SIZE; avroencoder.arrayEnd(); diff --git a/include/avroPackets/var103.h b/include/avroPackets/var103.h index 61598a1..755d123 100644 --- a/include/avroPackets/var103.h +++ b/include/avroPackets/var103.h @@ -32,238 +32,222 @@ static const int VAR_PIXELS_SIZE = 64; static const int NUM_PDM = 37; struct PDMBlock { - bool pdmVal; - int32_t samplingPar; - int32_t pdmID; - std::vector var_pixels; - PDMBlock() : - pdmVal(bool()), - samplingPar(int32_t()), - pdmID(int32_t()), - var_pixels(std::vector()) - { } + bool pdmVal; + int32_t samplingPar; + int32_t pdmID; + std::vector var_pixels; + PDMBlock() : + pdmVal(bool()), samplingPar(int32_t()), pdmID(int32_t()), var_pixels( + std::vector()) { + } }; struct VAR103 { - int32_t telescopeID; - int32_t type; - int32_t subType; - int32_t ssc; - int32_t packetLength; - int32_t year; - int32_t month; - int32_t day; - int32_t hours; - int32_t minutes; - int32_t seconds; - bool validTime; - int32_t timeTagNanosec; - int32_t eventCounter; - bool lid; - bool fibSt; - bool fibCont; - bool fibPuls; - int32_t rgbCont; - int32_t rgbPuls; - int32_t spare_0; - std::vector PDMs; - VAR103() : - telescopeID(int32_t()), - type(int32_t()), - subType(int32_t()), - ssc(int32_t()), - packetLength(int32_t()), - year(int32_t()), - month(int32_t()), - day(int32_t()), - hours(int32_t()), - minutes(int32_t()), - seconds(int32_t()), - validTime(bool()), - timeTagNanosec(int32_t()), - eventCounter(int32_t()), - lid(bool()), - fibSt(bool()), - fibCont(bool()), - fibPuls(bool()), - rgbCont(int32_t()), - rgbPuls(int32_t()), - spare_0(int32_t()), - PDMs(std::vector()) - { } + int32_t telescopeID; + int32_t type; + int32_t subType; + int32_t ssc; + int32_t packetLength; + int32_t year; + int32_t month; + int32_t day; + int32_t hours; + int32_t minutes; + int32_t seconds; + bool validTime; + int32_t timeTagNanosec; + int32_t eventCounter; + bool lid; + bool fibSt; + bool fibCont; + bool fibPuls; + int32_t rgbCont; + int32_t rgbPuls; + int32_t spare_0; + std::vector PDMs; + VAR103() : + telescopeID(int32_t()), type(int32_t()), subType(int32_t()), ssc( + int32_t()), packetLength(int32_t()), year(int32_t()), month( + int32_t()), day(int32_t()), hours(int32_t()), minutes( + int32_t()), seconds(int32_t()), validTime(bool()), timeTagNanosec( + int32_t()), eventCounter(int32_t()), lid(bool()), fibSt( + bool()), fibCont(bool()), fibPuls(bool()), rgbCont( + int32_t()), rgbPuls(int32_t()), spare_0(int32_t()), PDMs( + std::vector()) { + } }; } namespace avro { template<> struct codec_traits { - static void encode(Encoder& e, const VAR103::PDMBlock& v) { - avro::encode(e, v.pdmVal); - avro::encode(e, v.samplingPar); - avro::encode(e, v.pdmID); - avro::encode(e, v.var_pixels); - } - static void decode(Decoder& d, VAR103::PDMBlock& v) { - if (avro::ResolvingDecoder *rd = - dynamic_cast(&d)) { - const std::vector fo = rd->fieldOrder(); - for (std::vector::const_iterator it = fo.begin(); - it != fo.end(); ++it) { - switch (*it) { - case 0: - avro::decode(d, v.pdmVal); - break; - case 1: - avro::decode(d, v.samplingPar); - break; - case 2: - avro::decode(d, v.pdmID); - break; - case 3: - avro::decode(d, v.var_pixels); - break; - default: - break; - } - } - } else { - avro::decode(d, v.pdmVal); - avro::decode(d, v.samplingPar); - avro::decode(d, v.pdmID); - avro::decode(d, v.var_pixels); - } - } + static void encode(Encoder &e, const VAR103::PDMBlock &v) { + avro::encode(e, v.pdmVal); + avro::encode(e, v.samplingPar); + avro::encode(e, v.pdmID); + avro::encode(e, v.var_pixels); + } + static void decode(Decoder &d, VAR103::PDMBlock &v) { + if (avro::ResolvingDecoder *rd = + dynamic_cast(&d)) { + const std::vector fo = rd->fieldOrder(); + for (std::vector::const_iterator it = fo.begin(); + it != fo.end(); ++it) { + switch (*it) { + case 0: + avro::decode(d, v.pdmVal); + break; + case 1: + avro::decode(d, v.samplingPar); + break; + case 2: + avro::decode(d, v.pdmID); + break; + case 3: + avro::decode(d, v.var_pixels); + break; + default: + break; + } + } + } else { + avro::decode(d, v.pdmVal); + avro::decode(d, v.samplingPar); + avro::decode(d, v.pdmID); + avro::decode(d, v.var_pixels); + } + } }; template<> struct codec_traits { - static void encode(Encoder& e, const VAR103::VAR103& v) { - avro::encode(e, v.telescopeID); - avro::encode(e, v.type); - avro::encode(e, v.subType); - avro::encode(e, v.ssc); - avro::encode(e, v.packetLength); - avro::encode(e, v.year); - avro::encode(e, v.month); - avro::encode(e, v.day); - avro::encode(e, v.hours); - avro::encode(e, v.minutes); - avro::encode(e, v.seconds); - avro::encode(e, v.validTime); - avro::encode(e, v.timeTagNanosec); - avro::encode(e, v.eventCounter); - avro::encode(e, v.lid); - avro::encode(e, v.fibSt); - avro::encode(e, v.fibCont); - avro::encode(e, v.fibPuls); - avro::encode(e, v.rgbCont); - avro::encode(e, v.rgbPuls); - avro::encode(e, v.spare_0); - avro::encode(e, v.PDMs); - } - static void decode(Decoder& d, VAR103::VAR103& v) { - if (avro::ResolvingDecoder *rd = - dynamic_cast(&d)) { - const std::vector fo = rd->fieldOrder(); - for (std::vector::const_iterator it = fo.begin(); - it != fo.end(); ++it) { - switch (*it) { - case 0: - avro::decode(d, v.telescopeID); - break; - case 1: - avro::decode(d, v.type); - break; - case 2: - avro::decode(d, v.subType); - break; - case 3: - avro::decode(d, v.ssc); - break; - case 4: - avro::decode(d, v.packetLength); - break; - case 5: - avro::decode(d, v.year); - break; - case 6: - avro::decode(d, v.month); - break; - case 7: - avro::decode(d, v.day); - break; - case 8: - avro::decode(d, v.hours); - break; - case 9: - avro::decode(d, v.minutes); - break; - case 10: - avro::decode(d, v.seconds); - break; - case 11: - avro::decode(d, v.validTime); - break; - case 12: - avro::decode(d, v.timeTagNanosec); - break; - case 13: - avro::decode(d, v.eventCounter); - break; - case 14: - avro::decode(d, v.lid); - break; - case 15: - avro::decode(d, v.fibSt); - break; - case 16: - avro::decode(d, v.fibCont); - break; - case 17: - avro::decode(d, v.fibPuls); - break; - case 18: - avro::decode(d, v.rgbCont); - break; - case 19: - avro::decode(d, v.rgbPuls); - break; - case 20: - avro::decode(d, v.spare_0); - break; - case 21: - avro::decode(d, v.PDMs); - break; - default: - break; - } - } - } else { - avro::decode(d, v.telescopeID); - avro::decode(d, v.type); - avro::decode(d, v.subType); - avro::decode(d, v.ssc); - avro::decode(d, v.packetLength); - avro::decode(d, v.year); - avro::decode(d, v.month); - avro::decode(d, v.day); - avro::decode(d, v.hours); - avro::decode(d, v.minutes); - avro::decode(d, v.seconds); - avro::decode(d, v.validTime); - avro::decode(d, v.timeTagNanosec); - avro::decode(d, v.eventCounter); - avro::decode(d, v.lid); - avro::decode(d, v.fibSt); - avro::decode(d, v.fibCont); - avro::decode(d, v.fibPuls); - avro::decode(d, v.rgbCont); - avro::decode(d, v.rgbPuls); - avro::decode(d, v.spare_0); - avro::decode(d, v.PDMs); - } - } + static void encode(Encoder &e, const VAR103::VAR103 &v) { + avro::encode(e, v.telescopeID); + avro::encode(e, v.type); + avro::encode(e, v.subType); + avro::encode(e, v.ssc); + avro::encode(e, v.packetLength); + avro::encode(e, v.year); + avro::encode(e, v.month); + avro::encode(e, v.day); + avro::encode(e, v.hours); + avro::encode(e, v.minutes); + avro::encode(e, v.seconds); + avro::encode(e, v.validTime); + avro::encode(e, v.timeTagNanosec); + avro::encode(e, v.eventCounter); + avro::encode(e, v.lid); + avro::encode(e, v.fibSt); + avro::encode(e, v.fibCont); + avro::encode(e, v.fibPuls); + avro::encode(e, v.rgbCont); + avro::encode(e, v.rgbPuls); + avro::encode(e, v.spare_0); + avro::encode(e, v.PDMs); + } + static void decode(Decoder &d, VAR103::VAR103 &v) { + if (avro::ResolvingDecoder *rd = + dynamic_cast(&d)) { + const std::vector fo = rd->fieldOrder(); + for (std::vector::const_iterator it = fo.begin(); + it != fo.end(); ++it) { + switch (*it) { + case 0: + avro::decode(d, v.telescopeID); + break; + case 1: + avro::decode(d, v.type); + break; + case 2: + avro::decode(d, v.subType); + break; + case 3: + avro::decode(d, v.ssc); + break; + case 4: + avro::decode(d, v.packetLength); + break; + case 5: + avro::decode(d, v.year); + break; + case 6: + avro::decode(d, v.month); + break; + case 7: + avro::decode(d, v.day); + break; + case 8: + avro::decode(d, v.hours); + break; + case 9: + avro::decode(d, v.minutes); + break; + case 10: + avro::decode(d, v.seconds); + break; + case 11: + avro::decode(d, v.validTime); + break; + case 12: + avro::decode(d, v.timeTagNanosec); + break; + case 13: + avro::decode(d, v.eventCounter); + break; + case 14: + avro::decode(d, v.lid); + break; + case 15: + avro::decode(d, v.fibSt); + break; + case 16: + avro::decode(d, v.fibCont); + break; + case 17: + avro::decode(d, v.fibPuls); + break; + case 18: + avro::decode(d, v.rgbCont); + break; + case 19: + avro::decode(d, v.rgbPuls); + break; + case 20: + avro::decode(d, v.spare_0); + break; + case 21: + avro::decode(d, v.PDMs); + break; + default: + break; + } + } + } else { + avro::decode(d, v.telescopeID); + avro::decode(d, v.type); + avro::decode(d, v.subType); + avro::decode(d, v.ssc); + avro::decode(d, v.packetLength); + avro::decode(d, v.year); + avro::decode(d, v.month); + avro::decode(d, v.day); + avro::decode(d, v.hours); + avro::decode(d, v.minutes); + avro::decode(d, v.seconds); + avro::decode(d, v.validTime); + avro::decode(d, v.timeTagNanosec); + avro::decode(d, v.eventCounter); + avro::decode(d, v.lid); + avro::decode(d, v.fibSt); + avro::decode(d, v.fibCont); + avro::decode(d, v.fibPuls); + avro::decode(d, v.rgbCont); + avro::decode(d, v.rgbPuls); + avro::decode(d, v.spare_0); + avro::decode(d, v.PDMs); + } + } }; void encodeVAR103(Encoder &avroencoder, - inaf::oasbo::PacketLib::BasePacket &packet) { + inaf::oasbo::Packets::BasePacket &packet) { // PACKET HEADER int offset; for (offset = 0; offset < 11; offset++) @@ -294,9 +278,9 @@ void encodeVAR103(Encoder &avroencoder, avroencoder.arrayStart(); avroencoder.setItemCount(VAR103::VAR_PIXELS_SIZE); - for(int i = 0; i < VAR103::VAR_PIXELS_SIZE; i++){ + for (int i = 0; i < VAR103::VAR_PIXELS_SIZE; i++) { avroencoder.startItem(); - avro::encode(avroencoder, (int32_t) packet[offset+i].value()); + avro::encode(avroencoder, (int32_t) packet[offset + i].value()); } offset += VAR103::VAR_PIXELS_SIZE; avroencoder.arrayEnd(); diff --git a/src/KafkaAvro_Provider.cpp b/src/KafkaAvro_Provider.cpp index 59bdc80..067e215 100755 --- a/src/KafkaAvro_Provider.cpp +++ b/src/KafkaAvro_Provider.cpp @@ -63,8 +63,8 @@ KafkaAvroProvider::KafkaAvroProvider(std::string ip, int port, KafkaAvroProvider::~KafkaAvroProvider() { this->stopFlag = true; // Stopping the polling thread - if (pollThreadFlag){ - if(this->pollThread.joinable()){ + if (pollThreadFlag) { + if (this->pollThread.joinable()) { pollThread.join(); } } @@ -195,7 +195,7 @@ int KafkaAvroProvider::write(Packets::BasePacket &packet) { return KafkaAvroProvider::write(packet, this->dest); } -int KafkaAvroProvider::write(PackePacketstLib::BasePacket &packet, std::string dest) { +int KafkaAvroProvider::write(Packets::BasePacket &packet, std::string dest) { if (!isOpen()) { time_t now = time(nullptr); std::cerr << "[" << std::put_time(localtime(&now), "%Y-%m-%d %H:%M:%S") @@ -247,7 +247,7 @@ int KafkaAvroProvider::write(PackePacketstLib::BasePacket &packet, std::string d return -1; } -void KafkaAvroProvider::encodeToAvro(PacketLib::BasePacket &packet) { +void KafkaAvroProvider::encodeToAvro(Packets::BasePacket &packet) { auto type = packet[1].value(); auto subtype = packet[2].value(); if (type == 2 && subtype == 2) { -- GitLab From 3afcad80087b5d67cf3ebecf3df575727ba08493 Mon Sep 17 00:00:00 2001 From: valerio pastore Date: Fri, 12 Jan 2024 20:16:59 +0100 Subject: [PATCH 3/3] . --- src/KafkaAvro_Provider.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/KafkaAvro_Provider.cpp b/src/KafkaAvro_Provider.cpp index 067e215..5c384a2 100755 --- a/src/KafkaAvro_Provider.cpp +++ b/src/KafkaAvro_Provider.cpp @@ -287,3 +287,12 @@ void KafkaAvroProvider::encodeToAvro(Packets::BasePacket &packet) { } } + +void KafkaAvroProvider::setDest(std::string dest){ + this->dest = dest; +} + +std::string KafkaAvroProvider::getDest(){ + return this->dest; +} + -- GitLab