clang-format

This commit is contained in:
2025-10-01 20:20:29 +02:00
parent d3d9f760b3
commit 1f46266183
6 changed files with 315 additions and 236 deletions

View File

@@ -50,7 +50,8 @@ class ScanParameters {
public: public:
ScanParameters(const std::string &par); ScanParameters(const std::string &par);
ScanParameters(const bool enabled, const DACIndex dac, const int start, const int stop, const int step, const int64_t settleTime); ScanParameters(const bool enabled, const DACIndex dac, const int start,
const int stop, const int step, const int64_t settleTime);
ScanParameters() = default; ScanParameters() = default;
ScanParameters(const ScanParameters &) = default; ScanParameters(const ScanParameters &) = default;
ScanParameters &operator=(const ScanParameters &) = default; ScanParameters &operator=(const ScanParameters &) = default;

View File

@@ -216,118 +216,119 @@ enum class DetectorType {
}; };
/** /**
* @brief detector dacs indexes * @brief Enum class to define the Digital to Analog converter
*/ * The values are the same as in slsDetectorPackage
*/
enum DACIndex { enum DACIndex {
DAC_0, DAC_0,
DAC_1, DAC_1,
DAC_2, DAC_2,
DAC_3, DAC_3,
DAC_4, DAC_4,
DAC_5, DAC_5,
DAC_6, DAC_6,
DAC_7, DAC_7,
DAC_8, DAC_8,
DAC_9, DAC_9,
DAC_10, DAC_10,
DAC_11, DAC_11,
DAC_12, DAC_12,
DAC_13, DAC_13,
DAC_14, DAC_14,
DAC_15, DAC_15,
DAC_16, DAC_16,
DAC_17, DAC_17,
VSVP, VSVP,
VTRIM, VTRIM,
VRPREAMP, VRPREAMP,
VRSHAPER, VRSHAPER,
VSVN, VSVN,
VTGSTV, VTGSTV,
VCMP_LL, VCMP_LL,
VCMP_LR, VCMP_LR,
VCAL, VCAL,
VCMP_RL, VCMP_RL,
RXB_RB, RXB_RB,
RXB_LB, RXB_LB,
VCMP_RR, VCMP_RR,
VCP, VCP,
VCN, VCN,
VISHAPER, VISHAPER,
VTHRESHOLD, VTHRESHOLD,
IO_DELAY, IO_DELAY,
VREF_DS, VREF_DS,
VOUT_CM, VOUT_CM,
VIN_CM, VIN_CM,
VREF_COMP, VREF_COMP,
VB_COMP, VB_COMP,
VDD_PROT, VDD_PROT,
VIN_COM, VIN_COM,
VREF_PRECH, VREF_PRECH,
VB_PIXBUF, VB_PIXBUF,
VB_DS, VB_DS,
VREF_H_ADC, VREF_H_ADC,
VB_COMP_FE, VB_COMP_FE,
VB_COMP_ADC, VB_COMP_ADC,
VCOM_CDS, VCOM_CDS,
VREF_RSTORE, VREF_RSTORE,
VB_OPA_1ST, VB_OPA_1ST,
VREF_COMP_FE, VREF_COMP_FE,
VCOM_ADC1, VCOM_ADC1,
VREF_L_ADC, VREF_L_ADC,
VREF_CDS, VREF_CDS,
VB_CS, VB_CS,
VB_OPA_FD, VB_OPA_FD,
VCOM_ADC2, VCOM_ADC2,
VCASSH, VCASSH,
VTH2, VTH2,
VRSHAPER_N, VRSHAPER_N,
VIPRE_OUT, VIPRE_OUT,
VTH3, VTH3,
VTH1, VTH1,
VICIN, VICIN,
VCAS, VCAS,
VCAL_N, VCAL_N,
VIPRE, VIPRE,
VCAL_P, VCAL_P,
VDCSH, VDCSH,
VBP_COLBUF, VBP_COLBUF,
VB_SDA, VB_SDA,
VCASC_SFP, VCASC_SFP,
VIPRE_CDS, VIPRE_CDS,
IBIAS_SFP, IBIAS_SFP,
ADC_VPP, ADC_VPP,
HIGH_VOLTAGE, HIGH_VOLTAGE,
TEMPERATURE_ADC, TEMPERATURE_ADC,
TEMPERATURE_FPGA, TEMPERATURE_FPGA,
TEMPERATURE_FPGAEXT, TEMPERATURE_FPGAEXT,
TEMPERATURE_10GE, TEMPERATURE_10GE,
TEMPERATURE_DCDC, TEMPERATURE_DCDC,
TEMPERATURE_SODL, TEMPERATURE_SODL,
TEMPERATURE_SODR, TEMPERATURE_SODR,
TEMPERATURE_FPGA2, TEMPERATURE_FPGA2,
TEMPERATURE_FPGA3, TEMPERATURE_FPGA3,
TRIMBIT_SCAN, TRIMBIT_SCAN,
V_POWER_A = 100, V_POWER_A = 100,
V_POWER_B = 101, V_POWER_B = 101,
V_POWER_C = 102, V_POWER_C = 102,
V_POWER_D = 103, V_POWER_D = 103,
V_POWER_IO = 104, V_POWER_IO = 104,
V_POWER_CHIP = 105, V_POWER_CHIP = 105,
I_POWER_A = 106, I_POWER_A = 106,
I_POWER_B = 107, I_POWER_B = 107,
I_POWER_C = 108, I_POWER_C = 108,
I_POWER_D = 109, I_POWER_D = 109,
I_POWER_IO = 110, I_POWER_IO = 110,
V_LIMIT = 111, V_LIMIT = 111,
SLOW_ADC0 = 1000, SLOW_ADC0 = 1000,
SLOW_ADC1, SLOW_ADC1,
SLOW_ADC2, SLOW_ADC2,
SLOW_ADC3, SLOW_ADC3,
SLOW_ADC4, SLOW_ADC4,
SLOW_ADC5, SLOW_ADC5,
SLOW_ADC6, SLOW_ADC6,
SLOW_ADC7, SLOW_ADC7,
SLOW_ADC_TEMP SLOW_ADC_TEMP
}; };
enum class TimingMode { Auto, Trigger }; enum class TimingMode { Auto, Trigger };
@@ -346,7 +347,8 @@ template <> FrameDiscardPolicy StringTo(const std::string & /*mode*/);
using DataTypeVariants = std::variant<uint16_t, uint32_t>; using DataTypeVariants = std::variant<uint16_t, uint32_t>;
constexpr uint16_t ADC_MASK = 0x3FFF; // used to mask out the gain bits in Jungfrau constexpr uint16_t ADC_MASK =
0x3FFF; // used to mask out the gain bits in Jungfrau
/** /**
* @brief Convert a string to a DACIndex * @brief Convert a string to a DACIndex
@@ -354,6 +356,6 @@ constexpr uint16_t ADC_MASK = 0x3FFF; // used to mask out the gain bits in Jungf
* @return DACIndex * @return DACIndex
* @throw invalid argument error if the string does not match any DACIndex * @throw invalid argument error if the string does not match any DACIndex
*/ */
template<> DACIndex StringTo(const std::string &arg); template <> DACIndex StringTo(const std::string &arg);
} // namespace aare } // namespace aare

