diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c index df8358cb1..7ccae09df 100644 --- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c @@ -434,12 +434,10 @@ void setupDetector() { // power on chip powerChip(1); -#ifndef VIRTUAL // also sets default dac and on chip dac values if (readConfigFile() == FAIL) { return; } -#endif setBurstMode(DEFAULT_BURST_MODE); setSettings(DEFAULT_SETTINGS); diff --git a/slsDetectorSoftware/tests/test-CmdProxy-chiptestboard.cpp b/slsDetectorSoftware/tests/test-CmdProxy-chiptestboard.cpp index 31de04247..b6446ea5f 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-chiptestboard.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-chiptestboard.cpp @@ -15,7 +15,9 @@ using sls::Detector; using test::GET; using test::PUT; -TEST_CASE("Setting and reading back Chip test board dacs", "[.cmd][.dacs]") { +/* dacs */ + +TEST_CASE("Setting and reading back Chip test board dacs", "[.cmd][.dacs][.new]") { // dac 0 to dac 17 Detector det; @@ -23,12 +25,12 @@ TEST_CASE("Setting and reading back Chip test board dacs", "[.cmd][.dacs]") { auto det_type = det.getDetectorType().squash(); if (det_type == defs::CHIPTESTBOARD) { for (int i = 0; i < 18; ++i) { - SECTION("dac " + std::to_string(i)) { test_dac(static_cast(i), "dac " + std::to_string(i), 0); } + SECTION("dac " + std::to_string(i)) { test_dac(static_cast(i), "dac", 0); } } // eiger - REQUIRE_THROWS(proxy.Call("vthreshold", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vsvp", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vsvn", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vthreshold", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vsvp", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vsvn", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("vtr", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("vrf", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("vrs", {}, -1, GET)); @@ -51,30 +53,30 @@ TEST_CASE("Setting and reading back Chip test board dacs", "[.cmd][.dacs]") { REQUIRE_THROWS(proxy.Call("vref_prech", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("vb_pixbuf", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("vb_ds", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_ds", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_comp", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vref_ds", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vref_comp", {}, -1, GET)); // gotthard - REQUIRE_THROWS(proxy.Call("vref_ds", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcascn_pb", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcascp_pb", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vout_cm", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcasc_out", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vin_cm", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_comp", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("ib_test_c", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vref_ds", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vcascn_pb", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vcascp_pb", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vout_cm", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vcasc_out", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vin_cm", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vref_comp", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("ib_test_c", {}, -1, GET)); // mythen3 - REQUIRE_THROWS(proxy.Call("vpreamp", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vshaper", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vshaperneg", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vpreamp", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vshaper", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vshaperneg", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("vipre", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("viinsh", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("vdcsh", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vth1", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vth1", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("vth2", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("vth3", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("vpl", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vph", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vtrim", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vph", {}, -1, GET)); + //REQUIRE_THROWS(proxy.Call("vtrim", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("vcassh", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("vcas", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("vicin", {}, -1, GET)); diff --git a/slsDetectorSoftware/tests/test-CmdProxy-eiger.cpp b/slsDetectorSoftware/tests/test-CmdProxy-eiger.cpp index 10bbb7cf6..7b254acff 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-eiger.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-eiger.cpp @@ -13,6 +13,245 @@ using sls::CmdProxy; using sls::Detector; using test::GET; using test::PUT; + + +/** temperature */ + +TEST_CASE("temp_fpgaext", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + REQUIRE_NOTHROW(proxy.Call("temp_fpgaext", {}, -1, GET)); + std::ostringstream oss; + REQUIRE_NOTHROW(proxy.Call("temp_fpgaext", {}, 0, GET, oss)); + std::string s = (oss.str()).erase (0, strlen("temp_fpgaext ")); + REQUIRE(std::stoi(s) != -1); + } else { + REQUIRE_THROWS(proxy.Call("temp_fpgaext", {}, -1, GET)); + } +} + +TEST_CASE("temp_10ge", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + REQUIRE_NOTHROW(proxy.Call("temp_10ge", {}, -1, GET)); + std::ostringstream oss; + REQUIRE_NOTHROW(proxy.Call("temp_10ge", {}, 0, GET, oss)); + std::string s = (oss.str()).erase (0, strlen("temp_10ge ")); + REQUIRE(std::stoi(s) != -1); + } else { + REQUIRE_THROWS(proxy.Call("temp_10ge", {}, -1, GET)); + } +} + +TEST_CASE("temp_dcdc", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + REQUIRE_NOTHROW(proxy.Call("temp_dcdc", {}, -1, GET)); + std::ostringstream oss; + REQUIRE_NOTHROW(proxy.Call("temp_dcdc", {}, 0, GET, oss)); + std::string s = (oss.str()).erase (0, strlen("temp_dcdc ")); + REQUIRE(std::stoi(s) != -1); + } else { + REQUIRE_THROWS(proxy.Call("temp_dcdc", {}, -1, GET)); + } +} + +TEST_CASE("temp_sodl", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + REQUIRE_NOTHROW(proxy.Call("temp_sodl", {}, -1, GET)); + std::ostringstream oss; + REQUIRE_NOTHROW(proxy.Call("temp_sodl", {}, 0, GET, oss)); + std::string s = (oss.str()).erase (0, strlen("temp_sodl ")); + REQUIRE(std::stoi(s) != -1); + } else { + REQUIRE_THROWS(proxy.Call("temp_sodl", {}, -1, GET)); + } +} + +TEST_CASE("temp_sodr", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + REQUIRE_NOTHROW(proxy.Call("temp_sodr", {}, -1, GET)); + std::ostringstream oss; + REQUIRE_NOTHROW(proxy.Call("temp_sodr", {}, 0, GET, oss)); + std::string s = (oss.str()).erase (0, strlen("temp_sodr ")); + REQUIRE(std::stoi(s) != -1); + } else { + REQUIRE_THROWS(proxy.Call("temp_sodr", {}, -1, GET)); + } +} + +TEST_CASE("temp_fpgafl", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + REQUIRE_NOTHROW(proxy.Call("temp_fpgafl", {}, -1, GET)); + std::ostringstream oss; + REQUIRE_NOTHROW(proxy.Call("temp_fpgafl", {}, 0, GET, oss)); + std::string s = (oss.str()).erase (0, strlen("temp_fpgafl ")); + REQUIRE(std::stoi(s) != -1); + } else { + REQUIRE_THROWS(proxy.Call("temp_fpgafl", {}, -1, GET)); + } +} + +TEST_CASE("temp_fpgafr", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + REQUIRE_NOTHROW(proxy.Call("temp_fpgafr", {}, -1, GET)); + std::ostringstream oss; + REQUIRE_NOTHROW(proxy.Call("temp_fpgafr", {}, 0, GET, oss)); + std::string s = (oss.str()).erase (0, strlen("temp_fpgafr ")); + REQUIRE(std::stoi(s) != -1); + } else { + REQUIRE_THROWS(proxy.Call("temp_fpgafr", {}, -1, GET)); + } +} + +/* dacs */ + +TEST_CASE("Setting and reading back EIGER dacs", "[.cmd][.dacs][.new]") { + // vsvp, vtr, vrf, vrs, vsvn, vtgstv, vcmp_ll, vcmp_lr, vcal, vcmp_rl, + // rxb_rb, rxb_lb, vcmp_rr, vcp, vcn, vis, vthreshold + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + SECTION("vsvp") { test_dac(defs::SVP, "vsvp", 5); } + SECTION("vtr") { test_dac(defs::VRF, "vtr", 1200); } + SECTION("vrf") { test_dac(defs::VRF, "vrf", 1500); } + SECTION("vrs") { test_dac(defs::VRF, "vrs", 1510); } + SECTION("vsvn") { test_dac(defs::SVN, "vsvn", 3800); } + SECTION("vtgstv") { test_dac(defs::VTGSTV, "vtgstv", 2550); } + SECTION("vcmp_ll") { test_dac(defs::VCMP_LL, "vcmp_ll", 1400); } + SECTION("vcmp_lr") { test_dac(defs::VCMP_LR, "vcmp_lr", 1400); } + SECTION("vcal") { test_dac(defs::CAL, "vcal", 1400); } + SECTION("vcmp_rl") { test_dac(defs::VCMP_RL, "vcmp_rl", 1400); } + SECTION("rxb_rb") { test_dac(defs::RXB_RB, "rxb_rb", 1400); } + SECTION("rxb_lb") { test_dac(defs::RXB_LB, "rxb_lb", 1400); } + SECTION("vcmp_rr") { test_dac(defs::VCMP_RR, "vcmp_rr", 1400); } + SECTION("vcp") { test_dac(defs::VCP, "vcp", 1400); } + SECTION("vcn") { test_dac(defs::VCN, "vcn", 1400); } + SECTION("vis") { test_dac(defs::VIS, "vis", 1400); } + SECTION("iodelay") { test_dac(defs::IO_DELAY, "iodelay", 1400); } + SECTION("vthreshold") { + // Read out individual vcmp to be able to reset after + // the test is done + auto vcmp_ll = det.getDAC(defs::VCMP_LL, false); + auto vcmp_lr = det.getDAC(defs::VCMP_LR, false); + auto vcmp_rl = det.getDAC(defs::VCMP_RL, false); + auto vcmp_rr = det.getDAC(defs::VCMP_RR, false); + auto vcp = det.getDAC(defs::VCP, false); + + { + std::ostringstream oss; + proxy.Call("vthreshold", {"1234"}, -1, PUT, oss); + REQUIRE(oss.str() == "vthreshold 1234\n"); + } + { + std::ostringstream oss; + proxy.Call("vthreshold", {}, -1, GET, oss); + REQUIRE(oss.str() == "vthreshold 1234\n"); + } + + // Reset dacs after test + for (int i = 0; i != det.size(); ++i) { + det.setDAC(defs::VCMP_LL, vcmp_ll[i], false, {i}); + det.setDAC(defs::VCMP_LR, vcmp_ll[i], false, {i}); + det.setDAC(defs::VCMP_RL, vcmp_ll[i], false, {i}); + det.setDAC(defs::VCMP_RR, vcmp_ll[i], false, {i}); + det.setDAC(defs::VCP, vcp[i], false, {i}); + } + } + // gotthard + REQUIRE_THROWS(proxy.Call("vref_ds", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcascn_pb", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcascp_pb", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vout_cm", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcasc_out", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vin_cm", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vref_comp", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("ib_test_c", {}, -1, GET)); + // mythen3 + REQUIRE_THROWS(proxy.Call("vpreamp", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vshaper", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vshaperneg", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vipre", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("viinsh", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vdcsh", {}, -1, GET)); + // REQUIRE_THROWS(proxy.Call("vth1", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vth2", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vth3", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vpl", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vph", {}, -1, GET)); + // REQUIRE_THROWS(proxy.Call("vtrim", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcassh", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcas", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vicin", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vipre_out", {}, -1, GET)); + // gotthard2 + REQUIRE_THROWS(proxy.Call("vref_h_adc", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vb_comp_fe", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vb_comp_adc", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcom_cds", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vref_rstore", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vb_opa_1st", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vref_comp_fe", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcom_adc1", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vref_l_adc", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vref_cds", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vb_cs", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vb_opa_fd", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcom_adc2", {}, -1, GET)); + // jungfrau + REQUIRE_THROWS(proxy.Call("vb_comp", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vdd_prot", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vin_com", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vref_prech", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vb_pixbuf", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vb_ds", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vref_ds", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vref_comp", {}, -1, GET)); + } +} + + + + + + + + + + + + + + + + + + + + + + + + TEST_CASE("Eiger transmission delay", "[.cmd]") { Detector det; @@ -280,110 +519,7 @@ TEST_CASE("quad", "[.cmd]") { } } -TEST_CASE("Setting and reading back EIGER dacs", "[.cmd][.dacs]") { - // vsvp, vtr, vrf, vrs, vsvn, vtgstv, vcmp_ll, vcmp_lr, vcal, vcmp_rl, - // rxb_rb, rxb_lb, vcmp_rr, vcp, vcn, vis, vthreshold - Detector det; - CmdProxy proxy(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::EIGER) { - SECTION("vsvp") { test_dac(defs::SVP, "vsvp", 5); } - SECTION("vtr") { test_dac(defs::VRF, "vtr", 1200); } - SECTION("vrf") { test_dac(defs::VRF, "vrf", 1500); } - SECTION("vrs") { test_dac(defs::VRF, "vrs", 1510); } - SECTION("vsvn") { test_dac(defs::SVN, "vsvn", 3800); } - SECTION("vtgstv") { test_dac(defs::VTGSTV, "vtgstv", 2550); } - SECTION("vcmp_ll") { test_dac(defs::VCMP_LL, "vcmp_ll", 1400); } - SECTION("vcmp_lr") { test_dac(defs::VCMP_LR, "vcmp_lr", 1400); } - SECTION("vcal") { test_dac(defs::CAL, "vcal", 1400); } - SECTION("vcmp_rl") { test_dac(defs::VCMP_RL, "vcmp_rl", 1400); } - SECTION("rxb_rb") { test_dac(defs::RXB_RB, "rxb_rb", 1400); } - SECTION("rxb_lb") { test_dac(defs::RXB_LB, "rxb_lb", 1400); } - SECTION("vcmp_rr") { test_dac(defs::VCMP_RR, "vcmp_rr", 1400); } - SECTION("vcp") { test_dac(defs::VCP, "vcp", 1400); } - SECTION("vcn") { test_dac(defs::VCN, "vcn", 1400); } - SECTION("vis") { test_dac(defs::VIS, "vis", 1400); } - SECTION("iodelay") { test_dac(defs::IO_DELAY, "iodelay", 1400); } - SECTION("vthreshold") { - // Read out individual vcmp to be able to reset after - // the test is done - auto vcmp_ll = det.getDAC(defs::VCMP_LL, false); - auto vcmp_lr = det.getDAC(defs::VCMP_LR, false); - auto vcmp_rl = det.getDAC(defs::VCMP_RL, false); - auto vcmp_rr = det.getDAC(defs::VCMP_RR, false); - auto vcp = det.getDAC(defs::VCP, false); - { - std::ostringstream oss; - proxy.Call("vthreshold", {"1234"}, -1, PUT, oss); - REQUIRE(oss.str() == "vthreshold 1234\n"); - } - { - std::ostringstream oss; - proxy.Call("vthreshold", {}, -1, GET, oss); - REQUIRE(oss.str() == "vthreshold 1234\n"); - } - - // Reset dacs after test - for (int i = 0; i != det.size(); ++i) { - det.setDAC(defs::VCMP_LL, vcmp_ll[i], false, {i}); - det.setDAC(defs::VCMP_LR, vcmp_ll[i], false, {i}); - det.setDAC(defs::VCMP_RL, vcmp_ll[i], false, {i}); - det.setDAC(defs::VCMP_RR, vcmp_ll[i], false, {i}); - det.setDAC(defs::VCP, vcp[i], false, {i}); - } - } - // gotthard - REQUIRE_THROWS(proxy.Call("vref_ds", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcascn_pb", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcascp_pb", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vout_cm", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcasc_out", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vin_cm", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_comp", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("ib_test_c", {}, -1, GET)); - // mythen3 - REQUIRE_THROWS(proxy.Call("vpreamp", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vshaper", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vshaperneg", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vipre", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("viinsh", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vdcsh", {}, -1, GET)); - // REQUIRE_THROWS(proxy.Call("vth1", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vth2", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vth3", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vpl", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vph", {}, -1, GET)); - // REQUIRE_THROWS(proxy.Call("vtrim", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcassh", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcas", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vicin", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vipre_out", {}, -1, GET)); - // gotthard2 - REQUIRE_THROWS(proxy.Call("vref_h_adc", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vb_comp_fe", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vb_comp_adc", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcom_cds", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_rstore", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vb_opa_1st", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_comp_fe", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcom_adc1", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_l_adc", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_cds", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vb_cs", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vb_opa_fd", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcom_adc2", {}, -1, GET)); - // jungfrau - REQUIRE_THROWS(proxy.Call("vb_comp", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vdd_prot", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vin_com", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_prech", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vb_pixbuf", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vb_ds", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_ds", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_comp", {}, -1, GET)); - } -} // TEST_CASE("trigger", "[.cmd]") { // Detector det; diff --git a/slsDetectorSoftware/tests/test-CmdProxy-global.cpp b/slsDetectorSoftware/tests/test-CmdProxy-global.cpp index c0104b85d..7ff52aef9 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-global.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-global.cpp @@ -16,12 +16,47 @@ void test_dac(defs::dacIndex index, const std::string &dacname, int dacvalue) { std::ostringstream oss_set, oss_get; auto dacstr = std::to_string(dacvalue); auto previous = det.getDAC(index, false); - proxy.Call(dacname, {dacstr}, -1, PUT, oss_set); - REQUIRE(oss_set.str() == dacname + " " + dacstr + "\n"); - proxy.Call(dacname, {}, -1, GET, oss_get); - REQUIRE(oss_get.str() == dacname + " " + dacstr + "\n"); + // chip test board + if (dacname == "dac") { + auto dacIndexstr = std::to_string(static_cast(index)); + proxy.Call(dacname, {dacIndexstr, dacstr}, -1, PUT, oss_set); + REQUIRE(oss_set.str() == dacname + " " + dacIndexstr + " " + dacstr + "\n"); + proxy.Call(dacname, {dacIndexstr}, -1, GET, oss_get); + REQUIRE(oss_get.str() == dacname + " " + dacIndexstr + " " + dacstr + "\n"); + } + // other detectors + else { + proxy.Call(dacname, {dacstr}, -1, PUT, oss_set); + REQUIRE(oss_set.str() == dacname + " " + dacstr + "\n"); + proxy.Call(dacname, {}, -1, GET, oss_get); + REQUIRE(oss_get.str() == dacname + " " + dacstr + "\n"); + } // Reset all dacs to previous value for (int i = 0; i != det.size(); ++i) { det.setDAC(index, previous[i], false, {i}); } } + +void test_onchip_dac(defs::dacIndex index, const std::string &dacname, int dacvalue) { + Detector det; + CmdProxy proxy(&det); + REQUIRE_THROWS(proxy.Call(dacname, {}, -1, GET)); + REQUIRE_THROWS(proxy.Call(dacname, {"10", "0x0"}, -1, PUT)); // chip index (-1 to 9) + REQUIRE_THROWS(proxy.Call(dacname, {"-1", "0x400"}, -1, PUT)); // max val is 0x3ff + + int chipIndex = -1; // for now, it is -1 only + auto prev_val = det.getOnChipDAC(index, chipIndex); + auto dacValueStr = sls::ToStringHex(dacvalue); + auto chipIndexStr = std::to_string(chipIndex); + std::ostringstream oss_set, oss_get; + std::cout << "chipindexstr:"< on_chip_dac_names = {"vchip_comp_fe", "vchip_opa_1st", "vchip_opa_fd", "vchip_comp_adc", "vchip_ref_comp_fe", "vchip_cs"}; - std::vector on_chip_dac_indices = {defs::VB_COMP_FE, defs::VB_OPA_1ST, defs::VB_OPA_FD, defs::VB_COMP_ADC, defs::VREF_COMP_FE, defs::VB_CS}; - std::vector values = {0x137, 0x000, 0x134, 0x3FF, 0x100, 0x0D0}; - - for (size_t i = 0; i < on_chip_dac_names.size(); ++i) { - REQUIRE_THROWS(proxy.Call(on_chip_dac_names[i], {}, -1, GET)); - REQUIRE_THROWS(proxy.Call(on_chip_dac_names[i], {"10", "0x0"}, -1, GET)); // chip index (-1 to 9) - REQUIRE_THROWS(proxy.Call(on_chip_dac_names[i], {"-1", "0x400"}, -1, GET)); // max val is 0x3ff - - auto previous = det.getOnChipDAC(on_chip_dac_indices[i], -1); - auto dacstr = sls::ToStringHex(values[i]); - int chip_index = -1; - auto chip_index_str = std::to_string(chip_index); - - std::ostringstream oss_set, oss_get; - proxy.Call(on_chip_dac_names[i], {chip_index_str, dacstr}, -1, PUT, oss_set); - REQUIRE(oss_set.str() == on_chip_dac_names[i] + " " + chip_index_str + " " + dacstr + "\n"); - proxy.Call(on_chip_dac_names[i], {chip_index_str}, -1, GET, oss_get); - REQUIRE(oss_get.str() == on_chip_dac_names[i] + " " + chip_index_str + " " + dacstr + "\n"); - // Reset all dacs to previous value - for (int i = 0; i != det.size(); ++i) { - det.setOnChipDAC(on_chip_dac_indices[i], chip_index, previous[i], {i}); - } - } + SECTION("vchip_comp_fe") { test_onchip_dac(defs::VB_COMP_FE, "vchip_comp_fe", 0x137); } } else { REQUIRE_THROWS(proxy.Call("vchip_comp_fe", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vchip_opa_1st", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vchip_opa_fd", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vchip_comp_adc", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vchip_ref_comp_fe", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vchip_cs", {}, -1, GET)); } } +TEST_CASE("vchip_opa_1st", "[.cmd][.onchipdacs][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::GOTTHARD2) { + SECTION("vchip_opa_1st") { test_onchip_dac(defs::VB_OPA_1ST, "vchip_opa_1st", 0x000); } + } else { + REQUIRE_THROWS(proxy.Call("vchip_opa_1st", {}, -1, GET)); + } +} + +TEST_CASE("vchip_opa_fd", "[.cmd][.onchipdacs][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::GOTTHARD2) { + SECTION("vchip_opa_fd") { test_onchip_dac(defs::VB_OPA_FD, "vchip_opa_fd", 0x134); } + } else { + REQUIRE_THROWS(proxy.Call("vchip_opa_fd", {}, -1, GET)); + } +} + +TEST_CASE("vchip_comp_adc", "[.cmd][.onchipdacs][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::GOTTHARD2) { + SECTION("vchip_comp_adc") { test_onchip_dac(defs::VB_COMP_ADC, "vchip_comp_adc", 0x3FF); } + } else { + REQUIRE_THROWS(proxy.Call("vchip_comp_adc", {}, -1, GET)); + } +} + +TEST_CASE("vchip_ref_comp_fe", "[.cmd][.onchipdacs][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::GOTTHARD2) { + SECTION("vchip_ref_comp_fe") { test_onchip_dac(defs::VREF_COMP_FE, "vchip_ref_comp_fe", 0x100); } + } else { + REQUIRE_THROWS(proxy.Call("vchip_ref_comp_fe", {}, -1, GET)); + } +} + +TEST_CASE("vchip_cs", "[.cmd][.onchipdacs][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::GOTTHARD2) { + SECTION("vchip_cs") { test_onchip_dac(defs::VB_CS, "vchip_cs", 0x0D0); } + } else { + REQUIRE_THROWS(proxy.Call("vchip_cs", {}, -1, GET)); + } +} + + + + + + + + + + + + + + + + TEST_CASE("burstmode", "[.cmd]") { Detector det; diff --git a/slsDetectorSoftware/tests/test-CmdProxy-jungfrau.cpp b/slsDetectorSoftware/tests/test-CmdProxy-jungfrau.cpp index 2e5045320..e387d3462 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-jungfrau.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-jungfrau.cpp @@ -12,6 +12,114 @@ using sls::CmdProxy; using sls::Detector; using test::GET; using test::PUT; + +/* dacs */ + +TEST_CASE("Setting and reading back Jungfrau dacs", "[.cmd][.dacs][.new]") { + // vb_comp, vdd_prot, vin_com, vref_prech, vb_pixbuf, vb_ds, vref_ds, vref_comp + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::JUNGFRAU) { + SECTION("vb_comp") { test_dac(defs::VB_COMP, "vb_comp", 1220); } + SECTION("vdd_prot") { test_dac(defs::VDD_PROT, "vdd_prot", 3000); } + SECTION("vin_com") { test_dac(defs::VIN_COM, "vin_com", 1053); } + SECTION("vref_prech") { test_dac(defs::VREF_PRECH, "vref_prech", 1450); } + SECTION("vb_pixbuf") { test_dac(defs::VB_PIXBUF, "vb_pixbuf", 750); } + SECTION("vb_ds") { test_dac(defs::VB_DS, "vb_ds", 1000); } + SECTION("vref_ds") { test_dac(defs::VREF_DS, "vref_ds", 480); } + SECTION("vref_comp") { test_dac(defs::VREF_COMP, "vref_comp", 420); } + // eiger + REQUIRE_THROWS(proxy.Call("vthreshold", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vsvp", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vsvn", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vtr", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vrf", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vrs", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vtgstv", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcmp_ll", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcmp_lr", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcal", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcmp_rl", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcmp_rr", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("rxb_rb", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("rxb_lb", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcp", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcn", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vis", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("iodelay", {}, -1, GET)); + // gotthard + // REQUIRE_THROWS(proxy.Call("vref_ds", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcascn_pb", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcascp_pb", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vout_cm", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcasc_out", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vin_cm", {}, -1, GET)); + // REQUIRE_THROWS(proxy.Call("vref_comp", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("ib_test_c", {}, -1, GET)); + // mythen3 + REQUIRE_THROWS(proxy.Call("vpreamp", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vshaper", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vshaperneg", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vipre", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("viinsh", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vdcsh", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vth1", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vth2", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vth3", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vpl", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vph", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vtrim", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcassh", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcas", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vicin", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vipre_out", {}, -1, GET)); + // gotthard2 + REQUIRE_THROWS(proxy.Call("vref_h_adc", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vb_comp_fe", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vb_comp_adc", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcom_cds", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vref_rstore", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vb_opa_1st", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vref_comp_fe", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcom_adc1", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vref_l_adc", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vref_cds", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vb_cs", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vb_opa_fd", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("vcom_adc2", {}, -1, GET)); + } +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -128,78 +236,3 @@ TEST_CASE("resetfpga", "[.cmd]") { } -TEST_CASE("Setting and reading back Jungfrau dacs", "[.cmd]") { - // vb_comp, vdd_prot, vin_com, vref_prech, vb_pixbuf, vb_ds, vref_ds, vref_comp - Detector det; - CmdProxy proxy(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::JUNGFRAU) { - SECTION("vb_comp") { test_dac(defs::VB_COMP, "vb_comp", 1220); } - SECTION("vdd_prot") { test_dac(defs::VDD_PROT, "vdd_prot", 3000); } - SECTION("vin_com") { test_dac(defs::VIN_COM, "vin_com", 1053); } - SECTION("vref_prech") { test_dac(defs::VREF_PRECH, "vref_prech", 1450); } - SECTION("vb_pixbuf") { test_dac(defs::VB_PIXBUF, "vb_pixbuf", 750); } - SECTION("vb_ds") { test_dac(defs::VB_DS, "vb_ds", 1000); } - SECTION("vref_ds") { test_dac(defs::VREF_DS, "vref_ds", 480); } - SECTION("vref_comp") { test_dac(defs::VREF_COMP, "vref_comp", 420); } - // eiger - REQUIRE_THROWS(proxy.Call("vthreshold", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vsvp", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vsvn", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vtr", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vrf", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vrs", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vtgstv", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcmp_ll", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcmp_lr", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcal", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcmp_rl", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcmp_rr", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("rxb_rb", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("rxb_lb", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcp", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcn", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vis", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("iodelay", {}, -1, GET)); - // gotthard - // REQUIRE_THROWS(proxy.Call("vref_ds", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcascn_pb", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcascp_pb", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vout_cm", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcasc_out", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vin_cm", {}, -1, GET)); - // REQUIRE_THROWS(proxy.Call("vref_comp", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("ib_test_c", {}, -1, GET)); - // mythen3 - REQUIRE_THROWS(proxy.Call("vpreamp", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vshaper", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vshaperneg", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vipre", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("viinsh", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vdcsh", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vth1", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vth2", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vth3", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vpl", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vph", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vtrim", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcassh", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcas", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vicin", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vipre_out", {}, -1, GET)); - // gotthard2 - REQUIRE_THROWS(proxy.Call("vref_h_adc", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vb_comp_fe", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vb_comp_adc", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcom_cds", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_rstore", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vb_opa_1st", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_comp_fe", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcom_adc1", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_l_adc", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vref_cds", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vb_cs", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vb_opa_fd", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("vcom_adc2", {}, -1, GET)); - } -} diff --git a/slsDetectorSoftware/tests/test-CmdProxy-moench.cpp b/slsDetectorSoftware/tests/test-CmdProxy-moench.cpp index b7d62c1d9..03cd5e59b 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-moench.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-moench.cpp @@ -15,7 +15,9 @@ using sls::Detector; using test::GET; using test::PUT; -TEST_CASE("Setting and reading back MOENCH dacs", "[.cmd][.dacs]") { +/* dacs */ + +TEST_CASE("Setting and reading back MOENCH dacs", "[.cmd][.dacs][.new]") { // vbp_colbuf, vipre, vin_cm", vb_sda, vcasc_sfp, vout_cm, vipre_cds, ibias_sfp Detector det; diff --git a/slsDetectorSoftware/tests/test-CmdProxy-mythen3.cpp b/slsDetectorSoftware/tests/test-CmdProxy-mythen3.cpp index 0376da13f..be749292c 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-mythen3.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-mythen3.cpp @@ -15,7 +15,9 @@ using sls::Detector; using test::GET; using test::PUT; -TEST_CASE("Setting and reading back MYTHEN3 dacs", "[.cmd][.dacs]") { +/* dacs */ + +TEST_CASE("Setting and reading back MYTHEN3 dacs", "[.cmd][.dacs][.new]") { // vcassh, vth2, vshaper, vshaperneg, vipre_out, vth3, vth1, // vicin, vcas, vpreamp, vpl, vipre, viinsh, vph, vtrim, vdcsh, @@ -87,6 +89,22 @@ TEST_CASE("Setting and reading back MYTHEN3 dacs", "[.cmd][.dacs]") { } } + + + + + + + + + + + + + + + + TEST_CASE("counters", "[.cmd]") { Detector det; CmdProxy proxy(&det); diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index 182e56c34..1ddf65ecd 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -819,11 +819,38 @@ TEST_CASE("imagetest", "[.cmd][.new]") { } } +/** temperature */ +TEST_CASE("temp_adc", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::JUNGFRAU || det_type == defs::GOTTHARD) { + REQUIRE_NOTHROW(proxy.Call("temp_adc", {}, -1, GET)); + std::ostringstream oss; + REQUIRE_NOTHROW(proxy.Call("temp_adc", {}, 0, GET, oss)); + std::string s = (oss.str()).erase (0, strlen("temp_adc ")); + REQUIRE(std::stoi(s) != -1); + } else { + REQUIRE_THROWS(proxy.Call("temp_adc", {}, -1, GET)); + } +} - - - +TEST_CASE("temp_fpga", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::JUNGFRAU || det_type == defs::GOTTHARD || + det_type == defs::EIGER) { + REQUIRE_NOTHROW(proxy.Call("temp_fpga", {}, -1, GET)); + std::ostringstream oss; + REQUIRE_NOTHROW(proxy.Call("temp_fpga", {}, 0, GET, oss)); + std::string s = (oss.str()).erase (0, strlen("temp_fpga ")); + REQUIRE(std::stoi(s) != -1); + } else { + REQUIRE_THROWS(proxy.Call("temp_fpga", {}, -1, GET)); + } +} @@ -2704,93 +2731,6 @@ TEST_CASE("zmqport", "[.cmd]") { // } // } -// TEST_CASE("temp_fpga", "[.cmd][.eiger][.jungfrau][.gotthard]") { -// if (test::type == defs::CHIPTESTBOARD) { -// REQUIRE_THROWS(multiSlsDetectorClient("temp_fpga", GET)); -// } else { -// REQUIRE_THROWS(multiSlsDetectorClient("temp_fpga 0", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:temp_fpga", GET, nullptr, -// oss)); std::string s = (oss.str()).erase (0, strlen("temp_fpga ")); -// REQUIRE(std::stoi(s) != -1); -// } -// } - -// TEST_CASE("temp_adc", "[.cmd][.jungfrau][.gotthard]") { -// if (test::type != defs::GOTTHARD && test::type != -// defs::JUNGFRAU ) { -// REQUIRE_THROWS(multiSlsDetectorClient("temp_adc", GET)); -// } else { -// REQUIRE_THROWS(multiSlsDetectorClient("temp_adc 0", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:temp_adc", GET, nullptr, -// oss)); std::string s = (oss.str()).erase (0, strlen("temp_adc ")); -// REQUIRE(std::stoi(s) != -1); -// } -// } - -// TEST_CASE("temp", "[.cmd][.eiger]") { -// if (test::type != defs::EIGER) { -// REQUIRE_THROWS(multiSlsDetectorClient("temp_fpgaext", GET)); -// REQUIRE_THROWS(multiSlsDetectorClient("temp_10ge", GET)); -// REQUIRE_THROWS(multiSlsDetectorClient("temp_dcdc", GET)); -// REQUIRE_THROWS(multiSlsDetectorClient("temp_sodl", GET)); -// REQUIRE_THROWS(multiSlsDetectorClient("temp_sodr", GET)); -// REQUIRE_THROWS(multiSlsDetectorClient("temp_fpgafl", GET)); -// REQUIRE_THROWS(multiSlsDetectorClient("temp_fpgafr", GET)); -// } else { -// REQUIRE_THROWS(multiSlsDetectorClient("temp_fpgaext 0", PUT)); -// REQUIRE_THROWS(multiSlsDetectorClient("temp_10ge 0", PUT)); -// REQUIRE_THROWS(multiSlsDetectorClient("temp_dcdc 0", PUT)); -// REQUIRE_THROWS(multiSlsDetectorClient("temp_sodl 0", PUT)); -// REQUIRE_THROWS(multiSlsDetectorClient("temp_sodr 0", PUT)); -// REQUIRE_THROWS(multiSlsDetectorClient("temp_fpgafl 0", PUT)); -// REQUIRE_THROWS(multiSlsDetectorClient("temp_fpgafr 0", PUT)); -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:temp_fpgaext", GET, -// nullptr, oss)); std::string s = (oss.str()).erase (0, -// strlen("temp_fpgaext ")); REQUIRE(std::stoi(s) != -1); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:temp_10ge", GET, -// nullptr, oss)); std::string s = (oss.str()).erase (0, -// strlen("temp_10ge ")); REQUIRE(std::stoi(s) != -1); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:temp_dcdc", GET, -// nullptr, oss)); std::string s = (oss.str()).erase (0, -// strlen("temp_dcdc ")); REQUIRE(std::stoi(s) != -1); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:temp_sodl", GET, -// nullptr, oss)); std::string s = (oss.str()).erase (0, -// strlen("temp_sodl ")); REQUIRE(std::stoi(s) != -1); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:temp_sodr", GET, -// nullptr, oss)); std::string s = (oss.str()).erase (0, -// strlen("temp_sodr ")); REQUIRE(std::stoi(s) != -1); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:temp_fpgafl", GET, -// nullptr, oss)); std::string s = (oss.str()).erase (0, -// strlen("temp_fpgafl ")); REQUIRE(std::stoi(s) != -1); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:temp_fpgafr", GET, -// nullptr, oss)); std::string s = (oss.str()).erase (0, -// strlen("temp_fpgafr ")); REQUIRE(std::stoi(s) != -1); -// } -// } -// } -