Newer
Older
/*
* AstriPacketGeneric.cpp
*
* Created on: Jan 26, 2023
* Author: valerio
*/
#include <AstriPacketS22.h>
void AstriPacketS22::readHeader() {
header.crc = (bool) this->operator []("crc_flag");
header.telescopeId = (uint8_t) this->operator []("telescopeid");
header.type = (uint8_t) this->operator []("type");
header.subtype = (uint8_t) this->operator []("subtype");
header.ssc = (uint16_t) this->operator []("ssc");
header.length = (uint16_t) this->operator []("length");
}
void AstriPacketS22::readDataFieldHeader() {
dataHeader.year = (uint8_t) this->operator []("year");
dataHeader.month = (uint8_t) this->operator []("month");
dataHeader.day = (uint8_t) this->operator []("day");
dataHeader.hour = (uint8_t) (this->operator []("hh_msb") << 4)
+ this->operator []("hh_lsb");
dataHeader.minutes = (uint8_t) this->operator []("minutes");
dataHeader.seconds = (uint8_t) this->operator []("seconds");
dataHeader.vt = (bool) this->operator []("vt");
dataHeader.timetagNanosec = (uint32_t) this->operator []("timetag_nanosec");
}
void AstriPacketS22::readDataFieldHeaderExtension() {
dataHeaderExt.pixel_trigg_disc = (uint16_t) this->operator [](
"pixel_trigg_disc_high_pe");
dataHeaderExt.pixel_trigg_low_disc = (uint16_t) this->operator [](
"pixel_trigg_disc_low_pe");
dataHeaderExt.trg_type = (bool) this->operator []("trg_type");
dataHeaderExt.trigger_conf = (uint8_t) this->operator []("trigger_config");
}
void AstriPacketS22::readPDMs() {
for (size_t i = 0; i < pdms.size(); i++) {
pdms[i].pdmVal = (bool) this->operator [](std::string("pdm_val").append("_#").append(std::to_string(i)));
pdms[i].trgEnb = (bool) this->operator [](std::string("trg_enb").append("_#").append(std::to_string(i)));
pdms[i].trgPdm = (bool) this->operator [](std::string("trg_pdm").append("_#").append(std::to_string(i)));
pdms[i].pdm_id = (uint8_t) this->operator [](std::string("pdm_id").append("_#").append(std::to_string(i)));
for (size_t j = 0; j < pdms[i].highGainPixels.size(); j++) {
pdms[i].highGainPixels[i] = (uint16_t) this->operator [](std::string("high_gain_pixel").append("_#").append(std::to_string(j)).append("_#").append(std::to_string(i)));
for (size_t j = 0; j < pdms[i].lowGainPixels.size(); j++) {
pdms[i].lowGainPixels[i] = (uint16_t) this->operator [](std::string("low_gain_pixel").append("_#").append(std::to_string(j)).append("_#").append(std::to_string(i)));
for (size_t j = 0; j < pdms[i].timeTriggerPixels.size(); j++) {
pdms[i].timeTriggerPixels[i] = (uint8_t) this->operator [](std::string("time_trigg_pixel").append("_#").append(std::to_string(j)).append("_#").append(std::to_string(i)));
pdms[i].hitReg = (size_t) (this->operator [](std::string("hit_reg_1").append("_#").append(std::to_string(i))) << 32) + this->operator [](std::string("hit_reg_2").append("_#").append(std::to_string(i)));
pdms[i].pixelTriggDiscrimThres = (uint16_t) this->operator [](std::string("pixel_trigg_disc_high_dac").append("_#").append(std::to_string(i)));
pdms[i].pixelTriggLowDiscrimThres = (uint16_t) this->operator [](std::string("pixel_trigg_disc_low_dac").append("_#").append(std::to_string(i)));
pdms[i].triggerMask = (size_t) (this->operator [](std::string("trigger_mask_1").append("_#").append(std::to_string(i))) << 32) + this->operator [](std::string("trigger_mask_2").append("_#").append(std::to_string(i)));
pdms[i].sipmTemp_1 = (uint16_t) this->operator [](std::string("sipm_temp_1").append("_#").append(std::to_string(i)));
pdms[i].sipmTemp_2 = (uint16_t) this->operator [](std::string("sipm_temp_2").append("_#").append(std::to_string(i)));
pdms[i].sipmTemp_3 = (uint16_t) this->operator [](std::string("sipm_temp_3").append("_#").append(std::to_string(i)));
pdms[i].sipmHighVolt = (uint16_t) this->operator [](std::string("sipm_high_volt").append("_#").append(std::to_string(i)));
pdms[i].sipmCurrent = (uint16_t) this->operator [](std::string("sipm_current").append("_#").append(std::to_string(i)));