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++) {
AstriS22::PDM &pdm = pdms[i];
pdm.pdmVal = (bool) this->operator [](std::string("pdm_Val").append("_#").append(std::to_string(i)));
pdm.trgEnb = (bool) this->operator [](std::string("trg_enb").append("_#").append(std::to_string(i)));
pdm.trgPdm = (bool) this->operator [](std::string("trg_pdm").append("_#").append(std::to_string(i)));
pdm.pdm_id = (uint8_t) this->operator [](std::string("pdm_id").append("_#").append(std::to_string(i)));
for (size_t j = 0; j < pdm.highGainPixels.size(); j++) {
pdm.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 < pdm.lowGainPixels.size(); j++) {
pdm.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 < pdm.timeTriggerPixels.size(); j++) {
pdm.timeTriggerPixels[i] = (uint8_t) this->operator [](std::string("time_trigg_pixel").append("_#").append(std::to_string(j)).append("_#").append(std::to_string(i)));
}
pdm.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)));
pdm.pixelTriggDiscrimThres = (uint16_t) this->operator [](std::string("pixel_trigg_disc_high_DA").append("_#").append(std::to_string(i)));
pdm.pixelTriggLowDiscrimThres = (uint16_t) this->operator [](std::string("pixel_trigg_disc_low_DAC").append("_#").append(std::to_string(i)));
pdm.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)));
pdm.sipmTemp_1 = (uint16_t) this->operator [](std::string("SiPM_temp_1").append("_#").append(std::to_string(i)));
pdm.sipmTemp_2 = (uint16_t) this->operator [](std::string("SiPM_temp_2").append("_#").append(std::to_string(i)));
pdm.sipmTemp_3 = (uint16_t) this->operator [](std::string("SiPM_temp_3").append("_#").append(std::to_string(i)));
pdm.sipmHighVolt = (uint16_t) this->operator [](std::string("SiPM_high_volt").append("_#").append(std::to_string(i)));
pdm.sipmCurrent = (uint16_t) this->operator [](std::string("SiPM_current").append("_#").append(std::to_string(i)));
}