mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 18:17:59 +02:00
moench: default pattern file in server, settings, tests
This commit is contained in:
@ -101,6 +101,8 @@ class Detector {
|
||||
/** [Jungfrau] Options:DYNAMICGAIN, DYNAMICHG0, FIXGAIN1, FIXGAIN2, FORCESWITCHG1, FORCESWITCHG2
|
||||
* [Gotthard] Options: DYNAMICGAIN, HIGHGAIN, LOWGAIN, MEDIUMGAIN, VERYHIGHGAIN
|
||||
* [Gotthard2] Options: DYNAMICGAIN, FIXGAIN1, FIXGAIN2
|
||||
* [Moench] Options: G1_HIGHGAIN, G1_LOWGAIN, G2_HIGHCAP_HIGHGAIN, G2_HIGHCAP_LOWGAIN,
|
||||
* G2_LOWCAP_HIGHGAIN, G2_LOWCAP_LOWGAIN, G4_HIGHGAIN, G4_LOWGAIN
|
||||
*/
|
||||
void setSettings(defs::detectorSettings value, Positions pos = {});
|
||||
|
||||
|
@ -1013,10 +1013,14 @@ class CmdProxy {
|
||||
"\n\tSerial number or MAC of detector (hex).");
|
||||
|
||||
INTEGER_COMMAND(settings, getSettings, setSettings, sls::StringTo<slsDetectorDefs::detectorSettings>,
|
||||
"[standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain, dynamichg0, fixgain1, fixgain2, forceswitchg1, forceswitchg2, verylowgain]"
|
||||
"\n\t[Jungfrau] - Detector Settings [dynamicgain | dynamichg0 | fixgain1 | fixgain2 | forceswitchg1 | forceswitchg2]"
|
||||
"\n\t[Gotthard] - Detector Settings [dynamicgain | highgain | lowgain | mediumgain | veryhighgain]"
|
||||
"\n\t[Gotthard2] - Detector Settings [dynamicgain | fixgain1 | fixgain2]"
|
||||
"[standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain, dynamichg0, "
|
||||
"fixgain1, fixgain2, forceswitchg1, forceswitchg2, verylowgain, g1_hg, g1_lg, g2_hc_hg, g2_hc_lg, "
|
||||
"g2_lc_hg, g2_lc_lg, g4_hg, g4_lg]"
|
||||
"\n\t Detector Settings"
|
||||
"\n\t[Jungfrau] - [dynamicgain | dynamichg0 | fixgain1 | fixgain2 | forceswitchg1 | forceswitchg2]"
|
||||
"\n\t[Gotthard] - [dynamicgain | highgain | lowgain | mediumgain | veryhighgain]"
|
||||
"\n\t[Gotthard2] - [dynamicgain | fixgain1 | fixgain2]"
|
||||
"\n\t[Moench] - [g1_hg | g1_lg | g2_hc_hg | g2_hc_lg | g2_lc_hg | g2_lc_lg | g4_hg | g4_lg]"
|
||||
"\n\t[Eiger] Use threshold or thresholdnotb.");
|
||||
|
||||
/* acquisition parameters */
|
||||
|
@ -758,8 +758,9 @@ void slsDetector::updateCachedDetectorVariables() {
|
||||
shm()->dynamicRange = i32;
|
||||
|
||||
// settings
|
||||
if (shm()->myDetectorType == EIGER ||
|
||||
shm()->myDetectorType == JUNGFRAU || shm()->myDetectorType == GOTTHARD) {
|
||||
if (shm()->myDetectorType == EIGER || shm()->myDetectorType == JUNGFRAU ||
|
||||
shm()->myDetectorType == GOTTHARD || shm()->myDetectorType == GOTTHARD2 ||
|
||||
shm()->myDetectorType == MOENCH) {
|
||||
n += client.Receive(&i32, sizeof(i32));
|
||||
shm()->currentSettings = static_cast<detectorSettings>(i32);
|
||||
}
|
||||
|
@ -407,6 +407,8 @@ class slsDetector : public virtual slsDetectorDefs {
|
||||
/** [Jungfrau] Options:DYNAMICGAIN, DYNAMICHG0, FIXGAIN1, FIXGAIN2, FORCESWITCHG1, FORCESWITCHG2
|
||||
* [Gotthard] Options: DYNAMICGAIN, HIGHGAIN, LOWGAIN, MEDIUMGAIN, VERYHIGHGAIN
|
||||
* [Gotthard2] Options: DYNAMICGAIN, FIXGAIN1, FIXGAIN2
|
||||
* [Moench] Options: G1_HIGHGAIN, G1_LOWGAIN, G2_HIGHCAP_HIGHGAIN, G2_HIGHCAP_LOWGAIN,
|
||||
* G2_LOWCAP_HIGHGAIN, G2_LOWCAP_LOWGAIN, G4_HIGHGAIN, G4_LOWGAIN
|
||||
* [Eiger] Only stores them locally in shm Options: STANDARD, HIGHGAIN, LOWGAIN, VERYHIGHGAIN, VERYLOWGAIN
|
||||
*/
|
||||
detectorSettings setSettings(detectorSettings isettings);
|
||||
|
@ -9,6 +9,7 @@ target_sources(tests PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test-CmdProxy-gotthard2.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test-CmdProxy-gotthard.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test-CmdProxy-chiptestboard.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test-CmdProxy-moench.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test-CmdProxy-global.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test-Result.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test-CmdParser.cpp
|
||||
|
103
slsDetectorSoftware/tests/test-CmdProxy-moench.cpp
Normal file
103
slsDetectorSoftware/tests/test-CmdProxy-moench.cpp
Normal file
@ -0,0 +1,103 @@
|
||||
#include "CmdProxy.h"
|
||||
#include "Detector.h"
|
||||
#include "catch.hpp"
|
||||
#include "sls_detector_defs.h"
|
||||
#include <sstream>
|
||||
|
||||
#include "Result.h"
|
||||
#include "ToString.h"
|
||||
#include "test-CmdProxy-global.h"
|
||||
#include "tests/globals.h"
|
||||
#include "versionAPI.h"
|
||||
|
||||
using sls::CmdProxy;
|
||||
using sls::Detector;
|
||||
using test::GET;
|
||||
using test::PUT;
|
||||
|
||||
TEST_CASE("Setting and reading back MOENCH dacs", "[.cmd][.dacs]") {
|
||||
// vbp_colbuf, vipre, vin_cm", vb_sda, vcasc_sfp, vout_cm, vipre_cds, ibias_sfp
|
||||
|
||||
Detector det;
|
||||
CmdProxy proxy(&det);
|
||||
auto det_type = det.getDetectorType().squash();
|
||||
if (det_type == defs::MOENCH) {
|
||||
SECTION("vbp_colbuf") { test_dac(defs::VBP_COLBUF, "vbp_colbuf", 1300); }
|
||||
SECTION("vipre") { test_dac(defs::VIPRE, "vipre", 1000); }
|
||||
SECTION("vin_cm") { test_dac(defs::VIN_CM, "vin_cm", 1400); }
|
||||
SECTION("vb_sda") { test_dac(defs::VB_SDA, "vb_sda", 680); }
|
||||
SECTION("vcasc_sfp") { test_dac(defs::VCASC_SFP, "vcasc_sfp", 1428); }
|
||||
SECTION("vout_cm") { test_dac(defs::VOUT_CM, "vout_cm", 1200); }
|
||||
SECTION("vipre_cds") { test_dac(defs::VIPRE_CDS, "vipre_cds", 800); }
|
||||
SECTION("ibias_sfp") { test_dac(defs::IBIAS_SFP, "ibias_sfp", 900); }
|
||||
|
||||
// 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));
|
||||
// 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));
|
||||
// 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));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user