View File

@@ -99,7 +99,8 @@ TEST_CASE("Read data from a jungfrau 500k single port raw file",
} }
TEST_CASE("Read frame numbers from a raw file", "[.with-data]") { TEST_CASE("Read frame numbers from a raw file", "[.with-data]") {
auto fpath = test_data_path() / "raw/eiger" / "eiger_500k_16bit_master_0.json"; auto fpath =
test_data_path() / "raw/eiger" / "eiger_500k_16bit_master_0.json";
REQUIRE(std::filesystem::exists(fpath)); REQUIRE(std::filesystem::exists(fpath));
// we know this file has 3 frames with frame numbers 14, 15, 16 // we know this file has 3 frames with frame numbers 14, 15, 16
@@ -288,8 +289,7 @@ TEST_CASE("check find_geometry", "[.with-data]") {
} }
} }
TEST_CASE("Open multi module file with ROI", TEST_CASE("Open multi module file with ROI", "[.with-data]") {
"[.with-data]") {
auto fpath = test_data_path() / "raw/SingleChipROI/Data_master_0.json"; auto fpath = test_data_path() / "raw/SingleChipROI/Data_master_0.json";
REQUIRE(std::filesystem::exists(fpath)); REQUIRE(std::filesystem::exists(fpath));

View File

@@ -64,7 +64,11 @@ const std::string &RawFileNameComponents::base_name() const {
const std::string &RawFileNameComponents::ext() const { return m_ext; } const std::string &RawFileNameComponents::ext() const { return m_ext; }
int RawFileNameComponents::file_index() const { return m_file_index; } int RawFileNameComponents::file_index() const { return m_file_index; }
ScanParameters::ScanParameters(const bool enabled, const DACIndex dac, const int start, const int stop, const int step, const int64_t settleTime) : m_enabled(enabled), m_dac(dac), m_start(start), m_stop(stop), m_step(step), m_settleTime(settleTime) {}; ScanParameters::ScanParameters(const bool enabled, const DACIndex dac,
const int start, const int stop, const int step,
const int64_t settleTime)
: m_enabled(enabled), m_dac(dac), m_start(start), m_stop(stop),
m_step(step), m_settleTime(settleTime){};
// "[enabled\ndac dac 4\nstart 500\nstop 2200\nstep 5\nsettleTime 100us\n]" // "[enabled\ndac dac 4\nstart 500\nstop 2200\nstep 5\nsettleTime 100us\n]"
ScanParameters::ScanParameters(const std::string &par) { ScanParameters::ScanParameters(const std::string &par) {
@@ -91,7 +95,7 @@ void ScanParameters::increment_stop() { m_stop += 1; }
int ScanParameters::step() const { return m_step; } int ScanParameters::step() const { return m_step; }
DACIndex ScanParameters::dac() const { return m_dac; } DACIndex ScanParameters::dac() const { return m_dac; }
bool ScanParameters::enabled() const { return m_enabled; } bool ScanParameters::enabled() const { return m_enabled; }
int64_t ScanParameters::settleTime() const {return m_settleTime; } int64_t ScanParameters::settleTime() const { return m_settleTime; }
RawMasterFile::RawMasterFile(const std::filesystem::path &fpath) RawMasterFile::RawMasterFile(const std::filesystem::path &fpath)
: m_fnc(fpath) { : m_fnc(fpath) {
@@ -185,7 +189,8 @@ void RawMasterFile::parse_json(const std::filesystem::path &fpath) {
j["Geometry"]["x"]}; // TODO: isnt it only available for version > 7.1? j["Geometry"]["x"]}; // TODO: isnt it only available for version > 7.1?
// - try block default should be 1x1 // - try block default should be 1x1
m_image_size_in_bytes = v < 8.0 ? j["Image Size in bytes"] : j["Image Size"]; m_image_size_in_bytes =
v < 8.0 ? j["Image Size in bytes"] : j["Image Size"];
m_frames_in_file = j["Frames in File"]; m_frames_in_file = j["Frames in File"];
m_pixels_y = j["Pixels"]["y"]; m_pixels_y = j["Pixels"]["y"];
@@ -259,13 +264,18 @@ void RawMasterFile::parse_json(const std::filesystem::path &fpath) {
// keep the optional empty // keep the optional empty
} }
try { try {
if(v < 8.0) { if (v < 8.0) {
std::string scan_parameters = j.at("Scan Parameters"); std::string scan_parameters = j.at("Scan Parameters");
m_scan_parameters = ScanParameters(scan_parameters); m_scan_parameters = ScanParameters(scan_parameters);
} } else {
else {
auto json_obj = j.at("Scan Parameters"); auto json_obj = j.at("Scan Parameters");
m_scan_parameters = ScanParameters(json_obj.at("enable").get<int>(), static_cast<DACIndex>(json_obj.at("dacInd").get<int>()), json_obj.at("start offset").get<int>(), json_obj.at("stop offset").get<int>(), json_obj.at("step size").get<int>(), json_obj.at("dac settle time ns").get<int>()); m_scan_parameters = ScanParameters(
json_obj.at("enable").get<int>(),
static_cast<DACIndex>(json_obj.at("dacInd").get<int>()),
json_obj.at("start offset").get<int>(),
json_obj.at("stop offset").get<int>(),
json_obj.at("step size").get<int>(),
json_obj.at("dac settle time ns").get<int>());
} }
if (v < 7.21) { if (v < 7.21) {
m_scan_parameters m_scan_parameters
@@ -286,15 +296,14 @@ void RawMasterFile::parse_json(const std::filesystem::path &fpath) {
} }
try { try {
ROI tmp_roi; ROI tmp_roi;
if(v < 8.0) { if (v < 8.0) {
auto obj = j.at("Receiver Roi"); auto obj = j.at("Receiver Roi");
tmp_roi.xmin = obj.at("xmin"); tmp_roi.xmin = obj.at("xmin");
tmp_roi.xmax = obj.at("xmax"); tmp_roi.xmax = obj.at("xmax");
tmp_roi.ymin = obj.at("ymin"); tmp_roi.ymin = obj.at("ymin");
tmp_roi.ymax = obj.at("ymax"); tmp_roi.ymax = obj.at("ymax");
} } else {
else { // TODO: for now only handle single ROI
//TODO: for now only handle single ROI
auto obj = j.at("Receiver Rois"); auto obj = j.at("Receiver Rois");
tmp_roi.xmin = obj[0].at("xmin"); tmp_roi.xmin = obj[0].at("xmin");
tmp_roi.xmax = obj[0].at("xmax"); tmp_roi.xmax = obj[0].at("xmax");

View File

@@ -224,9 +224,11 @@ TEST_CASE("Parse a master file in .raw format", "[.integration]") {
// Packets Caught Mask : 64 bytes // Packets Caught Mask : 64 bytes
} }
TEST_CASE("Parse a master file in new .json format", "[.integration][.width-data]") { TEST_CASE("Parse a master file in new .json format",
"[.integration][.width-data]") {
auto file_path = test_data_path() / "raw" / "newmythen03" / "run_87_master_0.json"; auto file_path =
test_data_path() / "raw" / "newmythen03" / "run_87_master_0.json";
REQUIRE(std::filesystem::exists(file_path)); REQUIRE(std::filesystem::exists(file_path));
RawMasterFile f(file_path); RawMasterFile f(file_path);
@@ -326,4 +328,3 @@ TEST_CASE("Read eiger master file", "[.integration]") {
// } // }
// } // }
} }

View File

@@ -115,120 +115,186 @@ template <> FrameDiscardPolicy StringTo(const std::string &arg) {
// template <> TimingMode StringTo<TimingMode>(std::string mode); // template <> TimingMode StringTo<TimingMode>(std::string mode);
template<> DACIndex StringTo(const std::string &arg) { template <> DACIndex StringTo(const std::string &arg) {
if(arg == "dac 0") if (arg == "dac 0")
return DACIndex::DAC_0; return DACIndex::DAC_0;
else if(arg == "dac 1") else if (arg == "dac 1")
return DACIndex::DAC_1; return DACIndex::DAC_1;
else if(arg == "dac 2") else if (arg == "dac 2")
return DACIndex::DAC_2; return DACIndex::DAC_2;
else if(arg == "dac 3") else if (arg == "dac 3")
return DACIndex::DAC_3; return DACIndex::DAC_3;
else if(arg == "dac 4") else if (arg == "dac 4")
return DACIndex::DAC_4; return DACIndex::DAC_4;
else if(arg == "dac 5") else if (arg == "dac 5")
return DACIndex::DAC_5; return DACIndex::DAC_5;
else if(arg == "dac 6") else if (arg == "dac 6")
return DACIndex::DAC_6; return DACIndex::DAC_6;
else if(arg == "dac 7") else if (arg == "dac 7")
return DACIndex::DAC_7; return DACIndex::DAC_7;
else if(arg == "dac 8") else if (arg == "dac 8")
return DACIndex::DAC_8; return DACIndex::DAC_8;
else if(arg == "dac 9") else if (arg == "dac 9")
return DACIndex::DAC_9; return DACIndex::DAC_9;
else if(arg == "dac 10") else if (arg == "dac 10")
return DACIndex::DAC_10; return DACIndex::DAC_10;
else if(arg == "dac 11") else if (arg == "dac 11")
return DACIndex::DAC_11; return DACIndex::DAC_11;
else if(arg == "dac 12") else if (arg == "dac 12")
return DACIndex::DAC_12; return DACIndex::DAC_12;
else if(arg == "dac 13") else if (arg == "dac 13")
return DACIndex::DAC_13; return DACIndex::DAC_13;
else if(arg == "dac 14") else if (arg == "dac 14")
return DACIndex::DAC_14; return DACIndex::DAC_14;
else if(arg == "dac 15") else if (arg == "dac 15")
return DACIndex::DAC_15; return DACIndex::DAC_15;
else if(arg == "dac 16") else if (arg == "dac 16")
return DACIndex::DAC_16; return DACIndex::DAC_16;
else if(arg == "dac 17") else if (arg == "dac 17")
return DACIndex::DAC_17; return DACIndex::DAC_17;
else if(arg == "vsvp") else if (arg == "vsvp")
return DACIndex::VSVP; return DACIndex::VSVP;
else if(arg == "vtrim") else if (arg == "vtrim")
return DACIndex::VTRIM; return DACIndex::VTRIM;
else if(arg == "vrpreamp") else if (arg == "vrpreamp")
return DACIndex::VRPREAMP; return DACIndex::VRPREAMP;
else if(arg == "vrshaper") else if (arg == "vrshaper")
return DACIndex::VRSHAPER; return DACIndex::VRSHAPER;
else if (arg == "vsvn") return DACIndex::VSVN; else if (arg == "vsvn")
else if (arg == "vtgstv") return DACIndex::VTGSTV; return DACIndex::VSVN;
else if (arg == "vcmp_ll") return DACIndex::VCMP_LL; else if (arg == "vtgstv")
else if (arg == "vcmp_lr") return DACIndex::VCMP_LR; return DACIndex::VTGSTV;
else if (arg == "vcal") return DACIndex::VCAL; else if (arg == "vcmp_ll")
else if (arg == "vcmp_rl") return DACIndex::VCMP_RL; return DACIndex::VCMP_LL;
else if (arg == "rxb_rb") return DACIndex::RXB_RB; else if (arg == "vcmp_lr")
else if (arg == "rxb_lb") return DACIndex::RXB_LB; return DACIndex::VCMP_LR;
else if (arg == "vcmp_rr") return DACIndex::VCMP_RR; else if (arg == "vcal")
else if (arg == "vcp") return DACIndex::VCP; return DACIndex::VCAL;
else if (arg == "vcn") return DACIndex::VCN; else if (arg == "vcmp_rl")
else if (arg == "vishaper") return DACIndex::VISHAPER; return DACIndex::VCMP_RL;
else if (arg == "vthreshold") return DACIndex::VTHRESHOLD; else if (arg == "rxb_rb")
else if (arg == "vref_ds") return DACIndex::VREF_DS; return DACIndex::RXB_RB;
else if (arg == "vout_cm") return DACIndex::VOUT_CM; else if (arg == "rxb_lb")
else if (arg == "vin_cm") return DACIndex::VIN_CM; return DACIndex::RXB_LB;
else if (arg == "vref_comp") return DACIndex::VREF_COMP; else if (arg == "vcmp_rr")
else if (arg == "vb_comp") return DACIndex::VB_COMP; return DACIndex::VCMP_RR;
else if (arg == "vdd_prot") return DACIndex::VDD_PROT; else if (arg == "vcp")
else if (arg == "vin_com") return DACIndex::VIN_COM; return DACIndex::VCP;
else if (arg == "vref_prech") return DACIndex::VREF_PRECH; else if (arg == "vcn")
else if (arg == "vb_pixbuf") return DACIndex::VB_PIXBUF; return DACIndex::VCN;
else if (arg == "vb_ds") return DACIndex::VB_DS; else if (arg == "vishaper")
else if (arg == "vref_h_adc") return DACIndex::VREF_H_ADC; return DACIndex::VISHAPER;
else if (arg == "vb_comp_fe") return DACIndex::VB_COMP_FE; else if (arg == "vthreshold")
else if (arg == "vb_comp_adc") return DACIndex::VB_COMP_ADC; return DACIndex::VTHRESHOLD;
else if (arg == "vcom_cds") return DACIndex::VCOM_CDS; else if (arg == "vref_ds")
else if (arg == "vref_rstore") return DACIndex::VREF_RSTORE; return DACIndex::VREF_DS;
else if (arg == "vb_opa_1st") return DACIndex::VB_OPA_1ST; else if (arg == "vout_cm")
else if (arg == "vref_comp_fe") return DACIndex::VREF_COMP_FE; return DACIndex::VOUT_CM;
else if (arg == "vcom_adc1") return DACIndex::VCOM_ADC1; else if (arg == "vin_cm")
else if (arg == "vref_l_adc") return DACIndex::VREF_L_ADC; return DACIndex::VIN_CM;
else if (arg == "vref_cds") return DACIndex::VREF_CDS; else if (arg == "vref_comp")
else if (arg == "vb_cs") return DACIndex::VB_CS; return DACIndex::VREF_COMP;
else if (arg == "vb_opa_fd") return DACIndex::VB_OPA_FD; else if (arg == "vb_comp")
else if (arg == "vcom_adc2") return DACIndex::VCOM_ADC2; return DACIndex::VB_COMP;
else if (arg == "vcassh") return DACIndex::VCASSH; else if (arg == "vdd_prot")
else if (arg == "vth2") return DACIndex::VTH2; return DACIndex::VDD_PROT;
else if (arg == "vrshaper_n") return DACIndex::VRSHAPER_N; else if (arg == "vin_com")
else if (arg == "vipre_out") return DACIndex::VIPRE_OUT; return DACIndex::VIN_COM;
else if (arg == "vth3") return DACIndex::VTH3; else if (arg == "vref_prech")
else if (arg == "vth1") return DACIndex::VTH1; return DACIndex::VREF_PRECH;
else if (arg == "vicin") return DACIndex::VICIN; else if (arg == "vb_pixbuf")
else if (arg == "vcas") return DACIndex::VCAS; return DACIndex::VB_PIXBUF;
else if (arg == "vcal_n") return DACIndex::VCAL_N; else if (arg == "vb_ds")
else if (arg == "vipre") return DACIndex::VIPRE; return DACIndex::VB_DS;
else if (arg == "vcal_p") return DACIndex::VCAL_P; else if (arg == "vref_h_adc")
else if (arg == "vdcsh") return DACIndex::VDCSH; return DACIndex::VREF_H_ADC;
else if (arg == "vbp_colbuf") return DACIndex::VBP_COLBUF; else if (arg == "vb_comp_fe")
else if (arg == "vb_sda") return DACIndex::VB_SDA; return DACIndex::VB_COMP_FE;
else if (arg == "vcasc_sfp") return DACIndex::VCASC_SFP; else if (arg == "vb_comp_adc")
else if (arg == "vipre_cds") return DACIndex::VIPRE_CDS; return DACIndex::VB_COMP_ADC;
else if (arg == "ibias_sfp") return DACIndex::IBIAS_SFP; else if (arg == "vcom_cds")
else if (arg == "trimbits") return DACIndex::TRIMBIT_SCAN; return DACIndex::VCOM_CDS;
else if (arg == "highvoltage") return DACIndex::HIGH_VOLTAGE; else if (arg == "vref_rstore")
else if (arg == "iodelay") return DACIndex::IO_DELAY; return DACIndex::VREF_RSTORE;
else if (arg == "temp_adc") return DACIndex::TEMPERATURE_ADC; else if (arg == "vb_opa_1st")
else if (arg == "temp_fpga") return DACIndex::TEMPERATURE_FPGA; return DACIndex::VB_OPA_1ST;
else if (arg == "temp_fpgaext") return DACIndex::TEMPERATURE_FPGAEXT; else if (arg == "vref_comp_fe")
else if (arg == "temp_10ge") return DACIndex::TEMPERATURE_10GE; return DACIndex::VREF_COMP_FE;
else if (arg == "temp_dcdc") return DACIndex::TEMPERATURE_DCDC; else if (arg == "vcom_adc1")
else if (arg == "temp_sodl") return DACIndex::TEMPERATURE_SODL; return DACIndex::VCOM_ADC1;
else if (arg == "temp_sodr") return DACIndex::TEMPERATURE_SODR; else if (arg == "vref_l_adc")
else if (arg == "temp_fpgafl") return DACIndex::TEMPERATURE_FPGA2; return DACIndex::VREF_L_ADC;
else if (arg == "temp_fpgafr") return DACIndex::TEMPERATURE_FPGA3; else if (arg == "vref_cds")
return DACIndex::VREF_CDS;
else if (arg == "vb_cs")
return DACIndex::VB_CS;
else if (arg == "vb_opa_fd")
return DACIndex::VB_OPA_FD;
else if (arg == "vcom_adc2")
return DACIndex::VCOM_ADC2;
else if (arg == "vcassh")
return DACIndex::VCASSH;
else if (arg == "vth2")
return DACIndex::VTH2;
else if (arg == "vrshaper_n")
return DACIndex::VRSHAPER_N;
else if (arg == "vipre_out")
return DACIndex::VIPRE_OUT;
else if (arg == "vth3")
return DACIndex::VTH3;
else if (arg == "vth1")
return DACIndex::VTH1;
else if (arg == "vicin")
return DACIndex::VICIN;
else if (arg == "vcas")
return DACIndex::VCAS;
else if (arg == "vcal_n")
return DACIndex::VCAL_N;
else if (arg == "vipre")
return DACIndex::VIPRE;
else if (arg == "vcal_p")
return DACIndex::VCAL_P;
else if (arg == "vdcsh")
return DACIndex::VDCSH;
else if (arg == "vbp_colbuf")
return DACIndex::VBP_COLBUF;
else if (arg == "vb_sda")
return DACIndex::VB_SDA;
else if (arg == "vcasc_sfp")
return DACIndex::VCASC_SFP;
else if (arg == "vipre_cds")
return DACIndex::VIPRE_CDS;
else if (arg == "ibias_sfp")
return DACIndex::IBIAS_SFP;
else if (arg == "trimbits")
return DACIndex::TRIMBIT_SCAN;
else if (arg == "highvoltage")
return DACIndex::HIGH_VOLTAGE;
else if (arg == "iodelay")
return DACIndex::IO_DELAY;
else if (arg == "temp_adc")
return DACIndex::TEMPERATURE_ADC;
else if (arg == "temp_fpga")
return DACIndex::TEMPERATURE_FPGA;
else if (arg == "temp_fpgaext")
return DACIndex::TEMPERATURE_FPGAEXT;
else if (arg == "temp_10ge")
return DACIndex::TEMPERATURE_10GE;
else if (arg == "temp_dcdc")
return DACIndex::TEMPERATURE_DCDC;
else if (arg == "temp_sodl")
return DACIndex::TEMPERATURE_SODL;
else if (arg == "temp_sodr")
return DACIndex::TEMPERATURE_SODR;
else if (arg == "temp_fpgafl")
return DACIndex::TEMPERATURE_FPGA2;
else if (arg == "temp_fpgafr")
return DACIndex::TEMPERATURE_FPGA3;
else if (arg == "temp_slowadc") else if (arg == "temp_slowadc")
return DACIndex::SLOW_ADC_TEMP; return DACIndex::SLOW_ADC_TEMP;
else else
throw std::invalid_argument("Could not decode DACIndex from: \"" + arg + "\""); throw std::invalid_argument("Could not decode DACIndex from: \"" + arg +
"\"");
} }
} // namespace aare } // namespace aare