From f22f23849d4130b61790a44423137481c0441885 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Thu, 26 Mar 2020 11:56:38 +0100 Subject: [PATCH 01/33] minor --- slsSupportLib/CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/slsSupportLib/CMakeLists.txt b/slsSupportLib/CMakeLists.txt index 49c12ac93..497c0ae05 100755 --- a/slsSupportLib/CMakeLists.txt +++ b/slsSupportLib/CMakeLists.txt @@ -61,8 +61,6 @@ set_target_properties(slsSupportLib PROPERTIES PUBLIC_HEADER "${PUBLICHEADERS}" ) -message(${ZeroMQ_LIBRARIES}) - target_link_libraries(slsSupportLib PUBLIC slsProjectOptions From d0c3e006fb71536595748190c002a214098305b0 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Thu, 26 Mar 2020 12:39:56 +0100 Subject: [PATCH 02/33] printing of std::map --- slsSupportLib/include/ToString.h | 30 ++++++++++++++++++++------- slsSupportLib/tests/test-ToString.cpp | 28 +++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 8 deletions(-) diff --git a/slsSupportLib/include/ToString.h b/slsSupportLib/include/ToString.h index 64e442e6d..4c6a40838 100644 --- a/slsSupportLib/include/ToString.h +++ b/slsSupportLib/include/ToString.h @@ -17,6 +17,7 @@ #include #include #include +#include namespace sls { @@ -393,6 +394,23 @@ ToString(const T &container, const std::string &unit) { return os.str(); } +template +std::string ToString(std::map m) { + std::ostringstream os; + os << '{'; + if (!m.empty()) { + auto it = m.cbegin(); + os << ToString(it->first) << ": " << ToString(it->second); + it++; + while (it != m.cend()) { + os << ", "<< ToString(it->first) << ": " << ToString(it->second); + it++; + } + } + os << '}'; + return os.str(); +} + template T StringTo(const std::string &t, const std::string &unit) { double tval{0}; @@ -610,26 +628,22 @@ template <> inline defs::timingSourceType StringTo(const std::string &s) { throw sls::RuntimeError("Unknown timing source type " + s); } -template <> -inline uint32_t StringTo(const std::string &s) { +template <> inline uint32_t StringTo(const std::string &s) { int base = s.find("0x") != std::string::npos ? 16 : 10; return std::stoul(s, nullptr, base); } -template <> -inline uint64_t StringTo(const std::string &s) { +template <> inline uint64_t StringTo(const std::string &s) { int base = s.find("0x") != std::string::npos ? 16 : 10; return std::stoull(s, nullptr, base); } -template <> -inline int StringTo(const std::string &s) { +template <> inline int StringTo(const std::string &s) { int base = s.find("0x") != std::string::npos ? 16 : 10; return std::stoi(s, nullptr, base); } -template <> -inline int64_t StringTo(const std::string &s) { +template <> inline int64_t StringTo(const std::string &s) { int base = s.find("0x") != std::string::npos ? 16 : 10; return std::stol(s, nullptr, base); } diff --git a/slsSupportLib/tests/test-ToString.cpp b/slsSupportLib/tests/test-ToString.cpp index b469b2b2f..3034d0005 100644 --- a/slsSupportLib/tests/test-ToString.cpp +++ b/slsSupportLib/tests/test-ToString.cpp @@ -4,6 +4,7 @@ #include "sls_detector_defs.h" #include "catch.hpp" #include +#include #include // using namespace sls; @@ -194,3 +195,30 @@ TEST_CASE("int64_t from string"){ REQUIRE(StringTo("0xffffff") == 0xffffff); } + + +TEST_CASE("std::map of strings"){ + std::map m; + m["key"] = "value"; + auto s = ToString(m); + REQUIRE(s == "{key: value}"); + + m["chrusi"] = "musi"; + REQUIRE(ToString(m) == "{chrusi: musi, key: value}"); + + m["test"] = "tree"; + REQUIRE(ToString(m) == "{chrusi: musi, key: value, test: tree}"); + +} + +TEST_CASE("std::map of ints"){ + + std::map m; + m[5] = 10; + REQUIRE(ToString(m) == "{5: 10}"); + m[500] = 50; + REQUIRE(ToString(m) == "{5: 10, 500: 50}"); + m[372] = 999; + REQUIRE(ToString(m) == "{5: 10, 372: 999, 500: 50}"); + +} \ No newline at end of file From 4d8a63eee161d219cf34446aff111d323b06e4cc Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Thu, 26 Mar 2020 14:10:06 +0100 Subject: [PATCH 03/33] ToString of Result --- slsDetectorSoftware/tests/test-Result.cpp | 24 ++++++++++++++ slsSupportLib/include/ToString.h | 38 +++++++++++++---------- 2 files changed, 46 insertions(+), 16 deletions(-) diff --git a/slsDetectorSoftware/tests/test-Result.cpp b/slsDetectorSoftware/tests/test-Result.cpp index 6cc668a16..5fd666d82 100644 --- a/slsDetectorSoftware/tests/test-Result.cpp +++ b/slsDetectorSoftware/tests/test-Result.cpp @@ -2,6 +2,7 @@ #include "TypeTraits.h" #include "catch.hpp" #include +#include "ToString.h" using sls::Result; @@ -172,3 +173,26 @@ TEST_CASE("Printing Result"){ REQUIRE(os.str() == "[1, 2, 3]"); } + +TEST_CASE("String conversions"){ + Result res{1,2,3}; + REQUIRE(ToString(res) == "[1, 2, 3]"); + + Result res2{"one", "two", "three"}; + REQUIRE(ToString(res2) == "[one, two, three]"); + + using Smap = std::map; + Smap m; + m["one"] = "1"; + Result res3{m, m, m}; + REQUIRE(res3.size()== 3); + REQUIRE(ToString(res3) == "[{one: 1}, {one: 1}, {one: 1}]"); + + Smap m2; + m2["one"] = "1"; + m2["two"] = "2"; + m2["three"] = "3"; + + Result res4{m, m2, m}; + REQUIRE(ToString(res4) == "[{one: 1}, {one: 1, three: 3, two: 2}, {one: 1}]"); +} diff --git a/slsSupportLib/include/ToString.h b/slsSupportLib/include/ToString.h index 4c6a40838..e2ef82421 100644 --- a/slsSupportLib/include/ToString.h +++ b/slsSupportLib/include/ToString.h @@ -248,6 +248,8 @@ inline std::string ToString(const defs::timingSourceType s) { // causes a copy but might be needed in generic code inline std::string ToString(const std::string &s) { return s; } +// inline const std::string& ToString(const std::string &s) { return s; } + /** Convert std::chrono::duration with specified output unit */ template typename std::enable_if::value, std::string>::type @@ -333,6 +335,23 @@ ToStringHex(const T &container) { return os.str(); } +template +std::string ToString(const std::map& m) { + std::ostringstream os; + os << '{'; + if (!m.empty()) { + auto it = m.cbegin(); + os << ToString(it->first) << ": " << ToString(it->second); + it++; + while (it != m.cend()) { + os << ", "<< ToString(it->first) << ": " << ToString(it->second); + it++; + } + } + os << '}'; + return os.str(); +} + /** * For a container loop over all elements and call ToString on the element * Container is excluded @@ -378,6 +397,8 @@ ToString(const T &vec) { return os.str(); } + + /** Container and specified unit, call ToString(value, unit) */ template typename std::enable_if::value, std::string>::type @@ -394,22 +415,7 @@ ToString(const T &container, const std::string &unit) { return os.str(); } -template -std::string ToString(std::map m) { - std::ostringstream os; - os << '{'; - if (!m.empty()) { - auto it = m.cbegin(); - os << ToString(it->first) << ": " << ToString(it->second); - it++; - while (it != m.cend()) { - os << ", "<< ToString(it->first) << ": " << ToString(it->second); - it++; - } - } - os << '}'; - return os.str(); -} + template T StringTo(const std::string &t, const std::string &unit) { From fb051355b82f219e15ee4a3daebe126b4591223c Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Thu, 26 Mar 2020 15:06:23 +0100 Subject: [PATCH 04/33] moved string conversion to .cpp --- slsSupportLib/CMakeLists.txt | 1 + slsSupportLib/include/ToString.h | 471 ++------------------------ slsSupportLib/src/ToString.cpp | 435 ++++++++++++++++++++++++ slsSupportLib/tests/test-ToString.cpp | 7 + 4 files changed, 477 insertions(+), 437 deletions(-) create mode 100644 slsSupportLib/src/ToString.cpp diff --git a/slsSupportLib/CMakeLists.txt b/slsSupportLib/CMakeLists.txt index 497c0ae05..98904031e 100755 --- a/slsSupportLib/CMakeLists.txt +++ b/slsSupportLib/CMakeLists.txt @@ -5,6 +5,7 @@ set(SOURCES src/DataSocket.cpp src/ServerSocket.cpp src/ServerInterface.cpp + src/ToString.cpp src/network_utils.cpp src/ZmqSocket.cpp ) diff --git a/slsSupportLib/include/ToString.h b/slsSupportLib/include/ToString.h index e2ef82421..3e8dc72b8 100644 --- a/slsSupportLib/include/ToString.h +++ b/slsSupportLib/include/ToString.h @@ -14,241 +14,29 @@ #include "string_utils.h" #include #include +#include #include #include #include -#include namespace sls { using defs = slsDetectorDefs; +std::string ToString(const defs::runStatus s); +std::string ToString(const defs::detectorType s); +std::string ToString(const defs::detectorSettings s); +std::string ToString(const defs::speedLevel s); +std::string ToString(const defs::timingMode s); +std::string ToString(const defs::frameDiscardPolicy s); +std::string ToString(const defs::fileFormat s); +std::string ToString(const defs::externalSignalFlag s); +std::string ToString(const defs::readoutMode s); +std::string ToString(const defs::frameModeType s); +std::string ToString(const defs::detectorModeType s); +std::string ToString(const defs::burstMode s); +std::string ToString(const defs::timingSourceType s); -inline std::string ToString(const defs::runStatus s) { - switch (s) { - case defs::ERROR: - return std::string("error"); - case defs::WAITING: - return std::string("waiting"); - case defs::RUNNING: - return std::string("running"); - case defs::TRANSMITTING: - return std::string("data"); - case defs::RUN_FINISHED: - return std::string("finished"); - case defs::STOPPED: - return std::string("stopped"); - default: - return std::string("idle"); - } -} - -inline std::string ToString(const defs::detectorType s) { - switch (s) { - case defs::EIGER: - return std::string("Eiger"); - case defs::GOTTHARD: - return std::string("Gotthard"); - case defs::JUNGFRAU: - return std::string("Jungfrau"); - case defs::CHIPTESTBOARD: - return std::string("ChipTestBoard"); - case defs::MOENCH: - return std::string("Moench"); - case defs::MYTHEN3: - return std::string("Mythen3"); - case defs::GOTTHARD2: - return std::string("Gotthard2"); - default: - return std::string("Unknown"); - } -} - -inline std::string ToString(const defs::detectorSettings s) { - switch (s) { - case defs::STANDARD: - return std::string("standard"); - case defs::FAST: - return std::string("fast"); - case defs::HIGHGAIN: - return std::string("highgain"); - case defs::DYNAMICGAIN: - return std::string("dynamicgain"); - case defs::LOWGAIN: - return std::string("lowgain"); - case defs::MEDIUMGAIN: - return std::string("mediumgain"); - case defs::VERYHIGHGAIN: - return std::string("veryhighgain"); - case defs::DYNAMICHG0: - return std::string("dynamichg0"); - case defs::FIXGAIN1: - return std::string("fixgain1"); - case defs::FIXGAIN2: - return std::string("fixgain2"); - case defs::FORCESWITCHG1: - return std::string("forceswitchg1"); - case defs::FORCESWITCHG2: - return std::string("forceswitchg2"); - case defs::VERYLOWGAIN: - return std::string("verylowgain"); - case defs::G1_HIGHGAIN: - return std::string("g1_hg"); - case defs::G1_LOWGAIN: - return std::string("g1_lg"); - case defs::G2_HIGHCAP_HIGHGAIN: - return std::string("g2_hc_hg"); - case defs::G2_HIGHCAP_LOWGAIN: - return std::string("g2_hc_lg"); - case defs::G2_LOWCAP_HIGHGAIN: - return std::string("g2_lc_hg"); - case defs::G2_LOWCAP_LOWGAIN: - return std::string("g2_lc_lg"); - case defs::G4_HIGHGAIN: - return std::string("g4_hg"); - case defs::G4_LOWGAIN: - return std::string("g4_lg"); - case defs::UNDEFINED: - return std::string("undefined"); - case defs::UNINITIALIZED: - return std::string("uninitialized"); - default: - return std::string("Unknown"); - } -} - -inline std::string ToString(const defs::speedLevel s) { - switch (s) { - case defs::FULL_SPEED: - return std::string("full_speed"); - case defs::HALF_SPEED: - return std::string("half_speed"); - case defs::QUARTER_SPEED: - return std::string("quarter_speed"); - default: - return std::string("Unknown"); - } -} - -inline std::string ToString(const defs::timingMode s) { - switch (s) { - case defs::AUTO_TIMING: - return std::string("auto"); - case defs::TRIGGER_EXPOSURE: - return std::string("trigger"); - case defs::GATED: - return std::string("gating"); - case defs::BURST_TRIGGER: - return std::string("burst_trigger"); - default: - return std::string("Unknown"); - } -} - -inline std::string ToString(const defs::frameDiscardPolicy s) { - switch (s) { - case defs::NO_DISCARD: - return std::string("nodiscard"); - case defs::DISCARD_EMPTY_FRAMES: - return std::string("discardempty"); - case defs::DISCARD_PARTIAL_FRAMES: - return std::string("discardpartial"); - default: - return std::string("Unknown"); - } -} - -inline std::string ToString(const defs::fileFormat s) { - switch (s) { - case defs::HDF5: - return std::string("hdf5"); - case defs::BINARY: - return std::string("binary"); - default: - return std::string("Unknown"); - } -} - -inline std::string ToString(const defs::externalSignalFlag s) { - switch (s) { - case defs::TRIGGER_IN_RISING_EDGE: - return std::string("trigger_in_rising_edge"); - case defs::TRIGGER_IN_FALLING_EDGE: - return std::string("trigger_in_falling_edge"); - default: - return std::string("Unknown"); - } -} - -inline std::string ToString(const defs::readoutMode s) { - switch (s) { - case defs::ANALOG_ONLY: - return std::string("analog"); - case defs::DIGITAL_ONLY: - return std::string("digital"); - case defs::ANALOG_AND_DIGITAL: - return std::string("analog_digital"); - default: - return std::string("Unknown"); - } -} - -inline std::string ToString(const defs::frameModeType s) { - switch (s) { - case defs::PEDESTAL: - return std::string("pedestal"); - case defs::NEW_PEDESTAL: - return std::string("newpedestal"); - case defs::FLATFIELD: - return std::string("flatfield"); - case defs::NEW_FLATFIELD: - return std::string("newflatfield"); - default: - return std::string("Unknown"); - } -} - -inline std::string ToString(const defs::detectorModeType s) { - switch (s) { - case defs::COUNTING: - return std::string("counting"); - case defs::INTERPOLATING: - return std::string("interpolating"); - case defs::ANALOG: - return std::string("analog"); - default: - return std::string("Unknown"); - } -} - -inline std::string ToString(const defs::burstMode s) { - switch (s) { - case defs::BURST_OFF: - return std::string("off"); - case defs::BURST_INTERNAL: - return std::string("internal"); - case defs::BURST_EXTERNAL: - return std::string("external"); - default: - return std::string("Unknown"); - } -} - -inline std::string ToString(const defs::timingSourceType s) { - switch (s) { - case defs::TIMING_INTERNAL: - return std::string("internal"); - case defs::TIMING_EXTERNAL: - return std::string("external"); - default: - return std::string("Unknown"); - } -} - -// in case we already have a string -// causes a copy but might be needed in generic code -inline std::string ToString(const std::string &s) { return s; } - -// inline const std::string& ToString(const std::string &s) { return s; } +const std::string &ToString(const std::string &s); /** Convert std::chrono::duration with specified output unit */ template @@ -336,7 +124,7 @@ ToStringHex(const T &container) { } template -std::string ToString(const std::map& m) { +std::string ToString(const std::map &m) { std::ostringstream os; os << '{'; if (!m.empty()) { @@ -344,7 +132,7 @@ std::string ToString(const std::map& m) { os << ToString(it->first) << ": " << ToString(it->second); it++; while (it != m.cend()) { - os << ", "<< ToString(it->first) << ": " << ToString(it->second); + os << ", " << ToString(it->first) << ": " << ToString(it->second); it++; } } @@ -397,8 +185,6 @@ ToString(const T &vec) { return os.str(); } - - /** Container and specified unit, call ToString(value, unit) */ template typename std::enable_if::value, std::string>::type @@ -415,8 +201,6 @@ ToString(const T &container, const std::string &unit) { return os.str(); } - - template T StringTo(const std::string &t, const std::string &unit) { double tval{0}; @@ -448,211 +232,24 @@ template T StringTo(const std::string &t) { return StringTo(tmp, unit); } -template <> inline defs::detectorType StringTo(const std::string &s) { - if (s == "Eiger") - return defs::EIGER; - if (s == "Gotthard") - return defs::GOTTHARD; - if (s == "Jungfrau") - return defs::JUNGFRAU; - if (s == "ChipTestBoard") - return defs::CHIPTESTBOARD; - if (s == "Moench") - return defs::MOENCH; - if (s == "Mythen3") - return defs::MYTHEN3; - if (s == "Gotthard2") - return defs::GOTTHARD2; - throw sls::RuntimeError("Unknown detector type " + s); -} +template <> defs::detectorType StringTo(const std::string &s); +template <> defs::detectorSettings StringTo(const std::string &s); +template <> defs::speedLevel StringTo(const std::string &s); +template <> defs::timingMode StringTo(const std::string &s); +template <> defs::frameDiscardPolicy StringTo(const std::string &s); +template <> defs::fileFormat StringTo(const std::string &s); +template <> defs::externalSignalFlag StringTo(const std::string &s); +template <> defs::readoutMode StringTo(const std::string &s); +template <> defs::frameModeType StringTo(const std::string &s); +template <> defs::detectorModeType StringTo(const std::string &s); +template <> defs::dacIndex StringTo(const std::string &s); +template <> defs::burstMode StringTo(const std::string &s); +template <> defs::timingSourceType StringTo(const std::string &s); -template <> inline defs::detectorSettings StringTo(const std::string &s) { - if (s == "standard") - return defs::STANDARD; - if (s == "fast") - return defs::FAST; - if (s == "highgain") - return defs::HIGHGAIN; - if (s == "dynamicgain") - return defs::DYNAMICGAIN; - if (s == "lowgain") - return defs::LOWGAIN; - if (s == "mediumgain") - return defs::MEDIUMGAIN; - if (s == "veryhighgain") - return defs::VERYHIGHGAIN; - if (s == "dynamichg0") - return defs::DYNAMICHG0; - if (s == "fixgain1") - return defs::FIXGAIN1; - if (s == "fixgain2") - return defs::FIXGAIN2; - if (s == "forceswitchg1") - return defs::FORCESWITCHG1; - if (s == "forceswitchg2") - return defs::FORCESWITCHG2; - if (s == "verylowgain") - return defs::VERYLOWGAIN; - if (s == "g1_hg") - return defs::G1_HIGHGAIN; - if (s == "g1_lg") - return defs::G1_LOWGAIN; - if (s == "g2_hc_hg") - return defs::G2_HIGHCAP_HIGHGAIN; - if (s == "g2_hc_lg") - return defs::G2_HIGHCAP_LOWGAIN; - if (s == "g2_lc_hg") - return defs::G2_LOWCAP_HIGHGAIN; - if (s == "g2_lc_lg") - return defs::G2_LOWCAP_LOWGAIN; - if (s == "g4_hg") - return defs::G4_HIGHGAIN; - if (s == "g4_lg") - return defs::G4_LOWGAIN; - throw sls::RuntimeError("Unknown setting " + s); -} - -template <> inline defs::speedLevel StringTo(const std::string &s) { - if (s == "full_speed") - return defs::FULL_SPEED; - if (s == "half_speed") - return defs::HALF_SPEED; - if (s == "quarter_speed") - return defs::QUARTER_SPEED; - throw sls::RuntimeError("Unknown speed " + s); -} - -template <> inline defs::timingMode StringTo(const std::string &s) { - if (s == "auto") - return defs::AUTO_TIMING; - if (s == "trigger") - return defs::TRIGGER_EXPOSURE; - if (s == "gating") - return defs::GATED; - if (s == "burst_trigger") - return defs::BURST_TRIGGER; - throw sls::RuntimeError("Unknown timing mode " + s); -} - -template <> inline defs::frameDiscardPolicy StringTo(const std::string &s) { - if (s == "nodiscard") - return defs::NO_DISCARD; - if (s == "discardempty") - return defs::DISCARD_EMPTY_FRAMES; - if (s == "discardpartial") - return defs::DISCARD_PARTIAL_FRAMES; - throw sls::RuntimeError("Unknown frame discard policy " + s); -} - -template <> inline defs::fileFormat StringTo(const std::string &s) { - if (s == "hdf5") - return defs::HDF5; - if (s == "binary") - return defs::BINARY; - throw sls::RuntimeError("Unknown file format " + s); -} - -template <> inline defs::externalSignalFlag StringTo(const std::string &s) { - if (s == "trigger_in_rising_edge") - return defs::TRIGGER_IN_RISING_EDGE; - if (s == "trigger_in_falling_edge") - return defs::TRIGGER_IN_FALLING_EDGE; - throw sls::RuntimeError("Unknown external signal flag " + s); -} - -template <> inline defs::readoutMode StringTo(const std::string &s) { - if (s == "analog") - return defs::ANALOG_ONLY; - if (s == "digital") - return defs::DIGITAL_ONLY; - if (s == "analog_digital") - return defs::ANALOG_AND_DIGITAL; - throw sls::RuntimeError("Unknown readout mode " + s); -} - -template <> inline defs::frameModeType StringTo(const std::string &s) { - if (s == "pedestal") - return defs::PEDESTAL; - if (s == "newpedestal") - return defs::NEW_PEDESTAL; - if (s == "flatfield") - return defs::FLATFIELD; - if (s == "newflatfield") - return defs::NEW_FLATFIELD; - throw sls::RuntimeError("Unknown frame mode " + s); -} - -template <> inline defs::detectorModeType StringTo(const std::string &s) { - if (s == "counting") - return defs::COUNTING; - if (s == "interpolating") - return defs::INTERPOLATING; - if (s == "analog") - return defs::ANALOG; - throw sls::RuntimeError("Unknown detector mode " + s); -} - -template <> inline defs::dacIndex StringTo(const std::string &s) { - if (s == "vcmp_ll") - return defs::VCMP_LL; - if (s == "vcmp_lr") - return defs::VCMP_LR; - if (s == "vcmp_rl") - return defs::VCMP_RL; - if (s == "vcmp_rr") - return defs::VCMP_RR; - if (s == "vthreshold") - return defs::THRESHOLD; - if (s == "vrf") - return defs::VRF; - if (s == "vrs") - return defs::VRS; - if (s == "vtr") - return defs::VTR; - if (s == "vcall") - return defs::CAL; - if (s == "vcp") - return defs::VCP; - throw sls::RuntimeError("Unknown dac Index " + s); -} - -template <> inline defs::burstMode StringTo(const std::string &s) { - if (s == "off") - return defs::BURST_OFF; - if (s == "internal") - return defs::BURST_INTERNAL; - if (s == "external") - return defs::BURST_EXTERNAL; - throw sls::RuntimeError("Unknown burst mode " + s); -} - -template <> inline defs::timingSourceType StringTo(const std::string &s) { - if (s == "internal") - return defs::TIMING_INTERNAL; - if (s == "external") - return defs::TIMING_EXTERNAL; - throw sls::RuntimeError("Unknown timing source type " + s); -} - -template <> inline uint32_t StringTo(const std::string &s) { - int base = s.find("0x") != std::string::npos ? 16 : 10; - return std::stoul(s, nullptr, base); -} - -template <> inline uint64_t StringTo(const std::string &s) { - int base = s.find("0x") != std::string::npos ? 16 : 10; - return std::stoull(s, nullptr, base); -} - -template <> inline int StringTo(const std::string &s) { - int base = s.find("0x") != std::string::npos ? 16 : 10; - return std::stoi(s, nullptr, base); -} - -template <> inline int64_t StringTo(const std::string &s) { - int base = s.find("0x") != std::string::npos ? 16 : 10; - return std::stol(s, nullptr, base); -} +template <> uint32_t StringTo(const std::string &s); +template <> uint64_t StringTo(const std::string &s); +template <> int StringTo(const std::string &s); +template <> int64_t StringTo(const std::string &s); /** For types with a .str() method use this for conversion */ template diff --git a/slsSupportLib/src/ToString.cpp b/slsSupportLib/src/ToString.cpp new file mode 100644 index 000000000..deb336d16 --- /dev/null +++ b/slsSupportLib/src/ToString.cpp @@ -0,0 +1,435 @@ +#include "ToString.h" + +namespace sls { + +std::string ToString(const defs::runStatus s) { + switch (s) { + case defs::ERROR: + return std::string("error"); + case defs::WAITING: + return std::string("waiting"); + case defs::RUNNING: + return std::string("running"); + case defs::TRANSMITTING: + return std::string("data"); + case defs::RUN_FINISHED: + return std::string("finished"); + case defs::STOPPED: + return std::string("stopped"); + default: + return std::string("idle"); + } +} + +std::string ToString(const defs::detectorType s) { + switch (s) { + case defs::EIGER: + return std::string("Eiger"); + case defs::GOTTHARD: + return std::string("Gotthard"); + case defs::JUNGFRAU: + return std::string("Jungfrau"); + case defs::CHIPTESTBOARD: + return std::string("ChipTestBoard"); + case defs::MOENCH: + return std::string("Moench"); + case defs::MYTHEN3: + return std::string("Mythen3"); + case defs::GOTTHARD2: + return std::string("Gotthard2"); + default: + return std::string("Unknown"); + } +} + +std::string ToString(const defs::detectorSettings s) { + switch (s) { + case defs::STANDARD: + return std::string("standard"); + case defs::FAST: + return std::string("fast"); + case defs::HIGHGAIN: + return std::string("highgain"); + case defs::DYNAMICGAIN: + return std::string("dynamicgain"); + case defs::LOWGAIN: + return std::string("lowgain"); + case defs::MEDIUMGAIN: + return std::string("mediumgain"); + case defs::VERYHIGHGAIN: + return std::string("veryhighgain"); + case defs::DYNAMICHG0: + return std::string("dynamichg0"); + case defs::FIXGAIN1: + return std::string("fixgain1"); + case defs::FIXGAIN2: + return std::string("fixgain2"); + case defs::FORCESWITCHG1: + return std::string("forceswitchg1"); + case defs::FORCESWITCHG2: + return std::string("forceswitchg2"); + case defs::VERYLOWGAIN: + return std::string("verylowgain"); + case defs::G1_HIGHGAIN: + return std::string("g1_hg"); + case defs::G1_LOWGAIN: + return std::string("g1_lg"); + case defs::G2_HIGHCAP_HIGHGAIN: + return std::string("g2_hc_hg"); + case defs::G2_HIGHCAP_LOWGAIN: + return std::string("g2_hc_lg"); + case defs::G2_LOWCAP_HIGHGAIN: + return std::string("g2_lc_hg"); + case defs::G2_LOWCAP_LOWGAIN: + return std::string("g2_lc_lg"); + case defs::G4_HIGHGAIN: + return std::string("g4_hg"); + case defs::G4_LOWGAIN: + return std::string("g4_lg"); + case defs::UNDEFINED: + return std::string("undefined"); + case defs::UNINITIALIZED: + return std::string("uninitialized"); + default: + return std::string("Unknown"); + } +} + +std::string ToString(const defs::speedLevel s) { + switch (s) { + case defs::FULL_SPEED: + return std::string("full_speed"); + case defs::HALF_SPEED: + return std::string("half_speed"); + case defs::QUARTER_SPEED: + return std::string("quarter_speed"); + default: + return std::string("Unknown"); + } +} + +std::string ToString(const defs::timingMode s) { + switch (s) { + case defs::AUTO_TIMING: + return std::string("auto"); + case defs::TRIGGER_EXPOSURE: + return std::string("trigger"); + case defs::GATED: + return std::string("gating"); + case defs::BURST_TRIGGER: + return std::string("burst_trigger"); + default: + return std::string("Unknown"); + } +} + +std::string ToString(const defs::frameDiscardPolicy s) { + switch (s) { + case defs::NO_DISCARD: + return std::string("nodiscard"); + case defs::DISCARD_EMPTY_FRAMES: + return std::string("discardempty"); + case defs::DISCARD_PARTIAL_FRAMES: + return std::string("discardpartial"); + default: + return std::string("Unknown"); + } +} + +std::string ToString(const defs::fileFormat s) { + switch (s) { + case defs::HDF5: + return std::string("hdf5"); + case defs::BINARY: + return std::string("binary"); + default: + return std::string("Unknown"); + } +} + +std::string ToString(const defs::externalSignalFlag s) { + switch (s) { + case defs::TRIGGER_IN_RISING_EDGE: + return std::string("trigger_in_rising_edge"); + case defs::TRIGGER_IN_FALLING_EDGE: + return std::string("trigger_in_falling_edge"); + default: + return std::string("Unknown"); + } +} + +std::string ToString(const defs::readoutMode s) { + switch (s) { + case defs::ANALOG_ONLY: + return std::string("analog"); + case defs::DIGITAL_ONLY: + return std::string("digital"); + case defs::ANALOG_AND_DIGITAL: + return std::string("analog_digital"); + default: + return std::string("Unknown"); + } +} + +std::string ToString(const defs::frameModeType s) { + switch (s) { + case defs::PEDESTAL: + return std::string("pedestal"); + case defs::NEW_PEDESTAL: + return std::string("newpedestal"); + case defs::FLATFIELD: + return std::string("flatfield"); + case defs::NEW_FLATFIELD: + return std::string("newflatfield"); + default: + return std::string("Unknown"); + } +} + +std::string ToString(const defs::detectorModeType s) { + switch (s) { + case defs::COUNTING: + return std::string("counting"); + case defs::INTERPOLATING: + return std::string("interpolating"); + case defs::ANALOG: + return std::string("analog"); + default: + return std::string("Unknown"); + } +} + +std::string ToString(const defs::burstMode s) { + switch (s) { + case defs::BURST_OFF: + return std::string("off"); + case defs::BURST_INTERNAL: + return std::string("internal"); + case defs::BURST_EXTERNAL: + return std::string("external"); + default: + return std::string("Unknown"); + } +} + +std::string ToString(const defs::timingSourceType s) { + switch (s) { + case defs::TIMING_INTERNAL: + return std::string("internal"); + case defs::TIMING_EXTERNAL: + return std::string("external"); + default: + return std::string("Unknown"); + } +} + +const std::string &ToString(const std::string &s) { return s; } + +template <> defs::detectorType StringTo(const std::string &s) { + if (s == "Eiger") + return defs::EIGER; + if (s == "Gotthard") + return defs::GOTTHARD; + if (s == "Jungfrau") + return defs::JUNGFRAU; + if (s == "ChipTestBoard") + return defs::CHIPTESTBOARD; + if (s == "Moench") + return defs::MOENCH; + if (s == "Mythen3") + return defs::MYTHEN3; + if (s == "Gotthard2") + return defs::GOTTHARD2; + throw sls::RuntimeError("Unknown detector type " + s); +} + +template <> defs::detectorSettings StringTo(const std::string &s) { + if (s == "standard") + return defs::STANDARD; + if (s == "fast") + return defs::FAST; + if (s == "highgain") + return defs::HIGHGAIN; + if (s == "dynamicgain") + return defs::DYNAMICGAIN; + if (s == "lowgain") + return defs::LOWGAIN; + if (s == "mediumgain") + return defs::MEDIUMGAIN; + if (s == "veryhighgain") + return defs::VERYHIGHGAIN; + if (s == "dynamichg0") + return defs::DYNAMICHG0; + if (s == "fixgain1") + return defs::FIXGAIN1; + if (s == "fixgain2") + return defs::FIXGAIN2; + if (s == "forceswitchg1") + return defs::FORCESWITCHG1; + if (s == "forceswitchg2") + return defs::FORCESWITCHG2; + if (s == "verylowgain") + return defs::VERYLOWGAIN; + if (s == "g1_hg") + return defs::G1_HIGHGAIN; + if (s == "g1_lg") + return defs::G1_LOWGAIN; + if (s == "g2_hc_hg") + return defs::G2_HIGHCAP_HIGHGAIN; + if (s == "g2_hc_lg") + return defs::G2_HIGHCAP_LOWGAIN; + if (s == "g2_lc_hg") + return defs::G2_LOWCAP_HIGHGAIN; + if (s == "g2_lc_lg") + return defs::G2_LOWCAP_LOWGAIN; + if (s == "g4_hg") + return defs::G4_HIGHGAIN; + if (s == "g4_lg") + return defs::G4_LOWGAIN; + throw sls::RuntimeError("Unknown setting " + s); +} + +template <> defs::speedLevel StringTo(const std::string &s) { + if (s == "full_speed") + return defs::FULL_SPEED; + if (s == "half_speed") + return defs::HALF_SPEED; + if (s == "quarter_speed") + return defs::QUARTER_SPEED; + throw sls::RuntimeError("Unknown speed " + s); +} + +template <> defs::timingMode StringTo(const std::string &s) { + if (s == "auto") + return defs::AUTO_TIMING; + if (s == "trigger") + return defs::TRIGGER_EXPOSURE; + if (s == "gating") + return defs::GATED; + if (s == "burst_trigger") + return defs::BURST_TRIGGER; + throw sls::RuntimeError("Unknown timing mode " + s); +} + +template <> defs::frameDiscardPolicy StringTo(const std::string &s) { + if (s == "nodiscard") + return defs::NO_DISCARD; + if (s == "discardempty") + return defs::DISCARD_EMPTY_FRAMES; + if (s == "discardpartial") + return defs::DISCARD_PARTIAL_FRAMES; + throw sls::RuntimeError("Unknown frame discard policy " + s); +} + +template <> defs::fileFormat StringTo(const std::string &s) { + if (s == "hdf5") + return defs::HDF5; + if (s == "binary") + return defs::BINARY; + throw sls::RuntimeError("Unknown file format " + s); +} + +template <> defs::externalSignalFlag StringTo(const std::string &s) { + if (s == "trigger_in_rising_edge") + return defs::TRIGGER_IN_RISING_EDGE; + if (s == "trigger_in_falling_edge") + return defs::TRIGGER_IN_FALLING_EDGE; + throw sls::RuntimeError("Unknown external signal flag " + s); +} + +template <> defs::readoutMode StringTo(const std::string &s) { + if (s == "analog") + return defs::ANALOG_ONLY; + if (s == "digital") + return defs::DIGITAL_ONLY; + if (s == "analog_digital") + return defs::ANALOG_AND_DIGITAL; + throw sls::RuntimeError("Unknown readout mode " + s); +} + +template <> defs::frameModeType StringTo(const std::string &s) { + if (s == "pedestal") + return defs::PEDESTAL; + if (s == "newpedestal") + return defs::NEW_PEDESTAL; + if (s == "flatfield") + return defs::FLATFIELD; + if (s == "newflatfield") + return defs::NEW_FLATFIELD; + throw sls::RuntimeError("Unknown frame mode " + s); +} + +template <> defs::detectorModeType StringTo(const std::string &s) { + if (s == "counting") + return defs::COUNTING; + if (s == "interpolating") + return defs::INTERPOLATING; + if (s == "analog") + return defs::ANALOG; + throw sls::RuntimeError("Unknown detector mode " + s); +} + +template <> defs::dacIndex StringTo(const std::string &s) { + if (s == "vcmp_ll") + return defs::VCMP_LL; + if (s == "vcmp_lr") + return defs::VCMP_LR; + if (s == "vcmp_rl") + return defs::VCMP_RL; + if (s == "vcmp_rr") + return defs::VCMP_RR; + if (s == "vthreshold") + return defs::THRESHOLD; + if (s == "vrf") + return defs::VRF; + if (s == "vrs") + return defs::VRS; + if (s == "vtr") + return defs::VTR; + if (s == "vcall") + return defs::CAL; + if (s == "vcp") + return defs::VCP; + throw sls::RuntimeError("Unknown dac Index " + s); +} + +template <> defs::burstMode StringTo(const std::string &s) { + if (s == "off") + return defs::BURST_OFF; + if (s == "internal") + return defs::BURST_INTERNAL; + if (s == "external") + return defs::BURST_EXTERNAL; + throw sls::RuntimeError("Unknown burst mode " + s); +} + + +template <> defs::timingSourceType StringTo(const std::string &s) { + if (s == "internal") + return defs::TIMING_INTERNAL; + if (s == "external") + return defs::TIMING_EXTERNAL; + throw sls::RuntimeError("Unknown timing source type " + s); +} + +template <> uint32_t StringTo(const std::string &s) { + int base = s.find("0x") != std::string::npos ? 16 : 10; + return std::stoul(s, nullptr, base); +} + +template <> uint64_t StringTo(const std::string &s) { + int base = s.find("0x") != std::string::npos ? 16 : 10; + return std::stoull(s, nullptr, base); +} + +template <> int StringTo(const std::string &s) { + int base = s.find("0x") != std::string::npos ? 16 : 10; + return std::stoi(s, nullptr, base); +} + +template <> int64_t StringTo(const std::string &s) { + int base = s.find("0x") != std::string::npos ? 16 : 10; + return std::stol(s, nullptr, base); +} + +} // namespace sls \ No newline at end of file diff --git a/slsSupportLib/tests/test-ToString.cpp b/slsSupportLib/tests/test-ToString.cpp index 3034d0005..7fc6b4bcc 100644 --- a/slsSupportLib/tests/test-ToString.cpp +++ b/slsSupportLib/tests/test-ToString.cpp @@ -10,6 +10,7 @@ // using namespace sls; using sls::StringTo; using sls::ToString; +using sls::defs; using namespace sls::time; TEST_CASE("Integer conversions", "[support]") { @@ -221,4 +222,10 @@ TEST_CASE("std::map of ints"){ m[372] = 999; REQUIRE(ToString(m) == "{5: 10, 372: 999, 500: 50}"); +} + +TEST_CASE("Detector type"){ + auto dt = defs::detectorType::EIGER; + REQUIRE(ToString(dt) == "Eiger"); + REQUIRE(StringTo("Eiger") == dt); } \ No newline at end of file From 02d7381788e54d69f1aafeaf870a5610064f417b Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Thu, 26 Mar 2020 18:42:01 +0100 Subject: [PATCH 05/33] compile manuals --- cmk.sh | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/cmk.sh b/cmk.sh index 898e6f96f..98e11a684 100755 --- a/cmk.sh +++ b/cmk.sh @@ -11,6 +11,7 @@ PYTHON=0 TESTS=0 SIMULATOR=0 CTBGUI=0 +MANUALS=0 CLEAN=0 @@ -19,7 +20,7 @@ CMAKE_PRE="" CMAKE_POST="" usage() { echo -e " -Usage: $0 [-c] [-b] [-p] [e] [t] [r] [g] [s] [u] [i] [-h] [-d ] [-j] +Usage: $0 [-c] [-b] [-p] [e] [t] [r] [g] [s] [u] [i] [m] [-h] [-d ] [-j] -[no option]: only make -c: Clean -b: Builds/Rebuilds CMake files normal mode @@ -34,6 +35,7 @@ Usage: $0 [-c] [-b] [-p] [e] [t] [r] [g] [s] [u] [i] [-h] [-d ] -j: Number of threads to compile through -e: Debug mode -i: Builds tests + -m: Manuals Rebuild when you switch to a new build and compile in parallel: ./cmk.sh -bj5 @@ -69,7 +71,7 @@ For rebuilding only certain sections " ; exit 1; } -while getopts ":bpchd:j:trgeisu" opt ; do +while getopts ":bpchd:j:trgeisum" opt ; do case $opt in b) echo "Building of CMake files Required" @@ -124,6 +126,10 @@ while getopts ":bpchd:j:trgeisu" opt ; do echo "Compiling Options: Simulator" SIMULATOR=1 ;; + m) + echo "Compiling Manuals" + MANUALS=1 + ;; u) echo "Compiling Options: Chip Test Gui" CTBGUI=1 @@ -198,6 +204,12 @@ if [ $SIMULATOR -eq 1 ]; then echo "Simulator Option enabled" fi +#Manuals +if [ $MANUALS -eq 1 ]; then + CMAKE_POST+=" -DSLS_BUILD_DOCS=ON " + echo "Manuals Option enabled" +fi + #Chip Test Gui if [ $CTBGUI -eq 1 ]; then CMAKE_POST+=" -DSLS_USE_CTBGUI=ON " @@ -251,6 +263,9 @@ else make fi +if [ $MANUALS -eq 1 ]; then + make docs +fi From 58ab3c4123bcb432002f78abd6b7633c80a9a5af Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Fri, 27 Mar 2020 08:22:24 +0100 Subject: [PATCH 06/33] gold linker --- CMakeLists.txt | 12 ++++- docs/CMakeLists.txt | 120 ++++++++++++++++++++++---------------------- 2 files changed, 70 insertions(+), 62 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 31d67ae1e..917ea805d 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,7 +46,17 @@ option(SLS_BUILD_DOCS "docs" OFF) option(SLS_BUILD_EXAMPLES "examples" OFF) option(SLS_TUNE_LOCAL "tune to local machine" OFF) - +# Use ld.gold if it is available and isn't disabled explicitly +option(SLS_USE_LD_GOLD "Use GNU gold linker" ON) +if (SLS_USE_LD_GOLD) + execute_process(COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version ERROR_QUIET OUTPUT_VARIABLE LD_VERSION) + if ("${LD_VERSION}" MATCHES "GNU gold") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=gold") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold") + else () + message(WARNING "GNU gold linker isn't available, using the default system linker.") + endif () +endif () set(CMAKE_EXPORT_COMPILE_COMMANDS ON) if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index a81df2b7f..a37acd1e3 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -1,71 +1,69 @@ -find_package(Doxygen) -find_package(Sphinx) +find_package(Doxygen REQUIRED) +find_package(Sphinx REQUIRED) -if (DOXYGEN_FOUND AND SPHINX_FOUND) - # message(${CMAKE_PROJECT_SORURCE_DIR}/slsDetectorSoftware/src) - # Utility to generate command line documentation - add_executable(gendoc src/gendoc.cpp) - # This is a bit hacky, but better than exposing stuff? - target_include_directories(gendoc PRIVATE ${PROJECT_SOURCE_DIR}/slsDetectorSoftware/src) - target_link_libraries(gendoc PRIVATE - slsDetectorShared - ) - set_target_properties(gendoc PROPERTIES - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin - ) - - - #Doxygen - set(DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in) - set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) - configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY) +# Utility to generate command line documentation +add_executable(gendoc src/gendoc.cpp) +# This is a bit hacky, but better than exposing stuff? +target_include_directories(gendoc PRIVATE ${PROJECT_SOURCE_DIR}/slsDetectorSoftware/src) +target_link_libraries(gendoc PRIVATE + slsDetectorShared +) +set_target_properties(gendoc PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin +) - #Sphinx - set(SPHINX_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src) - set(SPHINX_BUILD ${CMAKE_CURRENT_BINARY_DIR}) - set(SPHINX_SOURCE_FILES - src/commandline.rst - src/container_utils.rst - src/consuming.rst - src/dependencies.rst - src/detector.rst - src/index.rst - src/installation.rst - src/pydetector.rst - src/pyenums.rst - src/pyexamples.rst - src/receiver.rst - src/result.rst - src/type_traits.rst - src/ToString.rst - src/examples.rst - - ) - foreach(filename ${SPHINX_SOURCE_FILES}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${filename} - "${SPHINX_BUILD}/${filename}") - endforeach(filename ${SPHINX_SOURCE_FILES}) - configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/conf.py.in" - "${SPHINX_BUILD}/conf.py" - @ONLY) +#Doxygen +set(DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in) +set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) +configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY) + +#Sphinx +set(SPHINX_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src) +set(SPHINX_BUILD ${CMAKE_CURRENT_BINARY_DIR}) + +set(SPHINX_SOURCE_FILES + src/commandline.rst + src/container_utils.rst + src/consuming.rst + src/dependencies.rst + src/detector.rst + src/index.rst + src/installation.rst + src/pydetector.rst + src/pyenums.rst + src/pyexamples.rst + src/receiver.rst + src/result.rst + src/type_traits.rst + src/ToString.rst + src/examples.rst + +) + +foreach(filename ${SPHINX_SOURCE_FILES}) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${filename} + "${SPHINX_BUILD}/${filename}") +endforeach(filename ${SPHINX_SOURCE_FILES}) + +configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/conf.py.in" + "${SPHINX_BUILD}/conf.py" + @ONLY) + +add_custom_target(docs + gendoc + COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT} + COMMAND ${SPHINX_EXECUTABLE} -a -b html + -Dbreathe_projects.slsDetectorPackage=${CMAKE_CURRENT_BINARY_DIR}/xml + -c "${SPHINX_BUILD}" + ${SPHINX_BUILD}/src + ${SPHINX_BUILD}/html + COMMENT "Generating documentation with Sphinx") - add_custom_target(docs - gendoc - COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT} - COMMAND ${SPHINX_EXECUTABLE} -a -b html - -Dbreathe_projects.slsDetectorPackage=${CMAKE_CURRENT_BINARY_DIR}/xml - -c "${SPHINX_BUILD}" - ${SPHINX_BUILD}/src - ${SPHINX_BUILD}/html - COMMENT "Generating documentation with Sphinx") -else (DOXYGEN_FOUND AND SPHINX_FOUND) - message("Doxygen and Sphinx are needed to build documentation") -endif (DOXYGEN_FOUND AND SPHINX_FOUND) From d488f4bea80a0e4f1de4837a48cbf2cbbcc29477 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 27 Mar 2020 16:59:16 +0100 Subject: [PATCH 07/33] updated all receiver testing --- python/scripts/list_tested_cmd.py | 0 slsDetectorSoftware/src/Module.cpp | 1 + .../tests/test-CmdProxy-rx.cpp | 731 +++++++++++------- slsDetectorSoftware/tests/test-CmdProxy.cpp | 31 - 4 files changed, 472 insertions(+), 291 deletions(-) mode change 100644 => 100755 python/scripts/list_tested_cmd.py diff --git a/python/scripts/list_tested_cmd.py b/python/scripts/list_tested_cmd.py old mode 100644 new mode 100755 diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 21a7b87d0..02018569d 100755 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -3269,6 +3269,7 @@ void Module::setPartialFramesPadding(bool padding) { void Module::startReceiver() { LOG(logDEBUG1) << "Starting Receiver"; + shm()->stoppedFlag = false; if (shm()->useReceiverFlag) { sendToReceiver(F_START_RECEIVER, nullptr, nullptr); } diff --git a/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp b/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp index f47d95864..9e881fdf0 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp @@ -15,95 +15,9 @@ using test::PUT; /* This file should contain receiver specific tests use python/scripts/list_tested_cmd.py to check if all commands are covered - */ -// TEST_CASE("A test", "[.hey]"){ -// std::cout << "start\n"; -// SECTION("a section"){ -// std::cout << "s1\n"; -// } -// SECTION("another section"){ -// std::cout << "s2\n"; -// } -// std::cout << "end\n"; -// } - -TEST_CASE("rx_hostname", "[.cmd][.rx]") { - // TODO! find a proper way to test, now we read out the rx_hostname - // and then put it to see that we don't crash - Detector det; - CmdProxy proxy(&det); - std::string hostname = - det.getRxHostname().tsquash("hostname must be same for test"); - - auto det_type = det.getDetectorType().squash(); - sls::Result time; - if (det_type == defs::EIGER) { - time = det.getSubDeadTime(); - } - - { - // disable receiver - std::ostringstream oss1, oss2; - proxy.Call("rx_hostname", {"none"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "rx_hostname none\n"); - proxy.Call("rx_hostname", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "rx_hostname none\n"); - // receiver should be disabled - REQUIRE(det.getUseReceiverFlag().tsquash( - "different values of flag in test") == false); - } - { - // put back the old hostname - std::ostringstream oss1, oss2; - proxy.Call("rx_hostname", {hostname}, -1, PUT, oss1); - REQUIRE(oss1.str() == "rx_hostname " + hostname + "\n"); - proxy.Call("rx_hostname", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "rx_hostname " + hostname + "\n"); - } - - //Bug rx_hostname could change subdeadtime - if (det_type == defs::EIGER) { - auto time2 = det.getSubDeadTime(); - for (int i = 0; i != det.size(); ++i) { - REQUIRE(time[i].count() == time2[i].count()); - } - } -} - -TEST_CASE("rx_framescaught", "[.cmd][.rx]") { - Detector det; - CmdProxy proxy(&det); - - // This ensures 0 caught frames - det.startReceiver(); - det.stopReceiver(); - - { - std::ostringstream oss; - proxy.Call("rx_framescaught", {}, -1, GET, oss); - REQUIRE(oss.str() == "rx_framescaught 0\n"); - } - - // Currently disabled may activate if we have a stable env - // Now take one frame and see that we caught it - // det.setNumberOfFrames(1); - // det.acquire(); - // { - // std::ostringstream oss; - // proxy.Call("rx_framescaught", {}, -1, GET, oss); - // REQUIRE(oss.str() == "rx_framescaught 1\n"); - // } -} - -TEST_CASE("rx_status", "[.cmd][.rx]") { - Detector det; - CmdProxy proxy(&det); - std::ostringstream oss; - proxy.Call("rx_status", {}, -1, GET, oss); - REQUIRE(oss.str() == "rx_status idle\n"); -} +/* configuration */ TEST_CASE("rx_version", "[.cmd][.rx]") { Detector det; @@ -115,6 +29,8 @@ TEST_CASE("rx_version", "[.cmd][.rx]") { REQUIRE(oss.str() == vs.str()); } +/* acquisition */ + TEST_CASE("rx_start", "[.cmd][.rx]") { Detector det; CmdProxy proxy(&det); @@ -149,41 +65,143 @@ TEST_CASE("rx_stop", "[.cmd][.rx]") { } } +TEST_CASE("rx_status", "[.cmd][.rx]") { + Detector det; + CmdProxy proxy(&det); + det.startReceiver(); + { + std::ostringstream oss; + proxy.Call("rx_status", {}, -1, GET, oss); + REQUIRE(oss.str() == "rx_status running\n"); + } + det.stopReceiver(); + { + std::ostringstream oss; + proxy.Call("rx_status", {}, -1, GET, oss); + REQUIRE(oss.str() == "rx_status idle\n"); + } +} + +TEST_CASE("rx_framescaught", "[.cmd][.rx]") { + Detector det; + CmdProxy proxy(&det); + + // This ensures 0 caught frames + det.startReceiver(); + det.stopReceiver(); + { + std::ostringstream oss; + proxy.Call("rx_framescaught", {}, -1, GET, oss); + REQUIRE(oss.str() == "rx_framescaught 0\n"); + } + + // Currently disabled may activate if we have a stable env + // Now take one frame and see that we caught it + // det.setNumberOfFrames(1); + // det.acquire(); + // { + // std::ostringstream oss; + // proxy.Call("rx_framescaught", {}, -1, GET, oss); + // REQUIRE(oss.str() == "rx_framescaught 1\n"); + // } + +} + TEST_CASE("rx_missingpackets", "[.cmd][.rx]") { - // TODO! This only tests for no crash how can we test - // for correct values? Detector det; CmdProxy proxy(&det); - proxy.Call("rx_missingpackets", {}, -1, GET); + { + // some missing packets + det.startReceiver(); + det.stopReceiver(); + std::ostringstream oss; + proxy.Call("rx_missingpackets", {}, -1, GET, oss); + std::string s = (oss.str()).erase(0, strlen("rx_missingpackets [")); + REQUIRE(std::stoi(s) > 0); + } + { + // 0 missing packets (takes into account that acquisition is stopped) + det.startReceiver(); + det.stopDetector(); + det.stopReceiver(); + std::ostringstream oss; + proxy.Call("rx_missingpackets", {}, -1, GET, oss); + std::string s = (oss.str()).erase(0, strlen("rx_missingpackets [")); + REQUIRE(std::stoi(s) == 0); + } } -TEST_CASE("rx_frameindex", "[.cmd][.rx]") { - Detector det; - CmdProxy proxy(&det); - proxy.Call("rx_frameindex", {}, -1, GET); - - // This is a get only command - REQUIRE_THROWS(proxy.Call("rx_frameindex", {"2"}, -1, PUT)); -} - -TEST_CASE("rx_lastclient", "[.cmd][.rx]") { - Detector det; - CmdProxy proxy(&det); - std::ostringstream oss; - proxy.Call("rx_lastclient", {}, -1, GET, oss); - REQUIRE(oss.str() == "rx_lastclient " + test::my_ip + "\n"); -} +/* Network Configuration (Detector<->Receiver) */ TEST_CASE("rx_printconfig", "[.cmd][.rx]") { Detector det; CmdProxy proxy(&det); - proxy.Call("rx_printconfig", {}, -1, GET); + REQUIRE_NOTHROW(proxy.Call("rx_printconfig", {}, -1, GET)); +} + + +/* Receiver Config */ + +TEST_CASE("rx_hostname", "[.cmd][.rx]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getRxHostname(); + + // Cannot set rx_hostname (will reset parameters in rxr and no shm variables to update) + // { + // // disable receiver + // std::ostringstream oss; + // proxy.Call("rx_hostname", {"none"}, -1, PUT, oss); + // REQUIRE(oss.str() == "rx_hostname [none]\n"); + // } + // { + // std::ostringstream oss; + // proxy.Call("rx_hostname", {}, -1, GET, oss); + // REQUIRE(oss.str() == "rx_hostname none\n"); + // // receiver should be disabled + // REQUIRE(det.getUseReceiverFlag().tsquash( + // "different values of flag in test") == false); + // } + // put back old values (not necessary when we dont set it to none) + // for (int i = 0; i != det.size(); ++i) { + // det.setRxHostname(prev_val[i], {i}); + // } + { + std::ostringstream oss; + proxy.Call("rx_hostname", {}, 0, GET, oss); + REQUIRE(oss.str() == "rx_hostname " + prev_val[0] + "\n"); + } +} + +TEST_CASE("rx_tcpport", "[.cmd][.rx]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getRxPort(); + + int port = 3500; + proxy.Call("rx_tcpport", {std::to_string(port)}, -1, PUT); + for (int i = 0; i != det.size(); ++i) { + std::ostringstream oss; + proxy.Call("rx_tcpport", {}, i, GET, oss); + REQUIRE(oss.str() == "rx_tcpport " + std::to_string(port + i) + '\n'); + } + REQUIRE_THROWS(proxy.Call("rx_tcpport", {"15"}, -1, PUT)); + port = 5754; + proxy.Call("rx_tcpport", {std::to_string(port)}, -1, PUT); + for (int i = 0; i != det.size(); ++i) { + std::ostringstream oss; + proxy.Call("rx_tcpport", {}, i, GET, oss); + REQUIRE(oss.str() == "rx_tcpport " + std::to_string(port + i) + '\n'); + } + for (int i = 0; i != det.size(); ++i) { + det.setRxPort(prev_val[i], i); + } } TEST_CASE("rx_fifodepth", "[.cmd][.rx]") { Detector det; CmdProxy proxy(&det); - int prev_val = det.getRxFifoDepth().squash(); + auto prev_val = det.getRxFifoDepth(); { std::ostringstream oss; proxy.Call("rx_fifodepth", {"10"}, -1, PUT, oss); @@ -194,18 +212,20 @@ TEST_CASE("rx_fifodepth", "[.cmd][.rx]") { proxy.Call("rx_fifodepth", {"100"}, -1, PUT, oss); REQUIRE(oss.str() == "rx_fifodepth 100\n"); } - { std::ostringstream oss; proxy.Call("rx_fifodepth", {}, -1, GET, oss); REQUIRE(oss.str() == "rx_fifodepth 100\n"); } - det.setRxFifoDepth(prev_val); + for (int i = 0; i != det.size(); ++i) { + det.setRxFifoDepth(prev_val[i], {i}); + } } TEST_CASE("rx_silent", "[.cmd][.rx]") { Detector det; CmdProxy proxy(&det); + auto prev_val = det.getRxSilentMode(); { std::ostringstream oss; proxy.Call("rx_silent", {"1"}, -1, PUT, oss); @@ -221,87 +241,15 @@ TEST_CASE("rx_silent", "[.cmd][.rx]") { proxy.Call("rx_silent", {"0"}, -1, PUT, oss); REQUIRE(oss.str() == "rx_silent 0\n"); } -} - -TEST_CASE("rx_jsonaddheader", "[.cmd][.rx]") { - Detector det; - CmdProxy proxy(&det); - - { - std::ostringstream oss; - proxy.Call("rx_jsonaddheader", {"\"hej\":\"5\""}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_jsonaddheader \"hej\":\"5\"\n"); - } - { - std::ostringstream oss; - proxy.Call("rx_jsonaddheader", {}, -1, GET, oss); - REQUIRE(oss.str() == "rx_jsonaddheader \"hej\":\"5\"\n"); - } - { - std::ostringstream oss; - proxy.Call("rx_jsonaddheader", {"\"\""}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_jsonaddheader \"\"\n"); - } -} - -TEST_CASE("rx_udpsocksize", "[.cmd][.rx]") { - Detector det; - CmdProxy proxy(&det); - { - std::ostringstream oss; - proxy.Call("rx_udpsocksize", {"4857600"}, -1, PUT, oss); - REQUIRE(oss.str() >= "rx_udpsocksize 4857600\n"); - } - { - std::ostringstream oss; - proxy.Call("rx_udpsocksize", {}, -1, GET, oss); - REQUIRE(oss.str() >= "rx_udpsocksize 4857600\n"); - } -} - -TEST_CASE("rx_realudpsocksize", "[.cmd][.rx]") { - // TODO! Is the real socket size always twice? - Detector det; - CmdProxy proxy(&det); - uint64_t val = 0; - { - std::ostringstream oss; - proxy.Call("rx_udpsocksize", {}, -1, GET, oss); - std::string s = (oss.str()).erase(0, strlen("rx_udpsocksize ")); - val = std::stol(s); - } - { - std::ostringstream oss; - proxy.Call("rx_realudpsocksize", {}, -1, GET, oss); - std::string s = (oss.str()).erase(0, strlen("rx_realudpsocksize ")); - uint64_t rval = std::stol(s); - REQUIRE(rval >= val * 2); - } -} - -TEST_CASE("rx_framesperfile", "[.cmd][.rx]") { - Detector det; - CmdProxy proxy(&det); - { - std::ostringstream oss; - proxy.Call("rx_framesperfile", {"50"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_framesperfile 50\n"); - } - { - std::ostringstream oss; - proxy.Call("rx_framesperfile", {}, -1, GET, oss); - REQUIRE(oss.str() == "rx_framesperfile 50\n"); - } - { - std::ostringstream oss; - proxy.Call("rx_framesperfile", {"10000"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_framesperfile 10000\n"); + for (int i = 0; i != det.size(); ++i) { + det.setRxSilentMode(prev_val[i], {i}); } } TEST_CASE("rx_discardpolicy", "[.cmd][.rx]") { Detector det; CmdProxy proxy(&det); + auto prev_val = det.getRxFrameDiscardPolicy(); { std::ostringstream oss; proxy.Call("rx_discardpolicy", {"discardempty"}, -1, PUT, oss); @@ -322,11 +270,15 @@ TEST_CASE("rx_discardpolicy", "[.cmd][.rx]") { proxy.Call("rx_discardpolicy", {"nodiscard"}, -1, PUT, oss); REQUIRE(oss.str() == "rx_discardpolicy nodiscard\n"); } + for (int i = 0; i != det.size(); ++i) { + det.setRxFrameDiscardPolicy(prev_val[i], {i}); + } } TEST_CASE("rx_padding", "[.cmd][.rx]") { Detector det; CmdProxy proxy(&det); + auto prev_val = det.getPartialFramesPadding(); { std::ostringstream oss; proxy.Call("rx_padding", {"0"}, -1, PUT, oss); @@ -342,31 +294,52 @@ TEST_CASE("rx_padding", "[.cmd][.rx]") { proxy.Call("rx_padding", {"1"}, -1, PUT, oss); REQUIRE(oss.str() == "rx_padding 1\n"); } + for (int i = 0; i != det.size(); ++i) { + det.setPartialFramesPadding(prev_val[i], {i}); + } } -TEST_CASE("rx_readfreq", "[.cmd][.rx]") { +TEST_CASE("rx_udpsocksize", "[.cmd][.rx]") { Detector det; CmdProxy proxy(&det); + int64_t prev_val = det.getRxUDPSocketBufferSize().tsquash("Need same udp socket buffer size to test"); + std::string s_new_val = std::to_string(prev_val - 1000); { std::ostringstream oss; - proxy.Call("rx_readfreq", {"1"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_readfreq 1\n"); + proxy.Call("rx_udpsocksize", {s_new_val}, -1, PUT, oss); + REQUIRE(oss.str() >= "rx_udpsocksize " + s_new_val + "\n"); } { std::ostringstream oss; - proxy.Call("rx_readfreq", {}, -1, GET, oss); - REQUIRE(oss.str() == "rx_readfreq 1\n"); + proxy.Call("rx_udpsocksize", {}, -1, GET, oss); + REQUIRE(oss.str() >= "rx_udpsocksize " + s_new_val + "\n"); + } + det.setRxUDPSocketBufferSize(prev_val); +} + +TEST_CASE("rx_realudpsocksize", "[.cmd][.rx]") { + Detector det; + CmdProxy proxy(&det); + uint64_t val = 0; + { + std::ostringstream oss; + proxy.Call("rx_udpsocksize", {}, -1, GET, oss); + std::string s = (oss.str()).erase(0, strlen("rx_udpsocksize ")); + val = std::stol(s); } { std::ostringstream oss; - proxy.Call("rx_readfreq", {"0"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_readfreq 0\n"); + proxy.Call("rx_realudpsocksize", {}, -1, GET, oss); + std::string s = (oss.str()).erase(0, strlen("rx_realudpsocksize ")); + uint64_t rval = std::stol(s); + REQUIRE(rval >= val * 2); } } TEST_CASE("rx_lock", "[.cmd][.rx]") { Detector det; CmdProxy proxy(&det); + auto prev_val = det.getRxLock(); { std::ostringstream oss; proxy.Call("rx_lock", {"1"}, -1, PUT, oss); @@ -382,46 +355,216 @@ TEST_CASE("rx_lock", "[.cmd][.rx]") { proxy.Call("rx_lock", {"0"}, -1, PUT, oss); REQUIRE(oss.str() == "rx_lock 0\n"); } + for (int i = 0; i != det.size(); ++i) { + det.setRxLock(prev_val[i], {i}); + } } -TEST_CASE("rx_zmqport", "[.cmd][.rx]") { +TEST_CASE("rx_lastclient", "[.cmd][.rx]") { Detector det; CmdProxy proxy(&det); - int socketsperdetector = 1; - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::EIGER) { - socketsperdetector *= 2; - } else if (det_type == defs::JUNGFRAU) { - proxy.Call("numinterfaces", {"2"}, -1, PUT); - socketsperdetector *= 2; - } - int port = 3500; - proxy.Call("rx_zmqport", {std::to_string(port)}, -1, PUT); - for (int i = 0; i != det.size(); ++i) { - std::ostringstream oss; - proxy.Call("rx_zmqport", {}, i, GET, oss); - std::cout << "oss: " << oss.str() << "\n"; - REQUIRE(oss.str() == "rx_zmqport " + - std::to_string(port + i * socketsperdetector) + - '\n'); - } - port = 30001; - proxy.Call("rx_zmqport", {std::to_string(port)}, -1, PUT); - for (int i = 0; i != det.size(); ++i) { - std::ostringstream oss; - proxy.Call("rx_zmqport", {}, i, GET, oss); - REQUIRE(oss.str() == "rx_zmqport " + - std::to_string(port + i * socketsperdetector) + - '\n'); - } - if (det_type == slsDetectorDefs::JUNGFRAU) { - proxy.Call("numinterfaces", {"1"}, -1, PUT); + std::ostringstream oss; + REQUIRE_NOTHROW(proxy.Call("rx_lastclient", {}, -1, GET, oss)); + if (test::my_ip != "undefined") { + REQUIRE(oss.str() == "rx_lastclient " + test::my_ip + "\n"); } } +/* File */ + +TEST_CASE("fformat", "[.cmd]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getFileFormat(); + { + std::ostringstream oss; + proxy.Call("fformat", {"binary"}, -1, PUT, oss); + REQUIRE(oss.str() == "fformat binary\n"); + } + { + std::ostringstream oss; + proxy.Call("fformat", {}, -1, GET, oss); + REQUIRE(oss.str() == "fformat binary\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setFileFormat(prev_val[i], {i}); + } +} + +TEST_CASE("fpath", "[.cmd]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getFilePath(); + { + std::ostringstream oss; + proxy.Call("fpath", {"/tmp"}, -1, PUT, oss); + REQUIRE(oss.str() == "fpath /tmp\n"); + } + { + std::ostringstream oss; + proxy.Call("fpath", {}, -1, GET, oss); + REQUIRE(oss.str() == "fpath /tmp\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setFilePath(prev_val[i], {i}); + } +} + +TEST_CASE("fname", "[.cmd]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getFileNamePrefix(); + { + std::ostringstream oss; + proxy.Call("fname", {"somename"}, -1, PUT, oss); + REQUIRE(oss.str() == "fname somename\n"); + } + { + std::ostringstream oss; + proxy.Call("fname", {}, -1, GET, oss); + REQUIRE(oss.str() == "fname somename\n"); + } + { + std::ostringstream oss; + proxy.Call("fname", {"run"}, -1, PUT, oss); + REQUIRE(oss.str() == "fname run\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setFileNamePrefix(prev_val[i], {i}); + } +} + +TEST_CASE("findex", "[.cmd]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getAcquisitionIndex(); + { + std::ostringstream oss; + proxy.Call("findex", {"57"}, -1, PUT, oss); + REQUIRE(oss.str() == "findex 57\n"); + } + { + std::ostringstream oss; + proxy.Call("findex", {}, -1, GET, oss); + REQUIRE(oss.str() == "findex 57\n"); + } + { + std::ostringstream oss; + proxy.Call("findex", {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == "findex 0\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setAcquisitionIndex(prev_val[i], {i}); + } +} + +TEST_CASE("fwrite", "[.cmd]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getFileWrite(); + { + std::ostringstream oss; + proxy.Call("fwrite", {"1"}, -1, PUT, oss); + REQUIRE(oss.str() == "fwrite 1\n"); + } + { + std::ostringstream oss; + proxy.Call("fwrite", {}, -1, GET, oss); + REQUIRE(oss.str() == "fwrite 1\n"); + } + { + std::ostringstream oss; + proxy.Call("fwrite", {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == "fwrite 0\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setFileWrite(prev_val[i], {i}); + } +} + +TEST_CASE("fmaster", "[.cmd]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getMasterFileWrite(); + { + std::ostringstream oss; + proxy.Call("fmaster", {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == "fmaster 0\n"); + } + { + std::ostringstream oss; + proxy.Call("fmaster", {}, -1, GET, oss); + REQUIRE(oss.str() == "fmaster 0\n"); + } + { + std::ostringstream oss; + proxy.Call("fmaster", {"1"}, -1, PUT, oss); + REQUIRE(oss.str() == "fmaster 1\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setMasterFileWrite(prev_val[i], {i}); + } +} + +TEST_CASE("foverwrite", "[.cmd]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getFileOverWrite(); + { + std::ostringstream oss; + proxy.Call("foverwrite", {"1"}, -1, PUT, oss); + REQUIRE(oss.str() == "foverwrite 1\n"); + } + { + std::ostringstream oss; + proxy.Call("foverwrite", {}, -1, GET, oss); + REQUIRE(oss.str() == "foverwrite 1\n"); + } + { + std::ostringstream oss; + proxy.Call("foverwrite", {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == "foverwrite 0\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setFileOverWrite(prev_val[i], {i}); + } +} + +TEST_CASE("rx_framesperfile", "[.cmd][.rx]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getFramesPerFile(); + { + std::ostringstream oss; + proxy.Call("rx_framesperfile", {"50"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_framesperfile 50\n"); + } + { + std::ostringstream oss; + proxy.Call("rx_framesperfile", {}, -1, GET, oss); + REQUIRE(oss.str() == "rx_framesperfile 50\n"); + } + { + std::ostringstream oss; + proxy.Call("rx_framesperfile", {"10000"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_framesperfile 10000\n"); + } + { + std::ostringstream oss; + proxy.Call("rx_framesperfile", {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_framesperfile 0\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setFramesPerFile(prev_val[i], {i}); + } +} + +/* ZMQ Streaming Parameters (Receiver<->Client) */ + TEST_CASE("rx_datastream", "[.cmd][.rx]") { Detector det; CmdProxy proxy(&det); + auto prev_val = det.getRxZmqDataStream(); { std::ostringstream oss; proxy.Call("rx_datastream", {"1"}, -1, PUT, oss); @@ -439,33 +582,79 @@ TEST_CASE("rx_datastream", "[.cmd][.rx]") { REQUIRE(oss.str() == "rx_datastream 0\n"); REQUIRE(det.getRxZmqDataStream().squash() == false); } + for (int i = 0; i != det.size(); ++i) { + det.setRxZmqDataStream(prev_val[i], {i}); + } } -TEST_CASE("rx_tcpport", "[.cmd][.rx]") { +TEST_CASE("rx_readfreq", "[.cmd][.rx]") { Detector det; CmdProxy proxy(&det); - - int port = 3500; - - proxy.Call("rx_tcpport", {std::to_string(port)}, -1, PUT); - for (int i = 0; i != det.size(); ++i) { + auto prev_val = det.getRxZmqFrequency(); + { std::ostringstream oss; - proxy.Call("rx_tcpport", {}, i, GET, oss); - REQUIRE(oss.str() == "rx_tcpport " + std::to_string(port + i) + '\n'); + proxy.Call("rx_readfreq", {"1"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_readfreq 1\n"); } - REQUIRE_THROWS(proxy.Call("rx_tcpport", {"15"}, -1, PUT)); - port = 1954; - proxy.Call("rx_tcpport", {std::to_string(port)}, -1, PUT); + { + std::ostringstream oss; + proxy.Call("rx_readfreq", {}, -1, GET, oss); + REQUIRE(oss.str() == "rx_readfreq 1\n"); + } + { + std::ostringstream oss; + proxy.Call("rx_readfreq", {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_readfreq 0\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setRxZmqFrequency(prev_val[i], {i}); + } +} + +TEST_CASE("rx_zmqport", "[.cmd][.rx]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val_zmqport = det.getRxZmqPort(); + auto prev_val_numinterfaces = det.getNumberofUDPInterfaces(); + + int socketsperdetector = 1; + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + socketsperdetector *= 2; + } else if (det_type == defs::JUNGFRAU) { + proxy.Call("numinterfaces", {"2"}, -1, PUT); + socketsperdetector *= 2; + } + int port = 3500; + proxy.Call("rx_zmqport", {std::to_string(port)}, -1, PUT); for (int i = 0; i != det.size(); ++i) { std::ostringstream oss; - proxy.Call("rx_tcpport", {}, i, GET, oss); - REQUIRE(oss.str() == "rx_tcpport " + std::to_string(port + i) + '\n'); + proxy.Call("rx_zmqport", {}, i, GET, oss); + REQUIRE(oss.str() == "rx_zmqport " + + std::to_string(port + i * socketsperdetector) + + '\n'); + } + port = 30001; + proxy.Call("rx_zmqport", {std::to_string(port)}, -1, PUT); + for (int i = 0; i != det.size(); ++i) { + std::ostringstream oss; + proxy.Call("rx_zmqport", {}, i, GET, oss); + REQUIRE(oss.str() == "rx_zmqport " + + std::to_string(port + i * socketsperdetector) + + '\n'); + } + for (int i = 0; i != det.size(); ++i) { + det.setRxZmqPort(prev_val_zmqport[i], i); + if (det_type == defs::JUNGFRAU) { + det.setNumberofUDPInterfaces(prev_val_numinterfaces[i], {i}); + } } } TEST_CASE("rx_zmqip", "[.cmd][.rx]") { Detector det; CmdProxy proxy(&det); + auto prev_val = det.getRxZmqIP(); { std::ostringstream oss; proxy.Call("rx_zmqip", {"127.0.0.1"}, 0, PUT, oss); @@ -477,6 +666,39 @@ TEST_CASE("rx_zmqip", "[.cmd][.rx]") { proxy.Call("rx_zmqip", {}, 0, GET, oss); REQUIRE(oss.str() == "rx_zmqip 127.0.0.1\n"); } + for (int i = 0; i != det.size(); ++i) { + det.setRxZmqIP(prev_val[i], {i}); + } +} + +/* CTB Specific */ + +TEST_CASE("rx_dbitlist", "[.cmd][.rx]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::CHIPTESTBOARD) { + auto previous = det.getRxDbitList(); + { + std::ostringstream oss; + proxy.Call("rx_dbitlist", {"0", "4", "5", "8", "9", "10", "52", "63"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_dbitlist [0, 4, 5, 8, 9, 10, 52, 63]\n"); + } + { + std::ostringstream oss; + proxy.Call("rx_dbitlist", {}, -1, GET, oss); + REQUIRE(oss.str() == "rx_dbitlist [0, 4, 5, 8, 9, 10, 52, 63]\n"); + } + REQUIRE_THROWS(proxy.Call("rx_dbitlist", {"67"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("rx_dbitlist", {"-1"}, -1, PUT)); + REQUIRE_NOTHROW(proxy.Call("rx_dbitlist", {"all"}, -1, PUT)); + // Reset to previous value + for (int i = 0; i != det.size(); ++i) { + det.setRxDbitList(previous[i], {i}); + } + } else { + REQUIRE_THROWS(proxy.Call("rx_dbitlist", {}, -1, GET)); + } } TEST_CASE("rx_dbitoffset", "[.cmd][.rx]") { @@ -514,32 +736,21 @@ TEST_CASE("rx_dbitoffset", "[.cmd][.rx]") { } } +/* Moench */ +//FIXME: rx_jsonaddheader, rx_jsonpara -TEST_CASE("rx_dbitlist", "[.cmd][.rx]") { +/* Insignificant */ + +TEST_CASE("rx_frameindex", "[.cmd][.rx]") { Detector det; CmdProxy proxy(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::CHIPTESTBOARD) { - auto previous = det.getRxDbitList(); - { - std::ostringstream oss; - proxy.Call("rx_dbitlist", {"0", "4", "5", "8", "9", "10", "52", "63"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_dbitlist [0, 4, 5, 8, 9, 10, 52, 63]\n"); - } - { - std::ostringstream oss; - proxy.Call("rx_dbitlist", {}, -1, GET, oss); - REQUIRE(oss.str() == "rx_dbitlist [0, 4, 5, 8, 9, 10, 52, 63]\n"); - } - REQUIRE_THROWS(proxy.Call("rx_dbitlist", {"67"}, -1, PUT)); - REQUIRE_THROWS(proxy.Call("rx_dbitlist", {"-1"}, -1, PUT)); - REQUIRE_NOTHROW(proxy.Call("rx_dbitlist", {"all"}, -1, PUT)); - // Reset to previous value - for (int i = 0; i != det.size(); ++i) { - det.setRxDbitList(previous[i], {i}); - } - } else { - REQUIRE_THROWS(proxy.Call("rx_dbitlist", {}, -1, GET)); - } -} \ No newline at end of file + proxy.Call("rx_frameindex", {}, -1, GET); + + // This is a get only command + REQUIRE_THROWS(proxy.Call("rx_frameindex", {"2"}, -1, PUT)); + std::ostringstream oss; + proxy.Call("rx_frameindex", {}, 0, GET, oss); + std::string s = (oss.str()).erase(0, strlen("rx_frameindex ")); + REQUIRE(std::stoi(s) >= 0); +} diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index a43b47381..b0e05bb41 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -1679,40 +1679,9 @@ TEST_CASE("zmqport", "[.cmd]") { } -TEST_CASE("fpath", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - auto fpath = det.getFilePath().squash(); - std::ostringstream oss1, oss2, oss3; - proxy.Call("fpath", {}, -1, GET, oss1); - REQUIRE(oss1.str() == "fpath " + fpath + "\n"); - proxy.Call("fpath", {fpath}, -1, PUT, oss2); - REQUIRE(oss2.str() == "fpath " + fpath + "\n"); - proxy.Call("fpath", {}, -1, GET, oss3); - REQUIRE(oss3.str() == "fpath " + fpath + "\n"); -} -TEST_CASE("fformat", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - auto fformat = det.getFileFormat(); - { - std::ostringstream oss; - proxy.Call("fformat", {"binary"}, -1, PUT, oss); - REQUIRE(oss.str() == "fformat binary\n"); - } - { - std::ostringstream oss; - proxy.Call("fformat", {}, -1, GET, oss); - REQUIRE(oss.str() == "fformat binary\n"); - } - // Reset file format after test - for (int i = 0; i != det.size(); ++i) { - det.setFileFormat(fformat[i], {i}); - } -} // TEST_CASE("txndelay", "[.cmd][.eiger][.jungfrau]") { // if (test::type == slsDetectorDefs::EIGER) { From 8dfb55d47637e09722bf8ad5c29edf079c50ff84 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 27 Mar 2020 17:00:14 +0100 Subject: [PATCH 08/33] testing --- slsDetectorSoftware/tests/test-CmdProxy.cpp | 99 --------------------- 1 file changed, 99 deletions(-) diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index b0e05bb41..14e3eb699 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -2508,106 +2508,7 @@ TEST_CASE("frames", "[.cmd]") { } } -TEST_CASE("fwrite", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - { - std::ostringstream oss; - proxy.Call("fwrite", {"1"}, -1, PUT, oss); - REQUIRE(oss.str() == "fwrite 1\n"); - } - { - std::ostringstream oss; - proxy.Call("fwrite", {}, -1, GET, oss); - REQUIRE(oss.str() == "fwrite 1\n"); - } - { - std::ostringstream oss; - proxy.Call("fwrite", {"0"}, -1, PUT, oss); - REQUIRE(oss.str() == "fwrite 0\n"); - } -} -TEST_CASE("foverwrite", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - { - std::ostringstream oss; - proxy.Call("foverwrite", {"1"}, -1, PUT, oss); - REQUIRE(oss.str() == "foverwrite 1\n"); - } - { - std::ostringstream oss; - proxy.Call("foverwrite", {}, -1, GET, oss); - REQUIRE(oss.str() == "foverwrite 1\n"); - } - { - std::ostringstream oss; - proxy.Call("foverwrite", {"0"}, -1, PUT, oss); - REQUIRE(oss.str() == "foverwrite 0\n"); - } -} - -TEST_CASE("fmaster", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - { - std::ostringstream oss; - proxy.Call("fmaster", {"0"}, -1, PUT, oss); - REQUIRE(oss.str() == "fmaster 0\n"); - } - { - std::ostringstream oss; - proxy.Call("fmaster", {}, -1, GET, oss); - REQUIRE(oss.str() == "fmaster 0\n"); - } - { - std::ostringstream oss; - proxy.Call("fmaster", {"1"}, -1, PUT, oss); - REQUIRE(oss.str() == "fmaster 1\n"); - } -} - -TEST_CASE("findex", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - { - std::ostringstream oss; - proxy.Call("findex", {"57"}, -1, PUT, oss); - REQUIRE(oss.str() == "findex 57\n"); - } - { - std::ostringstream oss; - proxy.Call("findex", {}, -1, GET, oss); - REQUIRE(oss.str() == "findex 57\n"); - } - { - - std::ostringstream oss; - proxy.Call("findex", {"0"}, -1, PUT, oss); - REQUIRE(oss.str() == "findex 0\n"); - } -} - -TEST_CASE("fname", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - { - std::ostringstream oss; - proxy.Call("fname", {"somename"}, -1, PUT, oss); - REQUIRE(oss.str() == "fname somename\n"); - } - { - std::ostringstream oss; - proxy.Call("fname", {}, -1, GET, oss); - REQUIRE(oss.str() == "fname somename\n"); - } - { - std::ostringstream oss; - proxy.Call("fname", {"run"}, -1, PUT, oss); - REQUIRE(oss.str() == "fname run\n"); - } -} TEST_CASE("lock", "[.cmd]") { Detector det; From 112d120a892e8e2c8d43962ac554919c08d9688a Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 27 Mar 2020 18:54:46 +0100 Subject: [PATCH 09/33] testing WIP --- slsDetectorSoftware/src/CmdProxy.cpp | 2 +- .../tests/test-CmdProxy-rx.cpp | 2 + slsDetectorSoftware/tests/test-CmdProxy.cpp | 284 ++++++++++++++---- 3 files changed, 225 insertions(+), 63 deletions(-) diff --git a/slsDetectorSoftware/src/CmdProxy.cpp b/slsDetectorSoftware/src/CmdProxy.cpp index 1822478fe..e9d0a0e75 100644 --- a/slsDetectorSoftware/src/CmdProxy.cpp +++ b/slsDetectorSoftware/src/CmdProxy.cpp @@ -314,7 +314,7 @@ std::string CmdProxy::DetectorSize(int action) { WrongNumberOfParameters(0); } auto t = det->getDetectorSize(); - os << "[" << t.x << "," << t.y << "]\n"; + os << "[" << t.x << ", " << t.y << "]\n"; } else if (action == defs::PUT_ACTION) { if (args.size() != 2) { WrongNumberOfParameters(2); diff --git a/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp b/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp index 9e881fdf0..690c1e327 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp @@ -27,6 +27,8 @@ TEST_CASE("rx_version", "[.cmd][.rx]") { std::ostringstream vs; vs << "rx_version 0x" << std::hex << APIRECEIVER << '\n'; REQUIRE(oss.str() == vs.str()); + + REQUIRE_THROWS(proxy.Call("rx_version", {"0"}, -1, PUT)); } /* acquisition */ diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index 14e3eb699..246c57d42 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -21,7 +21,93 @@ TEST_CASE("Unknown command", "[.cmd]") { REQUIRE_THROWS(proxy.Call("vsaevrreavv", {}, -1, PUT)); } -TEST_CASE("type", "[.cmd]"){ +/* configuration */ + +TEST_CASE("config", "[.cmd][.common]") { + Detector det; + CmdProxy proxy(&det); + // put only + REQUIRE_THROWS(proxy.Call("config", {}, -1, GET)); +} + +// free: not testing + +TEST_CASE("parameters", "[.cmd][.common]") { + Detector det; + CmdProxy proxy(&det); + // put only + REQUIRE_THROWS(proxy.Call("parameters", {}, -1, GET)); +/* + auto prev_val = det.getNumberOfFrames().tsquash("Number of frames has to be same to test"); + { + system("echo 'frames 2' > /tmp/tempsetup.det "); + std::ostringstream oss; + proxy.Call("parameters", {"/tmp/tempsetup.det"}, -1, PUT, oss); + REQUIRE(oss.str() == "parameters /tmp/tempsetup.det\n"); + REQUIRE(det.getNumberOfFrames().tsquash("failed") == 2); + } + { + system("echo '0:frames 1' > /tmp/tempsetup.det "); + std::ostringstream oss; + proxy.Call("parameters", {"/tmp/tempsetup.det"}, -1, PUT, oss); + REQUIRE(oss.str() == "parameters /tmp/tempsetup.det\n"); + REQUIRE(det.getNumberOfFrames({0}).tsquash("failed") == 1); + } + det.setNumberOfFrames(prev_val); + */ +} + +TEST_CASE("hostname", "[.cmd][.common]") { + Detector det; + CmdProxy proxy(&det); + REQUIRE_NOTHROW(proxy.Call("hostname", {}, -1, GET)); +} + +// virtual: not testing + +TEST_CASE("versions", "[.cmd][.common]") { + Detector det; + CmdProxy proxy(&det); + REQUIRE_NOTHROW(proxy.Call("versions", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("versions", {"0"}, -1, PUT)); +} + +TEST_CASE("packageversion", "[.cmd][.common]") { + Detector det; + CmdProxy proxy(&det); + REQUIRE_NOTHROW(proxy.Call("packageversion", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("packageversion", {"0"}, -1, PUT)); +} + +TEST_CASE("clientversion", "[.cmd][.common]") { + Detector det; + CmdProxy proxy(&det); + REQUIRE_NOTHROW(proxy.Call("clientversion", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("clientversion", {"0"}, -1, PUT)); +} + +TEST_CASE("firmwareversion", "[.cmd][.common]") { + Detector det; + CmdProxy proxy(&det); + REQUIRE_NOTHROW(proxy.Call("firmwareversion", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("firmwareversion", {"0"}, -1, PUT)); +} + +TEST_CASE("detectorserverversion", "[.cmd][.common]") { + Detector det; + CmdProxy proxy(&det); + REQUIRE_NOTHROW(proxy.Call("detectorserverversion", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("detectorserverversion", {"0"}, -1, PUT)); +} + +TEST_CASE("detectornumber", "[.cmd][.common]") { + Detector det; + CmdProxy proxy(&det); + REQUIRE_NOTHROW(proxy.Call("detectornumber", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("detectornumber", {"0"}, -1, PUT)); +} + +TEST_CASE("type", "[.cmd][.common]"){ Detector det; CmdProxy proxy(&det); auto dt = det.getDetectorType().squash(); @@ -31,8 +117,141 @@ TEST_CASE("type", "[.cmd]"){ auto ans = oss.str().erase(0, strlen("type ")); REQUIRE(ans == sls::ToString(dt) + '\n'); REQUIRE(dt == test::type); - } + +TEST_CASE("detsize", "[.cmd][.common]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getDetectorSize(); + { + std::ostringstream oss; + proxy.Call("detsize", {"1000", "2000"}, -1, PUT, oss); + REQUIRE(oss.str() == "detsize [1000, 2000]\n"); + } + { + std::ostringstream oss; + proxy.Call("detsize", {}, -1, GET, oss); + REQUIRE(oss.str() == "detsize [1000, 2000]\n"); + } + det.setDetectorSize(prev_val); +} + +TEST_CASE("settings", "[.cmd][.common]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + std::vector sett; + switch (det_type) { + case defs::EIGER: + //FIXME: need to remove when settings removed + break; + case defs::JUNGFRAU: + sett.push_back("dynamicgain"); + sett.push_back("dynamichg0"); + sett.push_back("fixgain1"); + sett.push_back("fixgain2"); + sett.push_back("forceswitchg1"); + sett.push_back("forceswitchg2"); + break; + case defs::GOTTHARD: + sett.push_back("highgain"); + sett.push_back("dynamicgain"); + sett.push_back("lowgain"); + sett.push_back("mediumgain"); + sett.push_back("veryhighgain"); + break; + case defs::GOTTHARD2: + sett.push_back("dynamicgain"); + sett.push_back("fixgain1"); + sett.push_back("fixgain2"); + break; + case defs::MOENCH: + sett.push_back("g1_hg"); + sett.push_back("g1_lg"); + sett.push_back("g2_hc_hg"); + sett.push_back("g2_hc_lg"); + sett.push_back("g2_lc_hg"); + sett.push_back("g2_lc_lg"); + sett.push_back("g4_hg"); + sett.push_back("g4_lg"); + break; + default: + REQUIRE_THROWS(proxy.Call("settings", {}, -1, GET)); + return; + } + + auto prev_val = det.getSettings(); + for (auto & it : sett) { + { + std::ostringstream oss; + proxy.Call("settings", {it}, -1, PUT, oss); + REQUIRE(oss.str() == "settings " + it + "\n"); + } + { + std::ostringstream oss; + proxy.Call("settings", {}, -1, GET, oss); + REQUIRE(oss.str() == "settings " + it + "\n"); + } + } + for (int i = 0; i != det.size(); ++i) { + if (prev_val[i] != defs::UNDEFINED && + prev_val[i] != defs::UNINITIALIZED) { + det.setSettings(prev_val[i], {i}); + } + } +} + +/* acquisition parameters */ + +// acquire: not testing + +TEST_CASE("frames", "[.cmd]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getNumberOfFrames().tsquash("#frames must be same to test"); + { + std::ostringstream oss; + proxy.Call("frames", {"1000"}, -1, PUT, oss); + REQUIRE(oss.str() == "frames 1000\n"); + } + { + std::ostringstream oss; + proxy.Call("frames", {}, -1, GET, oss); + REQUIRE(oss.str() == "frames 1000\n"); + } + { + std::ostringstream oss; + proxy.Call("frames", {"1"}, -1, PUT, oss); + REQUIRE(oss.str() == "frames 1\n"); + } + REQUIRE_THROWS(proxy.Call("frames", {"0"}, -1, PUT)); + det.setNumberOfFrames(prev_val); +} + + + + + + + + + + + + + + + + + + + + + + + + + TEST_CASE("initialchecks", "[.cmd]") { @@ -2318,39 +2537,6 @@ TEST_CASE("timing", "[.cmd]") { // REQUIRE_NOTHROW(multiSlsDetectorClient("triggers 1", PUT)); // } -// TEST_CASE("settings", "[.cmd]") { -// switch(test::type) { -// case slsDetectorDefs::EIGER: -// REQUIRE_THROWS(multiSlsDetectorClient("settings mediumgain", -// PUT)); REQUIRE_NOTHROW(multiSlsDetectorClient("settings -// standard", PUT)); break; - -// case slsDetectorDefs::JUNGFRAU: -// REQUIRE_THROWS(multiSlsDetectorClient("settings standard", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("settings dynamicgain", -// PUT)); REQUIRE_NOTHROW(multiSlsDetectorClient("settings -// dynamichg0", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("settings fixgain1", -// PUT)); REQUIRE_NOTHROW(multiSlsDetectorClient("settings -// fixgain2", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("settings forceswitchg1", -// PUT)); REQUIRE_NOTHROW(multiSlsDetectorClient("settings -// forceswitchg2", PUT)); break; - -// case slsDetectorDefs::GOTTHARD: -// REQUIRE_NOTHROW(multiSlsDetectorClient("settings dynamicgain", -// PUT)); REQUIRE_NOTHROW(multiSlsDetectorClient("settings -// highgain", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("settings lowgain", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("settings mediumgain", -// PUT)); REQUIRE_NOTHROW(multiSlsDetectorClient("settings -// veryhighgain", PUT)); break; - -// default: -// REQUIRE_THROWS(multiSlsDetectorClient("settings", GET)); -// break; -// } -// } // TEST_CASE("threshold", "[.cmd]") { // if (test::type == slsDetectorDefs::EIGER) { @@ -2380,13 +2566,7 @@ TEST_CASE("timing", "[.cmd]") { // CHECK_NOTHROW(multiSlsDetectorClient("type", GET)); // } -TEST_CASE("firmwareversion", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - std::ostringstream oss; - proxy.Call("firmwareversion", {}, -1, GET, oss); - REQUIRE_THROWS(proxy.Call("firmwareversion", {"4"}, -1, PUT, oss)); -} + // TEST_CASE("status", "[.cmd]") { // Detector det; // CmdProxy proxy(&det); @@ -2487,26 +2667,6 @@ TEST_CASE("firmwareversion", "[.cmd]") { // } -TEST_CASE("frames", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - { - std::ostringstream oss; - proxy.Call("frames", {"1000"}, -1, PUT, oss); - REQUIRE(oss.str() == "frames 1000\n"); - } - - { - std::ostringstream oss; - proxy.Call("frames", {}, -1, GET, oss); - REQUIRE(oss.str() == "frames 1000\n"); - } - { - std::ostringstream oss; - proxy.Call("frames", {"1"}, -1, PUT, oss); - REQUIRE(oss.str() == "frames 1\n"); - } -} From 6a6af528ef606e7f739804ca63bc10055fa74388 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 30 Mar 2020 13:25:39 +0200 Subject: [PATCH 10/33] testing WIP --- slsDetectorSoftware/src/CmdProxy.h | 12 +- .../tests/test-CmdProxy-gotthard2.cpp | 111 ++++++-- .../tests/test-CmdProxy-rx.cpp | 50 ++-- slsDetectorSoftware/tests/test-CmdProxy.cpp | 251 ++++++++++++------ 4 files changed, 279 insertions(+), 145 deletions(-) diff --git a/slsDetectorSoftware/src/CmdProxy.h b/slsDetectorSoftware/src/CmdProxy.h index eb6ad61e8..ef35f0db2 100644 --- a/slsDetectorSoftware/src/CmdProxy.h +++ b/slsDetectorSoftware/src/CmdProxy.h @@ -572,11 +572,9 @@ class CmdProxy { {"acquire", &CmdProxy::acquire}, {"frames", &CmdProxy::frames}, {"triggers", &CmdProxy::triggers}, - {"bursts", &CmdProxy::bursts}, {"exptime", &CmdProxy::exptime}, {"period", &CmdProxy::period}, {"delay", &CmdProxy::delay}, - {"burstperiod", &CmdProxy::burstperiod}, {"framesl", &CmdProxy::framesl}, {"triggersl", &CmdProxy::triggersl}, {"delayl", &CmdProxy::delayl}, @@ -794,6 +792,8 @@ class CmdProxy { {"imagetest", &CmdProxy::imagetest}, /* Gotthard2 Specific */ + {"bursts", &CmdProxy::bursts}, + {"burstperiod", &CmdProxy::burstperiod}, {"inj_ch", &CmdProxy::InjectChannel}, {"vetophoton", &CmdProxy::VetoPhoton}, {"vetoref", &CmdProxy::VetoReference}, @@ -1036,10 +1036,6 @@ class CmdProxy { StringTo, "[n_triggers]\n\tNumber of triggers per aquire. Use timing command to set timing mode."); - INTEGER_COMMAND_NOID(bursts, getNumberOfBursts, setNumberOfBursts, - StringTo, - "[n_bursts]\n\t[Gotthard2] Number of bursts per aquire. Only in auto timing mode and burst mode. Use timing command to set timing mode and burstmode command to set burst mode."); - TIME_COMMAND(exptime, getExptime, setExptime, "[duration] [(optional unit) ns|us|ms|s]\n\tExposure time" "\n\t[Gotthard2] Uploaded to detector just before acquisition starts"); @@ -1590,6 +1586,10 @@ class CmdProxy { "[0, 1]\n\t[Gotthard] 1 adds channel intensity with precalculated values when taking an acquisition. Default is 0."); /* Gotthard2 Specific */ + INTEGER_COMMAND_NOID(bursts, getNumberOfBursts, setNumberOfBursts, + StringTo, + "[n_bursts]\n\t[Gotthard2] Number of bursts per aquire. Only in auto timing mode and burst mode. Use timing command to set timing mode and burstmode command to set burst mode."); + INTEGER_COMMAND(currentsource, getCurrentSource, setCurrentSource, StringTo, "[0, 1]\n\t[Gotthard2] Enable or disable current source. Default is disabled."); diff --git a/slsDetectorSoftware/tests/test-CmdProxy-gotthard2.cpp b/slsDetectorSoftware/tests/test-CmdProxy-gotthard2.cpp index 6b70975b7..4d3dc66fa 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-gotthard2.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-gotthard2.cpp @@ -15,6 +15,89 @@ using sls::Detector; using test::GET; using test::PUT; +/* acquisition parameters */ + +TEST_CASE("bursts", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::GOTTHARD2) { + auto prev_burst = det.getNumberOfBursts().tsquash("#bursts should be same to test"); + auto prev_trigger = det.getNumberOfFrames().tsquash("#frames should be same to test"); + auto prev_frames = det.getNumberOfTriggers().tsquash("#triggers should be same to test"); + auto prev_timingMode = det.getTimingMode(); + auto prev_burstMode = det.getBurstMode(); + // changing continuous mode frames and bursts + det.setBurstMode(defs::BURST_INTERNAL); + det.setTimingMode(defs::AUTO_TIMING); + { + std::ostringstream oss; + proxy.Call("bursts", {"3"}, -1, PUT, oss); + REQUIRE(oss.str() == "bursts 3\n"); + } + { + std::ostringstream oss; + proxy.Call("bursts", {}, -1, GET, oss); + REQUIRE(oss.str() == "bursts 3\n"); + } + REQUIRE_THROWS(proxy.Call("bursts", {"0"}, -1, PUT)); + // trigger mode: reg set to 1, but bursts must be same + det.setTimingMode(defs::TRIGGER_EXPOSURE); + { + std::ostringstream oss; + proxy.Call("bursts", {}, -1, GET, oss); + REQUIRE(oss.str() == "bursts 3\n"); + } + det.setTimingMode(defs::AUTO_TIMING); + { + std::ostringstream oss; + proxy.Call("bursts", {}, -1, GET, oss); + REQUIRE(oss.str() == "bursts 3\n"); + } + // continuous mode: reg set to #frames, + // but bursts should return same value + det.setBurstMode(defs::BURST_OFF); + det.setNumberOfFrames(2); + { + std::ostringstream oss; + proxy.Call("bursts", {}, -1, GET, oss); + REQUIRE(oss.str() == "bursts 3\n"); + } + det.setTimingMode(defs::TRIGGER_EXPOSURE); + { + std::ostringstream oss; + proxy.Call("bursts", {}, -1, GET, oss); + REQUIRE(oss.str() == "bursts 3\n"); + } + det.setBurstMode(defs::BURST_INTERNAL); + { + std::ostringstream oss; + proxy.Call("bursts", {}, -1, GET, oss); + REQUIRE(oss.str() == "bursts 3\n"); + } + // set to previous values + det.setNumberOfBursts(prev_burst); + det.setNumberOfFrames(prev_frames); + det.setNumberOfTriggers(prev_trigger); + for (int i = 0; i != det.size(); ++i) { + det.setTimingMode(prev_timingMode[i], {i}); + det.setBurstMode(prev_burstMode[i], {i}); + } + } else { + REQUIRE_THROWS(proxy.Call("bursts", {}, -1, GET)); + } +} + + + + + + + + + + + TEST_CASE("Setting and reading back GOTTHARD2 dacs", "[.cmd][.dacs]") { // vref_h_adc, vb_comp_fe, vb_comp_adc, vcom_cds, // vref_restore, vb_opa_1st, vref_comp_fe, vcom_adc1, @@ -229,35 +312,7 @@ TEST_CASE("inj_ch", "[.cmd]") { } -TEST_CASE("bursts", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::GOTTHARD2) { - auto previous = det.getNumberOfBursts().squash(1); - auto previousTrigger = det.getNumberOfTriggers().squash(1); - - std::ostringstream oss_set, oss_get; - proxy.Call("bursts", {"3"}, -1, PUT, oss_set); - REQUIRE(oss_set.str() == "bursts 3\n"); - - // change to trigger and back (bursts should still be same) - proxy.Call("timing", {"trigger"}, -1, PUT); - proxy.Call("triggers", {"2"}, -1, PUT); - proxy.Call("timing", {"auto"}, -1, PUT); - - - proxy.Call("bursts", {}, -1, GET, oss_get); - REQUIRE(oss_get.str() == "bursts 3\n"); - - - det.setNumberOfBursts(previous); - det.setNumberOfTriggers(previousTrigger); - } else { - REQUIRE_THROWS(proxy.Call("bursts", {}, -1, GET)); - } -} TEST_CASE("burstperiod", "[.cmd]") { Detector det; diff --git a/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp b/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp index 690c1e327..05886e26f 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp @@ -19,7 +19,7 @@ python/scripts/list_tested_cmd.py to check if all commands are covered /* configuration */ -TEST_CASE("rx_version", "[.cmd][.rx]") { +TEST_CASE("rx_version", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); std::ostringstream oss; @@ -33,7 +33,7 @@ TEST_CASE("rx_version", "[.cmd][.rx]") { /* acquisition */ -TEST_CASE("rx_start", "[.cmd][.rx]") { +TEST_CASE("rx_start", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); // PUT only command @@ -50,7 +50,7 @@ TEST_CASE("rx_start", "[.cmd][.rx]") { } } -TEST_CASE("rx_stop", "[.cmd][.rx]") { +TEST_CASE("rx_stop", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); // PUT only command @@ -67,7 +67,7 @@ TEST_CASE("rx_stop", "[.cmd][.rx]") { } } -TEST_CASE("rx_status", "[.cmd][.rx]") { +TEST_CASE("rx_status", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); det.startReceiver(); @@ -84,7 +84,7 @@ TEST_CASE("rx_status", "[.cmd][.rx]") { } } -TEST_CASE("rx_framescaught", "[.cmd][.rx]") { +TEST_CASE("rx_framescaught", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); @@ -109,7 +109,7 @@ TEST_CASE("rx_framescaught", "[.cmd][.rx]") { } -TEST_CASE("rx_missingpackets", "[.cmd][.rx]") { +TEST_CASE("rx_missingpackets", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); { @@ -135,7 +135,7 @@ TEST_CASE("rx_missingpackets", "[.cmd][.rx]") { /* Network Configuration (Detector<->Receiver) */ -TEST_CASE("rx_printconfig", "[.cmd][.rx]") { +TEST_CASE("rx_printconfig", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); REQUIRE_NOTHROW(proxy.Call("rx_printconfig", {}, -1, GET)); @@ -144,7 +144,7 @@ TEST_CASE("rx_printconfig", "[.cmd][.rx]") { /* Receiver Config */ -TEST_CASE("rx_hostname", "[.cmd][.rx]") { +TEST_CASE("rx_hostname", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getRxHostname(); @@ -175,7 +175,7 @@ TEST_CASE("rx_hostname", "[.cmd][.rx]") { } } -TEST_CASE("rx_tcpport", "[.cmd][.rx]") { +TEST_CASE("rx_tcpport", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getRxPort(); @@ -200,7 +200,7 @@ TEST_CASE("rx_tcpport", "[.cmd][.rx]") { } } -TEST_CASE("rx_fifodepth", "[.cmd][.rx]") { +TEST_CASE("rx_fifodepth", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getRxFifoDepth(); @@ -224,7 +224,7 @@ TEST_CASE("rx_fifodepth", "[.cmd][.rx]") { } } -TEST_CASE("rx_silent", "[.cmd][.rx]") { +TEST_CASE("rx_silent", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getRxSilentMode(); @@ -248,7 +248,7 @@ TEST_CASE("rx_silent", "[.cmd][.rx]") { } } -TEST_CASE("rx_discardpolicy", "[.cmd][.rx]") { +TEST_CASE("rx_discardpolicy", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getRxFrameDiscardPolicy(); @@ -277,7 +277,7 @@ TEST_CASE("rx_discardpolicy", "[.cmd][.rx]") { } } -TEST_CASE("rx_padding", "[.cmd][.rx]") { +TEST_CASE("rx_padding", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getPartialFramesPadding(); @@ -301,7 +301,7 @@ TEST_CASE("rx_padding", "[.cmd][.rx]") { } } -TEST_CASE("rx_udpsocksize", "[.cmd][.rx]") { +TEST_CASE("rx_udpsocksize", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); int64_t prev_val = det.getRxUDPSocketBufferSize().tsquash("Need same udp socket buffer size to test"); @@ -319,7 +319,7 @@ TEST_CASE("rx_udpsocksize", "[.cmd][.rx]") { det.setRxUDPSocketBufferSize(prev_val); } -TEST_CASE("rx_realudpsocksize", "[.cmd][.rx]") { +TEST_CASE("rx_realudpsocksize", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); uint64_t val = 0; @@ -338,7 +338,7 @@ TEST_CASE("rx_realudpsocksize", "[.cmd][.rx]") { } } -TEST_CASE("rx_lock", "[.cmd][.rx]") { +TEST_CASE("rx_lock", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getRxLock(); @@ -362,7 +362,7 @@ TEST_CASE("rx_lock", "[.cmd][.rx]") { } } -TEST_CASE("rx_lastclient", "[.cmd][.rx]") { +TEST_CASE("rx_lastclient", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); std::ostringstream oss; @@ -532,7 +532,7 @@ TEST_CASE("foverwrite", "[.cmd]") { } } -TEST_CASE("rx_framesperfile", "[.cmd][.rx]") { +TEST_CASE("rx_framesperfile", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getFramesPerFile(); @@ -563,7 +563,7 @@ TEST_CASE("rx_framesperfile", "[.cmd][.rx]") { /* ZMQ Streaming Parameters (Receiver<->Client) */ -TEST_CASE("rx_datastream", "[.cmd][.rx]") { +TEST_CASE("rx_datastream", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getRxZmqDataStream(); @@ -589,7 +589,7 @@ TEST_CASE("rx_datastream", "[.cmd][.rx]") { } } -TEST_CASE("rx_readfreq", "[.cmd][.rx]") { +TEST_CASE("rx_readfreq", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getRxZmqFrequency(); @@ -613,7 +613,7 @@ TEST_CASE("rx_readfreq", "[.cmd][.rx]") { } } -TEST_CASE("rx_zmqport", "[.cmd][.rx]") { +TEST_CASE("rx_zmqport", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val_zmqport = det.getRxZmqPort(); @@ -653,7 +653,7 @@ TEST_CASE("rx_zmqport", "[.cmd][.rx]") { } } -TEST_CASE("rx_zmqip", "[.cmd][.rx]") { +TEST_CASE("rx_zmqip", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getRxZmqIP(); @@ -675,7 +675,7 @@ TEST_CASE("rx_zmqip", "[.cmd][.rx]") { /* CTB Specific */ -TEST_CASE("rx_dbitlist", "[.cmd][.rx]") { +TEST_CASE("rx_dbitlist", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto det_type = det.getDetectorType().squash(); @@ -703,7 +703,7 @@ TEST_CASE("rx_dbitlist", "[.cmd][.rx]") { } } -TEST_CASE("rx_dbitoffset", "[.cmd][.rx]") { +TEST_CASE("rx_dbitoffset", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto det_type = det.getDetectorType().squash(); @@ -744,7 +744,7 @@ TEST_CASE("rx_dbitoffset", "[.cmd][.rx]") { /* Insignificant */ -TEST_CASE("rx_frameindex", "[.cmd][.rx]") { +TEST_CASE("rx_frameindex", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); proxy.Call("rx_frameindex", {}, -1, GET); diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index 246c57d42..e0889d977 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -23,7 +23,7 @@ TEST_CASE("Unknown command", "[.cmd]") { /* configuration */ -TEST_CASE("config", "[.cmd][.common]") { +TEST_CASE("config", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); // put only @@ -32,7 +32,7 @@ TEST_CASE("config", "[.cmd][.common]") { // free: not testing -TEST_CASE("parameters", "[.cmd][.common]") { +TEST_CASE("parameters", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); // put only @@ -57,7 +57,7 @@ TEST_CASE("parameters", "[.cmd][.common]") { */ } -TEST_CASE("hostname", "[.cmd][.common]") { +TEST_CASE("hostname", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); REQUIRE_NOTHROW(proxy.Call("hostname", {}, -1, GET)); @@ -65,49 +65,49 @@ TEST_CASE("hostname", "[.cmd][.common]") { // virtual: not testing -TEST_CASE("versions", "[.cmd][.common]") { +TEST_CASE("versions", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); REQUIRE_NOTHROW(proxy.Call("versions", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("versions", {"0"}, -1, PUT)); } -TEST_CASE("packageversion", "[.cmd][.common]") { +TEST_CASE("packageversion", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); REQUIRE_NOTHROW(proxy.Call("packageversion", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("packageversion", {"0"}, -1, PUT)); } -TEST_CASE("clientversion", "[.cmd][.common]") { +TEST_CASE("clientversion", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); REQUIRE_NOTHROW(proxy.Call("clientversion", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("clientversion", {"0"}, -1, PUT)); } -TEST_CASE("firmwareversion", "[.cmd][.common]") { +TEST_CASE("firmwareversion", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); REQUIRE_NOTHROW(proxy.Call("firmwareversion", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("firmwareversion", {"0"}, -1, PUT)); } -TEST_CASE("detectorserverversion", "[.cmd][.common]") { +TEST_CASE("detectorserverversion", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); REQUIRE_NOTHROW(proxy.Call("detectorserverversion", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("detectorserverversion", {"0"}, -1, PUT)); } -TEST_CASE("detectornumber", "[.cmd][.common]") { +TEST_CASE("detectornumber", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); REQUIRE_NOTHROW(proxy.Call("detectornumber", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("detectornumber", {"0"}, -1, PUT)); } -TEST_CASE("type", "[.cmd][.common]"){ +TEST_CASE("type", "[.cmd][.new]"){ Detector det; CmdProxy proxy(&det); auto dt = det.getDetectorType().squash(); @@ -119,7 +119,7 @@ TEST_CASE("type", "[.cmd][.common]"){ REQUIRE(dt == test::type); } -TEST_CASE("detsize", "[.cmd][.common]") { +TEST_CASE("detsize", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getDetectorSize(); @@ -136,7 +136,7 @@ TEST_CASE("detsize", "[.cmd][.common]") { det.setDetectorSize(prev_val); } -TEST_CASE("settings", "[.cmd][.common]") { +TEST_CASE("settings", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); auto det_type = det.getDetectorType().squash(); @@ -205,7 +205,7 @@ TEST_CASE("settings", "[.cmd][.common]") { // acquire: not testing -TEST_CASE("frames", "[.cmd]") { +TEST_CASE("frames", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getNumberOfFrames().tsquash("#frames must be same to test"); @@ -228,6 +228,157 @@ TEST_CASE("frames", "[.cmd]") { det.setNumberOfFrames(prev_val); } +TEST_CASE("triggers", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getNumberOfTriggers().tsquash("#triggers must be same to test"); + { + std::ostringstream oss; + proxy.Call("triggers", {"1000"}, -1, PUT, oss); + REQUIRE(oss.str() == "triggers 1000\n"); + } + { + std::ostringstream oss; + proxy.Call("triggers", {}, -1, GET, oss); + REQUIRE(oss.str() == "triggers 1000\n"); + } + { + std::ostringstream oss; + proxy.Call("triggers", {"1"}, -1, PUT, oss); + REQUIRE(oss.str() == "triggers 1\n"); + } + REQUIRE_THROWS(proxy.Call("triggers", {"0"}, -1, PUT)); + det.setNumberOfTriggers(prev_val); +} + +TEST_CASE("exptime", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getExptime(); + { + std::ostringstream oss; + proxy.Call("exptime", {"0.05"}, -1, PUT, oss); + REQUIRE(oss.str() == "exptime 0.05\n"); + } + { + std::ostringstream oss; + proxy.Call("exptime", {}, -1, GET, oss); + REQUIRE(oss.str() == "exptime 50ms\n"); + } + { + std::ostringstream oss; + proxy.Call("exptime", {"1s"}, -1, PUT, oss); + REQUIRE(oss.str() == "exptime 1s\n"); + } + { + std::ostringstream oss; + proxy.Call("exptime", {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == "exptime 0\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setExptime(prev_val[i], {i}); + } +} + +TEST_CASE("period", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getPeriod(); + { + std::ostringstream oss; + proxy.Call("period", {"1.25s"}, -1, PUT, oss); + REQUIRE(oss.str() == "period 1.25s\n"); + } + { + std::ostringstream oss; + proxy.Call("period", {}, -1, GET, oss); + REQUIRE(oss.str() == "period 1.25s\n"); + } + { + std::ostringstream oss; + proxy.Call("period", {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == "period 0\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setPeriod(prev_val[i], {i}); + } +} + +TEST_CASE("delay", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + REQUIRE_THROWS(proxy.Call("delay", {"1"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("delay", {}, -1, GET)); + } else { + auto prev_val = det.getDelayAfterTrigger(); + { + std::ostringstream oss; + proxy.Call("delay", {"1.25s"}, -1, PUT, oss); + REQUIRE(oss.str() == "delay 1.25s\n"); + } + { + std::ostringstream oss; + proxy.Call("delay", {}, -1, GET, oss); + REQUIRE(oss.str() == "delay 1.25s\n"); + } + { + std::ostringstream oss; + proxy.Call("delay", {"0s"}, -1, PUT, oss); + REQUIRE(oss.str() == "delay 0s\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setDelayAfterTrigger(prev_val[i], {i}); + } + } +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2527,16 +2678,6 @@ TEST_CASE("timing", "[.cmd]") { // } // } -// TEST_CASE("triggers", "[.cmd]") { -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("triggers 10", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("triggers", GET, nullptr, -// oss)); REQUIRE(oss.str() == "triggers 10\n"); -// } -// REQUIRE_NOTHROW(multiSlsDetectorClient("triggers 1", PUT)); -// } - // TEST_CASE("threshold", "[.cmd]") { // if (test::type == slsDetectorDefs::EIGER) { @@ -2694,69 +2835,7 @@ TEST_CASE("lock", "[.cmd]") { // REQUIRE_NOTHROW(multiSlsDetectorClient("lastclient", GET)); // } -TEST_CASE("exptime", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - { - std::ostringstream oss; - proxy.Call("exptime", {"0.05"}, -1, PUT, oss); - REQUIRE(oss.str() == "exptime 0.05\n"); - } - { - std::ostringstream oss; - proxy.Call("exptime", {}, -1, GET, oss); - REQUIRE(oss.str() == "exptime 50ms\n"); - } - { - std::ostringstream oss; - proxy.Call("exptime", {"1s"}, -1, PUT, oss); - REQUIRE(oss.str() == "exptime 1s\n"); - } -} -TEST_CASE("period", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - { - std::ostringstream oss; - proxy.Call("period", {"1.25s"}, -1, PUT, oss); - REQUIRE(oss.str() == "period 1.25s\n"); - } - { - std::ostringstream oss; - proxy.Call("period", {}, -1, GET, oss); - REQUIRE(oss.str() == "period 1.25s\n"); - } - { - std::ostringstream oss; - proxy.Call("period", {"0"}, -1, PUT, oss); - REQUIRE(oss.str() == "period 0\n"); - } -} -TEST_CASE("delay", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::EIGER) { - REQUIRE_THROWS(proxy.Call("delay", {"1"}, -1, PUT)); - REQUIRE_THROWS(proxy.Call("delay", {}, -1, GET)); - } else { - { - std::ostringstream oss; - proxy.Call("delay", {"1.25s"}, -1, PUT, oss); - REQUIRE(oss.str() == "delay 1.25s\n"); - } - { - std::ostringstream oss; - proxy.Call("delay", {}, -1, GET, oss); - REQUIRE(oss.str() == "delay 1.25s\n"); - } - { - std::ostringstream oss; - proxy.Call("delay", {"0s"}, -1, PUT, oss); - REQUIRE(oss.str() == "delay 0s\n"); - } - } -} \ No newline at end of file + From d58eb1dc6eef5415b4e67588108adc5ed0300a31 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil <33750417+thattil@users.noreply.github.com> Date: Mon, 30 Mar 2020 14:54:35 +0200 Subject: [PATCH 11/33] Gappixels (#89) * WIP * WIP virtual delays, imagetest for saturation * WIP, vertical and horizontal * WIP * gap pixels work, fixed 32 bit data out (10gbe=0) for virtual servers * quad works (also in virtual), handling gappixels and quad * jungfrau gapppixels work * jungfrau: done * complete image or missing packets given in json header and gui * eiger virtual 4 bit mode bug fix * working version of zmq add json header, except printout * printout bug * fix for json para * to map WIP * map done * map print , mapwith result left * json result works, testing added * updated server binaries * compiling on rhels7, variable size char array iniitalization * zmqsocket parsing didnt need Document * const to map, json para is strings not map * json add header: mapping cleaner without insert make_pair --- slsDetectorGui/forms/form_cloneplot.ui | 145 ++++- slsDetectorGui/forms/form_plot.ui | 357 ++++++++---- slsDetectorGui/include/qCloneWidget.h | 2 +- slsDetectorGui/include/qDrawPlot.h | 1 + slsDetectorGui/src/qCloneWidget.cpp | 9 +- slsDetectorGui/src/qDrawPlot.cpp | 37 +- slsDetectorGui/src/qTabPlot.cpp | 8 +- .../bin/ctbDetectorServer_developer | Bin 191872 -> 192096 bytes .../eigerDetectorServer/CMakeLists.txt | 49 +- .../bin/eigerDetectorServer_developer | Bin 346320 -> 346320 bytes .../slsDetectorFunctionList.c | 221 +++++--- .../bin/gotthard2DetectorServer_developer | Bin 166532 -> 166532 bytes .../bin/gotthardDetectorServer_developer | Bin 140708 -> 140932 bytes .../slsDetectorFunctionList.c | 7 +- .../bin/jungfrauDetectorServer_developer | Bin 157568 -> 157792 bytes .../slsDetectorFunctionList.c | 144 +++-- .../bin/moenchDetectorServer_developer | Bin 186956 -> 187180 bytes .../slsDetectorFunctionList.c | 3 +- .../bin/mythen3DetectorServer_developer | Bin 168056 -> 168056 bytes .../include/slsDetectorFunctionList.h | 2 +- .../slsDetectorServer/src/ASIC_Driver.c | 6 +- .../slsDetectorServer/src/LTC2620_Driver.c | 6 +- .../slsDetectorServer/src/slsDetectorServer.c | 18 +- .../src/slsDetectorServer_funcs.c | 31 +- slsDetectorSoftware/include/Detector.h | 61 ++- slsDetectorSoftware/include/detectorData.h | 6 +- slsDetectorSoftware/src/CmdProxy.cpp | 73 ++- slsDetectorSoftware/src/CmdProxy.h | 18 +- slsDetectorSoftware/src/Detector.cpp | 41 +- slsDetectorSoftware/src/DetectorImpl.cpp | 513 ++++++++++++------ slsDetectorSoftware/src/DetectorImpl.h | 33 +- slsDetectorSoftware/src/Module.cpp | 241 +++----- slsDetectorSoftware/src/Module.h | 70 +-- .../tests/test-CmdProxy-rx.cpp | 65 ++- slsDetectorSoftware/tests/test-CmdProxy.cpp | 27 - slsReceiverSoftware/src/BinaryFileStatic.h | 2 - slsReceiverSoftware/src/ClientInterface.cpp | 105 ++-- slsReceiverSoftware/src/ClientInterface.h | 5 +- slsReceiverSoftware/src/DataProcessor.cpp | 119 +--- slsReceiverSoftware/src/DataProcessor.h | 17 +- slsReceiverSoftware/src/DataStreamer.cpp | 61 ++- slsReceiverSoftware/src/DataStreamer.h | 17 +- slsReceiverSoftware/src/GeneralData.h | 43 -- slsReceiverSoftware/src/HDF5FileStatic.h | 22 +- slsReceiverSoftware/src/Implementation.cpp | 86 +-- slsReceiverSoftware/src/Implementation.h | 13 +- slsReceiverSoftware/src/receiver_defs.h | 1 - slsSupportLib/include/ZmqSocket.h | 137 ++--- slsSupportLib/include/sls_detector_defs.h | 19 +- slsSupportLib/include/sls_detector_funcs.h | 9 +- slsSupportLib/include/versionAPI.h | 14 +- slsSupportLib/src/ZmqSocket.cpp | 413 ++++++++------ 52 files changed, 1879 insertions(+), 1398 deletions(-) diff --git a/slsDetectorGui/forms/form_cloneplot.ui b/slsDetectorGui/forms/form_cloneplot.ui index 0965e65f2..5184ce500 100644 --- a/slsDetectorGui/forms/form_cloneplot.ui +++ b/slsDetectorGui/forms/form_cloneplot.ui @@ -55,6 +55,149 @@ + + + + 0 + 0 + + + + + 40 + 0 + + + + + 16777215 + 16777215 + + + + + + + + + 0 + 150 + 110 + + + + + + + + + 0 + 150 + 110 + + + + + + + + + 139 + 142 + 142 + + + + + + + + Complete Image + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 40 + 0 + + + + + 16777215 + 16777215 + + + + + + + + + 255 + 0 + 0 + + + + + + + + + 255 + 0 + 0 + + + + + + + + + 139 + 142 + 142 + + + + + + + + Missing Packets + + + Qt::AlignCenter + + + + + + + Qt::Horizontal + + + + 117 + 20 + + + + + @@ -241,7 +384,7 @@ 0 0 376 - 28 + 27 diff --git a/slsDetectorGui/forms/form_plot.ui b/slsDetectorGui/forms/form_plot.ui index 56247f700..d01b1dbdd 100644 --- a/slsDetectorGui/forms/form_plot.ui +++ b/slsDetectorGui/forms/form_plot.ui @@ -19,47 +19,8 @@ Form - - - 6 - - - 0 - - - - - - 0 - 0 - - - - - Sans Serif - 10 - - - - Sample Plot - - - Qt::AlignCenter - - - false - - - - 9 - - - 0 - - - - - + + @@ -86,73 +47,6 @@ 0 - - - - - 0 - 0 - - - - - 40 - 0 - - - - - 40 - 16777215 - - - - Sum: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - - - - - - - - - - 0 - 0 - - - - - - - - @@ -181,8 +75,8 @@ - - + + 0 @@ -194,6 +88,19 @@ + + + + Qt::Horizontal + + + + 40 + 20 + + + + @@ -222,6 +129,32 @@ + + + + + 0 + 0 + + + + - + + + + + + + + 0 + 0 + + + + - + + + @@ -235,9 +168,213 @@ + + + + + 0 + 0 + + + + + 40 + 0 + + + + + 40 + 16777215 + + + + Sum: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Horizontal + + + + 419 + 20 + + + + + + + + + 0 + 0 + + + + + Sans Serif + 10 + + + + Sample Plot + + + Qt::AlignCenter + + + true + + + + 9 + + + 0 + + + + + + + + + 0 + 0 + + + + + 40 + 0 + + + + + 16777215 + 16777215 + + + + + + + + + 255 + 0 + 0 + + + + + + + + + 255 + 0 + 0 + + + + + + + + + 139 + 142 + 142 + + + + + + + + Missing Packets + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 40 + 0 + + + + + 16777215 + 16777215 + + + + + + + + + 0 + 150 + 110 + + + + + + + + + 0 + 150 + 110 + + + + + + + + + 139 + 142 + 142 + + + + + + + + Complete Image + + + Qt::AlignCenter + + + diff --git a/slsDetectorGui/include/qCloneWidget.h b/slsDetectorGui/include/qCloneWidget.h index f7f000fb6..831ac33e4 100644 --- a/slsDetectorGui/include/qCloneWidget.h +++ b/slsDetectorGui/include/qCloneWidget.h @@ -14,7 +14,7 @@ class qCloneWidget : public QMainWindow, private Ui::ClonePlotObject { qCloneWidget(QWidget *parent, SlsQt1DPlot *p1, SlsQt2DPlot *p2, SlsQt1DPlot *gp1, SlsQt2DPlot *gp, QString title, QString filePath, QString fileName, int64_t aIndex, - bool displayStats, QString min, QString max, QString sum); + bool displayStats, QString min, QString max, QString sum, bool completeImage); ~qCloneWidget(); diff --git a/slsDetectorGui/include/qDrawPlot.h b/slsDetectorGui/include/qDrawPlot.h index 1699c574a..b3898494a 100644 --- a/slsDetectorGui/include/qDrawPlot.h +++ b/slsDetectorGui/include/qDrawPlot.h @@ -114,6 +114,7 @@ class qDrawPlot : public QWidget, private Ui::PlotObject { QString zTitle2d{"Intensity"}; QString plotTitle{""}; QString indexTitle{""}; + bool completeImage{false}; bool xyRangeChanged{false}; double xyRange[4]{0, 0, 0, 0}; bool isXYRange[4]{false, false, false, false}; diff --git a/slsDetectorGui/src/qCloneWidget.cpp b/slsDetectorGui/src/qCloneWidget.cpp index 6789c3092..42b80439e 100644 --- a/slsDetectorGui/src/qCloneWidget.cpp +++ b/slsDetectorGui/src/qCloneWidget.cpp @@ -15,13 +15,20 @@ qCloneWidget::qCloneWidget(QWidget *parent, SlsQt1DPlot *p1, SlsQt2DPlot *p2, SlsQt1DPlot *gp1, SlsQt2DPlot *gp, QString title, QString fPath, QString fName, int64_t aIndex, bool displayStats, QString min, QString max, - QString sum) + QString sum, bool completeImage) : QMainWindow(parent), plot1d(p1), plot2d(p2), gainplot1d(gp1), gainplot2d(gp), filePath(fPath), fileName(fName), acqIndex(aIndex) { setupUi(this); id = qCloneWidget::NumClones++; SetupWidgetWindow(title); DisplayStats(displayStats, min, max, sum); + lblCompleteImage->hide(); + lblInCompleteImage->hide(); + if (completeImage) { + lblCompleteImage->show(); + } else { + lblInCompleteImage->show(); + } } qCloneWidget::~qCloneWidget() { diff --git a/slsDetectorGui/src/qDrawPlot.cpp b/slsDetectorGui/src/qDrawPlot.cpp index 3e79ba211..39103d78f 100644 --- a/slsDetectorGui/src/qDrawPlot.cpp +++ b/slsDetectorGui/src/qDrawPlot.cpp @@ -97,27 +97,13 @@ void qDrawPlot::SetupPlots() { slsDetectorDefs::xy res = det->getDetectorSize(); nPixelsX = res.x; nPixelsY = res.y; - switch (detType) { - case slsDetectorDefs::EIGER: - try { - if (det->getQuad().tsquash("Inconsistent values for quad type")) { - nPixelsX /= 2; - nPixelsY *= 2; - if (nPixelsX != nPixelsY) { - --nPixelsX; - } - } - } - CATCH_DISPLAY("Could not get quad.", "qDrawPlot::SetupPlots") - break; - default: - break; - } LOG(logINFO) << "nPixelsX:" << nPixelsX; LOG(logINFO) << "nPixelsY:" << nPixelsY; boxPlot->setFont(QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal)); widgetStatistics->hide(); + lblCompleteImage->hide(); + lblInCompleteImage->hide(); // setup 1d data @@ -586,7 +572,7 @@ void qDrawPlot::ClonePlot() { clonegainplot2D, boxPlot->title(), fileSavePath, fileSaveName, currentAcqIndex, displayStatistics, lblMinDisp->text(), lblMaxDisp->text(), - lblSumDisp->text()); + lblSumDisp->text(), completeImage); } void qDrawPlot::SavePlot() { @@ -756,6 +742,7 @@ void qDrawPlot::GetData(detectorData *data, uint64_t frameIndex, << " \t dynamic range: " << data->dynamicRange << std::endl << " \t file index: " << data->fileIndex << std::endl + << " \t complete image: " << data->completeImage << std::endl << " ]"; progress = (int)data->progressIndex; @@ -776,6 +763,11 @@ void qDrawPlot::GetData(detectorData *data, uint64_t frameIndex, delete[] data2d; data2d = new double[nPixelsY * nPixelsX]; std::fill(data2d, data2d + nPixelsX * nPixelsY, 0); + if (gainData) { + delete[] gainData; + gainData = new double[nPixelsY * nPixelsX]; + std::fill(gainData, gainData + nPixelsX * nPixelsY, 0); + } } // convert data to double @@ -798,6 +790,7 @@ void qDrawPlot::GetData(detectorData *data, uint64_t frameIndex, if ((int)subFrameIndex != -1) { indexTitle = QString("%1 %2").arg(frameIndex, subFrameIndex); } + completeImage = data->completeImage; // reset pedestal if (resetPedestal) { @@ -1118,6 +1111,16 @@ void qDrawPlot::UpdatePlot() { LOG(logDEBUG) << "Update Plot"; boxPlot->setTitle(plotTitle); + + // notify of incomplete images + lblCompleteImage->hide(); + lblInCompleteImage->hide(); + if(completeImage) { + lblCompleteImage->show(); + } else { + lblInCompleteImage->show(); + } + if (is1d) { Update1dPlot(); } else { diff --git a/slsDetectorGui/src/qTabPlot.cpp b/slsDetectorGui/src/qTabPlot.cpp index a9802f4bf..216f3cfe3 100644 --- a/slsDetectorGui/src/qTabPlot.cpp +++ b/slsDetectorGui/src/qTabPlot.cpp @@ -64,6 +64,7 @@ void qTabPlot::SetupWidgetWindow() { chkGapPixels->setEnabled(true); break; case slsDetectorDefs::JUNGFRAU: + chkGapPixels->setEnabled(true); chkGainPlot->setEnabled(true); chkGainPlot->setChecked(true); plot->EnableGainPlot(true); @@ -312,8 +313,7 @@ void qTabPlot::GetGapPixels() { disconnect(chkGapPixels, SIGNAL(toggled(bool)), this, SLOT(SetGapPixels(bool))); try { - auto retval = det->getRxAddGapPixels().tsquash( - "Inconsistent gap pixels enabled for all detectors."); + auto retval = det->getGapPixelsinCallback(); chkGapPixels->setChecked(retval); } CATCH_DISPLAY("Could not get gap pixels enable.", "qTabPlot::GetGapPixels") @@ -324,7 +324,7 @@ void qTabPlot::GetGapPixels() { void qTabPlot::SetGapPixels(bool enable) { LOG(logINFO) << "Setting Gap Pixels Enable to " << enable; try { - det->setRxAddGapPixels(enable); + det->setGapPixelsinCallback(enable); } CATCH_HANDLE("Could not set gap pixels enable.", "qTabPlot::SetGapPixels", this, &qTabPlot::GetGapPixels) @@ -672,6 +672,8 @@ void qTabPlot::Refresh() { break; case slsDetectorDefs::JUNGFRAU: chkGainPlot->setEnabled(true); + chkGapPixels->setEnabled(true); + GetGapPixels(); break; case slsDetectorDefs::GOTTHARD2: chkGainPlot1D->setEnabled(true); diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer index e655906b9860e8d563aea7787335adbd60bde5bd..cde78956362ae8fdd0f69039ab00a62863c7d8b4 100755 GIT binary patch delta 86019 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

77IBn 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 G_x^uj28pf! diff --git a/slsDetectorServers/eigerDetectorServer/CMakeLists.txt b/slsDetectorServers/eigerDetectorServer/CMakeLists.txt index d27f38252..912f21bbf 100644 --- a/slsDetectorServers/eigerDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/eigerDetectorServer/CMakeLists.txt @@ -22,7 +22,7 @@ target_include_directories(eigerDetectorServerMaster_virtual target_compile_definitions(eigerDetectorServerMaster_virtual PUBLIC EIGERD PCCOMPILE STOP_SERVER - PUBLIC VIRTUAL DVIRTUAL_9M + PUBLIC VIRTUAL #VIRTUAL_9M PUBLIC VIRTUAL_MASTER ) @@ -38,27 +38,60 @@ install(TARGETS eigerDetectorServerMaster_virtual RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) -add_executable(eigerDetectorServerSlave_virtual + + + + +add_executable(eigerDetectorServerSlaveTop_virtual ${src} ) -target_include_directories(eigerDetectorServerSlave_virtual +target_include_directories(eigerDetectorServerSlaveTop_virtual PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ) -target_compile_definitions(eigerDetectorServerSlave_virtual +target_compile_definitions(eigerDetectorServerSlaveTop_virtual PUBLIC EIGERD PCCOMPILE STOP_SERVER - PUBLIC VIRTUAL DVIRTUAL_9M + PUBLIC VIRTUAL #VIRTUAL_9M + PUBLIC VIRTUAL_TOP ) -target_link_libraries(eigerDetectorServerSlave_virtual +target_link_libraries(eigerDetectorServerSlaveTop_virtual PUBLIC pthread rt ) -set_target_properties(eigerDetectorServerSlave_virtual PROPERTIES +set_target_properties(eigerDetectorServerSlaveTop_virtual PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin ) -install(TARGETS eigerDetectorServerSlave_virtual +install(TARGETS eigerDetectorServerSlaveTop_virtual + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +) + + + + +add_executable(eigerDetectorServerSlaveBottom_virtual + ${src} +) + +target_include_directories(eigerDetectorServerSlaveBottom_virtual + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} +) + +target_compile_definitions(eigerDetectorServerSlaveBottom_virtual + PUBLIC EIGERD PCCOMPILE STOP_SERVER + PUBLIC VIRTUAL #VIRTUAL_9M +) + +target_link_libraries(eigerDetectorServerSlaveBottom_virtual + PUBLIC pthread rt +) + +set_target_properties(eigerDetectorServerSlaveBottom_virtual PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin +) + +install(TARGETS eigerDetectorServerSlaveBottom_virtual RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) diff --git a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer index 1d48a328fdfd4d34670b3cc7c4965d6c306075ae..500446b97ae5dd2df8c5211b977ea493a1b51d69 100755 GIT binary patch delta 41348 zcmcG%4O~>m^*_8b3kr(3Dj+B?i@Yo7f@r{iE{eLksF{Z(7iV56xvm|&_2NwLLWw8aSA|99>k*u9YUc|OmJpU?50 zJ7>XUeD&ep5?DN*X#7p*Y7RcJmk4ZgIMk)vOyaUw-)O~__O=<+S-A>K_7Sv3Y z+NF~^P;r-s1Nkh-v4R{f8Ao{0t^_G=#22)yNJ@P%tair8#|iEBmG+JLCGAOOMJ=gX=`g!lo<8-F@89K|ZAZvbslRn?#lzX$hQ0D?6(|NYZ zjk;JV&1V|bnWS?5NT_Y{`6ZpIGb4u^&k=3YCFAK_;0oQkzT7;iNT*9WqBAHoqb{W{ zpHY`4)%cF_(q;4}nV_gdvq2yCq%KEl^_@6GSH!tYTy$^0Nu*k`_&rKaNF{!clg8R> zetJqeq?Um3l%z>6#(z-aCUqL;P!d;b4t#@>eYGt?-xJbM+Z^&ZA+5E+VJ{O(b+sqL zAHy^F_3;zwPZvw3@&5GvT~g}!C%t}ET<~g8e!<4E`MmkNk{{2v&^^Uc^Z5CcnkC-} z6X{Q;Ab$W^BjrqZ((A*lf!WKlkbMd}d4-H(DS2cFrRkD6ay{KMTdIznPWL!VZIMSP z&67%_9wGar#;6VCLT&iO)r6dvN+&%<+N67v4p6;LDl^TY`f%xrX(4|Lj>aQh%8UL5 zn2a&=d0I})BGM=|#Go5%Z^b-IsFRaqi(SFuS@c{gqJXNXe8iojRMP+=O4#{6xu=_zG!Z#$f6pH6=a*O*>7W zLkBrYDg5Cr?cQ)VWN$HY13%NL@1~LFh>HqvWKN zZT25oF}qiXN>AII&r1i*|Dc1Qprj3GYe&-G$!V!&=HE$^baB?dNxRgT`~n@UlagmY zO9vN8jkABiqqbpAfD>}J%zp<)Qeu4++HAB+q`EdOWiaphj0Mk8(j{G6G?ltoBtz=s z$efA)n`-M*^@QB3ZCLy+p{{OH_Tz6+*YH}mGozsg$bHA0-V^ zYx*KMj%oRLI>abtEMH28#7U=@&!j`rYCD%xLWktmcCGj&o~6=>j0vPhx`zK7C8w3! z$rUMoCD&xl%Bggyi`2Fp*R?=L1aP=Pub@Q&xT=SNG z{IJM@iWO;^xaMY(Oj%xI+${F+66_Gy+%hE_C+9nm9RizMnN*%N+NaWi>JZr6PD_oT zUbIt#90HqLi_`&XhXd6it_^dNjO)GVFmEYt{TFmt2I87oDhhX!GB(VGWmau?4*g}! z4uD;nv!5aDwe{KGP;^S=Q&XL&yH2{c<%PoGx`8?nX&N24JK1IMNwnyQ5|m6jcVCC} z5JVgi?A_xW(uX0vMKMI3dx|~X`@W^HFaEpR90)hSa6&NTIiz1ex)>4MOC8crBE3N5 zcNky1_aj}55$-h(`F9~bh3Ah&3mk?V?<^3+sNsIifnfpCeMJTBQrXro=x`GsM%eIo ziDzx~w$Nd8cy4WT;bt<^P&81ZB2A;w;U)I+U6$K5I=n(EDjw}q??8<}?LvRUo1_|0 zTkX`r4?q>l8h%e|E%q8?aB(1C0$J$B;42wk0NLa~J_NF&3X{%|ESWhu-GRIjWYKU# zj+Fbtm!zgP^~G5u;cff&Po*Oe#P&}eGD4jJ6yeqF!1y5}@)T9^SMvdearN4Prw~Ar z8UMcq|DTt94~8N1Bp+OcC|hyxA9^|xvAJS89ch%BDh|+*$+ek>{RthJTU&DE=Xz2l zg}?O%xhS1~OClY$=|7)I=_p^R;@CDi$|M=yevFPvug!e>9YV@#-Kr&mVXX4_3_?0< zTi=~Vs7GY2?}-C=W=f||7LvdOZcYtT#Dd>(zZLVAORy04K;J3XcNr$ zDgQKsaT(4`!hm8vV=cO9Y@={aJJ_5Y-tdjDflJemMjG_e}2EjfnKa3%C zw1;%%SHGp68>NE{F?6&^YHFBHM`zZ$oqJYKNBBskjZa}Jb*~X~s7A^1+fT_g$@h2L zMouQZ%1|0@8{H*U{_bh&?IC%epF_RFCENLF)H_Y8IR8HN&XH0tET!HhQuT%Dc+|FC z7(N(Y(%JMqxmer&@iK}+lbioZx@u!D4v1`O4CpN>;V z2d{9_>sL7?8~-=eHebaAW{it;;x8Z4F&cKqKYnQn%m57Te1qJADy{mq%w&n$J_ z{HvE=4x*ErY8-yTB>hUH_OE!?h5u~>2K@5B%_LrAW3Nv8Jdk|45i`mO(w3ik)`s8y zgpfm0=hs2xl;rzO=t#qC;Q%f$d|2-AL@Di?P}=np!o^sLed7^$yWj|Bw7bUgh=FL~ zezms(wbT4MrKWFUM!N6SCi_Q9hPH*&JzBE0jiL7zO9gFVBNWGklZm>9-H=YVjiV1E zP?xvV(KeJEle*fTr~WBY!M78sf4+3$+d}kEv z=gRpVtHFD%;~_a;d*$vnN&|J0<=zS!7$;TT`!x+rl``+Ir-22vP4^jrPh|f4kEq|& z`3kuw)pu^D;|x;xg9CJ2j@0;zIU}Qqo~k) zu;@*5g@rT>>!qpM56YKHy64kx79h^Y&~JS3@Rodgyl7CV6x;I%nwit{D5kB|Jux&m zPHO3yI_6)buR{^u3v{|>CA^dS-%64482=kD_14g9Kt;dNr5AmPH5U2$x|AtTBFCkD z@^u zcn;LmcbmATe&Y4{)`7H>TUqN6@=F?QW936pU&R48f)HH7EN)~1X|Bt2BUt3LvHW4= ze`$z`<+zg%X-EMJA5LbGgLOH>$@^sKZv%Try@aBA32 zosU=Wfija(&HmV$I#gh#q@G>zAWz_7@w^0UUMtK4d5%HLPR|d5yF(!&ve< z4U1$|W63HSW?@dg2o$`I2R%ftmf_DYw`aKf+LYj=xg+KL3HGxA~L# zgoeAZSR;9vhKI8TqoY7ofdg4O1Ib%pNn;g3WIYWpU{1m0cc|rJFnO`CY2YkBLQT`m z^23!tqHKogGqH;3T{nfdiMf}XMV~nZniK1$2>UuqpXrBmG4GG?cF6B+(G~XYn?*$0 z3G42FK`aF#%ns>SkuKIv5or$T=a4Se1`*i~>Bo>R)=d!w4(WT4t}YfP>mte>2s=O! z>!ye*hxC<57t4o;dR7ohz9e0&{5T1hDlOo4B-OLF7;XG9Zo{^biBFFJOPGDK4QjHGN$f>NP>Uub@fr?141Xb)a6bh zf2MRoFiVah@6!op))_;drxVgx{$vm)ZDY5eg@+6q>Hj7x{ zAJ=A)_qc$`XjdC+P9|^B=wOyN8xbrzl{L%;wVdV5feug9U7SNO3q8+#E#&DTF*>gM zxJxk}3}fr~Au++?J&rY7$X7HbnVp_T-W?K?t&FyfF$FApKAGwGetJHcMq^6rI_5(O zq^2%Eg*>Gv7wc{RBs)+sC|@pzH=#xdi^-$YPg**21!vg4R%1xs-h3gnDwHAb%uXbqN_{ zBB8O~EN3NpD>m)GDg^V^y4+P{mL6i9UV~w5iZ{ErhAbR1#jLdU+bL-*Wi2dkN+!!* zOMXVDlrpDvw^POKx-mu~J`aH&CewK9w2hM!Q>8+2D+wg=eWpu6FcJ&gz5%yYf( z7P4s#GiQ=tz#!T)5zVStNfz2x#k|*}Z4E4CJ=qSa8`qOj1dY0~fh;6+sxJ%PNPbJF z#<8}IF!ZUJtl~*hhptU~3XewSmV+?a!7_6&jy)30JT{TX=pz=Ey$MnIk?cB;&158@ zkCfJhZ$UI9)pc#TpWb4}WnE!DHlo1PKxT;!fD}kGz3&5&q&D9nvp2Y#YU0aUh%og9v|d4)Jy5 zex!@=7uV&Ge;3k4_=`6JPY2?4=c)5V25QmBtKc=1k^{JSe){7V>adK%Sx4JFso6Xk?flCj6G1yvnQ}{<(bSxi^?;Xbtun#=KTVU_0gib zX?g7YYh>w<(@ro`8Cn11wD!6aWn_>uogT|h?}b>?EzIL}_|o(=w(oUB`sqc?S5gLx zD*k9@k^Att$4>79afUZb*w3HI?7Z^KW+?{{@Mn~=iUSA|4J?*nIJn04F|v)C4b0^r zMl7?56&-|wo73we50O8R9~I1;%iP{TJZ`AF@&@@gR`0CoFecrttnDy@C{8GjU@q0h zEJw(?!nT1OousBYcC^mi-scnayE}GoPqI&H=yzA)6T;h*j1KwFAzgTTQmjKd<|2KQ zog|9`VGkIDwB8HS4mzYqA-#99lVp!e^gB-w zgtsTz;}ZS08|lK^ldiCqH^~=tCf0JtNt|S|xU%j_;y3eQZh;GZyPP=flWsbd70ei# zUtZ{xU;d_3K~aEHJ`VMW`LHezcmZZXPU>MF#O4DFwyRA=Gt*hdQ4-)8iX8(FCCN5Z z6~1U@2`fKJR>U|J^!8TKPz`Ijg?^*#!SS<0^ATNw;ICl5Z(+c8DqyCcV;Ojw<-UbS z11oh%^|=OSXFgcE~<;O?NDmyCXt*0g^^HzgKd?6m^;d=(kp)b94mzU3*itaNM&(Im{T9HfR z0t%fHc$Z__HHI_Ap`Qwzxd4AVD|ArKW#$FMBk!(tPvq|kM&U}HTQ}kYoD%v~SZr^^ z-}vxl;`~BE)m$j6{KEpAL?^`Abk0RVZ|V}Pa_1rJY9*l3T^60wR?d*7bDGXIVU_=U ziPan<*4a%~`N3uInZZY~yfK5#4{T~1)Ph)X#wXHXhWQYzox8D zkQU7~WU?i@S?J9(0{4JaAEAsCQF{u?7=|)ZkmoMn+~$pfCd&_mkokqPeS00pe$PRq zX~JBxL)g0cu|3Qs+ouE&0ZI^IE?Kc6WerGg9!9zdbIJB47rptC!=xtJzUHDgH-SNf zxn%pSiQZg-bP?u~?Mp6tGZE<`%q7?J_KAu^kS@Ypa+5>)Fr+JCF5RR{ZnYCy?}H%1 zT=G4K^czSQVQ#jIL;3|96gseDT9+KC#H6$JxKuMDQBS{|Cv}VnrL$9bV4Ok9So3j= zI#E*dCqeu$E!;E8+Owq?Rk&Dta+Q9JHqLHjDesaa^ou*J{aq|onwj|*#Gl?c%WS_O ze@kpfZZ($aW_JKr!;5ZqC-7j!5_EI;O$%><8-TkB+?y4hAkz!yWDo3mk*4YTIY#iN z3Eptv7J-|93mN9b0T(jNu>kLtAsu+H3^w3>G89PUwJ?@>l6Vy^wG0$Qq-g~yvFKdR zi^}%_uNQbVaA7WU&I7L$>DPb@bD0ArxsrhVS_HYf`Ase2z!}}TPQB+ zA|0)8QS8N}o0|*VEYb^r3v-!U3Orn-R{$60GWP^K;0Fbs54=p^Wx$IBUJ1M~PrRJQ zOSZtFy1^L&?*g8x;`6+LCks3lc$~mffkz5F2e?t-1;9N7&MS5ic!fnbs7u8Q=bgYy zhag-8eoNrDfL{}MC-5c}pYH~|QQ$`4rv(my22~3j0u8DVI0PD0F7P7YB?8|EJU^k3 z$57q;YP{qKLIZG{z*~T)3H%;#i;7zfz!L->4%{U01mM8}PXq2P@ND320?z}k6L?Xf zMdy4^yp#iP6FBOeyguuIiSE_gly3Bc>z+-`z3fuy` z0C*uQ;opefLE#bLKol%1s)E( zOyCyaMG9W1TbPZPJV7W0o-Oc$z%vA14Lnug=nki3fulQ|;sg#&I7JG)1GrJe7wLd| z2;2bNMc}~}oxZD3yd>bIL*OaEZwcH6{F=ZasJ=hnf;E}*>0=EE96L=_+b` z@Qc9R1l|H%m!K=;?w8tb(b0Pi2sj4MWj;@nt-=eS1MoP32Lq23cpPw} zz%9T%1P%=m7Zoo|gNk%rf=~p!L*NI2-x7EY@M{7;54=g>*MK()yaV`Y6<^{6yjtMi zz$*kE3%p$5slZD_{9lrZmwZ9U2c9GFGT=6WR{~EHI5gBd6IyZ+c!EfWhI(g0OFDrE ztLaPKfO`wv2;5EJv9G^oWThXF;XYURfxuoYtUwuT(w)snG#Y4pL~{qL`GAb}DG_9@ zHV5*b(^xAfR|v8}OTLoK40Ry43o;kMf%|GTGuIKXF`q>WI`1q8`e!vPm$T;xa=4cK zmo8Sx*}pIdx=Bm_@-%Da^sk%*Jx)viTke5+klWk@*{mi1-N;P!sJ%mwEn4!OQfA}i z^MahJCI7DzE9a$upDgI7Av5o~@-nIL(Y_LH{8` z&~vr)hj}cO)4O^bpRc8NHL@a3?@kr`MOu1~8>=~s=Job$sg^9KvsTWIrH^Vi}c2HF?-=jg~&7i8XWj z&`iN!ucf<%ANUno*C?osTI#TLX5!@DuD_@yyQAxWg~Ep$1$(oWKKvpp=X67^pkLF{ zN4T&?UVNn>w`$2F<5&kLR||5Rmh4f+j14H=v$y9vv~({WOKkvquhVsE$=>@|5hn|W zCps7yYEq_oZGn@lGSSX%&Yw01G%*^SbX2EaN z(!+dNE~kh43VOJf9^T3-IXxm@&`nx8PA;3zIW#X$OP+B0z^_4V7R+WXbz%uK{ThXv zgwqm>mL6TtY@8ljBKT9a^eK_7oELvlkkhr~M;cipXO98as@UazG;=5*jAa5oBSqn7%3Dl>fq?lf;fzo@0BwK5y0FBfA4Y1YzL zl(BMNd~eTO(~?)3SR-d&Z4kw`YUws_*1_3@$CEZKIXj&he+#mR#iT<^eg+QD$u*+z zPAxgVnic&Pm2VdPhHqUoBh8j(R>SGJy>u5XeQObG<@BAxW0gsyL%%*-#SFg#{kb%? ze(J5|FGyi#PTwXPPmNmo_6(NG>3O~Ma4mg@8>{>sns-YSZ_<*V_hrqT+#twtT5{pN z1Lr~AC#YrzD)y9%u?2q~b-&PCw?#{Tp_AD-{l!wjpQ@$5bb^(0`pe0Jp01^rX0t|4 z->nmLo0k5nj&*SHgx%0=E%~(~X1oCQvR?6Wwe+%9mU;o~!ft53mi&`aR>awVnki~8 z($dQ#Sq*0w4zDardOH@%*=J;}oZKO}%eCD5>zUzy9ArPJC9^zc{vT9+Fki4&YUzg% z=sEq3Ue#4==@m7slGBgm3jP``{V-;Cy!v`Uu6H0~;<`BR!0*BRX0PHK9mr_gn{CX* z>6N|GUDVQ#8kp_(DE*2ky;)0sD~FYH_9|~dzow=C91hRv$9gs2s-;&|vknxGQ%9GJ zI7eI_%L*>yzE?4;zK9Ed3s}=dvT)4u>_nqsaNNezdHmb}7a+ZHYtPq08}GB&OW45w z%}2}>MdDcbC0r^w$l5QFvBLr}xerHOSk*3X$$4c+LFod1^Bl*yIBMv7Llp`Il zh6TXQ6N+@sNr!dnip#blj#W3206%_g5NDwcd-*9&@eExY-(y8%p!gMOlJTH7>uMsS z0)2QkrQV_y85a7hXq+5iL8;3{I*vmcqM7MqGKs8VwvVB!c`T!ejG6eW1t`!1b-VQ* z^FTAu%CDmAhhTCZN~DW~iKYID6p|6F z`A=lrm=AA59v5VH;RjSnhvgP7YqW7i9&`JIXYXc_pFpu^!S)FRjF)Ve$FWyGA+vc2 zpP>8eAH>hlcf{%RZQ9eN`kM!uiI@M`kNQNe&>5`qbwyv0F~cffa%Qp3WYI7`o`rAv z#}^LnV5y(sI$+&>*4_+j+09I!;+|aH8dh`}N5|2u`Z6xo{Qj(({J~z9`e!7sVflYX z=KZV+Z-M-n@*?00l)~>{$~<^TR(1}qW8D*qBeNWi#N)0 zyjhlU71(9(YMq<4XXbKdlyUZd;gV9D*Xg4J^CT@6c>-C{6|&i@_U@15Im?``qK`L0 zcb;tCRkFf4(JKG%an><|dePtAWQ|wJ`a$oXMOuhRTZvCC;#lfs+?{xT3QO%lPt*=$ zO`qW?>*#^MkPT!f%l-=*K7y71g*-W==C)#Cx{M0`4d7T7aE*kMz07irJnmUNaPL0@ z^WSUaZ@9^|?>dgfPP6u` z-@(HFO03bX(6XZg|IB#C4W>0|s-9<=ud>5mtGFJW1cZ%G|y{PaI>hUyx~DE6oGdz0%A| zzQ7HNm9eY~SzTR)q75uJgpQ#fE@!Qy>G~nZ)x$>JsuWiLC2r{*$HCN>WP*=!*H<|{ zK0rFn#~WW`KLB6iWBrCU1pV>)bS%+i`g}h zh#%`}#mW6D1B<(fW>;Tk={J#lm=)ZFQe0V0FkMgIzIos)wE7ea{|dVBI}=gMaKE>QZCHd8IQ#aMjQq1I>X|=g=3bfe8X;o@8=g-+HDf#qeNPGgUQ-ca8W&n|H)t6jLH#_QwcbXd)y(iU)E2^GzlIUN^$|<|8ooA< zm46NPy{wwQwX@c*aY0}Kns4Lng8dCP6`jtr_RPJ^KW)albHO0&S%tn_YVBFPM#vEi zEpjgn?j0SFPj9MR)v0>vS3aPr@m!S(CUNxmKuM48S8c;fmySyTB(73Ncx7>|Iw!0A zKJ5D&MBd8l%%u(fdYIR3SL4zBLKax!v&GEPrqzEG`=X8bkU-YSc@wp~mB$1xx?pEu z|1OAPfBF`z(X8!T5;R-6^?`0MT6^-71e-7L-Xen01aGc7Yfnl%I>6G~60Qog1VQV) z#VqwZ^u%$Nhlgh|6yc@}cB*o4w0{Ji{vGbx9=^awnNWIUKTG~Q0{_WNEcfrY+q&Ao z>i>=scCi*bM)<(3jJy>15XP6)>CDiM4nM}s?eLe?+053C%5sgw)730JryJ+ak2O&E_j4wLy zPvZ5YEe(np93O!IFah^S)Vn7k+IuBG^W*F$-3un3w|D+$p+DP$^uZ<@d_X?Cm(P`O z%R&d~e64cb4RkPOJcs!3(rE3;KE-M}NDwRhCmBp_1>A|Z#nkf)Bu2qx1QWkNVzkhM zH}T9KXdTBFv!Z|Dvxgaxbe7k_K&xE6!`>OX)2L+^uVn(M=nF1`neSZ^=Cd0WxrmBf ztn!(wr~sbE4l#2#0$DXaPKl!Hy$;;8%I{3+SLRD(ysP&>beK@qEbY>BoJG>MSL!7@+nhBUBDX@P2)YgZ1m%rWop0+WMf)?5M;Ec5j}EcsvPh_}9Fx&I>1 zhweRYm5+AYJ5V{)a5mXqE>#3jhKH=f>O}FasJ@A!*IqQY{}gu8U3GeT^d)t|T)vVS zejuU#d+iH}3O*~ZQR;*6WmdUzD=X?GF@vHGS$ihlWc8hxvRsMR@lbj>i4{GEIcw$e z0}n7~j{cDf_p24Yd5SgufO+a}USC+!^1kLM)xD>T-lz_jzm6y)iyHiNDaA8zg>ALY zgO6*=fWcxeHC_W7M6+Pin{qFvghiuSWJN@-rZ z_YBnd_^Vvw6WEud=>}SQo1K=?zq`+9B|QF;DDEu#k-jeGXq80^4+Vp*U)uz9=k(r!nn4dBSwYR*=RqY*;YL%s3EYF$Fr)%<9qcaUyOziD@>m1tW zFyb6_Mf)(~yznuURsqj3!gG{4q3Ssy8wYAHG>e%A(ID3oz1dlfD;*tWC=TGC9KV?5 zP+K5sbBMT=n@}4f?hDbXHeWxgYO{Ffz;=foQro@v0kaLJ+i1}Rc4aUPomjkIYnDf| z)P_^Umh$U;v?Jt-wI_HJ3wNRXJCh<8`u>WdlXlVG+^Fs7!)MfvF64_su843bBGMj0 zg0coGBA5?I-sPBBu-qwFg{{qF)vmB7hcV{}A9EZ6_F+EeAYea_&s@`C^gms|+=kHY zo<0K@R zj-hlccF)u-Ap^7gs+bvvA&UqZ&kYP2@`vB5S=1@2*R%HrmhvGc&F&~g9XGt5T{$qz z*|V&2II`SPW!ZUQK$f0>BvwA0P9U>I7Qca6{I9E~viq=_Cx6F)JaXM-)@(pc&T5ut zZv04=cva!0n?#=31M_@vRL%3sRV5F7`Xt{y3Z3}OE^Vi<1*%o*nqf*VahSdNF3=cY<<{eYYp?P~)r3ankzs`n0)EjO1J!#BuUl-A4`^T*E6Ee|% zdlrueVnVI6FSkmDL1WmvlF8bbZMXS-Xv|d&SWg&`Kb$ue3r#2F$2@hrBBxz$X%D;Q zN#9@k(sAVXPE?jx>vC1~?Cpj(^62NR%2PfM}4lS*z4 zXb;LQTFLf#(@EHrR=&4dR}V47m6LVYmG-7%LUXU%W7bdiLoA08bPr#TU zttdOo>V4_YNg~VeqhZUHHrb8ywHrd@diZv5qH3J2s&T&hfR~1@;h!zQS$5CnI<(NI zT+x-m+7R-bCu{M8Ar50*erV`~yVmZ`mzb|Vebn!sReqI!IKhWqUJ@2MrH4=whTSJu zvOIsv&rJ^c(-{9uD1G;JWaZ-%&x)mPX$Z1neA@UeYx741gt-L3EHcB@xO2RlnF0_+ zhq06Z?BHeJ#tvTS_>KK$io3;3k?`XOb!)3a*I~Q57sPGVs zNh}RZmk3SpMLRU{@=;Y2+5G#*6ketp6=Nd$kI87rMQhJ!SCj=;&df%GTu~NxWnLCs z?&T##Lls}n_ObR%CivQ(1`MlKTUR{~Aw%pT<}W`G2w%pccpQDiPw`!QH@@hbfEXQ`JEKeV2HRG^rn^mmHtIKR;#vr<^KkG{l ztW`T$N*HR}0oEX}W(rny*B(Fqz*2(gg!q1ympGL0^BugAP-uAXMuyn1gQD|LDt2av ztm_r1nHfXqWOeh+-j)*KsXPe0bx7TTMo8z=i6Lu`iMA-LG5+h;X!Y=-;y^syVugxb zB))sS?XIeaHGJ8O6FF56j|U>UukFYFf&+WyIaL>1!Or)SZI{#u(i$Ze*u^d0C{&M; z?9Kb?sI@gp5!cJ+9N&MzE5Er$9piKNt0U-Y{B#JP$lDUNO)2VC1IooRQrWTDa+w*& z(+!@-2Nrt-QxCp8*n+t}vbgeDA{vXW`ttE~{K!>TwWU9Qj5Xo+i7?101#ez{V1i}~#z%^4@F{N!?Wa3T$*{^xj&<7t+T z*OtsoljtO$dD_~Z5!+tN#kSW*7zP?RC>`5gvaF0KkI2h+YAf40PpwSXVwJP)bBZIn z8U!3SHQ@MR^~ZM$x0vW)nq^em>$!>g1}K}2&+uu3L#v~-N$+^G-la-tvt_MQ01Z6wcOy)ucSli%kGY|tSK6cysS9Zlu5^h zF1-p}iU9ib8g02dBdnWBYw@ zVv4ckEc)F%Nj-*(oAj#k8?Poc+&b|^KEiF*39GzgBl!9Jf`?noFShe#73LR9cCz%z z=)N&$SkYt}=6Xxrg*mX3)l9~EC2Ox_KIO@7Or|S5*9>r-9zP#-f}eR)^~lH1vesDY zzcy{JR%dxiwBQDVK2r|T<2Gh>s>AE{U7~Zu+;1!2Iz#6?zQ-!BJKk5$5#>bCL+x*4 z1hY+nv90%IWm9O-0&cECQQPilRlJp-96-g7bt|#0CtwFxBo~7h1!Wi%B~`9ZR$WiR z$ilaH*UeU%vGyrmo@K7wxd?!}p}Bk1k&8 zxX?w1?bU9H(CTB;4przy@ya4-^)Xc+3wNmovuKG{A6r6%J{$~YgR;P|%A1q4`pDU% z7QJw>RbI8JuN;lR_#(z9LQkpe;xywV>D6y$>mBv;Tar7IU&`SL`?lDBGl((EJ_t zdY>d(4P`G-n=yZcqM;SLR1M8rqTF`zny*+K+^6rh3nrO+Siuasd64BKaBQ#4prZ+X zX&Tor%w{a_B9uJ>f6IeDohZ7^R>oJQaq=rml*-aEE}AjSuTeNgT9nz2eI}DlSZ)#> z>yy=2&=KVjR}Ax`)~LgKc802vSJo(nF2k>v@l&KZ^Q`jH!w#%X)*eqkWkhqWfKh{MeUoi56z|DQ$+HD9uJUpmg5@Z+kuJP>Yy z-klGs5Do#eQ`zM9WI99BB3`0N8C(hO``SZJtM z)6U*slG{5&=e>6|jzhbfrm*mN*dXm>Me}GtNRqw&ReY-?T$lj*aV6g>fs`|bvGemV z?bwJ97v@v{=`&6_@N5E4q~M9P${AmDV)7J^gm7L*ze9#GUO+!VPFK=vN9#$wT(P3j`Wfm%SP}UQtP$7a`;tthb7u;6+ zIpLhz&xw2bs;J;mZskgQKR<_!%@kOlA7@EoyHaS#kVo&Ub*l>#6KhGKUj7MoS5gYe zP{srp3zh@VK469g2m<&)OX0m{KjhS{geg;I<4Q|$6b(?mbH7=lIrcOIo zR51GL{o%={6OUp3K5Z0P%X;x_m6kh z7M89oXjFYXBVw}!r)`T-n8Rt?(^r+k@H-@mD^A5p4=?SJv)a;@?Y4{dv^Z^>tIl@Z zr-s;N+o7Je%~4O=rr@-VJN8t2#8mof=@d~Kw3mlpVN8Se?yCaCeyp-g>8J1|4hr86 zg>#lDel!uq5~q-%EYgoo91@G=q)r!a*6CQwVCw%^tfB*Z08cxn)~hcoo}r#FD28Qw zQpdOFcFndpcloOmns8&*HQ=?eb>&pn9sx=PK6fn znK-tmqH&153`d7g1+#2CL!)1E;28lPhtu*!E5U=)@@VYAE`vgz%46-z=)}-yhY*@t z3?7HGmxUjL2YXwlz5MKjAFnE#Sd-v+>FCTrjlh#`+bdtR6$Lqjmj&=q9$qFDv()7d z0#DlMz~c-ahu&DQ7(D2WNuKK7&x~SL{t`AVCSr}cf(ESVH@YnnqZ`S?OhfEqKUJ^J zyB6|^5*J4pND7}QL7a(ER(bloKDRld{Em!zv8nscY}U8}BTbXIE%F2%7s!`t4iZ}V zQVkMD@e{B-Yxf;2ex6Wzu(AXj(G%nCjZ3)?R)@Z~CV>@wALXnr=MZ=Kj*NR`?-b0% z+T9+l-ZM$Kp`K$-IKvz6zc#X8EKU)zm{{yB&oQVix9-%oeBK4MJ9$>!})0}Sni2Kc=wTrSILQ?+N=tJU6|8>;rg zk6Pupb1c?Ir#-gG2|Ny4vqWd15i9M2T6|E3!w^3w3uR!4567PZpt0)C#7CD^wc^59 z_qX#{qm6D0-DD{)RDR>9_okz|9M)~R1yze9k4^0?eGQ#3#i6>nygCQBpUta-+lQe# z63d&YcJepJS^XNAcPBURZR6%F2b+WECm#bFJU^8G)c~0GH<(1NMaORTW)*Ac*u)5X z183g`tHZn}IU1~(_k`TXGp={bl+Ul#n}Jiacoa!uDR1ce0JWt_zqUJd~? zi7&hmK!eUPk1YBO0vjwo2)9RT@CZq?GtRsOMu**;^TfJK5uB;;=-!dQ!Ck6*Rh`B z$3KmGm|HdtTda7teK1Ul5`*x;;u*O48lYVI#f{!A;k}oBQGCBe_;j%dH)0WP+Qdq- z=~8OirCj%wv!Uq!{g`=gq|=9NN#)A4$}{gW+eSLtah^OQ1TAogdx?Cmgt!+lh0l%r z*x8MACQjtKHqtF2_0XNOspth0B5O3*cy|#r93?00;x$;PKZaNIDt?x%{z-(FDd50f z*cJ!Q#IvG8&WR(41ZTBEze~*JDT=?%#1fvO&pFnWz>Sdi6X$?eKgx{|{p5R}wLC>* zXs(VKa_G2;zBdNemaqoAyn{F|I%wKS@S=l!vGv%er|Bz_GQ$mmVRQ|2DA@NhxhK#`k z%1l?$F>plug#5^{%G%6s8jrfN?9DhsEmMtd+6W<%81dp(sv?aEw94ZX+3C%gg(j-g zHy=-C*bcXQV+);3Bd~7H6 z4&S3x=RP{iKJ{FBNtwxpb*qwiT~*sQ`efgbT){i@kzH!rn$)&UeM#H4*vo3$y!Kn= zP}~&QhDidR%H-G+SK+o}@f9Mf@KCE5rktT?N?QdsLBIXJ&rqPdCH`S z*W^CR;m+CP>YcOTt*Q{CaOZ3XyxG1?Q<^pTTT$nEc(ZcniOt-eJ(eu={ zjv8i_gCf|)9rQ(PF)B?Rahs(-O9R-aPt$O+Ql#NCmK|7Xk95{*H2NwtVA=TQH%YOTZYaT0H_`xq>2mZ;g<7Ejo#ws;tBho|gTTkQ7{GZo-?>d?RjTe1G($5Vb0N)`+v+-K&y zUDwted0e!&5&>J>Uf)`&+Sh~&S_#IFP$d|8)hds@dtetVdF)-aVMA~vvx`2`yDc;% zg4Y%>Pnq@Fl{^0Ok5qPEtt^6Xz&mtsINyLr2fKD##kUI&PI`>TZ>)aUMe#~z1fFIM7^ z*GuXO!+E7L(Vjm@S@YVJ8>)B_=22y6s#s!di&U!);fp&5unZ3kZccJ0v3m1b=*;~U^sB%hxV9ry?K~VrYGPBFEE!L8xn%(ASOaV zH^J#Jl^z!bPK;RkyR5YYA!&^|lh()gHL?51F?BI9>XO<4*c$h*X$kpa9*&`5GzZRFvTY9p_y3kJ$h z#zZRvL$s|7*s8XYVA{ctz(%OoU)^=P?9Hq=qc(HIFjn&uc#nKrvD&q|bJ}Ja_Xw-a zwp;CXVMPJQwaxUquQZd$_*QVZeS1PZFILYvyWc=S<<@0T>viwBZI|f{@d3(ktns)^ zJqx%@e%2m2L@Sj4eIb;CX>S+y<==0J^;L&h(t{y3Q4F!}SV^G*_il$FHbEU?hhcFA z(vYsJ${3@|R4yBMu-4bGFV}rYD~GxdjQ+u<)}!~;h7F5Sh3~?j==d`U3FzsvYodY= z(!R%p@Yo=FG+LREyD6hZ5}UGzhPv`eH8vyFYZt++bPp=8lzt6u!4u&lBRMv8JebI5j!I=hRDUDj`FA`zy_{P+ z(hb(`vwq0OFHQQQ$^28JRIZL_9A;Ldt1Cd0;9un(sLLJHCo8O zE~5hFn@|*vHO}iensEjxd*Cv0FjjM~qwntD<)4RzjOzK9VjOned*OQb>ojIao=%NU zQ+BhO7Bbq;$mO?o*RSMV%Wpw)nN7MpU*I09T{z!Sz2V*km8S8A`@6M<<+)tg2#j*F zxR>CJLm+Ng-`^L8b?<_f$z#7@f;CPKRJ_4y2_JZp*zEoAhA6dSjW>LMQ(MNUQ}&8u z5>;=|?_iAw;0+5L1&23$@2ce;dEH)rbe7s`dPr^c-K~AhCPpVLp3;w1jB>j4;u(&M z%siugkvYN#{p&E=4bS3Aw~)ILSY%@Kc;A`qb)HtG_yBY#n>LGe$#>^+Pj`ko$Kmj4-jm)?OjzJV1AG5MIsMT)?e8DYohR&&IBX-dE*W0}}ZF}y-vwLsQEw1Vk zm&YzBeEehW545GbT@t1D*Lc2N<3n#~H9jOl)%f4)xnH@s|=zTu)gaziVo== zMI8pLyeiclUHgrqgT*NNEk@DsJEHO*Le$FJy8DJpIUJYCj^JqWfoeZqZJXi;tTn>0 z_NqjlPJB3W6fMTrIB(&;S(`Ej*+YcO4xv~yI86C)1WM|}Z8Gru$d@B>=q9z;f8#3) z?%rSH(C00ji_X*b*I*xeu_4F!IswK0>xRm6`-~XfzgCoE7iN$WkP!bImDQ*!%Xz1^ zcl8(4-o1@&+Te3SS@-Ybm(6h$^s!x6!O^O&?q?|^Ea}yrzwN1&*y*-i;-Iafyn8sC zK8Es&?HxZ3$9`P*_k5Jb4Ec&5La5^(e0MZS60Y0x{SLl^B&{AdM!GZHr*KE>z?=CZ zP4ipFdAG#f9yk2`nM;^Si;c`Y``_{)U!8)E?y2?eP`0G`c#8aokgohthDo<0(xIGU zhu_=YVRj(!?Uxgxpfrc{#Yo>L(z6}X`RG?5((S+7O}+|5dZtLX|86(=$`$D;JUtx} zRoM%=c^8CO!BFpzejVw)BE88W{UaM(59!(;LMJyDv+{T7WAx@Rulu*x1Tns ze|M?qdjl(}riC~Ub~=t-u{A7?KZb!yJ*9|@p{(pUE|7h(izj$6-xG8gyLud7>G72W zM)9XpS;4zth-NkK(pliU_by%NenT;pL?hn^e>#n&{sJoyTrcW%=t_o~Fw3jExoi68GSuV68Z9z*qc{HFQ4v z*Dt9zy^aIP_wdEjwf(H*J!*}PP>Sj+`kLae+M=&3qn;?b=|Bxup4X1C6Tif9U%m&+ zsliZyUAY?iJpId7W;jK?Vm`a9E%h^HKB8Xq?-lqjH|zrE$FlTOP~HNmafzq2>HCrV zz}|pSqf)`qZa46`$JK!2g)fd-xktwlmn8o>y0ThW=(4iLA5yjt+Mw#=7*2 z^z%`~QWx7oH@i}wmb$9j^mn6(FUx*F=VI%p<^la~+^Ahe1lJc`^l!%n>I@5ubVh^o zAd`U{^)}E4T?YC?OXngY3d%|5^hz|YJz^vAm9xl(;k&d1Xv z@D6RB{yekIa?k8?00ihy`)}`s|Bd+nIW2vFaD`fFp}POKmCmmJ&t=R;S7^)cr~YL0 zmy*Gyt|CGITc?Q`x8$CTF1cr=2OtuV49EcF0m=YXfCj)7K)c$pO-cG#GS-L@(-^fq zZ%gj>tZh$cZ8JvYZrPS+49PTxvY=V|ovdo8zI#&7+Ge?DZJXS)P6vQA>(JrrEC3rI zAAn9>R}E+cTvIAwZnO1Y`ka@0)`NF_3jqA<@5wzIP{szgI;T1M-w!XWlzW!Ju$Dm` z%aC^&@-9Q(Wyre>dDD?M-3@>`(}Mx1H$4G>y3^ADHb4#lGNhLPAV+!y0J5Z?1~dYi z0M`Jw03CoXxo5cxzym+;wA=_J5)cPS2BZQq0NH>%KoOt}a1c-hr~xzpE&{FqS^@2V zPPu1=6TkrQ1%v})0cJo7ARUki$ORMtN&)-i!k!hCKu!Sa0p|hDfEGX-;GW#`gbv^a z@CF0}On?M{1&{`?0dfHOfD%ACpaM`0I1Ok7Gy$#wZUH&~T`(6HfJY(zGXf$3ae!n% zDj)-p4afr&0m=Xe0abt+Km*_+;0mA>&<^N?Z8-r90AD~jAQoT-qyW+ZnSfkC0iYC6 zxDWqT0!{$x0p|hDfEGX-;GW#GN(XQQcmsj~CO`tf0!Rbc06BnsKnb86Pywh0oCY)k zngG`Tw*Vc0F1cs53;KVx2M{A55)cPS2BZQq0NH>%KoOt}a1c-hr~xzpE&{FqS^@2V zPPxbC1TX-60pWmHfEkbiNT0J~^SZo^TQ(cRL$*g4H*Po9T}aoj*B9F4o?Q^&|0xvY z$UO!5fD%ACpaM`0I1Ok7Gy$#wZUH&~U8u_i-~li~3%im<<;h8z>x}a@XJ+LiF33H_ zU@AuD|DPeqUI8R8hUCSNycm)fL-JxsUEIOSSLy@nHm%gZMv0DHUaj}98*S4k(?W<| zQ_v6kr}cmTzsldA{$Jh)DU~PJwXW5_FmhtFL6)P#0cJotAQw;ys07plngMOH9HRqx z*Ol+k7wV%f;)hRK0iCiu4gAxf}X6B1$yZxQh6gp1>JuA)ul4W_bNtQP?tFWb7mbXAq1ybL`Ej4%=(egGtGoXztc;?FTf<`>K z7LcDnvrBXFY{Ih{&sJGZH{f|smY1U(>LSZ)D)5BB*`QN2W@9@RP_#^zpW+!RWjPlG z(=J)w3D?mF<9Q2DwD{R7Jkg5hYWtdCET%{zo%XVi}eLlNWcP zq|<`LTjU|jX=sVg=8y)prg80<9n#R}OFi%oe&rtoB&kU2VvPm*Fp|mI3iNX$QjzK_ za`4ix$nu7Chcu42L1&pPeV6_Td?R{#mp*Js3OI7?T(n4*pRU4tqeI$0S$+nk>lz%= zs*wiG=s56ysF60va()YHX|0QXUY|-16zRR(pN%x=pUnZB0JO8! z(Fb7Z9`*`e&la$`{I!j3;IF@qW3TYnYwR8V`g;%dd;YwrW8bK`2A3+C!}z0u&E=0S zwxJYxK22b+@aL5{_6|=z&wj5`zu~F3z1iU1czzwr!uYdY$L8)vt}3>Hzuq^nSNLl) zdxyXNtBn1gKmT3AzTwXYnQZW@Aa}B`SM@)k4^vs)tNL-yXnK80-50OwN9t9a-QT0% zFr+>O>Gz=K`*mOL)t{kk>|XtXL24@7yjP#?e9wS}*L}X1Gb%Xy-+lU*2c0cIdRyJ| z`}Mwh@xm$(>bJSJ8K4=RZs=-W;0KhwdqqEz%|ECgTKA7P^i=Px(AoVX`jzyfRYV3+H%0+b9$R z21N-NxlvIf2H8O588DXc2!yzS4FnR%0zvwndv7eAks0Rv=Rg1X&wu{cId`*rf5le~ z(e%~)+;8eUa1Q+|ElaYkl>o(V6I`yaUnp=}nF2pHv5AVHM}c326nNSM%N2M|fpvX~ zc8!T`qPO1RpX$w0S#)M4->k!P01jHiFF5OkWc34R;95S&S)U0wi?Y`8oQ&<0B-^L1@Fz%>rXZ7UrE)d2o4p~Y+Yqt36#NcQz~+P#+NI(NY3;4Si9UT4F`p?48_ zaUu9+2=SVv)A}uZ96hp*|G{Y?jfQpHt0^V#0>Q0#nO`MOrsE&+74-i5e1INN1GMFR zej%d)>>CifTDRI~y^_hX!Qn`INy*dzIT~_l-+Jy*TW#o}vkL5yZ07)q|A0?%?n3dA zU0#~|0nb;m09sl)l&Y|%mj1I!fu@!YE>#4kmJSL9 znp$d794xp@frt4o61XPl!{dht#O?;3s^r<~#x~J0gwQpYkP| zvo%?=)*5R2jBiyMLkgA~5yc8Bn09@6JpGnqJv8SJ9gK?p#FqJCGbIrAo-xckm-N*c##u&WmuS zi+HJj18?bv|F)B#*7r)4uV38-)mmU-Bkzd2v{WK}I~=1QQ+rxXo!{`kIxVD8x*MB_ z>n+9SVnz5|Z{v>?f0pC4Ogk}J!$#{~9;-Po7lAfvbnW8_-0o1!K^};W;&ZhcTsN)| zGIJ^g4o=&-9i44^GZJ8Qo3-EkJhUdsWJQzkEUvEMn*4hWa{`hf0^%NT95Hn zAK%H;v9Rnq-^H}B@mnTlXvojTW-jjGsHD6+Uigj77_muHxidFTJV0*^7PlF9$BKa( zvYr9dEYAf%6i~l4wV!=!1=n?RSb7z=hak)x{oZ{Bhurpjt4y6;aD8Oi-|Dya+ZU?oJI9} zM1~#)7&an%#6QI-%)vj7udJ(9nsdzlO=cf+REzPO?S9y(Z4%iGwTr`t#E=A77KaWF zUNmi(E)37N;+U3Dj&xUP;kDsXTjwX&cOVb`ADUI=l3$^bI&Pq5HLHxkcVZxeHi{36 zDcEl4u<$W_(<*vcOm?^9pw~lgrWO@{lnm8X3R}dGk@FzKa-=4O-X^uHi*D$jRHrHW z5qsJh$p)rURf~9=r7xv|BVvdaq`(nyKjnci$rhQjNNT9Z6gnbO()AMHyDaw3HzgaI zjK0I}uTvS0Tt~$myg@y16f)OQ?NO29E>Fdxdo8M%&m@~zLE)oVteRZM#1wPm71pS$ zL^6~g3LFEEDheGFzEM|ZVhN8m9GfE9i`8Hjwfmza^Fjniz1@FEvSsk4<08*}KMtE8 z=~heagrMT%Vw^G-n`)EyO6E$W&~brEvG{S9t5wWry}4A}3fb|i>sII+MRB67khOw5 zCj{Q%i+5k25U((l&Zt%WN)I)k5ZN%2>!cWmFMSuB1Quy2a8k@>e{oRgq*#d;ln2^? zMv0oTHj&5H2@17|A!${RFldP~FivXgbI`B0`$_PlRC1ldG!)bFs&+vs6`T^2*`{0y zo`QmUD0&K#9Vbsa)8nm!7AFP7nZ?a}YW z8w^#x%EIREs=}CyD^Wd3XNT~fLOFSzXYBqUKW0g88I4ykXAy7NQmUAUdlx%nt`p2#5NxzZ|C0T-} zA!?99ry&d~poCS6Wac^pbPM^3esnhCWSwe6JdlkD$GuPqjn^gPLgVp?zae=W7n zGAJk4?gu3MI6wuLMBb=(azJM##igH@Y!=2fJ3ca8lA$_F?IlPNq2^1- z$)A*fe4b_Q3_Pk$K90V+zQThuunZ~`d3wcS-EH zmaWIk`I4a?l{bp3SBN~9p~qk``7gu&r{QIomk}nJxDoXy{<~JG2U!YV7L(Igf=mBi zhNeljdLH_=4u&FI|16OTuOJ*z|EBB;tclW7A=O`(Pthw_XOSe&RqU;Y{8!V^#htdDnOI43bgjNvfh(y zBhtbT;uZHWPzFP_PUuZny+J5uOzQ<>2Khkvm&VDBZvGIwfeK_0K(B~nkW03WaIth*YwE~ zf1V1w%fja@lO1+J;1(W00jEAcy-$GNj;H&wr543}Ez4T{zC5XI4pGzz_I2cm!SweW`d zv3fRsTU!_lwQiwcEM&zaLkwD~yMrxxy%p*W=jO(IZDX r7XI${bLKz)%yYhb$Bguwy%(OCXZG&Dacq>;v&Tl~7@yyy-!k^UQO}og delta 42814 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 MnE7Q7= 0) { + if (ival == 0) { + LOG(logINFO, ("Switching off Image Test Mode\n")); + eiger_virtual_test_mode = 0; + } else { + LOG(logINFO, ("Switching on Image Test Mode\n")); + eiger_virtual_test_mode = 1; + } + } +} - +int getTestImageMode() { + return eiger_virtual_test_mode; +} +#endif /* Ids */ @@ -361,7 +379,11 @@ void getModuleConfiguration() { top = 1; #else master = 0; +#ifdef VIRTUAL_TOP top = 1; +#else + top = 0; +#endif #endif #ifdef VIRTUAL_9M normal = 0; @@ -1291,13 +1313,15 @@ int setQuad(int value) { if (!Feb_Control_SetQuad(value)) { return FAIL; } +#else + eiger_virtual_quad_mode = value; #endif return OK; } int getQuad() { #ifdef VIRTUAL - return 0; + return eiger_virtual_quad_mode; #else return Beb_GetQuad(); #endif @@ -1779,95 +1803,144 @@ void* start_timer(void* arg) { int numPacketsPerFrame = (tgEnable ? 4 : 16) * dr; int npixelsx = 256 * 2 * bytesPerPixel; int databytes = 256 * 256 * 2 * bytesPerPixel; - LOG(logINFO, (" dr:%f\n bytesperpixel:%d\n tgenable:%d\n datasize:%d\n packetsize:%d\n numpackes:%d\n npixelsx:%d\n databytes:%d\n", - dr, bytesPerPixel, tgEnable, datasize, packetsize, numPacketsPerFrame, npixelsx, databytes)); + int row = eiger_virtual_detPos[0]; + int colLeft = top ? eiger_virtual_detPos[1] : eiger_virtual_detPos[1] + 1; + int colRight = top ? eiger_virtual_detPos[1] + 1 : eiger_virtual_detPos[1]; + int ntotpixels = 256 * 256 * 4; + LOG(logINFO, (" dr:%d\n bytesperpixel:%f\n tgenable:%d\n datasize:%d\n packetsize:%d\n numpackes:%d\n npixelsx:%d\n databytes:%d\n ntotpixels:%d\n", + dr, bytesPerPixel, tgEnable, datasize, packetsize, numPacketsPerFrame, npixelsx, databytes, ntotpixels)); - //TODO: Generate data - char imageData[databytes * 2]; - memset(imageData, 0, databytes * 2); - { - int i = 0; - for (i = 0; i < databytes * 2; i += sizeof(uint8_t)) { - *((uint8_t*)(imageData + i)) = i; - } - } - - //TODO: Send data - { - int frameNr = 1; - for(frameNr=1; frameNr <= numFrames; ++frameNr ) { - - //check if virtual_stop is high - if(eiger_virtual_stop == 1){ - break; + //TODO: Generate data + char imageData[databytes * 2]; + memset(imageData, 0, databytes * 2); + { + int i = 0; + switch (dr) { + case 4: + for (i = 0; i < ntotpixels/2; ++i) { + *((uint8_t*)(imageData + i)) = eiger_virtual_test_mode ? 0xEE : (uint8_t)(((2 * i & 0xF) << 4) | ((2 * i + 1) & 0xF)); } + break; + case 8: + for (i = 0; i < ntotpixels; ++i) { + *((uint8_t*)(imageData + i)) = eiger_virtual_test_mode ? 0xFE : (uint8_t)i; + } + break; + case 16: + for (i = 0; i < ntotpixels; ++i) { + *((uint16_t*)(imageData + i * sizeof(uint16_t))) = eiger_virtual_test_mode ? 0xFFE : (uint16_t)i; + } + break; + case 32: + for (i = 0; i < ntotpixels; ++i) { + *((uint32_t*)(imageData + i * sizeof(uint32_t))) = eiger_virtual_test_mode ? 0xFFFFFE : (uint32_t)i; + } + break; + default: + break; + } + } + + //TODO: Send data + { + int frameNr = 1; + for(frameNr=1; frameNr <= numFrames; ++frameNr ) { - int srcOffset = 0; - int srcOffset2 = npixelsx; + usleep(eiger_virtual_transmission_delay_frame); + + //check if virtual_stop is high + if(eiger_virtual_stop == 1){ + break; + } + + int srcOffset = 0; + int srcOffset2 = npixelsx; + + struct timespec begin, end; + clock_gettime(CLOCK_REALTIME, &begin); + usleep(exp_us); + char packetData[packetsize]; + memset(packetData, 0, packetsize); + char packetData2[packetsize]; + memset(packetData2, 0, packetsize); - struct timespec begin, end; - clock_gettime(CLOCK_REALTIME, &begin); - usleep(exp_us); - char packetData[packetsize]; - memset(packetData, 0, packetsize); - char packetData2[packetsize]; - memset(packetData2, 0, packetsize); - - // loop packet - { - int i = 0; - for(i = 0; i != numPacketsPerFrame; ++i) { - int dstOffset = sizeof(sls_detector_header); - int dstOffset2 = sizeof(sls_detector_header); - // set header - sls_detector_header* header = (sls_detector_header*)(packetData); - header->frameNumber = frameNr; - header->packetNumber = i; - header = (sls_detector_header*)(packetData2); - header->frameNumber = frameNr; - header->packetNumber = i; + // loop packet + { + int i = 0; + for(i = 0; i != numPacketsPerFrame; ++i) { + int dstOffset = sizeof(sls_detector_header); + int dstOffset2 = sizeof(sls_detector_header); + // set header + sls_detector_header* header = (sls_detector_header*)(packetData); + header->detType = 3;//(uint16_t)myDetectorType; updated when firmware updates + header->version = SLS_DETECTOR_HEADER_VERSION - 1; + header->frameNumber = frameNr; + header->packetNumber = i; + header->row = row; + header->column = colLeft; - // fill data - { - int psize = 0; - for (psize = 0; psize < datasize; psize += npixelsx) { + header = (sls_detector_header*)(packetData2); + header->detType = (uint16_t)myDetectorType; + header->version = SLS_DETECTOR_HEADER_VERSION - 1; + header->frameNumber = frameNr; + header->packetNumber = i; + header->row = row; + header->column = colRight; + if (eiger_virtual_quad_mode) { + header->row = 1; // right is next row + header->column = 0; // right same first column + } - if (dr == 32 && tgEnable == 0) { - memcpy(packetData + dstOffset, imageData + srcOffset, npixelsx/2); - memcpy(packetData2 + dstOffset2, imageData + srcOffset2, npixelsx/2); + // fill data + { + int psize = 0; + for (psize = 0; psize < datasize; psize += npixelsx) { + + if (dr == 32 && tgEnable == 0) { + memcpy(packetData + dstOffset, imageData + srcOffset, npixelsx/2); + memcpy(packetData2 + dstOffset2, imageData + srcOffset2, npixelsx/2); + if (srcOffset % npixelsx == 0) { + srcOffset += npixelsx/2; + srcOffset2 += npixelsx/2; + } + // skip the other half (2 packets in 1 line for 32 bit) + else { srcOffset += npixelsx; - srcOffset2 += npixelsx; - dstOffset += npixelsx/2; - dstOffset2 += npixelsx/2; - } else { - memcpy(packetData + dstOffset, imageData + srcOffset, npixelsx); - memcpy(packetData2 + dstOffset2, imageData + srcOffset2, npixelsx); - srcOffset += 2 * npixelsx; - srcOffset2 += 2 * npixelsx; - dstOffset += npixelsx; - dstOffset2 += npixelsx; + srcOffset2 += npixelsx; } + dstOffset += npixelsx/2; + dstOffset2 += npixelsx/2; + } else { + memcpy(packetData + dstOffset, imageData + srcOffset, npixelsx); + memcpy(packetData2 + dstOffset2, imageData + srcOffset2, npixelsx); + srcOffset += 2 * npixelsx; + srcOffset2 += 2 * npixelsx; + dstOffset += npixelsx; + dstOffset2 += npixelsx; } } - - sendUDPPacket(0, packetData, packetsize); - sendUDPPacket(1, packetData2, packetsize); } + usleep(eiger_virtual_transmission_delay_left); + sendUDPPacket(0, packetData, packetsize); + usleep(eiger_virtual_transmission_delay_right); + sendUDPPacket(1, packetData2, packetsize); } - LOG(logINFO, ("Sent frame: %d\n", frameNr)); - clock_gettime(CLOCK_REALTIME, &end); - int64_t time_ns = ((end.tv_sec - begin.tv_sec) * 1E9 + - (end.tv_nsec - begin.tv_nsec)); + } + LOG(logINFO, ("Sent frame: %d\n", frameNr)); + clock_gettime(CLOCK_REALTIME, &end); + int64_t time_ns = ((end.tv_sec - begin.tv_sec) * 1E9 + + (end.tv_nsec - begin.tv_nsec)); - // sleep for (period - exptime) - if (frameNr < numFrames) { // if there is a next frame - if (periodns > time_ns) { - usleep((periodns - time_ns)/ 1000); - } + // sleep for (period - exptime) + if (frameNr < numFrames) { // if there is a next frame + if (periodns > time_ns) { + usleep((periodns - time_ns)/ 1000); } } } + } + closeUDPSocket(0); closeUDPSocket(1); diff --git a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer index b8b11d2600e542537062c947994d671b468745d0..6d46a5b172e5dad499ae87be96253d98ea589e20 100755 GIT binary patch delta 35509 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 delta 35151 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%0AoRm+ zHqews1DXcCmti9pu#P9L2v8zGnFdN%wEIHXu<#VMd-Nkup&xn5WpDpamTi@l`kBH1 zWI>s{yop+hJKBiIqY?SeCXsnDavUPZA@Z+(=i2hb$oxOKi2O|6?PBCa#7#upo=xIP zYl0bwI|Ff#|4s8TO8Da6RQn#u3(^K!QU4I0ig4oxf17Rl#rflzzs+E{FHa47RC)Rp z8d1t%d=ny=5aG?gX%0dHKmWS|{Dbne_@xQB$;`+g5FaEn4V%mv`uh){HwdpE2&i>BJT!5Odw_u1v zH()rGcp}0R(~TH?Jq)|S zup12biVVqMNQQugp70WcmmqwY7@mRf41_=K2~UQC$xyJ57@m#rY=l4L2~S0MD#C-b zDp(;uofGnn=`Q=Vzo=Q!6h8d#dRXDbTq**!)@ixj8V)>iJr{7WGnqMfRiafL(3YnW zx_XmrkuG`h$T#IZ7(RC{;ghlx2%n^QXZR!)gW!{tY2Phxyil3$CseYn-TL_4nae)J zY%uO=)V!x%_WZx(8LRa#DxZ*CmtAvB9q_J3uI7B6I$$MFvp5XKZP3GGD7)O4aHrOhlqujs4iD; z%(cb@s8L^}Y24(z<+e8HB+_j+&`Z{1A_Z;Qs&%U{0gHsh$i+`vS3_o~$Bg%0A~WuS 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 PPa6n~AuBq0TL1q5A+laN delta 62950 zcmbSUe?Sz~_Mb(-RaYAY6%lnoR7BEMQOO^*7#Wc%8Y&sjRz*ccL$f3$7tIWRWZ=~# zBU_AoraW5{lXa<3$;`;Nn)#?GcU;`aD9Lz5`D4GIGqbZhDB|n;$ASAf_uO;OJ@@C_ zduMj-7wV$V)lsv?jZfk@&KDHNspi-@)mJAu)umjH<2f z5Xb<|5OMIvAmFvYYen2?BM+PpoG;?G8`Z$Yz{Mi=*_a?)x3vZFd8i&HHw%9**^oAo zb9}IH&57(6GYzUFyVY*tH36vB?)6AspC(vbj)z_3OU~eOq`SzMPqRGVZZjh0b3(*? zmt&wyZ;gegU5>|Hdc;nBoik{yK{Jz~ID4VasMT?ly>Hqe*_ZWheP7Ss3&>By7i3tMShC@ppr98~9CTS^UcP{> zXdMz+w_R<>wU%4dspZzA7PDow+Sc79AZSa-v26~t`!-LNC8{o5(?Z|AFZOU6^Ee12DWLptfTF1?TlBN7+J3fT+MBo}gy$?NUbNTKoO_URWbV|Af|i{l*M=TadY zITAlsSPR*;3&-j>$2C@O<+b47*gpMN$a9XpTjY2eqJBa=iln&`Kr+*&#|8>HNSw1U zQm99gSlwhKiDfUfxz;fkhU6*?VJxq0z!Sa1tizFYIZTQb&LQ_*$J#_#gvbate(FPx_HnM;LO^eU%lP_5j< z!nm~ZvEG`H2X71^npQmL=!4lpnjzGfA!IpBkdCWqYE36J;2M;$2K9aHntS{h=J??n z72xtVHB5RaUry8(EjT2d1GyZ<*W{*j<{H()xozxZyT1K33pj@k6t|Gq@`ie|+Mqjt zwox7`WN~ew>=df<7m%8D)r1;fSzX{#-kHzuoH9WVhs~>$nA+xGva;{q& ztZV~)>P1-gEOLc9&iyGju0Q{z#&w-h0yD~71n(79vUT@FcKmaW8BrSO!;poPI(GD) zfQT&Y((d0F_m=Bk8JI_Z=PZV>TE#|fdI`%-v z^+t~u#oWRbx%rE^orL7cMO24Qk8C?pwgVcLyD%vogN#y;&x_Ic@me9w&t~=2;=hj# z232E4S^bsGLT$0BTn9h9DA&P4D6Bw-pNgI*W=&`-1k-YlPEmA8mU}+o0-Tyeeqk8JB|3ym`a|Hy_hgYzb8DQ%V!iL;RS>n4eLF>wwO=OFP#Kim` zxkwz4H&{%Zi?q2&Yi*KNdL$@7+5)8g;&)n)QN~w)r?&pz+yHGyi(c4+_&ta>e)zlD zdO%!1Ui{q*flIk+_~WE!T%j4|2%K+60y`4C^E<6UNa3m9%OU?ot`>jiu5M=-g^Ku9 zi&5+dl`Q;e6(~|Db#0$c^Qzwlu6-b{vUEb`5l>@v`ZO~C-DVUYA6$;2-)&IyPcici zT5_}j3Jgzkj>k|sHE%D)6o+A8PbJTu5#yI3ei`D&c;ai}_}Z^{Hd~Bei}y!@;l_WdThS6e>~}l7&`0!wT3cT_*b)Z( zpY@#PU?*~ONp_+|t?}h)hR)a`d!%z-0?JKg4@AgaN`$21bVNupyc0r_i2(>n#s@>MeEll>2&=)I479uqmt*UHvs;9A8_mE?0E@2)RsSGnbxSN=XcEva>r-0GJ=++BSTzxr8o+FWYVKgenP`BD=W$-e3~or3g&?-CB=a%^lM>!^8|8_F%*1joV6YJu+psW0+}8#xh4XkY|l@m`w@pWgL%` zeG@QXKKAq8uE)w^2%?r$$_HDT{m~b=qH&=oyToB{J#e&_8`Ui-{g9|_8S@0=H@GIF}AY% zApcT`l`diC?p->cdqpcO;gToTn@df9nnoH{OynFo_HFlWDi!;0_x?kwAX>GAYS-mh z>e0Gg)Vc#{7kSctV_1N+zdywiLxOxheTppz2_JtQsjn}A-a?mSq*w~7<)?ll$Ip62 zZ7^GxYB6mt#k9FplIrKlW4xHh#8(>lv$*{^|-=9vb5B!f-cj1-sl+*D2GGF)W0@7W|9p9rbMrEFl&E^W4LlJa_% zJ=U{_>M9$g?G|!rX^<{dhi0SN10VYsTIn>HYj{|G?0IJD*`?F58BGn1k<54qX1vLM z>^a6i4FdiWGXTtm?6F?`r>7y;w5689zu?#tzskMgr(dZz{IXGPFj?BmcLoo3TwK}_K> z=ZH4RZyAI;k$|=r1eRyot-oTR^I9L^wLUR4rrU^rxEJu)Y%HB=KrKHl*75*W7}|}k z2phucLOc0iPvIOpGO1N)|G9{BxR$q|RUbCe|0Bq!i1H)mL;mP;$|O2h>ezl*3DdTq zr4Y|Fa9-6?m!ogJ?D0qI$>S5)mtm9Sr?tr5S~-~5yRRI~>YdWR<33L1M>x4ie)a z5d(=BNX)z<57Fzcm?5!#y$%w?Adv)#BuFI2UZHWBvU&DOIYcto^AHJ#NCreQAo9Q! zdHPMgLQQYpdNm{hAdw4++-I0MJTQ66`o`G?>p*P=1dLCvIZ@s!b|QsmKS_U|ds3~- zw!}`Q@N|*02pnvfLO}(x@V_EAzX4b3Av17&0^B3ID5OtMRRSB;r<+l`47;PtWJk#Y zL0F^?#YicM(~>pHgS0?>JSYOFrw8ePx_XdSILXmUxd8?>JaYyE`|e-JBpS&+|AkCC z-6luQgjM&^b=sK9Y1(0?yNX4k`{BH2U+p+4$WN5aylm~HZJb?iEj7tPQVgFrQ72#v zI$&14h4xe3O&OC%D~@wqoXOVq4Qp$AQ7;%!X2UXO?t8*N2f>_WEUVuT)p+(^zg}Z6 zKap+ej|GqO3C>`%66tB(ix8gRwb|m%T-6iO6T4tBVZZM8?s6QZJM{$PBl-qcJ|S(J zwN5OzYP98+H7C@V*)UW-!4e~ShV6KQT1DP6X@pbxniM14QtY-gKErY&g1X1Sy0~S> z;JAT5%XRtq&*ZqN?07_ zKdoz=?Q-mJWm~6esg(!7Ue$OCH73*FcECBaW0TBiUxa^7#zsi{HbE4=kqp@c3SCU* z4CPh|{gzD4nKlY(u@V_{#*$%Bu^at6`f<;40>=U(=NQ8g3V#;c+I4d0NUtkL+Nal< zMYq0`d_S5_6;``dI3Ni%sMUcydL2^5AXQYI++ilw*^nv;sY2oK1V8FfWl?MddlGacJx9C$K|je=KISK?GCjKz)!A5z4qRHvzfF(E2?!C& z1^V8D_`*qrG0qDv)e$+K-!*9$exY?Yt0G$%Q5W5d%OB)Kj$N4KgUe>hWVUd%PQ`j>%Rw_J5x*FWAbJ5kprbP6fVDPhRPLe<-kxsZn+OyMd85SswwP~flv8G07tO? zgZdjgAbsj`97QaTEgg&W=YO;x5ybS@ezcQGFDByefT?QTeF+rer)q^ZV?1e>IjoJ?H61f(r-&+fNoA`kT49)m3^2b$$~z)fQvQ1q;WohiMN@xC zB2#sceB&jwMHDi7xy$i-t-J;BQEe{j`RE$<%ixG$GosCi&a9Q^qc>}*rz?$B>t@vFk|Eg+83-kM1}Z zLyG83I`)XDl{@HTwbVfq*SH)>e{|H*p zSaN^CYQ&7gmapKFuPmmqu)ha8IyB%hi6cwVrkZ%dXyP;hc<2dv9{uro8XnjGK>d~G zo&7&he?72TjgdWA8&k+>=8TPnVNQJ8QYh_hY;E=CNd$!J?vtreS_$tJIGH9VF`h;Uh+6LM{`UZd{_aLz=>z)OPx0^Uy@&{U%6kf<)aVxkYz$) zH1R{i(s`UrX;xx`btM++RtHg{}CwBk{o?FgPGSK?`MWvmbbnV6MlF?J>SNP{ou zc;1Hw-)N&&Fts)v;S6R_`H?h38)_P>)Q0*aV?yhVrE5;`YZ^^z9NtrAaZnV8%sxYA zU0{A9G5|UH`*1idrq(sVheJu*7_mWwbMiVH?QnJpt-nQ28uX+g-8*hQ8PEfA`1#N= zFX@T&;i1QPX%!CKv4FTP?$KVwHd|AJHbK!QBwX!Qln+H9hoI70Lq$dYK3XU`3Oyy5 zTT3d*pwqYMDS@66r27Z-OylcI)w(vRI8HIDY1k=)Qjp`YN@pF6K?g^IDjk$=U)4A} z#%XiCgYv0Un;KRPh1Dw~g+1;q)i0KFn(m}nAxB3{cIXB<)}vR(in{l!^w2$j)t|HP za~f@~<)MY8IC#mz!Alk%5meGiKV}?NBE+VyntxkaLb7m%4%x;PoMyVWEMie2pa288Ga)OgcaPpP}J+W~v8OS**SMgdhrv~PL940*0)8-%N_=GdVoa`4c zN~=tz7~CAT2NQ%wH0?%gQe%4*y`>(vO4K+Il3G=k7VZCjwX&={8l(CJv;?Sm20J>m zx6e89xpJs}{Dm+KJ>iH2IZ`=kGDpJ_@A|~O5PK#=v5ds5C%Cqd9D_X5U&#O7^U9w0;)WBZ(W%e;ntNOXH;Po{>lUWjH9zrGud9}=#8A9H&S7e7m;(4fs;j?xQLvy40xG{ z;}?;0a)5J0tQVbA09+vA7|}UqV6%vIqH`*MD?}V2Ij0JYDv_ZTol^%~C*mN{IUEe+ zvdJJ`bWR{}porC?b0UBvM9ejDPCJitT47x&O)@kN_y@Th%M2SI-?ITN_~zF|6&FHyb6SA51YSXko@*x+Hv68)A^0f z`Y<{Vk97QbJ}+C-7CYoJ3KfoU>NY(*92(QJV0u=z%hAen-77-8?$v)KT|Us?Q` z*?87jp*U8kuU3KNZIM#bER@haFnETD$$8)4B7odLd^{4&96Nk`K1vGG)mwXOV}$}B z5KstE5fBKdGf)W-2&e;484w7lHBbdmMK&8UHq02f8nv=oZbq>}C89tO91Ov8Kp>z< zplTox5M^Ei1OlSW8-PGSl)3L}6%i0+t^oo8c{3+eZ&9%?$M!Nd$O1#c@QLe z^obSpKp>zlKuJI#pnHHafIvWMptV3CAQeyn5D4h6aJT~q1oRuwNgxnVU3jcfs0IW9 zUP5FY5D4gdAm248${Ird0SW;E0oi~efIvW>0Yw9WfQ|vh1A&07K*>NLpc0@oAP~^M zfQ*@dAi&*#IY1zww}4DQAfSAp5+D#z9?(f35YPsoDj*Qhi$HZiAfPND-xpDc7YRKJ z!~=nV76XMF0mDT&4=@G@gh&I>cpwna6F>$a5YS|xwLl=CM}hVLfq>$GDu6&hV}R^H zAfVwu*MUGlgMfn8Vn_>GOE3a3Vl7-MqEMh1AQ0k$f#QKcKmkC>Kp-Fu&@vzpkRMPk z5D4gIZ*&YG5YQh$r9dE{dZ5a+DkJ>?{1MQOND$CPpzA;&pl^YKUV@=75jqDH1q1^6 z0!R-80y+Vd1Ox*57$^-01XK!?0|Wv(0AvC(;t$|nz%oD((Az-gfIvV6K(#<1plv|h zI!pxX2yF%m1OfrQ45S4D0c8V40fB&?2O13o0$K_*9%#H#gbM*v0YQjN1-k3Df`t0vZYw_%h6X*+?)7PzMMC>H`!H z1On;_WB>vIbp=`m1OnoLa)3ZUZGcQbARr&0QXmk}wJ`J;AP`UkP&E+92>3H#9UutE z3FMoDE|Wv(0#G0j2&f7u0tf_j252-82yiC>Lazfw1A&0H0L1};fHndp0fB(l0;K|hfL;K~00IF$ z2b2Q@($yQSPXiVJf)JSoR15?Hnh8_}1Ol24WCH>LJq}b01Ogfl)CdFudI(6f0R#UA zLiYm&0)c==07U?SfQ&l8(SRVp{y>R9AfPayG$0UAcc5$_5Kth{Rv-{id!Ri)ARvFB z3Lp@WD-`1+5D2Idr~wEB^s5n&--sb`Bf-l+AwVD?2T%kM2&ft;4hRJF6_5c41aul` z84w8QQ=l9m5KuW#J`f1V0%QgP0lgn;M7sn80q#Sj9S8(e1k?xw0(uijvk5NUMCdgj zEf5IkRiGFk5Ks4-D|fq>=!l>mW&W&oW8 z0s&0}ss;i9B?8q0fq)(X@_hyU=M_R@fr5ZQK%;!KAY(ir2=HD&0}u$PFHj~B z2&fm(CLj<{5ReH71k@3z1PBDw7U(1p2&ffMH4q5sx)z24fq?!Cq&9BGdl#Dt{sO24 z0s;L16b%FdvIE5ffq=dSG5~>q&H`lufq*^-+5`jwssJ(pfq*^)Dgy!meE?+JjQP(d z!uJ4c5D7x$9-syw5KtkI@2ha>tAus{1p$G87*G@t2xt>f91sZTC7=`_5YQ^13?LBD za-g-ZV*bM)zzo0wM1p|k1DSz9K(l}=^=2s$2ywLDtONo9 z(R$Mk1Omc(({m+PMeFKnJd#)AIq&*YIBR}Nd`g#CLa70l0t|G?*)1ga&cuf2%v=S> z1deH@O~FZ;g`=QZ`~h#OB5;akB`P=#;55w2Rd9^)v+-Ct+ooV`1!wDQ{(Y|^J2>{) zi3(19DpIB9Dmb~|TFySUR=h zoqZL&6rAj&Wb)2_#520vd@-2CU`8keb8u#m^E~hDui%{n?;LoM3f|}y*o|1hI|nFu zIpF1h7p34y+u^+PUIouM8e62JSMtt*3T6>_Mc@rm@EX8t08gjj#bx2ZJ&Sh^R`9lh zw-vl03SJF(HQ)_Z@S?FF6#W8kbVe(f*ufLBU*Mg?6ue6CD#07B;00mVCTJD!9HHQ) zf|m+jjDlwd&kWvu3SJtvO43m6BSoIEEsa7#95xl=vU%qyg7+V zuNu4u6}-fkvD5c5?~GIMD!{7%?;!to$(4@ zK6v@yJ)+U0y-bwIIf;V2l(``gA*~mK|lXyna{aIjUfjL1T zsM&;ZVH5A1sNiLSmkC~?f>#4x4S16jyu?@FnOAt{WCgDTyb|ypSMWkMqcMbR=AB6j zX4+;n5b&lbcy-{_fj3pbi+&X?_*LFHO~ES#uN1sw1&_490l(>c-O(3tKg+= z5(T?g-J1<&v%rr9@nXNH2e2fRJtEm80SccPc< zf|mqd5_r!lcvaw4f%lw(r!`?fGV#vk3SJR- zMc`#Bcy-{_f%m+Emr=+G#*9MVxkAA#c^lp2ZQi+3!7JN~Bf7o3GfTnSv=7UaeZ2Dp z1+NCY8t_&rc?jmEm0cV=@5)c>U+xcHx#0sqN6S1Sa4_h9PX!#md~ zc)8%^g7>0=SBgwZk;z&GFXvyF0sqB2UsCYw;Mu`j=iwRkLfU@x_x-%{We-y?R3Vcp zWRj!c<-UuI-{qa_6}(#TYQfu};4Oot3Ew$O1D9 z%pG2)z#YPnd5Cwuq2R@X7Y|;6f@cQL4BndxUdRU+(m&vxI~Ba7QuL-$-uae-R{>r{ zDHZ}I1yg6i>}27cg$iCic=_P%Qt*6_z|}{1=i3TiI(X^e6)AXC;8lV5j)E6w#ahG4 zJ9iULUjLPVSpw!i6@sJ7urw> ze~f~B%sYz}JYzJN(O~{d!A!)cmxxhszk*i+UI}>bDR_3IwIi)r!AmVit1joA2Nb+w z@QT5EU%_hxudy8Kzk>><;V6dIqr9_3!7B!@7`#IYUj8wZ(WoLM-Wt=17DVgVT zY!DD%?+lK6HYVl00+Kz1z`&c1xs}HErRBu-4+UkznheNDh z3bnI6YI8)j>t(gL4JF;*lGU>PDP0uSXBMh8fjqWf-1)>IpSZ1~3QLhwqe*vwa-)~| z>@x!Jpe{?LLn^%)sV`=DOWM(6(s0qF5pI*x{J4&_YA*AD<-lL`JS`TMCH*5@VO8la zwI+zqETlIIM(uhS`L+g)!*anN^un%s^WXzZ4;(zuTGv6>8P=_t(N%l9bQz?}nvq_p zu=2fn`F7X2*7fx`HvcM}-TcQ9qhns9N&Y~{ck^NjrK>_USf12urOR*k)t6gi3XkH_ z(2ROI`hO~&&J}y6sdcy)=9hC(rDTO{e#l7En6&f;cd&jY)hVH7kJ;!;WXa| zm=OB@A1vdkAfsj*R%qM)gn89hMjAVF%PWmRyZzHntb{Jlox)S4TceA&a zbErpinvOi_n>Jn25vxnkMZ(mVZ@N7cjKgFp>S`H%j>T)WFY7h4+dQeMlcl#B`r6zC z;pD2eAU?0&`moMEuilI+dnk1qvDDv;@|L=dqDq?6mBHSc*)=8`1@J=w-v6cC+D~h@ z(AFBgSB4Anqd2?~S&vFTTZ0SHmu%KAE%^F_ki5+Y#D1CCQ}@a!dMn?ZCHiVpH{WV} z*j!e=smu5w?i^Epu~~=U(+)A3K;-ria^sO3m#XgIC+4cDQEPv-;I;#r;j(Qmhy6O< zIIh9lE|!ay2Ziiytw3z&EG_OsqSx?f^BP+>XS6XFtt=O4)~2b04SqkkFI8l-=@_^w7~+8Avv zKAoXMFaPU;T4%y*Gm%YfMz;WeEJkG?(1SwsYpo{Y&&y&)gAe%V+UdGt@~nQsn~7F@ z)q^s5NPN{}Tv|J=8D-c4$7EeFW8%SA4KC>Mx|@669yzbCyG&Hg{j_p~xOzd+<-D_A zYb9j8cKDX8H!HF}E54dRS^puvn$bA#VO{oIX&h|CI7kg+e++$si8`tD@vFAf%%a`4 zG}q3?&ZhT>8fV+ksE;Zd^<);1HX@bBh5^5wKFuMUO^rhurgRr@lo+$s z>>e4Zb!zU?I)9wS_NN6K{}?Luq5ePRS`*+<8-`cB{^V#A!)ZqFHVa)oUUJstaVwcI zfG@P5OR4+eUX!;SQgf1h8nV5W5VHM0kfQaFT%AXgz18U_`Lr#Z8Ywz;0Gl*FAX*ra zi`R)gZp0{aw@GE$EM}V7#kkg8jt?%ETeX-~T#kNcZMb!K7UOv`oS6(~mR+V56!619>U51OOS&g%Et(+0}NO4OVlmW`d_%Zqi9&dh(nrlLM_zztB zaC(_a6WXL3$nL;t)pnd#Z9j#2{C=j)#pHv+9K}^xywPx(mU0{Bw!&T2j3$-w2s+tK zr;$fCKRY@6<$lmwBZV?tiY+zK2a5cM(Purfu|zP#0N)_|b{1x@U>5 zT!!r%LX$t&{%XKuTD<2woMkMG=p^lxxg1j(Wk;~R3kObn`CE@xykB*!Iv1C%w_sYf zqp8`q)37f+5V#x@8odRroZ~I%i8=Uk(=ELwiw#QetQaQbEai0?KT~=y5M4s7-EufM z%t&}^h?8p8_CM8Zg+bQtawPmHFYcfIvEB%$;TwkVKYb!cb{(hbfU2#zl!$D; zyrjop=OqI=KGoNNZ*QIF_~G7^YE8SKiMp9{X&oOl)Wc_}9Mm~g(S38sWM4AeF?7yj z9ufIVhG_WofgG9N-1xQDKx0?q>~f4>g^KZOD|>ZOXVpL1JB#`m<%Og4+O&75ko|!B z320P}XjJ1k&Jm*U&#qeeDdE#vGWcYwT6+dvS=uypIXe9z+eQP@gBYk>j&HufTkMu& zXcLL~tw89M-bNALB*6eA$ks&QQs|6-dlWHG2+cN__Zn%)$H8*`*_n9TMe$%esaCGS z=W6R=;__6?3Qd~V5L|s8<{g#k{hyY7dh987eQ~f+J?wv9?Cr!0`RAiK&14KLjg`1B zUP+xU{0_rR0ZLMkKUTP2=>x)R0#oEtx*Qk87m_g87#+T%&;3#(w0QI6qQ@fRe-TFgpm?fYqD=2)yWB zZ5pMgE1J~(Jc{o2s8fKCADkQd|7{1aCwbe!cSfh&_k6?`(^}1@cCb|VJMCbQ!sUmY za!2__d|&F@SsqPjsv7=Q?`bv;wYfjVrsh~K3v6M04o0yjquA}xUD0en^5WIycNy7wB?@o%RjtNaHXnq^awXdC#UA(R5U&|wm3e1!a6SNy5OsU((!Tj*W+ap&OUbM(x3+;R@fuB#aBxYx0b{JQP{Rux!8)tfu&=&Kkm zM}31_vPM%!aryc65VrZ5E-gHgrYj1RA(dzU5V`mLFXefV%42-oU7nXNnXUa%p7|(` zTmnCoVDK#^z$bTwpk_+&>}@5OF+?6I#ZN^v-*admN1mFmrbrKJdwy%WD?$Ax##1!< z3~kF*eOlDh^vTkGuT*WF@CILdH2&v)lN{d8+cjIW!OzMs2{boc6}Zit+>Ch_2g{zn zyLp+-n76@gUYQZQ6J(#(ZJ*b?1A}RYOK$Go!L|9Zb)4JS>sN30<)#*ly=`ABtQl*g z-PX=^8++=i+qBVVKkMij$ZVm#)Z=G8gBF&bNnhgG!n;-r!Z_BO zf8TQ4;@uF|z3wmQ*plS|gWj3s9bA8O$YWuL8d@~mV~~9jQz-T16YN4}=YG;!sX61P zdrR*q6ANFUlUvjOQux7lD15BD@Xt7;!cS8a{)Z-o&%Ar#(^2?zvGDgO3jesL@R<%O z{PR!UT6i55zJ*b&V!Eg59l_El=Kr@!{|1}+eAh|)21phC-9@RaM+bQ;y4{z`iay`8 ztj*N32}LzgQFYHJdh7W^%;(aVPcB}hqB>^WTGSnbm_0Kv?amcFP*K*4^$+XHv9{EU zJFikhSvp9rcJ8hlq3Y?Zer1>5LGE%VT(pV9#{PQQs#5nn@&G%!BA|us;B!xSD&mTe+xWLk)UrRadXJo?FywB9YE1UJJzv^T9{D$t+Z4&GrR1IdM)Ez1 z(o2s&6wrCNM|YySO_+}j?G)QJ@Oe6P5Kw5A&llZ|fE*21($wX~(D)`g~ej|s-Qal**nwyrqw4XPLJbuzrP%r3q;GW11m&5fv zl|qYW^l-5deV&w4G`IFxGgWC69eRE-Kr0wyJRdr`=PqmQSx`V5-pUQ5W&NaxPp{o_n#WP2^6R@J z){HR9Ngmd5_(<5jQP?{|ne{s+>QwXa?UwK98JD(#bHAtkrM&6%X^tdFB*7~wqE{$( z_4ib@Yo>cMmW|;VRrh})y{499b1qxn0AfF{X>IH?Aj6vBnYr$^2tP8#qZ>!9l<$A; z^X>|Gm-c@}ddJ@OEjiqXpAgBN(m0#8rD>aPred4U)K~KQ+3&KgCM|8{agLHmPO}K> zU3_@7mAcJ+P46h zEk(S@;Hbcb2G4*Xjt6h|!Ml0&=uLFiE>xSXD^SZWNARgz1z+t$jZKpK0&;V;I7#^T ztx{PEsUwhj98%GrlPME*tHo!iQt?AgX$m>xZU{aA!RgHiCMg8BKyCo!_ME*n+gOE^ z5mG^DBi^B*9h#^-Ab33D*`=I3DDMbrUmo~wb*bDGd;4Wg}%BR7hnXm zG&5S78Kc6Z)zr@D%Rm{`)XtV9yByn?ur5H?r@wLnyW3XXk;iF9?RzR*%INyHHk@8# zPxG?098u1U^%2bQa$xs6KP0SWufE)CO0HYgv2V?ys=iP~Ba!lP;e!Zye?|K4mUuwv zZv4%S^$DbT>QuMp9Jl7WA8*&3b&Fr(WenW_Xp1Vs;YcPofxid-lHdi!% zKQhtZV*dRR^1+~F{@soz&Q4|xIbq|gdrMC4@U2Nyy%efx5Rg10P0&6OCVbTJ&V5gA zDD3R|sJ7>E$UwC<@<*oL5Egp3Mm2*iT;F|4y4#AK?!-Q@!gR|}w56Y-4Ph9$n-}}C zM>q7FI?%1z@QviUirU*+aS*YbS{hi;ZED>mt9A9?Uk^Du*pvxAkJGjR7q@ z!In(&u4&U?Sh>gX(i3cBU$4{eX4GcUDC17IQMRuoqoQv!>XW{I=V@`e!o&{En7C76 zB6>{APm9rP(59}B#JNp;?rSqnqUkiEKqPOK^wZ@;f<7N|nvMSOKXVnxs zeDAH^O=hod>Kt1Nv-cAuU@y>iL7vQOS{4~6TMv`-+6nNi0Jdb zcZrWC(hZWPv%XD>)-VP$z7I?c5vQ*TOkWk4zS>vG%cLPyG<^+Cayh2mR)E@Ymhoy! zCoWki0i9S4f%W!V#;{}I|GV}0-Ll)PUqIHw_=5ZXBU@h!>uX{CKmQ|JU-=)h{)@+5 zj$bc%s@3iOHFvYVi`)9jOSfB}@;9u%I^lNfecjd%_gc@tfonW(xE!$_>*tEr&x7?F zZ?it+Zq}P8NWP!jjP<|w{@;DSsTu2c_L6*WyYIa0`xsas1M9y%FZ-SotyjVNKDSx_ zLGQb?oCLS^Tr<|^Dy+ZTnQPw(cfL^)ZR{mqDRDU}YrLy_w{z}#X|eG!{J28Rt?epS zHt()Gtv*$ciL1NXo{~F*;Y}KrSJm7;EO+S5vbP1cFvRbYbiMD^Rr8gkE4~?BRbg~e znsVpqA{_+_zpY@0!eqzXZ3rAM+R`V*ZOdl2Ems{)%SD?4YnX9cOEXs&NmXCBs${pS zvSw6`zl$pSc=C3i`W}+E!`!OYHKVG_T~zHARrNjMR#kUSa(3b^s%YV354}spEfaN3 zTkF>Kfm>H_GrIPMD%L9;o!|s=EgxTvVLe{!YJAMC+jvfE{kh4Lb26^A>_3Fha`V|j z_rvu4;g#sH?|^fst6hdSaKYt`Fku15IW8!k(dV3#z60rUY&d7Ypt~{A)1lI_D)|tk?E_!BW$v+ne4)w#qmBg~~UWVSASz#j)Nj>c5ot7CN7!y@f7}ZST{q zIR&E&{Dsl%%=WIvXB6oVe@O$Lcyr}TnryzqTqSMB#S}`{-nVM$$E>LD=;%AfcO6zD z9>sNXLDnLldoIy>dSB>W9-7pTio;4!h}6&%a4to|%6_3~_oLQ%zm^^vTeviFHbLG- zkQXD~XLx!Z`@XxB3IC;8T=*@!&2T@h;$gD(_g2lEuq%)1cO*m#5e>?B8}h*6@wS8X z-A-F;Tz7WMNF02_-(hsic;9~@xm*}W?>`(n8{@p^dizj(Cbk!+xyDQSHsIBX*O zZL0*GDlylJ2lxU!z!$6*uL@hw${z~0pEaXug$a>@zFszjvW-Kw#KG593h;52f-RP8 z++wAlZ+u)&G4zrJ6^3527-_(-aS8PJNI%6WcMkD&6e>Rll7#6ZW=g`l*ki1LF*OCa zDt(sjcG9j@!P#;c@}}DmyrAs}Te{(gq^1j2Rduc1r=PU~^ zhz`H=e3tNt>~5A-5bQoP_Wl&}ogN$5M+M<+QqM@w1t-~01$}zoIgelBrS(=38~SFS zPPfak1#gD8>EKqjlx=^rC1v?;WfRzi=9P8X8Q!+kCRrA8fyM0%Z^5*&Zf%Wh|PQ+^*}logo8)UO4{`6EAieko(E3Y)Fdk%i&?`g*d`A}cMj8tlnx zs+iR@WVMpLRM=8hrg2hMQ`x_p&&q#SctrVWxm0>&rAJnupO(E?f0|15Yl6$s`8zgw zSKk(jHPW3|J$qwUA7c&PxT(SSf~DWiXvn(hR3R5c?*_;@9DtOof3EQs)~^00EEBXiciDJSeaBTuK8(oU*$GDM zR2UHs|C|x$;zv%~pgtiX2S!N0gwe5Za-mAcPvtaO82{;G+BAD?naMtSJ5XN+b!9uH zk=r~9Khg*Hp4%yjCFpR8?hDz?okcfy!MINt?ND%9`F^kdEqqb(E!8;Is#5`$H6D{UB%rk&`Molba)SO&A{%u+?>gk>^2w$Xw&YZWdVtp_p4nLq~L{av< zg^zbt;^SSFSlv`oV^KrB-xt(a{2!qo{#xbnR_-n8ilMIftzgvl2vT>8HcKVdI%)g9 zl4|`zJZYQe(blohC|AAGMjMpc-ueqRwr@u1tCch_k!Gv$tuPqscu-+zCwIB$R8lh{r5jklKl>TS9+&4O<%hdDO`jmSD)2Ew6Fz2WdLL%K z3zf2irDHR^dIQs?wF4frML$rbC5V1_G`;u1JJAm(Zzk`U|Mlh)a^?t`4lb+IZLn3 zdP`j#)m)w5ERN_u_A~DyBpfD$!-Vl36PA2NT>M7#%X$a`UCw| z6Vn%m$<9gL-;#3%dd&1Vr)+<-&iQM9ME|&xUgxC2vNTvW!DHDoC&@X>;_&_gd-T1Q zob%BGUguzu`(CpR;`DprJ*z*Z_p51O$VGO!$nJ+vWk+aEGTs~{_XE>yqk!JrQa{kc z1jQ(@)f~}Wi#Tl#@0S7_qxwK zI3YW-`~(%^=vbHI5m?x|0VpdNg zDS0}2E=^Dj59w%*o)f%RiG1Jo5q#g4vNT~khOQUVZ;^KzEa!w@ zi)wqEniDOSRf_Q8emZ;G(yV{Jw?wo(drWfT@H31*((GuHa3rE_ z0i>utxHBy4NO%j6;eAJnkKx1HNs~sJTYDvQ9BI~sp4NyqL)^+Sd0CsS>~#>jc~r7< z7CUThR?}5$RNE6rr4!sp8;dAwwsFlUi)xb#DQY)pTxHFwI$ajge>#NZ$A0bGcs70; zPcuj5ZoK{|b>j_VurbMceb~~ZaxO-?&P0#mIc(vF_cm8sdq0d)U1tCJ@bJ*h<$7zF zmfo8j8a1WDk7Y z*ETYZtn!w2disvwaQO=_QL^LZ%{GI-%ESAO`&b@?ieOO@ESlu8=(&%{C(B1+ z7GVz^ZE3tKA1;k|&#_mJwp4iqkdwb}lE}V2+R}3Ax#4tl-f3NHspXe`B=wk(FIe2M z@D`S2V-RI1OkeA z$2-V2V32KacPk&b*t&3=bPw{F7gqgi==Mb z3HpzE^s^J6OuvIdZ4-ssCJIxaFvYDf3ZFVQ@pBJmh>X zE`r8*T@SwZ(Pju9zngW^2%WA;p>%gF)DRR(=r7j-TleV<|Lh|CfI} z`KNENk6whPT|_^cw75V0ic=MEm5Ar|r(bbu0B#WRjQ;d1PHLoAzeDm<`_oTcg#d?$ zctZaeU>&ed#N+zwfa8GUM0|h$2(5mKkPJq$$Qa(Ae&Q+}I9#4)o?vSC&2f>_}@A zunyML!J4*5Ali&*^KQmh2KkpEShkxDMDQenCwH^)l|hDc2%dxXH*d&$ z%g1h%Bl*|Ewjp^nVyh9m`G&kaJb1%~*i*ySA+`pwHHbCdpv@M_y6A=-vDRVB5nG4Y zy4|dza)U7tKi3s_o{qcPwYHT;ObF7+O-ZiLGoJcvzRydotz(|8v~>k-iMm@KE630M zm7_A1t+BjR)h4);t(1P1Ii}`&mx_JyMQC`_F~(wQ+J2;1*6DQLJG38rlM%v>Q_QXS zr0do_Z0_lvQ`g}0_U1If~AO$Q*a?$+KoxX>$SH#WJJh-05?-bl4( zqtiKM>?{JbjIhTfD|7M_5~vW@AIM$%Okd_tD1`Sk^aT zvJZ>C$?~t*=Oa|?V|~BPnOp;>)$F79EqV>8w|2v;Y@DNJ5RVa}7BRJA%m=;5*%rur z(jP;*n1Yr*{zw6NjWdAaV}*Le)bHC;9ptA)L(;My)xF)JhpPLyLr=@0gRfVwR}B&c z#WhI|)+7zE806T_Nx%BdIm$Q_4EhbPEBWG^(7tTa_nrNCgm|{_`}=yhQ^VD=o*40G zkRu=w!H$04qnE@FK)?)*OgK9 z5>zH)GmBZ=1%rQnF;3))#kIyce0loZzq}Jv6{M<)Y3;DN2dy>gf$K%Qt_Q6(G?3T) zi{e-HptXh;SS#Y^deB-U8aP_Si+j*oBOW+j#B+PlS|bHGMZ`0DV69;kGQh|X8B=@E zT4OEnS`km^L2HeC;CvB}>p^RcV&GyC-`|7Q8s)&{A|BpD9{Xqk5G&uf#a$lRY2JRp z;Xs7?1wOMLjw%j6UuvR;9)WPgdHl>W!choEosTJ`unu9}`Ajh!jd1k&QiP?`75XS! zD`X+*>53YXLVOE%?6oytG3^5ahd;NUz9d2K?TIfDdO56o%Bx5=w zB$-05$w`KELP#=$eN-FFYJ~CrG5c}nW4~CX%kZi0W$$^bG!wcr_fwU{hftN~0_TcY zA3{}H3|uVYm=LPca^P|i>q4kX&jFtkaYP7JX)SQAh_xY9rPqP4i#RAmtWq8Z@b6KE zdX#)ge@+F~Bh*=0d1S#{-WSabtI?QUkC-#P!{kReH^HTeBUf7m6TN^d7$1 z;GzW!y}t9jD;uqS-~v1?lp(SVk>gy_F9YMvKvymzQzG?-ZV+v_sTXXJvAxG~96kMO z5v+ZW6(iV)VB>qt=IDaUP-xriCr7AX971udV@*H*We6=Zv-@iX8e`B9V%!a9G{U3Z z4M&f#-raEG5RP*6R~!K$!0T)xirLoErM&!EaQ^Fzru`fJDJ4>!@ZBs(Y)_% zFw*zhss1v9slkLCz(jU{a7HjSm>A#~5vK)HgOR@FPVt6dYA^=G8^rkJU}`YSfR~9l zF_;=m4sec$&D%0`)g( zIPMq`2!R?1)V$AvY9sumYGdPSBPVEKruLwva0Si=Hr|wXGR!wIJ2}qatzW5y(C8qw z4H_M!mO-O~)Y@otklGqXhbaFfs7yM@>TA3Brz4ntkZFGG>7R{Y_CcmYFdxDEgDmMs zt$!JUWe3>`aH|lkI>>hZ*w;^uFX5}%XFvAx(;}p0KmRz$n23g#=x+Q;2q(E4e=@?! z?#7>jaEiO}8xS^#jXyz1ML6|*qd1zTA)IzTW*3dJ=?JHv&qTQC$SUPU9YhMDgYDA-OdUKLI9kM4J5vXj zenWv0T<%OAJO%M7V*JI<)WI`=GerDNXHN%Dx$;`LkqNA`muh2AK+1wwfc3wUo=9| z2bcUhO68x5VCn~=OHGI2vcq1N7U9<&iawwcv<)PemI0TE*e8%&S_NDs;=cmOrFFn{ zBEA|xF6E$)J1lx2fLs~~94O+80p!vM;0O_a6Ck>DG#H~r#@PUJX(Di$A zpIC}6UwU|WSC!VszqSf9X4UqTZmOO=)5atSnPal&wZ&h&JwB$Zj((gcZA@z&`u3RZ z`Q22JfikD5AEi8c|eLL`6c>=&q`&YA!?_HL8e6 zV$>LyE0;HyN#D;-(&>*g@0s_H^T#)z=f`^Pb+4b#TK9gE$Ughz@l9CzIs2Cz)vLF5 z2Y-F`hBdvVo7HRcBk5q2PcB#r`jNEOB=b>M`jF3T=Fn<4!-nsf()nj0Gx7h++xUK3 z@UOewe#qs4L;8w+;AX|fifmqmf8N-1tDWVe{1Ow-9es{3wI-bTIezGUxx+c2TVJy8 zdk`ZY<*T0?9?)bRmwzOmmm2SpikgbIC*HPvJN#|dLnCG-;cb>L$NPI(|Jpf^J=Tp5 zq4$A*>4`IaQ|g;I_Iiid%avP^zC#=o8s|+npD-ISm^Gv8=%3K1G#g>5NeXtaG@1#y zShnrO%BIcE4;|eceJh9BrESvA(0An4SzqlPYPl;c_zeFC>Y3hX{Yys7?c5~9lA+$x z9v!PIJLmsx)7SY0;>W`!Cj6;wR7>@bg3lzi>Aln27w1=v zcD6iVa`}#%skIl>^5DN3E%E;@9qA0&H#C@3BkwNhZD0||-zu1S=Z#}el!*9S zqK%?2959;=Jg1$yTb3G)VR`I~Hq~C{8D(;ud8Yiw(vm|y0Xw6$`LVRqbf4Kg+kHmm zEQJ3nQsrtMz?m_+-S-U z=Lf$TJpZq`DMlC(OnhIsI~$sqn*W@!|4q$n3+~~+Vg8@zwisc^Kiv2*Haw)evysW> z@7ahEbOyRvJyXUS`@|oJ8$RjhLVefIzBx&Jzw7I}y}tV&)c+TH|CkI-{HXe`r!#Tu z{gz)Fqo>|9WH$0oMuqk_j&ipqeYdzid2Ei>&#=Ygf?1Gx@#r@htUt-$!TC-d#9W{7 z+VTFpp*`()W02|pal?mIMwYg-LOx(pU~ZsRq933%hUkYb8t32sV|eQawSK5>a^_!% z(T^nkc+rm*eF63VGuuDP#ze0lxB3CApP&zlAG+L_Bh0QFxH0PWFN+%^UjOWMXS6Tv zlv}O68T|Sw#?0ha>*xQ`@;7Q%+qYA?TYZyav-Nk&*kR!$GjA~sJty?@fs5ot6M9Zt z^Hb?=R5r0`wroN>{ZnaeG%#T>J1|l1B5jOTbhpl~=(M&j(#=qG@s~O}9(R%NNkg+P zV_uebxypkEs=oQ#oY}O@YfIf^pSNoCo2g$lsxO8zs{fZM+4PT!^M9xRdC%TR!%BNp z|0bm8nA}fuPfQpiZTY>@(dVC8xr6_Y=4&h8wfgQqv8q+vrCZQ9c78Jd)mQo)W5k6+ z`lt6^w{-{oxkspI?;E)@sqWica%A(Z=3jexed@gFsW#tTI@l<9t&Hk>)6FA7l((7h z#lo$6|A*bBh0)EjEV)aYP0Hwr5d7BOexLlI!`Ip5J*0P{U4LVgVx147qP|-#9l`g> zv(n<5SKPN>a9Y=0GTSupoTc-bHWz1mm(5Ia9lg7xi;U2}ZEVlo7~VJDHn!((yvGPn zaQ*A|vh6wj;25IPhbBTwd`xb!rt30j^-t>4>!;-y-k|z7PV6?eG2663yJe)&7*C8% zXj^y7DAV|J-m~%N$mJYU@HwrumsDF!aewN%MFVSn4l|t3OlU*Ar2D<|6Z*FfANEh^ z6WkZV$K=M-3OOs<_q^nfG{YDgo>+ffpXi3sPLBWGWs8f0 zi$5-@kV#@p)SjaWB`(gpU*9;iUv-OleU#79ug-UVWl9@+QW2i#R3!|+k_WE;t4zLJ z@jdtOQB}!veBN`X30q9Ac%Re%%i{VKnSuIYa+{h+f8F?p!0hNRDCZB5zTDT#oN~Xk zb^h+PUpT8m4C8b9S8g*@zZDfya%*CYc)+=H^VMx^>nvGWT59`w>Sj%LtlTd{j5gWo z%sTmhqO}kD$-Rc|I@PSZ_EkUmpB!$Ub?^ApPd;v7c(+c>-mSgwLHXzoR}Niujjab0 z_d6TM=9rk6t7lt<{n6r|#kYFT-bi@rLHV@x~Hcl|ggP;T5j?#SIM6XmyF;o7S~yqvS~EnC;&woh70qg?#Y)oDY6 zWsy-n$N4(#rC=tRd=hbNykFY-Rq1|va`SAJP6&e&s#k93&HGd4gDRady509t=Lcs` z^5jXK0dGpxE4T2b4dBce-R`^Jg*Pd8yLH;s{W4rVq|=?COY63}8(So|xAevSPl-(M6rM zB2=o4F7xbVT}Mx-jFyJiU&kFg!sHo)o5OMY*TZo!T((Iro@u+vZ;YMoEl|G%>Z-{|vmrm5u9H zj5u52Y-Pfbqcx7!CbR{Q$=-j}tO-#v=i9AyB}#hTeCEb#TR&fXZ%Y&MxD4kR@2?kW z?T^bGBcsT3n`a}>X+7hlhj}A^Et{VVd8O$88tENao4}OUYV+w>ERoX&9TR1;&p=~wPzY;@nEq5I@?s(@FxkWM6S859N ztKRt}skDE7P2R2OYg=njEvx_SuEX2aUS8^-985j%lc$oNN=7o zyigE|LP;nK6`^X>f_l)|4?E@>VvK==qMKbXqP; z&BEVEfQ(j2fb5VP@KoBkkIE$K)Ma^*eGyn>;E_ z^k#o>{b+0PkQ86b_8lp%s|RZLj>&rr(ywSU#-yEe)E?th+G{@Df79PwQfX~I zm39WY+q8b4N*n2^J@~2IX3%b?&HGetHwe95+r(vqncKC4`t!9d+T~BBgQ0tj6y@4I zAe|v_Q4xXba6=J$jfL223az0UIzboc4Sit<41=*S z9;U$zm=6nKC9HeUN{WLAU%BV0$hXZibez(F>Z_%5o85zAQ=XcVG!?yAU_xe zBVYndf>|&Jmcnw_0GnVJ?15+DC?umGG77o^uPS061=~l#_SwMg&;`0_IPl{j07k$l zm;_T`4$On)uo5=G7D$QqQKEgLa2!&D`>4TvSK&291e?;2x4`Yt4!S`P7yyG{6pVo> zP?N?%9tQ=m5>~?&*amxHKOBdXa1k!UYeMWdP{jT%&;r^)2j~I4U=R#}F)$9M!36D;_MhgUp9_O<5>CTqxT=T{10h0;paryo4$ujDK_3_b!(bdtfEh3g7Qs?j z3mf2R*aZjSSvU>n;3}`1kSmIK$ViBXjG+~@flkl``anMz1|whsOoCZ32bRKe*Z`Yg z7wmy&;V7Jg3-AiOs)$fyAwo@|4crc0G#t2b;0FU>1dM`7Fa_qoJXj7ZVH0eDJ+K#! z!g06&7vWWSO%V^93i0q3xEom~;&k5w-Lc*H=6 zM~q+`On@0M3l_mrSPL6SpGNu&SOAM)HLQhg@HFWxNM{8dpcC|hJ}?A^!PBsd@&Cvm z2WPo34d>u0yrPJ3BVK#P&C+GrwpdSo_5ikKJ!7P{qOJO-|fK9Lq_Q11n6wbi~ zcm-Z%{6A_e#G|Ir25yHg&<*;*02l$IU=mD$IWP~F!%El$TVN0Dg`;pBF2F^26<(u> zO=;pSa67bv0Z~kBU>od({cs#k!bP~Oh+l3I;+GbjUxNmmdq6K} z2OVG#3^5TxD$+|Qq*tFJcXtc9Tc=1*e<3{s6{*=#EaZ+dMOtPEX_*f>w=9Rf@GP8z z3yR$8F67n#7!D&9X@w!HK{y3x6v^vCTC1Q1w1zFP9ge~YMcU*FX;TX8U?V&Y`xK4b zRwLxL21Tj^gj9#aXc(tRhhQNcqF@|Mgk5j|4#ROp-eW4{J!Eu`6Lfme;6B zjS*Ffr(4NjYbwm7O8cnNQAOTKN$zx}3Kgo*43@zvH~@#J!a}OB63)OyYA%SH3x%Xp zlg=TOn!+K6Y?u#wAbr4L8D62rXe!M;wj6X(b##h*=HU`mWkprlz(^Ra$ekua?lh+c zHYm9IHAV3-T@VHvD|LvR?fWxkJ$ zJm{4kEMhzuiXIF_4`1jH6JQc#2zxMuH6CpooL0mxQz3RSMt70XE;8DMW4mx{7h`)D zV|&*!Tvddpg%F-rFd3%8B3KGHgxD<`KC+FUZ@b=?80QSKFMeIpp&z%A@VKyv)dx|)y;GhaNz$VxZI~Cy* zM9eaTb28XN278!J_b{FMsJLzdX$l`JZRCQqvfG0*dvL}FqdwU5!KM#3eX!|+O&@If zbaqrN$X-K@PX;GhOp~=tlMQegt|}rjPKd|^SO|+1@fh>$(Yt>|hQG3f^p#)HSDsFzPh`;MPh;R|3_LvqhZT`z#n#mZuEPyQByR}uj8McO zn&1#k@C+F}Lq><@IA2gi3XY`U$l(DY4i70JZHgV=j3Ux;G#y8ua~0w_cZQc83rz>; z4cS9zXhMyKHq0jDY%)HwBE*q3MdWM|BF91zFL(*@f)Au=UZ81S2!z3~6}H0|7zY`a zFEA|g$S9ADinw3I{g*O@cqv;E#r{GR2P&e(T!<1&MZ8QtFOyICAP$tDRfN`)D2}%x zUI`ZBl~9-u3n3+Wg_68-jjgnSA}SrA6D)=0kUmmLAF1qzgYXhuQpBsKLcF>~5!Ezh zHBI@)Dk1(@qllV#A!-s8aSTU~;pnjyR=&sZq&8KE+H^=&)>4(VRBbI)`#Np@I&EHO zK!nT)*1$Tr2GgfaZi*Q*H4N>g$V_-Ea z--cQa#^8h^-e78cgQ>AGREWlKMZ9S*#G8(aXmTfz;HikWjD>j1R1wWCLNvQ6;<%9z z$Bh-y;zSI~1#Sp&LMY+{Y=x}@a7YnvmkIH9g(CO|O+;I)B2GFAanc!T@bn~}wlgub zGclYd;b{_{rVUTGE21NbkYx&Fn07EsI|^VC?1nl;bW#JI)Ic}vhJT`}|5T%h9y(VK zeM?6HbQGXBQi$GYMfB0P`siDI`LK{q_yL}Ofam@G1U&*3F;FDLK&c`=$`<0ITt$51 zC&VWKiWu%<*W9Cs5t?L#CK-u=aj+NmE8??oAwG-5uo}a*kSgz^%0KYLzBl&6upfc_ zYV1?vACb>TrHubisOnFs>S3yCn5r7F!k`UIhN*BEj*$VK?K3)CpBsifU^8qbgAg(Z zBZEXTNQU$9k|I9Dkq>d?Lucp;y`e7*hM_PT#xnjtB%=?>=)-JCi9alcWv~X;!B*G~ zb+8W(!!c+E%_$KzFhC7_)JciDA?ZFM-5>=Sq#%Rzok9A}AT=;Z4GgBjbXW>Ch?X^M|&ijQMqJj{W45Jx}8(T|x2KJMjto*U%3 zPok;WSZa2Rnw_8~?WjoymRxe)(l34NhItc2CD9}X&Fg1$9D-})?tCQMVrq?&l2Eo@=@ zPquL|!-aW>1Cux~c@n!-)3{pe0)X*%~XZ6<$VKJ4C{Zx{%JA&y+Ykqe118D_$4SO|+@ z6|8~HuoZSg9rgkLtoX4nb4A)WI}I_H-Ya0+7J%O$uDHx#j~A|!4CEul5EhmO!4dP08~Ncw!z z7b@bfWuQp7dJ^EH1( z8afMU=&DEyXaTo{2)T_N&bCCD3iDtQWJ|VfSdq4DwQSkrZD-H7oh{wn>?!ZQrbv5B zA??|$+E>9^m@72Wo;{g;G8ZspUj*46+xtQ?whx2s-RxW8X$-N+ygP;S70%ZnTd^N2 ziu`GWkUwQN`yXl{|AVdE13p4N!1MmDLi)Qyp7(Eu>u^Jn4|4vX{=8Jfg>oJ!=K(g6 z4-CUGMFu$w8RV+SeQYN8g+TWI`xX=#%qBEg1)U)GgK;#NjDmwuUtBTFr3m;tlkSvblHi(&f)!}bk^@f!@|H^$*4E3Hsg zTH!DbCcrM(!-|X7{ad{5-->~8%olHQ<1KC+$HC)nkeTl|Gv9GW&2dJ}33~qtN9X~) zU=b{3IZsAOWRyH9MDjFCKI}ALr(pmNv78qy=M|Rs3d?&H1zDmXD>!b9NQmKj4A(O(>s#R*T)-fP8Zgw52$Nam>R9dev8c7C=F}K=#;_~bsgYyUNG<2J zoY(q5Kkm~Kb+p8NYHHn4oSLx#HHTKv2GUe}XsTak zvA4{DlW>~7B?XA20Fi+(7}7+MG|^*%J*L9mF`m6+BHMTh6itDm^I0!M7jmHE0>ym7 zgiWOxY=q5hD(Q?dq>iB^F_a``Lx=-H5eI@{D5S&(DDil!D#PV{sfY=fua99)1`;Wb7H4kh7G5(P-2 z07G`6#e*5Y387n?KUMpOvw*3VH{?{ zNL2}uY65A)RN63=3{%N4bwh|}g(9AfhOw{_HnUAPVViCSqhJiAq-m5ije?|6kY7{4 zUsJ$e7r-Jo1!tl;Smt1r{XI>QPE(|xhF$FQao{-|c#gJyj<$ZT7?wdEd~QY&8NU25 z?GL%0!S#%FxS@#Wx&A!YpQm8Yw`y&_lK1E%fxjtK#Bavngd(!kLS)%ODl?19%%YOA zs3c7?BQh0E!f8k=X=tVFKq0b&VJ^&vxR{NL*_YrFkp_Dr4UR+_(up)=!XY@!Ok&GS zVvn6%BO!8)6_M)=ePJYwhBdHG5igDl@!}+0fop^wFqDU(JRHcwf!~G;@!Lp<;oo97 z-(QIQK&XR#iuj$g5WjPU*!vy!3at6TUJY@$AfHw)80KJ15x;jA;`g4A8^5O{g|vF1 zCCrAoa0#v`;tyo_2QvIaH`EaWp(I6=q=*_SqK1mr;5so8Phuk85Jz6Zkzy6G5ffMl ziy<{$Ji#nqg256Dmf&Ft9+oUX=C+azAxecJN-kW^Kv{dr|rsVJFPuI8rn=- z1#2J=YI(52Ux*5-wxSbu6RhbXXwyRwh621w0bWgm8L%8y!e-d2h$=H7s>~tjsz_JW z4Rwlm4F^45!^79&g?KFyw!(IzIe1u&ht>J8kf;s@{)mA;M#5+~1Lw82cN*-_;M*~L ztBvNB7R%xQ+plB0j#jLr73&7z5U)rtUXebKGBi+zh7A@2f<-|)>?90hLKwyjRzNDR zkt`bLSsZZwCg*Riz%{}%nS^JuVILge=eM`YSR_=iYFL6R#A{NC*Q7&QrI}VaUd&>l z3|@ju#BGv^-=snuZNbqKi7XnDA?GJJZ}ldQFc1qD)=5)P+l3l&Om{y%Q+JJHe1F-yzFx zUm`mGkg|4D);}!~*;!$1_Jk7J2`9uu8G9&WPdn^X#JiqCyz33g=v^{;m$JP}*>s77 zfRZ8UbfkMv2=Sf*<6$D?`g>gOwI)QQhCJWP^SwOZ%k%H!*!wv4KKZ?0!PtBskKf1R zen-|5&TR9qu+6{9`k@#7?@at>nt1SFrU$3J|o>{qqtE>|?4RKPhdS=cgim>2ctfo_o^yWk|#7`W}9?ax~zlp#sRp=V4ag53_2w;U^@U z9ykckVjvy^8KjTm!Fb5({2sOij>$a7s@;)|l4GtSE&GMEWSd|)4cR7a^~51x$ZuC$ zS*_c!U9e%7U{fQc#-7MdhlQXOoQBa_u)Ctcdhf|8Nd2@nn7!RnPunZWeeF*dEvMh z_PyK`X-Cc2O|pM!Xa9l&0WE<-2H?>zGKKs_wju+wgbc)R2pgOb2R2fEY^2EGktrb` zxunQPtAu>CQIXE2LONF~l1~g|1WkC5Ha+N}b=_pJW2Y&<2yfvRVGCqM-c*`bJWPaC z4*gDgRl;gm+mXA;fWMUG#nRV@B`|%~lRoP?4=?e8wBiM61MQ(Bi}-jJ@eDHWP`Yfm zB90^qaU>ZsYaC(L$nodR8_0{4LHHtraH5d0Qq27f?q|VL$a?MwUHk}LJcrpNhuK7v z!(hl^I)7n`SN04Ux{{$gWctWu`gm~&gTsm#CEY0Lj^tt>9|Nr4a#+8;$TH`}e(sau zC>f42>PH#%qb;xvVrLXP6InQv11I4$1xcqMnal#-j8bn#sdpo6hF!1+uEHxU@(Wnx z7qN(MViDh>h@l|9!VJN14uvnKcm6GOce(;B%letpb2JN zIA=*a!}K!K#B~gPfuR{M&V3*b&fwq|Yg}LFJb?2cNX^Yqb29=eun!Ipqoc2!r>~r+ zCeC-l9@tC7i-Kz|Qu6b(#raHl7LIa*Cb>wHoTshN)7IxF;WXDN=|xI(t~$YVtDYmpQ+z--lf;CAsMAS7o5N%vRMUDm|%Ks<(Q zFti;;z$k8z(Pc7Pq{NGqc#(9A%q3PjUNy{%Rugbuk#}AZ^3JP@v}R(p)^UB2>&u+` za~=q1An7bucq6Pa!Fw{ndqXDbdw4}@9D|tALwH5R@rp>`MgTX0-~c2eXEJhTMt8mn znTS0J2zlBu(eaAeJ;!+y=PjIXFsTV9HyrT70k>i%?lLB9Cc%4g{N6!`y?YnnA`>|C zth?puXd6cKF1*OSK3 z3fe#?=mLG99}I(<2o4fBNP<}~2bRKe*Z`Yg7wmy&;V7Jg3-AiO%GZ;|d_8FjZQyq3 z0^Oh=41f_Z3MRo6m;>`*Ig{J|N)DR1&;om4FC2yAZ~-pDtMD41Pnz->Wd#eoBKf?m)EhQKfw z2NPfh%z{O*6xPB9cp7%WL3kEU!#TJLuke+m5noFhLn~+louCW!fqqaE#z6!J2`~v} z!5ml$%V7g-f?co&o`s`u4lcke@G9FdW4?kkg*I?Ibb)Tr4+g*p7zLAH3e16dEN;Te zIjH196KsJ!uosTPaku~%;Z=BzuO&_ST5=2A4(*^D^nd{{2u8sem;%#a9xQ;Buo||& zHrNaM8UK%rb1=z;MYs&F@tLFnpG$6m7SIklKo95zgJ1}ZfpIVmX21ei1gl{!Y=fs^ zKOBUUa2hVdRlbrm;44WZ#{Z)h99TgI=mfo>4-A1}Fb*cb444IrU@5GH4e&JVf`jlZ zoQ8976<*r@{csl<_L z*aF+&0^|Rei$tRpqR}cC1!EuvcwvdiM%YZ0nyPz@s(Z{I2Es&`%z`(S1#dbmgvF5M z+vA;(m(1h5WTGi?G$oE6g2M!_DZmpH;0e+_LAscD#(zvA2c58+=(LLHv#YJ$?X&<%RP6}ZOue>#b1bP7@FJXk>Vc?;2J3uq4=Ar2ZSabAr*95QkE6 zD3y#-`v^wUw9nGC&nCiT*bX}x|7n&)p{*gqFOA`sHU=l)I@}-#?Mo2aAC|*Pg3y8> zv;u9RJxqqFuow0dgr@4Bqw1dvhM}+u*1$_}iC{F>Gq|3?^^C3DcwQkIt%BTmo*U11 z!ftJyeOL}Gp+KH0{vki#F3Y9q}ZG& zvn8y6Rgju2o+r4By%Ow|;9v<3mh`~^g3Ky{%q9>!rGa#h(sm9yi8ABaQ9L^u4Pzl0 z93_J?ccRUnunsm7Wi}(qYz~98B>2sYajY<7fYu!0~n&ujjOfj`C*ZBB$saD{IR@vz1n zl2HvA9iwE&DA}=Gm=AIE7>*vhMo8L#&~ze9hB+{g5H*gxjw5w6NgYj6M-$Z11Px(? zrXwJZHQ-o7Hm`?HJV$>#32m6RkTN0bLhIOzJ;#eb&y~+8ToWHq2Y+4Yb&WD9? z7>*I5t|3HS2iM^SA?j>G)Yxwxg2RNUs|Zooz%{r|h&q$kLrXRXc-(@=C(?;gXF|?T zaNZh7tU4G{Wvx`%+c@?%j=dcXW8pl!#J7l!e2eG|TVXrIfi@gCnaL-K*gx3^2lzD6 zpHCA5VKFRI#3_wA5pYWmB4IQn;VBZHb|w<;N+i6UNO&h4glFMZc#Vj-4H5C}Fdint z2{=V$+?U9>KWv7rM8t8p3x~U?i7slQYYDCp84o8i9?AHBhmyWSNxOpyjfcWI*hq++ z68wo0^yr9)_Yncd^LO$5T@1gA;diORcd0^MI+5^9NID(q-ZLQrZU$3fI^_C$T<^6f z0`3TTzL)2FdA?WwxAoq~llSrD{Tf)uFYQkJ((VFzP4opp9O}cNJ`D9?=mV~Q!1WK} zU;?qMSYlc6FdOC)3-cxx<_obqf!)ux6Ct;QE|4hbf3k=E&tjE~*P%WQe+-}@G>pd3 z1e!uKXdYccODcJoF)5 zs~pM!v`&;ZzAum4u>j6p5lytmQ0ULR5^(Pz9<& zHK-0XcGzw+a5K=9b5h=jno%oiN1dn}=};dUKtpI4jiCuNg=Ww^x`dX{3R*+!XhS8n z0x3v^OjNQSoAubN$7Ve?>xWbtS&z|rjMihc9;5Xbt;c9RM&GbRW-8g34{cSl0i$pD zqCn)&b=Vk>iaEDNJkzLxWc-GL^v7iUhB;Crd*q0mkt=eiC%@r|yiqU;Md2tCMWa|0 zj}lQbN=4}?6J?`Zl#dFL-ib0)fvQjqszZ&a8MUHz)QP&04(;yaj{!7g4WPF+MtvIDO&3t20zmt*kNF))$A~^*5Ji)3>?S6aSR;Cz;O&5zl1Py93#gu zavUSaG17vO6R9X2Wuk19izv|vY@H}ZWvBvGp&FHJZAI;<6Llkn} zX2={_B5R~Zw#Xhis^m%1oFvUj(wrpCNz$Am<5OgOii}T@@hLJsMaHMd_!JqRszZ&a z8R0|+*E+b?!L<&qb+po%I`FIm&pPm|Lx=j%02)GLXa%jI2{eN)sbr@K5=cQRuFa!$ zG=-MX1{&s`8L~&NC=hugU*wOhkt3a{(-WzYEpkTg$Q)U!= 0) { if (ival == 0) { - LOG(logINFO, ("Switching on Image Test Mode\n")); + LOG(logINFO, ("Switching off Image Test Mode\n")); bus_w (addr, bus_r(addr) & ~DGTL_TST_MSK); } else { - LOG(logINFO, ("Switching off Image Test Mode\n")); + LOG(logINFO, ("Switching on Image Test Mode\n")); bus_w (addr, bus_r(addr) | DGTL_TST_MSK); } } @@ -915,8 +915,9 @@ int getModule(sls_detector_module *myMod){ if (dacValues[idac] >= 0) initialized = 1; } - if (initialized) + if (initialized) { return OK; + } return FAIL; } diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer index 09b83a2be18689a7e3046705c659896866bddb76..7cf0b600de033b9fb0627333ac39f1809c44f0f5 100755 GIT binary patch delta 72064 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

2{G`DiKeC%tMKZjh(I-wo=nYmiK$eKbNr4 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 delta 72003 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�u~n(+>~8$% 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 diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index de6dcfbf8..dba6bad05 100755 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -31,6 +31,7 @@ char initErrorMessage[MAX_STR_LENGTH]; pthread_t pthread_virtual_tid; int virtual_status = 0; int virtual_stop = 0; +int virtual_image_test_mode = 0; #endif enum detectorSettings thisSettings = UNINITIALIZED; @@ -41,6 +42,7 @@ int detPos[4] = {}; int numUDPInterfaces = 1; + int isInitCheckDone() { return initCheckDone; } @@ -226,6 +228,23 @@ int testBus() { } +#ifdef VIRTUAL +void setTestImageMode(int ival) { + if (ival >= 0) { + if (ival == 0) { + LOG(logINFO, ("Switching off Image Test Mode\n")); + virtual_image_test_mode = 0; + } else { + LOG(logINFO, ("Switching on Image Test Mode\n")); + virtual_image_test_mode = 1; + } + } +} + +int getTestImageMode() { + return virtual_image_test_mode; +} +#endif /* Ids */ @@ -727,8 +746,9 @@ int getModule(sls_detector_module *myMod){ if (dacValues[idac] >= 0) initialized = 1; } - if (initialized) + if (initialized) { return OK; + } return FAIL; } @@ -1646,75 +1666,81 @@ void* start_timer(void* arg) { getNumTriggers() * (getNumAdditionalStorageCells() + 1)); int64_t exp_us = getExpTime() / 1000; + const int npixels = 256 * 256 * 8; + const int datasize = 8192; + const int packetsize = datasize + sizeof(sls_detector_header); + const int numPacketsPerFrame = 128; + int transmissionDelayUs = getTransmissionDelayFrame() * 1000; - //TODO: Generate data - char imageData[DATA_BYTES]; - memset(imageData, 0, DATA_BYTES); - { - int i = 0; - for (i = 0; i < DATA_BYTES; i += sizeof(uint16_t)) { - *((uint16_t*)(imageData + i)) = i; - } + //TODO: Generate data + char imageData[DATA_BYTES]; + memset(imageData, 0, DATA_BYTES); + { + int i = 0; + for (i = 0; i < npixels; ++i) { + // avoiding gain also being divided when gappixels enabled in call back + *((uint16_t*)(imageData + i * sizeof(uint16_t))) = virtual_image_test_mode ? 0x0FFE : (uint16_t)i; } - int datasize = 8192; - - - //TODO: Send data - { - int frameNr = 0; - for(frameNr=0; frameNr!= numFrames; ++frameNr ) { + } + + + //TODO: Send data + { + int frameNr = 0; + for(frameNr=0; frameNr!= numFrames; ++frameNr ) { - //check if virtual_stop is high - if(virtual_stop == 1){ - break; - } + usleep(transmissionDelayUs); - int srcOffset = 0; + //check if virtual_stop is high + if(virtual_stop == 1){ + break; + } + + int srcOffset = 0; + + struct timespec begin, end; + clock_gettime(CLOCK_REALTIME, &begin); + + usleep(exp_us); + + char packetData[packetsize]; + memset(packetData, 0, packetsize); - struct timespec begin, end; - clock_gettime(CLOCK_REALTIME, &begin); + // loop packet + { + int i = 0; + for(i = 0; i != numPacketsPerFrame; ++i) { + // set header + sls_detector_header* header = (sls_detector_header*)(packetData); + header->detType = (uint16_t)myDetectorType; + header->version = SLS_DETECTOR_HEADER_VERSION - 1; + header->frameNumber = frameNr; + header->packetNumber = i; + header->modId = 0; + header->row = detPos[X]; + header->column = detPos[Y]; - usleep(exp_us); - - const int size = datasize + sizeof(sls_detector_header); - char packetData[size]; - memset(packetData, 0, sizeof(sls_detector_header)); - - // loop packet - { - int i = 0; - for(i=0; i!=128; ++i) { - // set header - sls_detector_header* header = (sls_detector_header*)(packetData); - header->frameNumber = frameNr; - header->packetNumber = i; - header->modId = 0; - header->row = detPos[X]; - header->column = detPos[Y]; - header->detType = (uint16_t)myDetectorType; - header->version = SLS_DETECTOR_HEADER_VERSION - 1; - // fill data - memcpy(packetData + sizeof(sls_detector_header), imageData + srcOffset, datasize); - srcOffset += datasize; - - sendUDPPacket(0, packetData, size); - } + // fill data + memcpy(packetData + sizeof(sls_detector_header), imageData + srcOffset, datasize); + srcOffset += datasize; + + sendUDPPacket(0, packetData, packetsize); } - LOG(logINFO, ("Sent frame: %d\n", frameNr)); - clock_gettime(CLOCK_REALTIME, &end); - int64_t time_ns = ((end.tv_sec - begin.tv_sec) * 1E9 + - (end.tv_nsec - begin.tv_nsec)); - - // sleep for (period - exptime) - if (frameNr < numFrames) { // if there is a next frame - if (periodns > time_ns) { - usleep((periodns - time_ns)/ 1000); - } + } + LOG(logINFO, ("Sent frame: %d\n", frameNr)); + clock_gettime(CLOCK_REALTIME, &end); + int64_t time_ns = ((end.tv_sec - begin.tv_sec) * 1E9 + + (end.tv_nsec - begin.tv_nsec)); + + // sleep for (period - exptime) + if (frameNr < numFrames) { // if there is a next frame + if (periodns > time_ns) { + usleep((periodns - time_ns)/ 1000); } } } + } - // } closeUDPSocket(0); diff --git a/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer b/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer index f3756181ae45b7b5a569888943c91ffacaf9d4ba..43c46788c743514663b9d9c435873223cf8909a4 100755 GIT binary patch delta 82407 zcmb4M4}8q^|Nq>^oVm?sHg*_pGt3OS8&C&zVU^)bmiYM3P`WtVzb7RWms8CA&!|ILv{P5Uqxy7Z+=C982w-nG@gD3b2Q>kYfOpgnDz}O=(#%wY`pbEH3!YP~d!1ciO5+1gR z2j*ZfcZ3WaxJe5f0UROWgiWbJ@!Vh#@?0GJg;FP4a8wA_vZSE!PLm-$`N$#rDZ57; zl76i4o6hWfsh)3+>F*^Fel^*dvj}dRvccOkccxalj*x)eOlZ5JG zjnK}Z)rO&Tl_6Bwk!Wab<1smsq;P{hCWITkvmLCg#rs;kPe!N!gz|{juBAD~OR;zL zq(N@rPGqKo?``LFzd@m)iUWDXv)8PSLP;I(u|h0*r$H#^%nmc2J1u5|S{R3(%Oapz z?A~^vjI(RB?e&3ncUh8Ps?va7v%75?W3VyY=n+4^MrEH;TzSogFsE5zi!PmaO5rQB zt`DDq@EKL?M2o0FW#wet6eOf|YmUgFu~Ve$q@Wvb2x>)8YZWtUqcpFwd$p0B=1YRh zZV+@r(8-o+J85RK_p}|Sr)2SP01pRnN0HA*m%^j`HMvlG#M`d95$VWs-mc_rC}$E9 zA(?p8BVPT7>KWx&^ff2s`om8-4sutXBM&$si|Jb$E&n`2fX^~JX4o^}F1>yc(vl>M zKB@ujQn_o#KXSeEh~hsr2y^LcEfkj9wdvFx*z8NS&W?HZLcIC$nH;a#nJ^~vXbH@I z?;pkNJ^zr|KYg7;X0v@QLwa=&EK1dwy@}vB)KP<==4GLgMn8eVR>nLnduiUs-)J@_ zSlj#MXL81BjSVw26BQQ(a#qMKea1AxuTSPZ!K? zjwT5eNN>eaPAu41_7{=5V=NA5$B9f7|7k$R6no)de4BlnWj z{&zXVuYHv&6rhJJSSWYW>+rnJ`@9~{>%GrbJX@u1E>xe2Cod9D zAiRv^@Eh>v-VHuMf)WzO7BJsJcQ0@mKa{>xU;P!-HZJ zn&M+KF+9lHeEo>WBhI;^WcbThD8t{~t_%~%Os#n_a=&{Uba99aB(7oO_`w!AU-|rU z2PZy_VkYCT{BpES&3MjibIdjRmN}GHlm~tV6e0f$2l9v~E-Ou9pyZwiDZ+L>1H|AiT?=xGmBe7pKb4`bF~p@x&V=KZh>zSNmqD z_HO8NLtj;c;-!BY$V;JKeL934@73pCXqYKQ5UWqVTPgCjAVK>*r0dVwpG`e_GVtjb*AOzYB-39)93ql8S z5&7`x0!5C0n+mCdC={nN>N#_bR5-a1Jaj{ClTBc0?IsVZhjI1QcB@D1{1-W!dXN!+ z)gY#cb`#n-4s9IuEM->BWG9M$#BmImkFyi)+8Ku0580_HLF3Mey%k01M5(!t#(PfW6fWx<*|qOP zXq@QPnCH{@g`{yWH173j+=H-xunUoGEfpDRuTg=>(S@U7%7U&e=<R^#WJNMDYNp-AZ$Z?mW-Xr@>6<-{QuJ#+SW!yI4zAX;axVZLqhXQu>BHy zxkF^qtS>1&i;*7w1bT%Na;iJ{(sSn@R5a4Ql+*Ll=B4zImiC{LeSk?y+E0@HSi0ad_mpC($U~ z5T+M}i7IUrW;nt;_zo4bfqBN}Y`;F{p*SQk&YQrgmy~SHxkTkFf2-n#G)Sd+rAA*; zvUT1ia>MgmWwVRkx!w&2*&(=Law8MQzk#9Tdf5%Td~PU*8&)70YByxwpzm$c7arS4 z-=^0%@mm(%X?SE5!uP)+%!3qW_^H>`u6qJuURtLqT%YWOgAG8X3T@G7ue3uZJRqGTF-vz+`jpE@E#>z_fqhjZ_7!d1cgdH zO0@7Tr`2ltR3R5*$y_rV*u`KeKFJBiC;jUoS;*V06CQEr#SF&+scm&#%s{^WRhlDc zbD{-KhdEJbA+<7)EP!P3MOycwR`}4x97vvmBuA3XFm(-G14$bsZIE1hkyf)va{I+R zNPb^xvX~*LMOKAoL9h~nl@NU4qOu53bkPbydnrxnII&CUBamutqGAwwZ*f~X0iBQGkG z>L)HbA(~y91`~5&q7c#pa?>C;4RZZ2Dt*tSi&Q)2l=38plKXu~IOMV*mvxfa3=vWH zm0q4T1CvOjQtn1g}#-RK`>lmV3NLs>vWeJBTLpbxDC>g_{$K;3<49Z(k^vI5b%l(vQg?X(}p zIJCUDrM%HsEnXjYs_1 zt+XJ2yGfUBOM}&nq0ANQ(85v1^4ZFA4kz|p!s%M^W!9OPkjVqpC0(N}($hkIoLq)~ zbF?uu%yK)*tX>)K8$N%WQFxRSOP+PxYaBI=Ccm7R^Q^z7H$!D1Sq#C%w;=6(Q>Otx z6_YlaxS^X0(P8!p6d=^GF0tKu`(NlWd~rJz6^}iu)ivX_7{`QSF7H*q7Q{wdln_b; zw3bcXd<$7Ilv5||H>|n$eP4{=O5wcH8X5+)^106_xi4w6LD-H3R4SCiAJ-Z$kD;fS z$0<3H&*N`MOFeP=cBYr9^ceBDG6kgwz0a&~x2_f^qH!XR_Mca3#rgA8D>y{59%cR7 zV_KsI<7s+6^;l07lUjtRMTnB~O8xlxJjHRQM3y>DAuuYZ5Z^vV3!GOG;%W^gW$k$? z2{gOgex6Fg_iaiP-_Xhf1=-86N@Ix-Fr*U%l*C?A5NcA=q#!d&YV6yJ)4o)^X2!x& z2MyLT(Bh$#e_+MXTYk>_z~+1A3&$6hZ#(42?~i}KX4?fn&gU>h^@g+ZBQUB=fC&i# z)+^7Mu>47rD*n6)Hb<8<%))A00H>RW;*MoK5GFn6Xz`Pz{yCQhsn8OZ*2ADV%NF$L z5;alK2or^iwgDv>CCSD}40cwo$HFs$ngv$eBg%5f#@lx#VFSBW}0(Sn|@@P)_e`z$PfsieO?A&wIUXv~P=W-zXzRg;; zY_I7>Ygx|NQ6sEnrm;!%cSN$_6aqjO*r>QJnq}lv54=X2NvEoG;| z>}`;p&;PEJnh$=bQd9c5LEsDqtQ71zq zqpXfe%azJ|r94tyGzf2@o|Rb>bv^WD?BQN5M_q*tS5JAwuj>^HYU{~@KR%;+7cAAg z3$wMx8B(?Td3H+!C9;kS%9gJ{CjRXkl4)9}=+mIIkl2DJTCQ`SzI z`Q(KBU`Jvhr)z=S(BZAFmUjdhk_5h10}68_33@!~Ya6U?cD{Ef&F3tnPjq_|Bu%v* zaoSlLr;r^>&r)h%W25@?XrGR^>3BQrtg=Kg+y5_ zm*LzQc z2`C!pwgs32jXJb}&#mFa`(CR-HprP|^<|Px&ZH3JQn@de*ek~PsHoEz5T2$iZ|AdU zsASQYVpeHP47hhT3+>lAVEAm-r(Z(QM2Js3&CLBGEPrp*nvITq24rqXGrpy{pJS)5 zc$j=Kr^zuRVzV#e3`c{vcr1IeO@5M)b6NvRER@GJw94@6uQZUQY$*NJ2Jd{c5g|~a z6AKH?+Lqzy?u$FXlH$`t3O(ZDUzIZQ?yuz#MhWWQL-*W5-l({enfiBV+t{l~f)lYi z+5G+;Eg2hAv78+Y;>@&ctvox?2sR*^hSRhO)#X>E@TB}&gJ|yGxYVvS2gAnE|Cj`W ziv#6DuGOzfQ)m2@ayDsWzFjZL4g7}_XU=c1^15bvlorv5>dNV&3OygU``MpQG8D0m&URp*d61yt+=QF19)+ zEZfO`9dOr(BD^nhp{ms>>04Sy>3i){n%%ZFEU=ejpNqCQ_ds$FBu7aW(hy^A9i~uAU)FLOvy5 zwJ;cjTnvr0Gnx6e?(HW-eDWDAi%P;|_D_Rngz!Z$F9sd8M@&6K zZl#Jo{|vb`=aYt6muK9}mYz0e?>@+GwfDx+pJHp~ePd(HIssF}vF z^t405hX_j@>sEGTaL+DQSYfTB6+&`JhD#}jue&JBN32WY4C5upT!N+OF@07}lB}Fl zba~cNN4!*~I-pFA{uOoQS7u9W*I`0Yp|_OS>`4>zpzJm?{T*#)HHjHf*^tcsm2~bu zt)%??X-YX)#O4l3XkPJaAe!-ahIHyw^)V&+18nO0r&mE{s~x-L7=IiYa&Pm7Uo{x& z^}M}{CZFAX`@yJ*zo9Msjg-4;l?1gqO$mznm<=4-r}ugYtd|6K)+%+&RZFq|_0hAN z_LnOST~FIEb7=t^2!Yps7l2`jDoHiO0>XnbHgs~^_c@^d=g*7O?y#%=MX&FPZQ@Oi;2Tgd>~ZekcQNxNPzQbSd|V%7Rjsm;*Cj`f!2WfKe*8 z0#O|bU~B=5HHoyCM8-ZM=0WP|54C2qV})S>d-0A)ODUvEAr&jq$c}t`w`hgbln;4G zJ&ty$5)ze=2p5&kH&L`f;_eUQAn~9f!@d;DSXytab&#%u^wm?;`;xwBu^iIN4nNnW7nqDAVZWQ``9B+ zhZBYJY`C(;7?xjSU#X3ohT-RWvOjktt{A3}!9`n8W3pOL> z<{2dc##Y7%oXr_2C5if{C!{20Z@_l0hSP27NQRWKrKY|C13qS(O`{{X*S8S1*Oz1S zMjjakN;?9FSXffqRxumsJXjq(Rmb`zh4&2KaHW{G^{I#@dZ%{=VI_zDaT?BgTpf+- zLg*};mlWAg-q8rlN7t*JgOcGy-QdLErfQ8zsq}PkD*Zi0cnm%5V_zgiTXfIbB=3<2 zhZclil_2M!A@sdk{=-MD^pW(0D%r6 z@cD85;cIch)VQ^N9uIeV-!tS6yFa;$ZpqXd4C)n%BJ^Lh}4XN~S zx+tD%)_6pXVg#YY-#ucmpfm=31u8_Q4_JM2Jg;ngD{-*yBRVTvJ*gu)8v>z(CW&;; z#oumloRYo?7~y3U#g+mI5Be?z+K6AStNF*w|oBxL-KqglUW)A=n<*8yh)IEQ?Gh=UKZ zk-Y5Rah4J?>wgbG!de9Ijxek7+}q}uTjE{!Lao{0sI(Xi z_GNqdWr>Aa915h!ilC?nkzIR})3rlIEky(%v05Xaki*%t03*~kdp}j!lO7DB0*AwV z*XcO`JqHl(m{(6F^nk=N4J{dwdB-&-J5FuX6e@=|sV2X4gCaK+xe;)ySJ71{0*M70 zT2&%Nc1;=#+73Nyu+X)}Oa?u2gC6}kOg+zGtP4F4@K{YjMQyNHmuhK>VK|2&JzhSp zp@U*n2Vd2gq4c%FhFOWO)7Kt|Mu7Cjo-#q9>0G=}>RCI5&N))M>GaMOSSPG ze?N!K`t&Z*nE4IYL_0VMb zd(u=zAt##G-fPsPB?%jlvJL0jzze^;VO8a8SiWC2cC8g=QU5|_Rl%%vUb9}CfwP8h zILmlraJtMzse;C$b9DCVl{KVe(iHiPCCNxDde`3YD{l8bZ=f`kBMl(&eGHOIqW{~(4 zSAL(=pJAz6I_dk4H3rQocb+2>XLB^tqXM>?b0WW9v4*2=d!xftecM>~Hg_2pqSfQC z_@kzVkQhClnMSv>_{9>(*OWyI8P~MhC{!msl!L^+9QAwDOiko!pnMX#5dU%3-x!v& zAPEvz6k@#<&mb{^lN&Ki0;Cha!>qKVclugl?P+OAZ#j+-;a^>gwU74EglM)fVRZX| zA6C;T;Go3w8X@ug+R!eV?v_k9=810Az8CaooxcpvKD~M}T#yHxC*dbo(^gV3aIu7E zucmXr<-p|>?SQzDn(%`L8LXPdfGJZ#IJT z9`QJim@TgfGQRFp1ARvmo4hRI~kDL$& zFYMsGT`bN3Y-t531v^R5{hx*i5}mr?{45X%s2z|I2n5s`XbcbtNDE{J0s(1&vVcH9 zS7PA~AP~_10c`*R0oBJQS%fk`5a4ONtN;Q5odBu<0s$QXY5)QOIf0s8(hvcC3&aC~ zfOY}J0)c=WKm&n5K&3z_Kp>z^K$eMsAi$3R(}6%h?*U~4fq>Ql&i)UI3~90s&xzm21OoaCr~n8AkQV(Ca|eKp>!3fZRYJpcjFz0)c>XfV2%Tw1LoKAUzNWXdzG> zP@F}APXL+#L3o)CGzJI+^bpWAAP~?4Kp8+Fpm9LCKp>#eKvp0SP!iB~AP~^)Ku#bK z&;TGekh{S`Fac0^8TI}$p>9C2Kp>#bK*NAQK#@RcKp-F;m{)DkEg2m}-WQ~(45 z`a1?S1_%Un38)MRWC8pgumTVSYs(_kZK_R_D=n#+|2n4hrXdn;> zXg5$A5C~{HPzDeP=nJ4cAdu1Gc6IgIq2m}-XlmP?+3IWOm0s#d9S%E-6o@lg>Kp>z7ASVzA=z;~X9uNfh8&Crf2uK8K z_75!mhfp<;0SE;26VNaq5YP`mX+R*LeL(3zAfR%fOdt@D9cT>@2xxP(1?3VD1h^3| zw*!HIHUL!ufq>otssjQ6y#aI;2n6&hP{cK~me&Za1WEt`0WAeG0fB&?1)2y10$LP} z{%;N-2yiZ5W&?qM9s$Y&0s&12+5iLsngmn^1OiF}IsgO$x*Mnl2n3W2bO{IqG!#hZ zK}Giv8VF>G1q1>11{?+i0_qMl5eNj-1!xWs2uKf<4Fm!T1Ihye0R;nX00IF80+j)Q zfUaUZasUVf^aoI_1+Z3v=K!w)f$;JS5YM5iafE7sVu3(FM}dX`fq)JJO#}h~eFroL z2n4hTC>sa_^cB!LAP~@2pkmH~>LkI>0n70cgqKA?P9P9aAy5qv2Se{1oRA$S%dx$e*iN8v+xoG^cc_@AP~?@AS)0EXe!Wl zAP~?*pei5`(7izQKp>!zKwJRE7XgIs1d0Fx0VM*(0a@?|kj9(C06{=B-b@1m0nvDK z4iE@P8tek)NQlOp1wbIYqw!`D5D19Io7;gvKV znEK77y;y~l0ZztTx=5sOYQU+P>r`|yCT4|C=NA0i}~}jysNEB&>3X0(dQFU2avQr;D#;$?!D30_wfZx48Tz@wY=iU+OB zkm6;$tDB1F2G0#%cNOoz3vmAnysHQCEOIpvqA<6P%H>^gD!~Tu8o=wR;-xG{>X!4a zconZ0ykhX^lA>Zv19%PKC8&7j70BWhysNj0XDJ4=7|cE@X2gp)PxvD5>Z{_VgO?7T zQN=3-uN1s~Djv5IYh^2WSAP{R4ZJk)2B>&e@T@C&i))~YSr2AC1aDLE5?{i?&r7^( zkczhwyp`Y$R`II9s{$`k#fw{oJ*8E=YlwY`8YqF&%2UT z%!=1gGGF6e$tvDJhL(%*t`REURq(EYm!jhBDL}z2;9YmAc-vn`i}E_}8mZzuo>`mTvw~ANs77TogccrR$8E>PBew%mQqvDl=R}S77 z6>rXZH23Ry*S#{&BDuc|%rY>?sssnVgA~8RyT++_R`9IgrKxzjcd_U5F7Fzz;$?xC z1>OV|uNu5+@a|LbQr@G+;yvCqQN_%A4@;fk-LK+BSWzRayz2oKZyI>hz?-Dv)qqz6 z-eeUot`LQ=kas<(;uV8e4Bixrig^jlOJGh_@v`1WO5W#P(^R~2@XEn^NX65Cg#O?o z-Zfpt%LOkNyoXi1xQ}7X$Gpqz<)Qt@9x|8(V9rnpR)SXv9<7oojf$xV9ZV7Lnx*0u zgI5e*x{9a&1jc;AyB<;Ta>2_5Z?=l({)Dp#ZZIEJF{6sn5*G8WIV#>X@TP(Hn2J{c zUIloMt9XfFdhq6P7JurBOOTQh-u0wPklTXRYzyz2 zuj1_iZx47GDxR(sg|L)&El}~Yz{>(}p^8@vUM+Zw6rKg{pZf(GhA((mrosfT47@V% zo>K9KZRLbvTX`4V5>~P#7rb2Xo>B3%U*bf_m%J-W#Y+P(4ZOuFUL|;zN-&>QG432bH7w=l4;$?uB0p9Z}UITay;He9G&R5us`ighua9G$? zQj)j>dAEaiEmZ~111}G}Wh!3O*C-!f^R5?Eyp-Lj#=Ch}u8J422UT_t?^>?n%>{2R zcq@E7i%GZy<|Qy+^f9qqk4VxH$x0P3svHrQ^RAavyiD*i!CR%`aqt!gZ>?7GOy8j9 ze8aoesCaJh+!iojRxwR`A-I=!y`tjn0dEg@uc~;ueJF7Icvqf^mj_-Rc=;+`6?j$P zy{6(#t3Yk4;9U$n-}r9>m>a+>PzlC;i^k$x-u1eQmjPY|cyFk9m%zIO-dYuJ*nSk& z{k&_PidPO^Ie2gSc@{zY9ZKtWyz4DLQ&tvs|ofjjnCSw6KZCAEiG{-fbuBWZg-1&7WPbxHcm zR$TDb4#(!1KLJ^VT3rN>MKo_zhM)k!5Hz%~43RZhjV1DTfjBWGI~;R$MQSvpMmHhV z&u>+N80Ir;kYtv{o7y?JGNI+@2J00}sU=g`xH;WaUM+iHtJCvzEA~p^(Dz3n+7_UZ z!rY)B(31DvwtgiGOSY7>Foqi2;v|6Uxk$r}((53-t_kUb&-ruYbGMQsl`W*ZV4d>V zl{wowZd#7(cV_tmXCE(5EQ|}K4-SbjdA8Tv*_*L3StXr-%mRYrFSndzPa(_^N z>|4%UuHHKB{Q?%S@UAw9RML=uKnG`YMzK{E*DG9-1Y&T?_yDN^>gGZ(^T~4TznkI zjZfvc`Fyuyl(FVfx6L3WrKOaVODX=Ov{dbTH>KI7|0pZJXbl(W`wuNJ zi)!H!|GerEW2$R#z2%gBgkWkB2x3ppGicJ;tMl5%{ksE-UZ4}}2C!@1)d5I6C?6@hLD_nhvRgUj)H1q~OE+TuM z99vvEKfL3=XNQe_KEGq%k-o_2idrPs;5%>8l6bn3JWW93nXc*4o;?p*( zm*Z43zSe@;X|K{6b8v4ao>zQEG2r|;_{s2F0BD3@)CQ*D&!bXA{iKt?blbJLDw5N_ zJ8r?!g~R(+--qNR>RRe4svvyH2G@jH;lj3-qAIO!K%?j+37#YtR`HHNgyT_%w^u36 ze6oT$kXikZ@7ysuV`GMaGvom$@p z+$f?Nd{+|tVNtuARF{>^vnWzi$09Sk4hT)6gWF1TO%+FXi;6Rz&CBd)`Fxn%6sI8ew8 zJ_0Ek@X#r6%KP0<`F;O^d?jx@oL?c`$qOS7c>5p4182x<*vRm~+)fVc7 zEW^C1n)q9}!(gD{#1qL*96&sbPQw<=fjr_A$pSi)ZjlVAcxjZ;s_FnK3(`!D`>~)~ z^kW4UYWpxu$Z2TYo0774laf7LU7K4d%CIP>_URjGbdSR$Hao+Q!x(F&6VKONTu7|m ziE0wvs9MMlwlvGdUSu%#B7^rM;#jN$$jzBYtdXwpQJHTprF!g3fd;4D29-S;)Oj3? zioVB{2L5=L34iyx%rHY4>3F-CJN+TFx>ove#u>9|u(V@w+?AX32ibyWdRvs?j8+%Zgk#7rb?{4F zaEvgL!?n`q{hk@@^UO5qa^i<8wFUv@#n=j0@>=0;&tHC%=|gojXdUMLD3>Y>I$B}S z(TZc8vbyvQxl>hYFv7k07;pl6BCDgN?hd~jZZ%r!^E{4+-@)l}kVmHuav@zCr4(KH zLG^SltrhkGSaeg3R*L#IT%DeV6R3hm4Mg|g|dQH@#qcr zF7b0K%{WMag4Ram&MfK9B^9)Hq&t_c7ke5!;wOU7iH&+(OGj0gyB(2iZxth5Jz~CS z@VzzP_0de}lI2$~USA?ds=RnBzpq(>1IF-T9K5*0@-KF&M*;>Nw!U?zkj}eRMm6^t z6)zdJ=mw*%4) z3wW!R^BTTty<)grs5bv_W1%Ygp{YXk=0c?u;Ii@=rBJ~e~o^<1M>k2AVi)$2@Ha-^Lk@q!x*sNC-s#z+PU8Jk9R8CW*tFSMx z@F_z*(Bb|`<3_Lb@N!3U12uD6PF2mD9%Wl{Ikdb=-j0Qfe;!7kwK1VL#mZE=GFtJ7 zwZiog{W8p3Y#JRoRu>vYZ%np-7IVk;jj~VKm?~Z7|#4pwd{nBTsj5kqy=`X^is_Te2kbCKEL4bN-}VIzSV&zWx7Ga-N~&SdI*q zlXL#G&CwId`F*HA0jrUKFRn|#L?mEh6A3tZ>G}km8fwFbE-0r4=F#!+CR-hgst|NX zil~CNxpdjOL41dR)D0Z@iZ&lo6Kz72o6ETsQEwH+*Y(YA@|v+0#(|@TDq)4O@c)$-KZX)8wPLw`JLOb6Xkn^a8(xwBHt<> zAJ6o9+VALZZ&wP&zZMHssR;GD{mR8grDBd$NjBX6zZZ+&7E}H;E*4`3$)!IX>7rs$ zaZxG7N~u`H#xD)ONi{5kR%M-}ja&^=eMZrbF6g*KWkoc-sV3@Gc4%p&<@{~3AuVdH zj=NAEn%_>744Zu?vTKMcyU?n9hk=!9(xKILR0vH_j3o<70@2FQ znkw!C&Q~(mBc2hJHBw!z+s=&_?|(r_d19g50G$|O#RpEwzeec->8+|=jLH*ZWlxk2 zQL^WM@x*2J&$39%gI-T85M@uyAL94Kf<~SQK5#2fOok^WH{po|Px?JE-sg#@>0W#X4pvL}uv`aQ9!ktasp(i3aoi8W1l z;+J`TPdKEj$W*y&=qj>B?0JJHHYfhKGV$j#eoxf6mA;pn0=bN>N>mC6Z67oq0EQ`+ z`5It0Zh54|==I9zQ%u8B%89mHWhenYB+zr+dd$h zZqm}#J?+m+{dY9r81k&jj9WDi<*MLU*tnM>EffAj=yj^l%g*0ekP`lbu7$F$AZcye zMWzgC_8)?$s!VxBN=Wq}e{S5$4Kb?Fx+W5`^*`vk`jnI-6Xb-PyU{Co|3TT$vNB26 zvyxNh{D;t=sX|YeLYw|W=oPBaX%xDTUKRRQ^Rwws(H2SMj(&2j`}t(K<2GrFgqE`p zu^Fp6S}c2%Esz5tfx>|hD*MU+Wx+Xl%cLd*OXMLQ@lLNJmF*r{p!(`I)r97Tmg@Q% z7x2_L<4)CJZ??s2+Vdx!*ej%b(i)@F{hI&}c;7#X_cRPS{JXz$%7fD-xBZtkZC55f ze5BH0k(ErnO+DHR$EuXt%AkHX8g|v_58*B2(m38ExZy1~yw&q04I~WcG{&Apry;I= zUJ0QZ>{xsgy{9wPDWgrnu-gnmqDN8Q`npcwde=UH@Jlh}P&(^Z18qBVmoN{~@T4qr@N zaGOcsLUF_=bevK1C_c7(f`-DhNV@F=t>FbePha4OfJ8*7M_h4&+(K_Ro*=heTH=q` z7by$GNU!5SB~tn=h*8EIWucWl^m2>j#|CEL$^9^6AE|CB-{@qBL2# zW1zo<3b}=ga~Cztk{4F7YN>K_ZC}~VSC8j7toXPrKAj>q44@Bu+U)qGNT9am5MIf9 z+V)W0Dz@mfdfYn*#l^Q!jWJKUB47jp0pTM~lm<|;kQf>Ok}D_em0y~plmL9tU zxO|*Ep1j0}MHK(lWpy0%`3+pm^2TAYIyPfwGZ~pPIkXT%>d%iW*;9F(+|&u#qm%^t zJR^NlU}#TVQ8t>D?C{PK-x{E#kro3Z^|aivp||>L0N?nK(@tK1Ud(bAl}kYG@+ai4 za^xtvdfoa6uiEcYh85fKjXM8Y3)PxQ11MsANe9Do`KEuX>#`Lg9Q0i@>LM)k9d&;S zrLBE2{=OPiBy|gLrVkYwIhR`<&%zj8;{>*gkTm469Caykf{lQO-b7&Okdes#^K5)7)w+ z3i21v<#`wVzf(7_LQg0G+5m_!G3&TMI`Ac1cs;L56o>RioM3pZYUxJ@w*zQD%IbA3C zMb;bkffKQ|wLp;-imXud`!7`e=<`u+s;T--^(jJ?*@BsBTe3L$Kn~8)EW@foStxc5 zL#YlZo%YkeQLF4flR=&I{(fnWG*zu?JfVp2ZzC)24qZS4hi*^ymc6^;7y6kakNDfK z@<>WO04QLsS>#PN9FMRh)}`eDucmw0W2|Gyo&CrSHTDZ|_imQYBHKHWerKq$M0?%p zUthM9h2Pe%pR%VXEtpAbk|DQPlUyXldoV#x!5P-Cpkv4{Mt{8d6mRcZ#9P}$yx$?E z)Zdt-y;XTi_C0&2ATsLTrzU&`a~5=OIma7i4)YYWec~BJIS3^N2XFAPC-eqgv@IL& zf%=>Ht7zh{hVHiG?43c$P)=O-h*B9m;>=@IJZK{N;xQ^7&c#{-EveG4_Z2Y9>yiD^ zjE%E8>=qTPfbDy|tL0oT*-b&mOt{-;#g4Aco`GFmGrHJBbWvt+)oJL<=~iGgP$q53 z@gdQT7UL8swEFDHsgQ*e8L`kBW#T9Sn40;pPy4Y zzBR1_gf*>Epy3t&p8U~tB{m!`II4K%#8L7}kHu{78=Z$wJ(OY3!S4d*;rzow)Rl(T zfgl=NDs|=dx}El!c%$d>Yo++|hW|}(7QHsyvb3+sVN&Xi^dkvM^TjpM7wvtLRx_#l zr(uGBRWlhiFxKnfVMj9@4O+pS>*;fABHBvwhmulU=jL&p zn?Hp#j#Q<;yD$CsNa-(NXV-Qeu-9qD9_=CfW+X5R3CxnVC6uIpeCEa;{BM@D?q)}A zOlyVOlSXJf3@>xpy zJfgKqDIwofQ3(mn8jfLWqgpe^tIA((YWM)5hX3)pYV*2E?Ne1s0eP#63W)ej8>!lO zM8m;62SWu)7K~v5Ah`_CnVaTp!JFazAMBIk8;{UVNZ2h}op6NWRy zVK+9T-@4FnFnxnr-pjGV3~Li+EOIHMHRZI%)4i1yZ+R=^hDCx-82oaof&8|){?n{?|{?9O*0yC-_}r~NDs5K3!r93V_jU}>chH&OLI+xSk$@tjwc{^xROrk`DV zy;(gH)JqMwTKkwwS}pr~$k}}ACt2&r8?;{NrPg{w`Ma+84SM3nt&(-#IBY-3TO|?x zI0k#?Mql@$nT0n$Z@Eg+>7=3_sn5aDVT#4(9Y*XSYLD9sP%Xm3tUp&t)(?jD;Wt>ngPng5Kg1>-m~6`U0I%`qPTgqyy8mGOiN|hq zy~%6*WWVwHHn^(O1``dR@hc_c4=utu%Tw2voyoT_e*I&z=T|mieER7(TYg+``0=O<+Jwp^;E{A zwB+K{VO7^?(wd8KF>*2T(>=9uS$C6=~HK5_qPZLg|>alUs@Mb|%UNURNs z-F8?xKz#DB4Q9kG9B$}tA8b#y-)HYXK^LeGXddv~gvTb}o1IhW2hU9Q@sOH2Mg0?M z1!FNduow-(gQgtSFEm^pk7ejd^a-;OgYlQLi`oWiG!gx z@fS|>E0X=73&+L6aF00nurfBCcDM$TA1F9u$ceEW-Ibt?fDaI9d*1>jj|E@(#>73ll&yg=;eo=KaB4x6 z>BC*@!bjo8H+!hp-fz`|oR}>wD%{~U;sF>ziwfIL-Z*ARXY)U9JMG_nRWuvN=}%tY zq$T~&{#YrQ(!DOmTRps{q+e$WttW=|VCGLEZZb}uASY|HSJ!^0oUA@g=&E85f713Q zs-k37*&Ynpk8i}MviTgL-x>JT%X)isCXLxABi!s8sa5LBxVM-Iy0Eyg$651LU!@0zdFP<}4Td@QENMq1WJ z(HgcSQ(8`ZZ5{o#j21PQ|; zcG-Wl)7`noCtU7UY3zBBnkrgE8henMsxRYY z=^k;yaYcA+Q4jGO&F8I<~W~{o1-Fj*inoeV2T3c7f z!u~aOnxH@KjdR%#Hj6aza8+NQj{I0qBc{*dTuef6$rPV5)U=>~+!3RgMg z{|&g^mx|9)=Q+@AN1)q|Sc-d;99&#(91rF8c5Vg5--eR{O1vKQ;yR* zmllWL)%8hnn(Qk2zIE0t`n{xDSYI1~0r>aIIN;p(<*U;7k*Fm)iGDml7}er zV9tJ6p4G_meO`p`uR*35GT2zBc-lW-jeEGzT;7&`b1CwBWpF%e z;q2!fy+>F4KOp{Z=Q3FzTdd{X12)Gj11GMJ;dJ+7p$9`K-vIggv(oBQk+m?rwk;mt3y&#Q*yuwXIyzA0X_bEB{dl2VLq&F;xMPtyWh#T3lR8rbQwqCkKy>I+|+u$W1*YlZ(?UVubo-2vn|Wm%r|B0Ynx+d z&Gp*)xX;#?V5{SQuyqY=UDL?cOqHz@eYP%U?YG>_rFmxArB6zxW^ZZI)OWYUwXEGQ zx8tMP!7V+TN>6ZUT+7eALT%X4(k6wTE{%)N+Fy?IA+*tfWAN>8489$H({jI38$RAo z{h0eP+-|L66{WE~Zp>z-b>9B4(hYdPCES#MjXmpGk`E zCB*j#d;Nq4TOzdRSQMKC|8~5qAN>t4vIiXo3&X#|xB<$m*YBigcWa%ZOYxJw#N2I@kJJk$YK%MIA3I$Qe}J`HC6Mj-RRP*6N)^h1$|dw~Lo`z)KK~hc49#+%>Hf;{TLrcGG%jiVEw%ZR z=j=D6La(fw4qoJe=vtu?LkXl_yd%$Y9V`A0D^0p_6s0vfo_{kU8%AVDwt*4#5BZHK zs!&?2?<=UqYBy&kjPUN)7EUOXr<>V)yikPSw4na`wHfTKvWPpaP-l&F+oHQl&C}41$)OZuS;>w&g)9nXM$9*smK9~)qbM+U|PZm!z32XG&)W9hj`Erj(Oh*!T;z{lmrBghM{YfHU=d%%bW4CWgQUy4gNISX zCcy@kHmDpRsibwE$!zLZ?e%ii3HyMC9rOd&O5tN`zDl^s+1>}HQlshA%YxsT+~H5owYy(%J0Jua)%Y->_8(-Zndn2L)4ghw*Zv7s`8z=UVH+o?17|0$h?{Sl^?c#&7 zGfo_48_Jt>#P&4 zZ?Pyopx*+geMfd;XPcX><=p-t%PDQw@2$4-ly>uO{{Ut(Y?}<*w(nLvA?zkk#N%jB z5W8zc;cFV-{kZ;EVAY)@irT8^d<{yfJ5Y zLc+g$V~#I&#T%@AcS2KT;M(rEo~66|XnVt>4pRnh)=Z9Xn?;A9(L-n-EimmG_oGuL0Qn_i! zx8Be+q^?2COj8$hN!AlGOk^XzMK3_hqLHtwx* z#barRDh*M6Sgv?%e>r(998sPBfi0`JSyOuAemSoFKd=K8O}Z@L+t?lheUZ&YWOEVO zoxaG@rN}ltj3EcR_uHGLE6W>KI$Qf~lj-^aQT_0>lCG7AY9*pN`n8g-YhP2kMj@)M zto{C*m4r6lsIGm_()Tx+the^Z#?A4?RfM>T5Z5AKTfA^bAWQr%s zK3vE8e%EBWW`7r_;n=I+-KYA3j52D#?=p16?=p0x!FKzJ3Ku^-yh9mmU)kYAsz*$x zA7-k9opl}QF!EjB`$jm}l(Op)GKvG4940}FCv8+3o^*K9MVavwfu{&f6q|XV)Djhi z-$03y$K&aD(=rCztTo!u`_ngQlutek!4S6vf449&swL>LZ9y2IBu3$9Dx)6XhC9j7 zH!Lb%SdXFpX8Vk?3pN_bcill98jUPQ@1P-0{zGkXw4wwtWS3Ap4{vrmO4#e)x7FC# z#_yYS)~WB~0(O1HbU&ny8iP2-M0vyn`j(Qkl}tM@?QuB6Bc3ZMN2=sB=lIf`=S#Cy zNpqBqjej|u*?x#7D;8I}K4d1IRWWYLCyIpd{sDAm&iEH#=;%Avb4DeZr7~ zgTC}ZpZhn_*%10Hh~K7RodSemo#d35y{l97(}rh9`Yrs<8*w^OQnNue^skP}_b?NGWFQN(HzOso*kX*jZc#<y*7`d-Gs0=_yMiqMZXY9n!dQC9< z>*prhg+52(0;25X&Py=l65RR5KED~%EYPRyW`6b`+!?{Dk2KjT1XLxow3W%nq9WMf zswNG3vMM3?SqPE;PV8kHs+!E56IF3NQy`_R(D9w|qXC_#| zN4wo*fo|o!^4$ztHCxD@JKDRcVz=#RLO|u0tnTR6fmvUg95DvE=k3I@?7+@g#_z1G z8GFPfUn&;7|0P*)_5qK$?;CdbSbS4zLw_06s@s=|uH&BmNbgEE?w7XSPa{6|%MkA* zVM6}xXO4RkYmfVGX8qeqG`mrL)%S2_a$Ln8=B#dVNDy>9wnzW1%J8EA78Ssv;XaFIN)~Or zpPJ?I$8R>$dHNoCL@<-Ref(w_IstOZcL0X5Gsl}uW# zYByVd;%05Z;Z!)9~=DB^$R7(Mt?y$ zmOl~Sabn9)-poJKU?$}S7QdU0DySy5<>pd3XWOv>HQjEKu|cVF#$MdTvTK^m*v&OD znh^F=O;^?Ui|)*D<{Zb64^xE$7+V~`s;ov!AI0+@Frm9)m8dl!BPZPrs|ErAC4T7d z_i8)i3xVF66#y5Eyi@7#Fmct$Ju)^9HCFbF&~Z%D`uRrs`9}I_a55^Jn6#GpYzC6*X!t+kd|>Ps!JWtA9W{VcWAP($#$=PWClrtN!u*XMPO_dIjX z%slhV&zYaYp8AU+=Hi!_(Y#b~?c#_+mv`-n;YI3mki+=nC3h?fU)=8V6Y5J^zN^ak zJGO{^OB3F|b_`=)`Smt&+*Jg}okh4G{rk%hMj0OLFT;*Yi_F=h`P|rO*Y{Yf?EF~2 z-Tm20_Q6KebVsYto7PQJ-(x+AeA1Asr>XC;wj;M2@}6n2$lb`@hFm#KeUH^jdRDuN zzjd1W9;+SMZpdZR)c07!k;4tSWLl6t>PcrT0kK9v(KPiv))eFvL(ZS3zQ>x4oNdV2 z)71A^i;;^BIb)id_HRYrYRIY6+%J7q^t6Xe)uz z#qR7Q?mFN-IKElUeD5WGQSzmVv`?nY?l=2D9^%dP=w?4#*wjz|bjw1ewEB7B;v5fO z{?jdYCmG3?i+v*1x4y-t+&OH}+tmjBpFWvv)@U0f>vK6Ez~yy)Jat(4hjrblGmWvvgIvwvY6e#WdetY))zvw@4z6xU@a1YgSM#}gZ*LSICRbOd_D0>q z<-&x)TrT2r(U^+rPkqcKcuU4qoWWa$w`@$s)lYp2x8mJO{6BoDzT2(h_kLMK^v4oD z#t4;Mt>o&dFV%`bUH!|KWn2wUIL_57u2ymN=$GzUf7_RpTpgS6K3D6wTF2F@FWs~F zkH4(u>WGA0Ty5lP4Zac>`t{AC?XJaHB4$Z;z)zGHFBCyKl6Dk;j@M3knA$F7b47n!8ql}Rcw zECDRv11h#%3%e^yeHZ&czvEZ25-#RiYb4aXU@QzF}7ko-pzP7kFB`yw|O3Qc8|-^YaoMZU`1V5pg9O{P+&!SSFo4s@t`!TDE&MnERG_nVht@gLvM`CaBojotW%A@tj6ZWUbqC~C78iXBwPnZu2-1UPmZ&U z`a&IH_UC-(7}#`It7xKCWMG_(z>2aPfqnDtqc^^9t_d_bYXU2#e_m49j2W5()gO5O zFsk$DeZ0cT4@kz@=&UVVX)&&daAm&3-1EKZOl^!9>bvGy#NdAG<>Bf&-!J4!Ti{LZ zd*}8KmP!6vQab7m#yRa&g`E~={N(*SHO%wn=8Bo!!_BTM6^pt9+}@Jg-uDl5m&oDn zxWf8FrWWm#sl8(E&5`yld|iQKoF9*v$!e6UJ3Ue&J)zz?(6y zV&NBQ=8|#JSu)NwV`vOwbPVc$ew^gCljGDAzh#n|F|;AK8FJGkHDl;O?lI((lhlmC zMtob4y1!wPnlS_*2N-hQBsF7*K#nlv>Pc$G5RV*h$a^L+W8g!N1f&`Pm6OzrAs0E< zkhe}!Glml65<@PVq-G4;k+&Oi$s{#ns79_fErqO&3IMRQin240dj#M z7dw<`wjyseO%-yLA?G@jX&R6l3^~)GOw)|qY{=;jWttA;4nt0HV45eLJp}X^ z0Z9&J8XF4Pf|UaC4rQ7EA`YR^+jXv)?COIK2fI9+Kxh6Skgc;!z@#YLd?h3sW zHN8Jn_ZlE0A9ST`q1P~jdF^;~urt%OI~dIFV6b}3&IpZmy7F8(K;CB#SVehO>16|? z-EIV@Kg_EZK~Go`ZBJMde4aQyUuDs!aMJ+kZQdMga&8XRuMChO_kBenYq;%>#E0MK zj@YjcjT-~C>EF@h{p78RqZep0-5mZP`v(uY8bNjl6V{OaMv(g;&GSK32eT%qMo@}e zYRJEM$nGjZpeNUR3qp{?l$BR6O2Y+ zMFDGw%5ca8)d=j!c0)E#P>moQIoyzYLsTP(MUFM(8zHI@q#&ml^0g3mBhcGCA1(p94_O0@Ye-11^TWRLE!1+UwN7Xp*%5d$8k$p?DuV$xS zc?jlXD(*Vhhj>c6**bwYK_}?po-%Oc-EH%u=-W-jQw}#rP2kUvCg|%u<*1N5%Qmw7 zpR_Ii)*YqNn>?jYU(0>ru9mxY{vFC#EGUzYGWiqqP>b~cx5{`lpiF~aXps-~_1eQ0 zInkqy=xzG{A#~K88mfY;`m%@8NJ90i6~R+3f~VY_ z<7Fgak*oB|fim>=FJs?4T*mh>Z}Rd}oZ#^+~GD%Ii&AUA1ZUVX=fzvH?-T&-~IC;>cbYt50-RSo+R^KD7x$JdlRl3 zids?BolU2qs7unrta4Ui%qlNu%&NLd)tX}Q$FAx&{PFnXS4F(3!V~Z(tjah1N%)gi z)!}!wFx9>W@T7O8GqT+6vz6bv^x5An4tJ`y@)--_NKvKg@*AnjReHBo`UfX-A$e6| z`FXwt9f!{)U7?8fA){^1!$Y57f=cho2-RZ-%P?~!{>V_hV6aRz7liUMVW{i5Q8$qV zz{LLNMm_h{hpJ)xWRQApG$S_~azl`MZge7d8ggBbdTwaM*Cwj_tAo^Y!w1>NkoN?s z=SB!}h#^-7spm!%a+D!&4Kkh^NdzPr0cAnzxsidKVaO#x>bX&XTwusWLF&0thFoUI z`9bQru?u;ZA!qYffvzQ_-a16C_2}SAhyKhx^1;GJ2hRom=D-$~Se_`D9dfB>VmZeX zU-YUcg*qR#8&8VwMaGb50QUzt)b&62s`vNQb=$25o+L{m!?_;M^?2j@AA8m5nYu1+ zHF5pP$N;YAay{3${_9@OUq>1@boRD!!^}u;ZrIKZ+Z}pP8tAXjKY%;{(I*EtyBwi%yReKleZz;alTSTU( z9-&NJ3z($)43&Q72>cO~^ho7Tz@IQlPaVo=pNl_tlDH|W0~ zDo1;q#(P@-$51(ONy;iOXG&jJNX4Jp*A>$7r}uS*4Ez~=T_F>HrqLDRoZ0xZS9Kd* zBo}|~s)(I;b`edmXeX;y{YS&($Rt-*s<*g&s<(W8UG)}MqN;~@a!~u<*X>T*IQ}4k zUAeD|^FMdQ(YuGqB#+KX(%GrcA1=oghD@fdPVR3djxZJ|VXAH00##p#MUFLOOQ7lt z>B#AZECN+u$VbjMwP1r3F@$x6Y7v8pflAp00{-B@>DP-~2j`hIjmjXlb+ zDcqMb`PQXx-EyB4~ z?)VLl%}DC6I3=m7`$+%0x4f^=)nL@;y5eY1s!`d>AAa-JrM-Pwl-En1cY7m*Y8Wu_>nMibFU##!lj&*k%dJV-o54+mV3+i6|NB2rk+gHn=@48ny%te^3 zXtI9(UYTOvj(_`PJ#vIxW3HLZ>$Q{hh7mHmFdvok`}#xy{(`@t8}aG#vo7i;+K991#D8eczupDg{~-MM~LfBMHp zNry)>71*r*ZIt}J`6~5yb+YSu81xW3UJvz;0U_ax3E`@X^^Q?vKn!w>A>SCI#(-4h zR71WtMvVcv$hn4md5jtZN{~wo`N9}A25d*(Zpi1xs4<`#x!RD=jA0CT(%DErqY-do zj2Z)4kXsD-*cdeiTt&WW$cM(LF+iZOct|O@Z;ToPypg>PdG{Fi7@%kS$}Isd>kcii zt1PjMVv6OGZRIw{&1d;lMdBqtqz8XPM!V}F=Nodmy_oRghb)eAV~eu{slwbQ=bn7Z6(tW*SJO1r`y`vI; zWnb^ug@0FH@7RNXPhan-!e7s z6lI$*yQ;i+$iwWa@^&HbGGs5is=PYn zIzu+usk}nxX#!3g0XIjh%4$+C~WzrQt;wvRe8S1zJ`2$ zw7c@u0RG9iyC;t>JE|_>@~Ow+BUk-Z&v%*C)!SWWb@^Rp)syTpG~Q*(q2>8+mRQXE zDKX!}O3mLN!bH+#SaroR(91`CSkfJ4E6?A5KXmoi{nWVO(oXeuSC#8AV`OMr%_=Wv4dXvQnP8)9kq7S5 zufl12_;Hs$!e4_Qcj*KCZTNAQYVlhmm<&aTOT&$Z7(_#iFdE`=G;*bEN!1(tq>s+Q zl*4R~;OjRLu2CT6VIGhV_cx?el1hzG^|Z%NHKcsxd_%7EQw?b|@@7Nc>Zcmg9^^fS zT;``5Qay6LA(!~6hSY@IWXMH+sv)%_w;OW4pV5%I3FtNgvi(#;vZ9dnVWmKZpK3^U zWV<1!`l*H#jvQ{t$$qLK#UjTVa)RHT4e2|9?$z@E!32f7aF?!6cCUWb+9b;PjT$cC zE?vIkf-xf_yj6eZ0r_~))rT20AC7j`t>U#e<1p%8zhGxiulhS9ap`B18JVUsGELRb zJs`vVZTM|d`K`UF{MO!7ajDo({ZyH-4yRsYxfVNB4+)Ur<^uc$Q}v|*GGKPyDtgx{ znVLw=b&aF98S)HgHEC2&4I}iUaly_ua-89;Bdl(!%K4sP_4A9al)E>-KlqyQYRW}-#AibtH9Cv)S-J9QM%kw_??#+HL*7i z0G~7F^*bh6QX?+c-WrDWeI8*R_K2Q8RwfJy#~=QPyX5-0u`qePjhDVd z+*t;2Js?t_I$j1AX5!C`jH9yh1BG=QgN;n>JR*-q9Zozv!!}-m zn{}{H^x=N>i@BpXQd}By|0w^c!+)()Z*z4@`4 zU;2f88PxP;aQvS#XyuMpGWhGLD`TP#e_VI5PF$Km2AA$r$p=m2$Bw5d_3tD3V3Kd( z2*0{7`Eag=PYZTd8>t67t6_i5ouMQ?ae`UM3LJ79XSv(jAwV{F!8M(JG5F4`F~-GtN4A<{oJpS$y?E6aG3 zrpq$LgcTcMUWBs5he&zIyD$N^~dkxmj{$(8v1l{rJ|RFpwo6@Z$~HfrnG8x zi~dQcUFfuHy3VV}{;8eZ-8nrCovKOGrIUCR+dZnnb`$2($wrvX2-{BB6X?`r=+qyd zBV0qLraqlqsptt4q<@f|*!D+*otyh~>b8H?PC<{FoI#K3+a}2PU`K%$_31jwG^TRK zknnZgTDOHtA9MbrJg*+rLqp{VvupU!<3i;^b0xV}KI(erwMH?vNA*AR+KAKksCwk2 z`>1DLH*&Wjr}(I6o;UYY100 zoNmbBK0NcDbmkL~Zv=$+sApa&a;YH)_^4-IC32-9`}(M7UJY`MA$$9%XWmKVlZI?% zcH6fTv}>Xa>g$BjPU{R4PCq|U`bxY0`9wKd#_EL*Ig&d(F({ugpTTF$XXud*87*hs zeW{U4jmD)>`Z2EGPSrQs!Dcw^Gij4E^@WqA-)+r`W}2KuGxc?orT_gu|ACt7xsvKnsFOQ7 z^^YdY$70>NC(Yt{H%mQ(KD*bF+Qb*iBHn!A%_GbfJ=dxqRAJv)w62nh07r6(L8$~OSTsuk{_DA@p{j$jh-UcTFpraNwaHDMa#=(^Jaw2 zvuh8{k%7ZJnq$43&9%<&$T22!W*&bilc!r2Nk6~*jVx6+7Cp<_dm|&x#*vOR!76&A zr-Rk|Mm=Vc44#$0k;9fub)UM!gkN1P*_bAnKMc4W@+6_zoO`*< zs}dW@CvRPesf7B>d+KR+I$O!4RsYA+@*9PXPw_F=r=p!rPca%h8=vB{u1}ee#HByp zYj+k3ekXtAim;h0lwD``*)?6LznJ)AkLTb(pKsHQ^SPoj+*rMgZ)mwx8R>|tSLOPu z0%_vg{6(#yfU^ zgVMol>RZ#}k|aS|(?hMp#!g9c?@Mvp1hE7a0Rm&8eR}V{=+p=p~tQ zlQ}t#V~#l8zFe*|3;ZHZuUgLIO~kR%h|^CkXTlj3H_#asXK@G-`?|D*d&ePp;fBV{ zag?OWfgZjy9Eq`=&sxm%HF79kZA8_nUt;ETsuEtA)=+gu}x+ z#CtZ~zTfKllx*pk{_lsiG~vNVDxV~cEE(Z2TL*qMja}I?sPI3f@%MU_N)oALer+mg zg62d+-Nlg8#eVZ3;VPLLOjYM8>KkOf+IdvRp##m@sQSk3(bPJN3UrT$V(_Cr?!;*8 zeF-&Weoep9%U8;2g(Vw>G5QQlRYP<;=f1|kTG5|D_p|({*K0-Qq5w66Cy*|pS}l*R*hZ&;z@hqng^H7uyk?&(M?G)4y1<5YiB1x&xQ zY&a1DHm6A5kmmHqIhuOBHfyc4m^@D}RwMao{rko8z63SAhp(7JWtgC< z!GZW=98XgL;rvjZ`!N{4LOllaO9tXp54@*5rtk5rsw%VO3CDjqm}r#LUM`kCCeN!s zya(~B?(swUi>Q;!`_nnOT;1QeTz$!shu(5==}USxvsmLEX0pq@$dle=eUvVclIMlf zy-H+A^w*^_Qhge-FO|Df{rT6Vs^^!;Df9Z%nb>~omdY_re6m8to@=C~zG#0;Sm*<; z+<89Xdi^r=lNm80ZB z)ehRTTw|+h1^gjNmTLk*^CaBe4%)NSn36!fB;+NQM_UK@(&HKHR7`chdLE`Rby36F z)+KCvFVWBah=ZeKVkGD35gX*9A-PyPm$sI>f}PD3`mPPqJ|dOtsYZ$>UzI~Ta(bSA zeuIqg&B#-okOS2`wJSA>k3c9(_t`IWBa6ETa*9}@$8D6p0ZGJ6%Ip5Ay2q7D9sV(4 z!@`2YV$s2(^jN=9`X%;I!k#QkIRjGpOg^;5yRs{IS9Zmd6_)ZB=q=^mG7gE*M9sHd7t!Xp$skhUn=Fsajke;=L=za&+__ECN`S4 zSElLbYT{vG;?c##g{#b`-g;Axoz*%2hwl$`cHVLOByS!M^LaeX9~$#*#~i0;;y|3q zh(3UMPaKjLZfMN>usKc}S8a*9ZKq6*vL`mY$J@n;_l2!p81d=vZoT%&ty{6YzBJeA zV4!y-KE^5QFMIieHQ({C`|uX~AYT=-vzOOMoWq8|PhFCt7M?zF_(g>T7J>0wNmYJa|4-fJ@FGLYob9rnn?VAWN97@A!x zw4!HCNbatx!qqcZg)rA$@V4|1%_nYtUJzYp2t!!M;u+3Po;Mwf+247JKXg1FR3WT3 zpBV1ZaQg1IW$5Vc#cEyA%`Y6J-Li#6TQ80t`38UBviPYA72c!&?QJ>6B2r@zM5^w) zSK0^lEdHPRMb)m$v-iqLo;{0a821+Lm1FO$?|pk&Sm)A9bMrWRqFEPEu)WfkIhea( z?%C46Dj3U-yfoo1mIrUqXa7N@2GKW5^VDpol)icQbKW(-d6~VjFPWWr@^o-dsa&Qc z$4Fz?``=}$9tL+=Qs4iM9PU$^XZhOP_11T!@6`VCxkgx@6|On&BkvXbwEjKyTy#~R zsybDLY8))ZPNjKzSe1iVrqhb}(vSUPxVY@bRNs3%p+q-fPx!dIwpH8E4+u0p3$ z;D1u7{qQX&1cQo>s)?K`nwrGbUa6Md(wN~X3#sY0t88Uh$FjJ;|{m|C7vH z%5FB@6}!)3VeiZEJJfUAOR4DT_&W96_Ia}Wu5|XiFZ1uv&aGSjcGG{-F7FQQ2Bx~= z>De``hF!)}xw%J@e_fxn9qJ{&gnl*n3f`0V*@+AWAnM|my86NyU)c&(Yw)W4d<$Q|=k1E$h z+?u&(k&O}Al5VMJwODNKqC8pt^$z&PdUn%aTMt@a*wMDy2qF%jmtrNZanrvo?vCK%S zW0^55-u1Zam?eZW-u1{^b3{f&SJA?&jM<`(x9fPobtm=A$QsYcN<+Q$swE0PSs7vK zni@M?arN#aa)HC0j*r#T+s>?0ZOh%d^x+j@SL3D!D5b>Hrgtmn$616MvjG38^$vP1z$DQ# zbx`UcY*%~zgzPjunBeMIO!7G^>FZp(PN{i`m2Q{P*X>f&6@Bn2_QCt6mCdJQV4wfc zujK->Ib+2@XT}OWPfEYl%4H~JQdbZlykLBDUe&KCWMB!p_3Akij zIxZ8J-&X72CQU;$wi$#TdW~gL>@`^9`zR5pDx+J8o}n z`E~irdulUGrdHFC8~-JQmMp|DoISZV+QSq$pfD#}h+?AhucIt%Kf{v7G{gW ze|y8fi~Rq3EeWNT;xcjh*=(Dy`43wDzh?Bmis$_`nQyB7$3W9;N$VE+{ew)twTlOt zdM!f`?GtiT3xm(<-}N?))3u+y&e^4Z<)+@~(N4x0L|4f~q= z?u<8&>+5lu|KYwn!>&Hlx7QAQ!1S0$=$an-IBo}SAMP0L4DJH%8m<>NL62=3>|Tc z@dGynHw(7_w-lF$TZh|%+l@PfJ8`RaM6l_i4BhD=#R1%L+*#a3+;yDEEX6RKKQ0Ux zjY~Aw28NhU$)U}IrD(;qgz$QfuE*)2l+hwa=#-GzBKPE*ZE*QV!us$kTT~khlDY+fL+ciBV9~C)q zQnbXoTpc{q=Te|sR(=((%i7#*6x@BKv65v)W?18E9CM<b^dgyIjAJ zX-c~%`9-NRHU70^nQEPJjKX?#rpc<(A7uDOwWFEa<;R# zU{hs;9=*ckZ%TexU%JBNCr|1xuP}`^RZZ1*BbtgH(NC-}1)9R6^=sVj;fSTJ>nm59 zMtTLIKqQ)Y&(Wu6n}TJR{#>?c90`oNjKw+p0(2C?;(Cm`!v$kt5%vUvO_<(l4z+-`ni>+@r8*(BrniJayra_d2lr> zfu(R8+ySd#H9Q87!zS1aFT%^P3wCSb+h!rY?FD_HFARpEFcL<=c`y;C!gNg(eme(G z9s%p%dPs)fCc|&il!{7)Q2!r8NI31GFLNZ#&BY5Fb zNWm6Tu!Za42Dk(6)C$GI19%P*Z~~r!=ivo-4PMv8cW8&-F~bpX6r@Dop+w)A4x=F! z{0rfxF>ecmy7UXW&_Q5nhHj;7v_D~ZEy$N2M@sG@B};u&%-P58tfHfu}Kq)hrtmr5C+4ka5|g^6JZ)$3iIG< zxE^kRJDB1u-ihY`0f*oTcnY3}7vME`T@$G$X69x%0*->gFceOQ(J&D%fJ@;rxEij3 z8{j6m6YhqG;1PHVp3%gTQ-wk-QJxF%A{St);&pgK6Hl9kc-jk&f_^X*hQVk!3od{Q z;WC&7*TA)K6WjuK!@ckbJO970^;C2 zxCo}f9GC~!!S!$(+yVE&1MoOJ0nfqn@Cv*Jds%~-G?6|Gj(~wM7*2)L;XIfK)8JD2 ze|jFC)dZ}E8{iJO6CQwv;0bsNo`)CUHF%vWGf`z`I0BA>!7vm~htV(*E`UqnGPoM9 zfg9i^cnBV$|1a5zXE(eKZ)jqvnF*m690mPgC=7$qa28wu7s54gEnEh(;BL4VZh~9j z5qQih1lzG?O+uD6YjWdhAvZQ@aznC^8&Wj+Tw$Y-&z)qycAt=o>LK!?Q}Bk6bS=4f z1RMo3;Tl*9%QRk#W`m+vlTX`(eA-)+Y2iYqMZ!3k058H0O+I55@);|?|4=7n`U%(q zTj3Sht;xbA%|b3YuSrTHmzKiKaGNHxi-pYI1h>ITcn$Vwa-}BZN-vlM)8I0g4fn!2 zcnY3{6d*@vGKT`?P~x0c*rv%<79m&JAQo7)NGp^t`w97Ss3u>Y4x=?$vOvg^g>W@o z3y(uIFCoDaO8m-HAzzse^B~vPM+><=4wItThG8%O25EA8fsotR!%c9jCf}|R^6dsl zf#1dg?@-`(N(=Gqz_S}-(s#(93X@j(z#@o6s&>P@ntV53$ajk&7I}AvCf~~v@;&7D zu-JQKP@N!T^&*%Jb2Yi&A>{rTNcjFFO}>w%-p_~Y;Rc9B-!HtW$(kWT)}VRK9#{iU z!qb{Oh-D6jKrC|*%hZ(#Sw~gWRYUGO(kW6@p58#?I-|)YWW2|(N!q= zav*If3}Ts=NoRwVHZcm$f^oD7;%{H4$x81+AuD}p6!kO;O!ZC(Z6F-3gPUO!Y=LA@ zMaioc!Zb(;sURF39mT@X*4xAXcL4VMA6z%A#115CbrTh zcEghp6Mu-sJ|vwFFT-opxes+uRUEH@So|YF8=yc#J|g3fRx?7iGeULL<`;z5BW{9255IegCw!$0mrY2&UEyprj zjz!T}6pbarSTdYr5n_%N#=uyZ1d}26&*A<#xiB9V!xFd|ZiTzx9#{kGcqq+j#B-8> zX4nGTVF&Dj-7p+RXd;u6WKxpnw+Qk4HckA7lKh5->P18K;u#S)ir;DSg9We%*1>vs z5}t+>ERKT3b-=5z8}{%}dYqCxPDvj3fz0C{4}u{u0!G4E7!Q+S3e13+B(R4Bs*tI& z$Eh-YdqBj8!}IV0?0{DxmW;=eb2TC6THr7^0@~r606a(V9D`&qmkj3e7@f;wbZ#!p zhil->4J~Ii#K0u7OJR=? zD}^RjM#3nV1M^@ttbteHHBICsve~=(tJvq-vV1T@nVD!FGgzOg#aO52tqDKEfTDDm0k^{Knphjp=6fMM>!o}lUMkQ; z@h?;!`?vi*g*5xKn5Gg zV8cmx8m@+GASK^G$;X+ozB={6V$gJCOd)5O*=A+}C|9q_6qUPpc%`E?5TItAQD zRcxawww1y%O}r7on&XW~P4J@{VmpoPCoMw!q*W7@SfUb3yqPV;o4K0UN!{;^f}OBS z6F(*Vr-bjKk?o?9y%j3NTVb#W7DFuX78ZDm#`_kHcQ-w3H$7}GitI&^cPP+16zH8s z)*SDg)Wo}F{4N>qvk7+RU^t9`n0Oy1-iJc_P-x!?cuEuR2_fFoUxRAI;uJvxAuIASOFR28YPt z&}rDDiQ28~o^RJgU6K%W$qQ26i^Ar4Q4nD#KHJ&a`zW0@mMg*dWI6Gt^6j#^+c zOo4cJU5u)CziTV_n%7xur*b8sMUc%=Qo(P*@Go)_osoM`|gdfldKcFNZ zP?8V0{sGsIwXyfxu8E(M!OzK{p;3qiEd1dXAwJxuiQ`!2IF|WnlMo+mq5n71dK+oI zzbFyn7p0mw0Z+hRQqo^i(vx-}P6oiMuu~JisuSW@^_n?$=41qmDGzlUgHzPM+fES5ZK)fR2Q3Wkj!RhnFyTJY4#PiWalbLv4+>hLh+>GU# zvD~?J#9L3iDB=~y5V4(z9YpjaqCXLBMD!*Cax-!>nm42QxiTVdCSn{B=kb8s!2@n5 zq>cQBHu4+V#BXR5zoF6nhDLV=MbDt z38{*Ysfx37r?YgYvzYiSCjOmCh~JqZCHx&FY(9WOhfrt%3N6&cf1}WUqfiSLYQaK( z*e1juc4*>{;X?c|LKCeUglOHQiT|k=;(r=6@uyB9{?w%j=K=b^lY}k?32`w5o`GjI zaS2mh!c_bkn7E80pQ8DvXny6g5Ld2f;@UzE6&ArNSgnb_px|Fn@Gog_sU~i8b4J-i z1`UE2NJ*C}x=0mWY=v#4e}nXIlKyo1|K(^hAfr#o=t>tEbdxX^xrRlqVUcTCKs`yM3;xh~Mhk+19KSR;a7Qr+!BHpLO`?C<@&l(oZ#iIG}1UyCm|BEjswPV@> zSfq*TnC?2JyG|8crwaJXB5}Pz6MwS_@i%Xn4l`gKtk*;r_jhrB7bWeYq+KGHSP*$MvgY(SiKm$WmUbR2d^|c}7wpy~U0Rwg z&>Q-|02l*Y4rACtjO{_Tw zvh*654Rhf!cwCc%S$z*-$v60fkb_w>4oOGOfFwMGgolv85E2;D02^TwY=&*H9d^Pl zP2MAfyhnpJ=nd^K06JheER4bvgC_wd5wVPjn~^c)J($uKD5NbI&Vq4pDO?8E!S!%A z+zUrQR@FnX*ibAsbPZe!*&rFZ15&V|6l~~4cv+LfEJ6;W$_j_E${yw*AQ`5>0?6Wb zI2sQ}Ds?0YR=EGuG0yo30a2MReo|A74o;uhFPr_!{0^4B+41htJ{6>|K z->BB4Uxbi;k&r6!qe}b|;R1-M{V=s(D{Rx`Xi7Yq5|2I&n;_w%Rrpod344UJ7Ya?< zt$1wE7usP6biha$1><1?Oo6E|6K2B#SVThgB-o(IG00<({i$1j>ek;I`anAjfTZhB zy8aZvp91*rV$aEc51uvx+F>W`(&PhF#RF8u12*UlN#Fqzc)$U}VHAvk2`~w!!gQDo zb72uIhGlRw={AvWGcw)q0lMJ>XW&_Qng0L46-@?A5i(#Zq!9+t2m>}jwsZn8X#ge- zBs@@svzr!h0MbSRXd`3UMH|bG%-HEL8YaPHNbeX+?-)ylW65wV8IC2xu{U8a>7jTa ziU$_c{{u_#Y=@Pw3wCRA90`php>gcUjLU%S zfig{?OcTz+bFdQbf*5H6Mhf+%taexpYcx4AM97H_m;o~(=}jcPi4%Vc`)WP0x8SuhS#OOvUk$*r(Wli_3>PR8L}59fOL z7Pt*I!DdZPp)#gW8INJ~$1r+agphHOntZ62aFZre(uGXP(BzVJLM~YkvEY(D@CZE4 z(6XdQ$fcSlm(>WltWJ{|YlO^LtH~^?CX1@cBH=6&&LYDssvxTl*27(pgtFMO%sK({ zVF9H1Wzqby+Tj&VF5fBS^4*$T5g_D>An1U!f)`E+`9k3tO|B-wYD&Bs1y-ZLi&uqw zu@hFo1DaghDdgHNP3lX9)H5}?4byMK^xH7uwiZpkK^u63Ht+`W8_3(}P}}HGIwjPP z!7kXX$;u=lE0Z<(W{!|==4o=LnW1H;7oH#?cZR@3$PGI)AQ|nRCv9 z(8ET6U_)RC90t=ME0dqMu`$rj%H!wP@vv5En8gl396JQZ*&#Rqufgl=6cB!#@Q;{J zf5d$Hqbu;5CK}1Ok&J)AME@5|^nY;zo?_!*6dMPA?8}+hmou|3M}{ww;RmGi0qJ~@ z1e3YWg5ZVetUO+1V*er&`=beHo&>XC4%`8E!g|;MQS>N^*4rqVHzdJ&60A>$tVHU& zVGnyU0qn^H!6I199?WJTj%-E7B6V1#4!KUryWw6|9!Dy7&#-a4fsNx$Y~aPRffo@v?SbbuFi&)?yRdunE zW$t;FxffUz+F29^uofG}T5N}nLNK`|0|ocQsH>|8H^1+WONgXfKvnc#53O~CYR>C?~ z9?#aZTTESMP?s5*Fq>WBW_E>JH1XYRHidH`3Vj!aGDC#ObijOA06XASHj7DcISDSm z3OhBCg+;QkNLCr#3=hCVuobq!ULjVPG_fLxore`6cuEN z2OHRV$fb_H7tVHc1Z;#S*_O7lEp3BIFd1%#mGBHa3sEQ!g`T&tTWy8Z?eo;_^R$8I zX#>w=vFEW^K5ZsH9%6}nERlZ<9;fx&X#L)h(=PD>8orPN^I$V)q7wS?1Wu(FF$&ZKg@=?@FYA9&%$$>DDW1dzy~J4B$x+RL((ZAox*~fczW3{ zk72(&7FNM(hyrU+U=6)v%`VshuM#1iMw0+H!>tfY6k>@YOkafQi)c$lw51~ME8@PQ zCfKZrANUCI17BDGiy)T#!CCtMT1>Y#Koe`j;1q~vYtd{iimgSlmq_R(5_)M7OoLeH zB`j1N$Uc2Aq%juL7>n1#4Vrja2*C(1UMAkl#Cy30)@foL;p+%rmjN>&;p^(?|3CB< z;)iya3A156Y|uoBMTinBOok~C#Y#}DqziUy;*}^NUWtKaa5HR!?V4Ec5Mq5e?0{D} zI3UAU$?#R$(5sb@lD|qDDn%hq+wqW4DGB|EgnmRqKWc{^3^b7pG*Oz^NF8sajyIyn zMikkY3-e(etmj05R$Wf3E>DLUJUcM?CQM#2or8pE4id~9BzVEout^iIQPrX3^D!dDD*lCy?y{5;v|8p+eX!G zI}6WoqCl0rL6y953ZCI$A)AART-X2`HSuE#_G1e6<305MA7j!T-n_Ex1B+lW!~#38 zz)#{iiJ%UDvK4OUM8cO72|J{um6Ws+6IWv5H!=B}nEcHeSO)v!hrRRKa&1wrCf5wEHVHgl8`#ZgKOMG5NiYlMzzuK{-M5;Is>!Ij6LvuqsYa3gG^+hHs{LrZAC33-a6}?FD_H;+ z!UovLk%@&P6D!0b?_-hoPs1in)OZU~;{%IeF}w;pIanKqjC8}$LCwXk!d29zj+Q1Roz|j!q2M*=|JDCUU zhE=c{Qib(Y;Rhv5JW81Xk93~nD96mA1CAE`LKW)kzhuo!FZU!%*dCSksVUfMoQY)!^{ZF{UR2|L#px@ROJce z6NLnvIE|-?vldMDOHB4lH2dXt*aq7ar^w(` z42*>*;c3ofu;j0?_vn2RC6#88T?0{D}iQxWb?r%N@k89%hSm^gy==UYC6n4RGPAZ6Z zj(GpQi<62yoK%dU|F?|7LrGdFNedaakl`PaIJ!uNX#58>K2M3yQ{q1sbCgj6ufk4_ zG=e$O2!)uk6-%}@!Dfy)!a3rIfCaEf6BnqW3slhs?z_N!7dAsIa-oO*|0hiMCocSn z3xBGHHJWH6fi@CoBY`#&Xrn6Hs0wEgbG#5(1dEy5on~&=#CG-;wzIb}MWcJ(pnKlP zgxRnJmO?VTL54R-{|4!Q&V8SApRmrL6(f3%iwCbhCNl*GZqJ1sF7@;M!~&sA7rIAunk^^tn3C5 ze*p0d2e1epz#@16YsdlJ>=s9`TO0`wz(ZuXh78w|0oOgbZpkJC7C4qGkhbD+SqP6S zyl{d=VzEe^iPtU6Oir0-JieMY4;W9LV?23_@#L*}9F?r$sAMfC5j4U-XVL$^#1vm* zid*N{zCKTeX=KO}?w&>Ly|TjcKEqDrSvCOC+!xL5>xHy$VB3n7*aNJ@9D(dhuw+b) zW@#AtH>8kreAphy*@kBauS${7DiZn` z3H@xACeyD8$!nD|y_W<`B*YSM38q|mll#da#|sW29;RI74Sk`VcgDEBm?b0c0L#UG z5Q{C&hpYe>ZzjEZ(me&6VIg(0gw^ztVc=e)0N6g$&o5 zgY;4z5CB~(EPjqjByB!Gop$$?y7Kb?5U8!-8X5zr1pG+E{l zvW)b~l3+5#vSr+tiG`M9xza|q2TG}%?PrDDPTl{wQpg|g(&UbvLhhiXyW)i0HIID; z>g=s7R@;>LASFI{4s!oN5<1w+dw$(Q)>9=PP@)eSHTg?S{!2{$>jgsodLdj3*RfAw zVxNMHk8NOoVkTOK*4mZA22Dd>P*E?No4^a12)Nz$JEQVaKLcywi zntZoF$ahQN7RdeY9T4(8dd>S>e}6A8r(yaUO#iaKkS_g}!8Mk_btCiDjm%d!M!^_O$O}S9 zj5J`B5Ci-)F_THsOeRT>H!y}ZGC?mEg1<-?rAOc~Cg`b5(9@Z4^E4>uX>cQiQQg7y zO!&L!2`_fyO`N`qW}tRR0=i277|3Eaun*EB1Gp@653Au zO5)8TUL4m6FDJZ{3_HoNllwc>{qtZVOo6E=(SFlVsbCGUZLU$W% z*Tg@(g!so07!D&i?mfr%@g_QUUO8mtdNHh3?2kjR;Xun**(}W&BAeF~i zVLF~XJgZ?Tq~~hGc&^c*v>lKhtMzhNY2x`t^Y;vdG;2?qwI@T5Cr#2ao#$LMOoR(~ zAk#5TH%RXc>76A$;Tqu@&0T9EUK#N=!;1{Ao|lQZo`@S@3v8v0XVJ!UAbrYmV;~ z4B|#cV`~(QflJ{sxCw57C}KqsYYn8T9_0hx?rKJx8sfuk6O! zNNBM?6^o#SBXF zcQ47`y~WEMr{fOXDW8E!3|xG|@kz&V$I}ej%%CDP;;$I-;w}9dV zwbYBD8_X$E{<_=3Qwi*R7yAYL_(<>gHY-wypIpm zQ~#^#$K=Q4r&tpy)F7^l?qmE)aiWzath*OkHQEr(LE;GWk zb3rKW0$#%2NND-VAhi6nFmOZ|I4Xb8^`AEE#04k1omk{VvJ)&#W9jl<`Tg>(jTfwq zw43s8$+tF^TN^KA%FlLu)$ujQd5+gRPH?;st%2p%zzg~E4RCpe<4jzS8?eOnzr0k! zB3y0}rk9HUmI>RMy9{&pVv;cI5=_UH*no}5Q!nz=i$?aMk-f;U7a3N`W3Th*>pb&% zOpGQ=j3x)I_MKMy>&xV)J8pE`>_eMp*Z)5#_!`SzW7*zG``Rh{**g2#dc24Co#(pO zxNh%^^Y`Re$=_|aW>LLqQN6hvYlX{p3YS$!LXC%mP-C0@uKeaY+s#$Bn``Z0?%TaQ zaBM2Qi5qHfVrjcMZ0CV?9%yZ|e{HvKt+a2gLau$EYu~?vGxo7OafBz1^=POMi?Kxg zYV{d#%pyEy5gyatG3^~=__4Eg{6~V&j-!##ah^KPQy(k$v2slpx%?uRe_~EPF(;Rd z=#mlnwG4GxOkL)<%N$?qQm!Ww>RuXzy1DS81})wWa zIDi&yw?+HO1?9Vyk0>8?{eM~?gg!N=pSI&E+sazoO2?mZ;b-Q!uiN%g1AQYnuH0GW z&O6`fyz+fU)MrG$v1Wd=2@l{wl>Zy~LnngJ&`CUl=WstBz*cPgu<^IyBTZj7O<(7| zuXkXls63f!`pDjOI{x>=8o1B)DY(p7CW60Tu$MJ+4 zz*0AWW!R6G1*EORmpJhyHoVlv2`|MZrbVQ)M5J?Y7g}Gd#?YWw^ZM#EG|1Hkx!QED zHl3>{a8e*T5QvVT^Lfta9YxN|8^tl3r)rz08ZYY?d0Bre+J%+bg_YIfKAWJjW{DQG zKPm&FTk38rEe=HN!$gxfq} z`ukTTcHwS3fCup?9>=qI9{ce!Uc>8n8}Hx)eB{gG1@7MxFcp_!4z9vYxEWu;3fzsg zcn}X^({YIt66diCFXJFy#~XMDXYdg|js&kI1i@~JcNhw z1fIk$yo7@|>?Y{78xl8V%-}tIj8A=0yf6qVlQ11u;#zzei*PIMz@4}c_v2waf+z7b zUcz1+#;bS}Z{a<>k57FF9Cj1*dXmHvUk0zlEPNR^;#S;-J8>88#{+l-kK$=Oi@n&7 zSMeI&!rOQsANYbe?6!IVF2PjH!W`U)n_T}pw@JK$yKpxiz=L=ckK6>s7#yodMksq24N*o|$H8`~wg z60`7S+=yFo8}7tixE~MT5j={g@htXYzx&u8_pyCAjc%xC7&60OMccc5> zP5A5|lKN}CL>soN=tlQ{-00p5yYXFs%P<{};&JT89(T|g?w~Vq6K-|~&!ykx((f%0 zyidSXT!!256|6)3eD4}w$2oi`rr(q-s2`Kyx@xYg?nAeE)sr|S*dG_{cgMYZ9-p}N zPjl;^fqrDZ??>kQjo2*Mzh1C^1GZo*KE!!J{|kct-KhQ^^=k_S`HS%so^k!x-j$dY z+}EJjqJlR%@f32^8(dYVA)mSidlLlp7vgTL#Y1=)mD{V_zNjF7A{OCRtid|Gg}3pE zAb%j(Zwh~43OybTJRWTde!zeqFrfYw!Tt)ojyI5t>bdA2^9B72a2zKD_hW+lOR*BG zP=ot5_)pn_`nlMHeK?9^g8HR``ekUu4MyCcod)eRSR)O0UH@+`71U3|Rk#*6V-YrE z3$pZ09(gm4(}Md;1ou->hX-_cpdK5r4+qdl-!js-axo7Jun-%u8IR)$JdaIX5*mI> z!*9)_IcnT4=wFEk@epdbQNus9xPEAH{cr%U2>P3ngQn!5MS0MoJopgj&1sqIdOM!M zb11(_esfX~G%rEzH*3GSPJVN}#FUJ9BzW7Ze%q>kyA|8e+`Vn?4jI8ABREuzHOQbt z40?w_?=a{c4ZWkCcRH{W4d|U|L4O`?;n9{;cm{`XM9@D`(0>t@x&Gf}>AOz6>%?Iv z4m)wU9ve{pVfpW63i@Yb12&?$eb3ysCJXk*unMb@VXX{%KM?GXU@?{;1KwxA`?EMF z_`gB$KOY~u{*TN@f*=d{KpO+vRBTi6$146<#UIb%Lyrdc1;Nq%=l~{#m@jQ;;s3*ZSg8g+kfs=R-?+g0#NGFeU#&H@S;bX!7EW!UAG?1Sf$WI4x z*h>H#y#(Md-^o%evo=oNmbeoMe%2BMKWoLCc+1-Wjot=m#xWfCHb9}b0*aA~e?H(P zfHW@wWMCV%BM+VCp^q%Sk4))D=kS7;08HH(Q+I}k&hXHghdA#g08{XbeAoXkh9pM3 z1rYVvI}tT_R)c35a+V>#toAlQ4Z0eB>1sHi?a_EHcH${Pd=34|T>k0;cH>=~jRY5r z@PZLu(EbJOf2`ie>V2%<$Le)iyj=;d|1Oqwv8<~V+t8GBnUXGZ*<~&-nwpEI=At>f zXwEKP!6BT+yMp?;g8F%=oo?-PtJkgGC&hyNC6VBgwQ|W?>De9xJ(bvlePZ?rV)so8 zC6-B~BiH?!>wdi-4L&~8$B+S^G2k;Dx_t~j zo5U%>eN)wEs`}cn9p~|hAb+##|MM0J4SlYm{t`j{Qskn3F8X4r;C>qF_zN9>!L?s- z?SPRD7}>y1+=b&ffirkd&_7$yKNp_}`Uisli!fQRe^ju44C6R0=&%3aw-Jd%(f>u* zft{lNIvCW!phYxj5&cW9;C~)AV58u_;~~dxWP_nL!G9k39S{7Di+{((!weW^z;Fw; z3jS;V_uBt`8EzN!&lLR6#%9<52oL-rD(atz7R?_lnyV2(|0p`X`s{cTrv&}E@{bwF zus<^FkFz)@_+KaZUylQLMbLkP;D0_c;9nVVP5alhf2{;daRMg={hPS>Ph9+`Gk6Z~ z;;iVuH85rkjJ09A;D43if3={$5&WAG{JB@qzaL#Ce|DAJSSk3Qg~eEcjo6IZy`kM3 zkMXIO0@A${uo4;k?+k95(BOmy|0CO50J+$Ko!$lrybTcXHb9TJ0r~|0jbzeDCg<>> z;D4pye-$$LzZiVWh;JG3f42+%cL?_L+!W7EO<`QHKVPuF09&z5a6eIyf066|wt}}6 zyv@?vEd7$JzT~Pe<$o#v%PTk(3E~=vYap(HxCY|0$n}586Qf^`*U`S=Fa9$A#b3rd z1zzwhM26mB=pFfY4>iZqpttyG>Ht+lep-K-2a=$C&DztqB9o4qZ@cL z5_->5nfKa62|WONwd4fZ-$$m zi$ufE$$c)77Ev*@*((Fl#w7){f&u4ieE9@0ELiG~vb zicpjiX%Qt8TN2okz?Osz%A{;!O9ERG*3$-JQ$hh1Mw`M3#S)B4U{pdGZKq1AqH3zq zsfy1(t5_Eer*%^g_0a%bp&=TfQ5vIhnxM&OIGvH{K{ULg0h6QQ<+GSa+Dl)r;}sGs z%BWdJB0Z}#uizX#q-W_T@*=c|VziXfD1(eLJ)3eV|HIhL@ZWu{MY5IJsGT~flTOi@ z59@A*Uua@-I+N3xoIXb5G(l4or)j!NvouF6NoU21fFcy7L|R12#HtmnTEVIn8I(!c zluLQEp7N=H3Zvns6~z)IR7%^alB%ehYN(FtsWBSP9HCJfqj8#`Nt&WKP19YPrMYN0 zOIumm%F$Rv^2XoX>VX``P(+>Yz?K z6%FTTI7h=d>gA}Hqu#d$=n4(d2#wMhjnf28(iAcHThmR^aIQkR3gs%4t5B{&tFtMW z@@PG6pnNKzLMo;bDy6b$cugj$vqqgY>a0;`jXG=8S)=vE_A^yd6;)FW)loe)P$M-{3$;eW`BN09X}U|Z zG)E6~CWdTDrUEJ?#%;-@4U|T?luu>Em@N&o zovMhDTiU6GTB(hysgWwF&irp_mMEnT>ZSo2rx6;ZF*-v%G(_j<0`<`q>ZDWA@ScHa zDDL+q?)N3`_a*N4CGPhn-bsF6;@Ws4N{O_HlB40GPV-;nM3DxIbWo)8BApcJxQG!& zlN6`BG)ME%@OJ~!(04Ub`$R*I--txRHQK0QR1KqQ45UU|dvsEx-94pbKsCzmQFf2| zdl<53k4E-rV9y3Bph7C963W+b8)@i`DN?y^DJff5MeU@+x_C6aSA%;qN!`6QD83nlJd0Eyy>GD9K1oO;<&uL_@Q}(snUQQY&yM z&CHgvvcg=$S|4&HjUphR|7Ke z<#QQOhW-J*d>%VC6n~4h^a-i}w_VNbSvHLky4nnU)nNvdgk)8eys%JZw&&RxBO|O+ znIY!>Z{$SPNN8qEDxWexgiqnR1jHmu>L&3uhgG0hK80a~-^*{8nWQST7l|@wsR|)8 z%qx?7CE&&8x+5)k9TyzdBo3Wix`aqTCYCJ5D7aNtG&z?54FxRR){F#@&Y3h zWd(L0Rq?xzZbz0z5@=QEXv-Om?0wOP+La_r)&AilUNz!t`ZHj5nnu|hx>#%bq80iziw z1pK*EPM$2;T4&(dV+@hdimA6>5;J!fQ;(3&ovVz^Ra(_!+>K`K19CTV*0bTw6OO6) z1g>B6?xw8c44-vemCp7bTQrt2@YxWPee9}*5p)|TKx{s6zKFFO(}69(77?=>M+0vG z-Xdc4Mg#CZ;C&)yHYNhs0N04Pp;QlC4_q(e`qFrv;Yq$36livw609xNA%GTGD`ID< z7B~SoLB!RiEU*FCAmYkWHE;%ShKTo-rt(*2hk#Jv!qF{qg=oQ$2j0ac1%-87jnJ!) zAGV#bxrI?~vJ_)<3)yb6RC{h-P%C@eamlH{#ir%MEIw zAGR!)z`MEi+b@+fHkG=)HqcgIp2VAfRDo97>a8k$h(1j37B<}^$EO@u-LxW39#_($ zbEn6|_&K-5w<5mvNA6UM=s_8xaubn})~y*LyUIq14iKY`x-F^`QJp_>dUdp_7x#cV zvSUjzV5i#xvehb{ZmEs=U5nkg#irJDCg=tSd_gfd9+&?c(Wdfp4q|L z4+KUa`kg76zGQlutvvs_Zmx~q}odldMgL4P> zQjNgh7%nYD-Mhzg<_FdKhH0t{*#v=%1>rhAXBg>|C-K6#ypR~vg)NLxWlVG}au0DW zb{qI=XjomH#H&xJK#ZXO%xUk*H{4t`@r*55AH%yDMyS|K`Q7=c#82Wi2&*}ftY?J3 zx7OQP9r!m^O}vEgjBsI#{GRmv1@Dnt&BZVZGk#)HIL{(7d!i>_k0?p{v53-{8`$!n zHrf-Y=_h=O%;SgD%Fyf=#PKmTNu zUN=kPry>;{6q90;V(qz&nn+X37CBxP;$@u}uMe0-nYh0UHAm_|Q5=EZ&XKx~K$a1D zfg^R1)ZWUbZ-!zEzB_RYBfRZkgyqkwHErR!*~nM+3Ab?iAGv*LcAc~?`$}zsA`uQ> zLK?X5dIVpO;QRg|uOj#T{T~N{ulXvKuR+gUGf(QFop^S7p3ma>tmnBF&$Z~?8BHr~ zDxN$@cpmX3B*m}8n+NK=0SSson1z56k^6+B-NpBZDNov4+r5|xFSui_c5 zb*uJC6;ng_im5t&A49_k2^prPTYb-k-e(F`Y4u5AA%*3hXccA9V;rELujALcNy-4A z0rMqo8lXXgN1N+-zE02Yr1F(Ww{j|#1|u9?!tHL=r+Mj8)KTv5R-HpiUqpin`pwMg zTI)joc!?2uoTl!?bc_wcH{UumaSK`3eeJ zwMwK|YgZ%ug9z{SgIm1fN4xw^GOzPV*wjg0A!K-8Q5pCIP=e`5FdYe=x+*t`fueb= zVuBG~1=|!E__YYT7Gd{Yl^ej{uaY^|a8I>~Y^!u*scgB`ZQ_DFkGtB$nWU0si}o43 z*@iw+yta^E4*BIj9Yz!TlsAQ9F@+@LKsKjbd3?1MgLn8Z`f9{)fPU#>UZ|*_xk^PH z3;(XS8(Q$y2vGeKm)*8!bIC*BX?wpZ{AY#_|Jf}t-ZZ<4X&%|GQxzx@JXT7P8?}eKpaaUrw`Z0=R!;_#EfZ>{bfM|**HcN6Q{$# z5h1qx%;kiKhqT_FiYiXkoO?Z7Z;~E;6B-RBH02g)R8Wmr)sP$1Adh5vHCQ3H+P3T# z)dm*k+@e}Sq1m2eV?rafX8aA;&a;&t;<;*xMdQv0`(;7sM5(!t z!F$Y}WG>e?vP<7$NG$e9Ec8nJQj|Cy68Cr|?nc}q?ownsQ>H8d-E)xW5N1sn8m4l{ zDi?D<<1g9O3jU(p4=h*1l0)EXRR~ihhIz=F+OuM6UCQN-q};-CI(|FSi^|!VEIlzf z(*L$O>el*li+N1aIEiuPDXv)CGe~NvxZT?LDc6z2^_qnx+e_TSKYz-K=tM=n-$sq{ zGf+f(5)J=JDOByBvMEDFRkm--EwPngzOYWO9|E_LdQxhaTdw0CjEW8`Ue!i_*~;pJ z^sO;qd2JOV4B-~G?-;h_wg^9Shod@%XEqA|JG#l>b=-?l{W(nsP1y4HZcSy47^zF6 zNTrCh?_F+khlJ(>p!xvrwGNRb6SRiD;xuyy2xJV?9s1{P%1|2qa#& zbnvp@k;;~G)JkkYV)*@xTCHYN`GXit9-PVz=&UoVR=Efm4rRhmxrLW5%c}qzE?W@r5phn39JiW@ zP>BeYh)_9~rFAX0@aAPJLM0>N5F~7diXp9N^=2|cPDaQ{m*u&J`LY8cdn053g={tj zl^}E&f|?Q3jG*^kmS@$oFIOU{c1t=`G($x`v^&DBMYy#H*Z;EI`Ha6z^`qGqmcqez zzYh&VxN?LmKgC&f;n5erxH@ARW|2Pa&V+i)z^O}Yt~uR;*Ki$UdT2lYLVh97Fg!&y zC1z;A(O0=OF&P0HUghdzQcTi|EKCUQLkB6L9H3+`$^{zcMP{G@UQ__o+lvZ;x_QxR zpw3=o0iuPe(We>EPTLU-L_1%q@9J4gO1V^z++W%(t8k0n)v>W{bDzfy-l9?`qyO3s zDZ5W|nl61tp2g$Y({AB-z1)WUQ%|xsY;Ld^F_yVz8CEh%@0ca8=P<&zix^Eyw%jru zGcswUy0}Y>Nqm~mj*)!$H+x%M!;E@+xy2L4^M)-Nqvs!Iga@9lw>j<3Mzdc=h<@Hz z)tjNRP*{w?gh2@Hc~h$bKNYh!nz^B$3e{lx2^7HVxz2H2d;4B!F@CAH%OaXTuhukU z)fmXM!erhffSVT=W0GUY3D8P5x?N2RNic*{FYQyTx#xXf4B@W8cvnu-D5#~^e0tG* zC(Cqv1(r|ADNj71)?ZDdr>~!&?0m5pe?x<{#QClhy-cM?>l5-EloIqjbA7vZF|kgp zvO3+ufs1mjxOkCj#abk?7QVg)GE^8))ANf@^njbhAx0cxlwFkT$MK7l#!H?Uc@zV~ za*8qY30mPCju^w8l$BK%$rEV3uHqtj!V_)FWZTfv14Wt630*%kWgtq1lZPkv5~EO) zk}gKMVRhQJm!@x%t!Bi^QU?_lGtlByPh~%_VC*eD7k*&%KC>kcl{mH^_Tl#*df&PI zk`EU#7^8aPS=f;nR%SzmY~=I&1q0SUX;#HvG(hLCtPL|5fem0ZbKve~gfb&k^#xk} zq)<05q$AX)RxZ7}PPLSq*S&Leu~WqtJ1<-BD$6NL)<?ZQ zZC5f@a{gI0kulO*k715l91iY7pnZ_PJ=mI|8#Et7Q zC8z?N3ZC2EBR<&(DGiX)z_+orMRC6PyX-X|{7znzzDdV3Ivth@rowM@HuZy4&-He_ zO=V0*H`wPx&fFuMOYFJ9q&1FagVOzXa-*uxhH^~=vC&USDA0KBpczZ>#>F?FOQ-BWElCq?2l9zb^IFCvvNzKrn|PBo7yXQ)Ntr9 z{ES=JQ73C~wvIF?`kd-rh*n!@4IE&U+)kg2yDnskA!N_aw8ODS^ZsGnqs`n%)r;eg@gek>I!>lEH%z=4hBy@8o z+!aY%5Tn0W-SMKj%@AV^W3|)7&tbPh#*LXMN#1=uDT9!6rUQTfn7L$6dEk9x==n#H zqx}uRzYXoX|wx6f*234Qa=PgKO#YVNUe)}mM=936BK+vPYC*mnlFyLu8 zo`wtQcuK)jieQ8fsQag;teQA|?%1LbdtwQrX@Sy6!`n20wFl{v_;f)9YGY60C*Wy< z&|sRxOg>NJ6w)K_Jmt0zH>ywf_UrL>J>CvKFRxKdJ70;n zt+=IqdWA+j9*endl4pr>N1t}Xs}Q~l;e*f1m8s8pC&K?+sxn^M-W$2Pf)G~_qTx3( z3>9z3^YsXEpp;|##)hUnU2ci>u6o|nw^wuZS%z10PxWmV`9^8Oj7ocNT?1TBgT7c! z_?^C;n@g*tJNkB3nYq(_yO{Kdr9XQW2A(G-L>YVQH%e$Eq!ePZ+JN{KQ?biCRqDTK z{>QD9<_HYNQ?DBGu-d%2K&y{|&!_@6jH$N<7z6bhw1JT;7~x`(6U87ElEqs{R;iFe zQA!SPDRHmsdqz)&Mw8D{kwZ(}o#NdrLHF-t0VhSBE&Mh*__pbzVd3 zy@uvi+?5=)1(LUjl9$)Y)x}y{3C$kke!c5|BWv-#_8h8Ot(?ESTFPIaPidOpPB+iy zz(yDCaW->dr`CmiQ&B@2Vr17+4zX`KpjUGp-s-rL0quJJ^~nJEv02j(tsh8KhLjH2V9)G*(|`Yp@g;=$$Gfc^q*+pT_A1 zM)b^q%p4cl>c?MXTV4N!H2LHcvQ-P6j?c%?X#F(KIIvs$)d;>CYFov?r1mi}@DlF5 zf$c&!P1Et!Obq`MA}r;04(u_^f$$E5f6*KM12KI1Co}}t@ux5`rw!Fuz6Nm?BYq9y zpThGaT-QO}2i78fE!2xeN9`6;e<8C{MStoSGHWzcygGx`x7V+E*Ef&~mG-Nap(Q&0 zj5n)Jh%7fYR;&^drW@(+Gf+e&cD@ruJcqE@v5w__9NeR`6IwWbp(R2xNsdeQ!#7${nF_%3gp}G3kKs4j;4(Zr&!N-*453sB2 zn_j&?)ndbTImRD94tbz?;;$+U^?D5Ltm@6(H}r?-;$P7g{z?kF&dM2Td5$tv{t-7| zSfAcC2v8#i*m+j2TduQ|I``4@8`&bYJ_pYWr_kRO+#AEXH&_3LEm_V!ti9@S?%1$i zF?UaCuQTH9m?>&~Au?#Twb3UV0`%8PS&sN4xtQTyO{0H99s5mMpndSH-15XotejW3B1DTL=^6&Nor8BE-4%@d)v# zF2|OKWh}KP)p&%CN9gNksP`p#F@gi353ScDbTUE*8;i!sp@%m^@Zns{Jz?Xwt=Azy zF9b;9gBTU>eohR8{v``xvLN!{8QBdkogu5Q!{oz=RSXQn5hC|InPmGJx#d57hRSgT zxBQ+cQ|dG(bS8VPRNNJYA(PRKB$g!ctIw-IFiBw|1`I`_%G4xpJwqzbSU*-rn=Z7; z5~{;_glAC;pFM&`n-Rums`XBrI^Br^kzKa=%u0JDobr5_yvNw4$Z0E3$4|y^J0Amy z{P|%;8J1MujAt{JM&J;ca!|G?nXfpH`QG_UR(+Y%mQxm>Z>bN*;hcNLEK&b7Tg;Mn zJtL&47|j<^q{stYo}q8R4B zUx(u1`Xz<+*!01*QrhYz7fbX^?{s_tgZ^<64trc5jp{;ZDK{r6vY)i2(WVGpuR05! zQHi?22(L_1>yuLHY4#-g`y$~qdYZv~nG|E%u+S=6k1RM$7i@GwuO(=wXu{&%&4c6g z)KZ*>5Sy8vltIq}MR}tqv3lM{hgy=y5x3{0RGdJdQwVHPe1F(l2%Qwa%Ex12PS1M| zrNcdv+*#9pk`rZ=hJ2^hapvT3RSWLT^b9Ko*S$XGMPJ`<g-iIoyoRj54!{dZk!3E#A+d^7Ky!s#3E2luOI=C zuu~-+kYfawN)NFmC8@k7GXzBLwo#|MMULiooFV$15uWqN3I84K4e+}vS}-E@cBu@I zV_FPB;Hx0^zhNttpY9b*gj-dK7Z1u*_98l@ywJo16)d zGXe4XLe4lAYbmIv<(52?nkE=V2n7jaRCG>^YTyEu5kmWxG|WhJ9d!?nL4?f4mNG-2 z`S+gu7Wb-&bj&HQn9)R$U`04OAdwH*AR$I2EmC1yK$Qd8s*>YF#UtyV0>Le0pxA?Qj(OKk(5~#OIhqoSHVL|fLi%{}s zqbkeQnR56#gs;0L{IC_Wg4hZuVRfXA`T~0Y3-B3?cFRO{_ApkclV?Hs|E;PlcO)~y z2WhFi0Zpi3KCQvBa4j|yjj5(ND;2>a9Tt1k%DmEEegZ^;gawS$F=0ndJg}Q#iAB3O z8gD_uOooPRWQS!;B@+IhB@C5ROwB}#*}}XB>$lgJGoflN{t8D_PC`O;y0binPjsu* zL0Wpsxv5s4LpR`26Y(yJA&4K1x?)6fAfXRKT^hAO4>L|A*9yIZ@2F}Chvid*1POPS zbj3O%07wX9qy~x+5}A5L`{O-Yt~=^ZJbQH2#VA$#fZ6YHH=Ah#URh43dV|at;C~mm z2k+}9Je#IyUBP7MRUn#q0D;Bl907pL;0QRhaBr|)D_w?Ho>*Fb8Mv1o^rdlS$;)6tJu#M_7w z5*!;VL3HS16zb9hNST1DWY&aWSR|tutd^>SJ8DzmAz}b(4=u=v&jsbLu)x{mTRXFoWvVVIQnUlH@dJ5hWvV(32%cjw&*7e*5r%?ctdb!(*~tgAm1Q; zy}b*@eGVWHP&Cj!AP`VHplToxP%9uO5D2IRP%TjHC2rOOv8Ke!D5J}=Qzh~Bcm+bh zehAnA1On;_#9USp0a4;=AP^8Gt_1=CQR4AHARtOy4+H}8B~A!~5w699olV*RtosM} zbjUz>5JGh9n#5-Ufq)`_a)CfVt$~VxKtO7s4L~3u6_5i61avJ9<^Tc#{Q*=51Olpy zOEU4yAIR7r1kd3m3j_i>1r!ei0{Rii00aW61WE$}0qqBx00aWs1(Xd00zFK-oYbpfI3CKp-Fu z&}twMP;;OyKp>!-T~INAKtO*3)c}Ej>VfM2RGH`x;IDwq{(`1|5jq2;0|Ej43^W`F z1XKl-4g>=F9w-wC1hfYz7YGEj184;h2&f#W6bJ-V2DBTufq-5IN(2G{Ed@#e0s)zU(t$ug3xSM4AfWj`IY2oWz5vb!EC2)n zWdaogfq)(ZS`P#Q8V6Jk1OgfZbPxyxG#aQD2n3V_)T{v(Z6GuhNDBl4x(g@~D6zpr zFaasa_)Cnjb2m}-fv>FHm!~&H9fq;U6b_0Qc0)T3OKtTV*qQ(G$fUW>B zS5fV+s!V{t1G0c1AQwrM8j03CoJyvzcs1Ofp~19Ad^fF=T60RjO%45ax7Zut+P zG@xi85YYdC^gtk>5kQGRAfUlOX+R(#lOE6r2mpfq6b@7l z1Of^LItT;;3IeJH0s*;W&^`izfEs|b*J0o5gf5u?2LOTqe*-cAfq(>{G$0UA4Nw*k z2NB1Y`rM0s;YTjxoV60YQMD;bpTMs4_PQtp|z* z0s*}Xqz3{4y#kXfhB8r~qgI5C|v_r~n8A^gPg7AP~^gG3fuSfFQtZyxa{0 z0-6a_4Fm$30#pYC0vZp*+(ZSsNhlpC90&w-A5c6H2q+n7I1mVE7*GZf2xtJ1DH{+3 z*c&h(2n5s(Xe|&3s56ii2n3`B+6@E(Y6Daa1Of^HssjQ61p+Z{DC#D39pjO3AP~@> zKnW(m1QA{UOaTJn#qK)ZoJKwkkl zfj~f8fv&hss7@l>1gK^(s$%Hn1|TgE2&e=o9tZ@q252}C2#5np2Lb`D0LlUa0lf@l z1_A-S2viIN0(uT;1B3n#e*kj;9e4=>dIG2l2m~}8s1^tWGzqAg3QnpblmVmz0s%b$ zGyn($bT80oAP~?!K$C$$K#4#(KqmYFr154xAP9)Yo2!99Ks4U80)c?U!7k7~5z%84uEZ|wdi&XIHU%776#D$d?Syx8|uK>IP@H#1Yb>P*3*IB_E zV8U*piFN4|yc{$3h0S2bD46A7mYZ2utb!MvhsBIM*40J9%LXqSJh~SzTX6IeZ;(a25&WZ-4wh9m_{#niFI`sc~UjtcZ0bb%y>mWOFm4U&$@ajcy-{_f!9;P%Xk^b z`CevSbn8%7#sZ!NyaWYL{R;f!71q^T!82umnE_@W1+xOY3h??Wc$%d+?X#41=@q=m z;7tavpMtjmyba*>SMVCZYXI*q1#ff#tX068Tmux$VlayfSl2)W&k3Fryg>?{{#CRY zud=Se3Z5A}GkA##UL|;y;0;mm3YNiVma(p(BF|%f^>UbIIqMpx2$&CEK6t|wJSTWg z@a|Ud^shmg*I3sG1uq}GeDLm3@WS7~3icbU%b?&jGZo>KL=o#sQZRE?!ZTO0u4DzT z2D}>ZMk;vgIqXt$tSd#q%Pxjv7PGGZDR`N0Vy)^;)^)Ff$E;#_W)q=GdwC|w(c!zb}ui#~Ymjzy$g2%4Ky470N^?<}P z!DF%T38oRu2NeNpz^egojDk1%T{z9VtSeo?+XCJe@E%g|bn9@sWF6}otKj8>mk-{< z3SQkhGz@iMW+<46@1e7Kk99qw;8lQE0p2(TubBl!XJK9A6}$rQ3c#D7;8lWG3Era$ zUPcLOT?y-&Xi_lOg1HvVNeZ6sedOeQ)-_qd%K|S8yvGzg$A?%?{E&4`QScHz!rJyn ztZS-*R|#Gvct#Ho?Z1H^{xP;hK4x9h6ag23w+K91C6gPKTJUPYo1x%kY(P#nu&zu6 z&jFqTyqOAK!Y5GX6V^3L!CU1^|z{>&e zNd?ado)f&;3Z8ir+J#N5D_g;<0!NGFa*q@)f+aZ!oU-hIPHH;H?L5J$SEp zc`$#%Zg}Qy*0t2jH1KPY$XX;)px|ZfK*Bp%*Q*L%DR`yeEmQCkVXZ`1Yq^4#i!^eP z#tH>5{#$Iio4#dTuPK-c8y!w0A^{#@q z=n#D25bIi};1wT1j*qae_Y}NEM-lF*iFH{N%=9XFbrtI>QSi#aD+lj=1uyOxc3Y0I zt`8Kvs^e%>j?qJcQKj;FTh7DdJicJpD=3_mixvOu@?qFBiPc3f^w;cAv!f?+XPp;S>@+#k#gA zc)8%^g7>9@mw6gFInBDZDtJzWb0XX}1y8zv!@9~9yi&w1MO>T6(}aivkO@wh)w%NV zo+fEWh_$9Z<~l<4+EY+(&kh@IgTTOf*kRTe8=Yrbk7iixYJGRHq2 zsZc(*M6C&Dv3}-BCJV`AH6K<|j)WR4`ZDPoKa6nwg)mIhe^gVuPm#bDea{eNa|jGOYQY#-&Q;p zGnD(^6CayqzKpwcIQoE-hr-mC6HDS-(dUEIK^XrB(do<~^$y%X*oi}9Q|cYqM4$Qw z?J8PcR_k%BCLL@4L0J0_>W@v#4lgTrn$Io4Y8Kul1X1|>7cBOUID(41Fo>z+e+g8N zt;A7^N^bU(q4#Zjxvee_Cs9{Ie%Z@r+e(`X^1|^{WP2aHzn3tYQ(+c7U3=bYzgCJd zIPUewYjNg56Q-qu)&^b=jrH8lC)>pbyb*?D^-?|tfIA@QD)O-(H@gx`E+HQm#G73g zU*~Q<8KLkHxkP1S?9Qi4c66dm@&>K6TPqqWHc8sAy&NW23i`5!ydRu`Y^Ma_1kLj@ z&n@J6@1lJqCjas4I6GuzCL8r-<(Brw0OVKyKVJ>Grt)nW)A1WwkgVLZ`8}~>ylNtq z8y#I?ggM~o8l@)LZAsFz>j3ZIEkjpfc~ zcklmfO5-!7>N`Z<{u0N25|P#cIc<)dK7XOo-XC`(6E)#l+|5m)Pha5pN2a<}bNt6G zm7mqROEv?)2)?l>$SwSJ-7So$apEl78QVy{ASe*TeKbcmB08ngxA~1~quj^$mw)3+ zbT}P??6?ndh+`K=47sfMs??pLCn}=<#I;@=X*lp7VzY|a>O-tP0A4{VnBJ3xh^La} zM%SPIt|e}v_B%NQz6?YjDmrK|ZeTFN^RgsQ6E27JC(8j@R}Lb?qtd~n+k|B(gx$$9 zYnIRzT)F}4J2G*71h@JrovF)6s)-&)6Z?Rsw8|0%xrMd=jM6(Fuea(Hxx1MxyDME= zi)0$GmMYZ|fB72;NqTz&H#n!g>OJnEoPo{b)pTZbdCuK2tKnFy;aKDUktNUpl4Who zaLMLy$$8wbIeksd$9UhOYxUGdoX_fj=2vb>)}tj^AGC5BBdpAmxj0u{CtokK*HNQb zu{;NVFFv5NkBl+H!FQj~*}K^C@U^_^pa2k+qYB4l-9ndt`XhuHO=k|iOR0%v<%FpZ zmJ`5!1(K}`iscOqBaBldJh6_>o6*ry7;V|qFacplW!pnucKb(?&UAzh%>(3g8F={TCF$Z5>3xW+M-1V zKN+S90FC5xTLgk0x0!JRp`Umvm~Os)rAXtP_r6;QT|P7kEtfwG^%FJ0T1qNNOIi7% zTCLIGDN!>_8(JD+sG@u|;=p()h5D_X^_z@uuE0+@+_(?!RGR?2K5M#G}rr=67m(4Q4o( zovsZvuALTc%z`ch_8626C{-)X9jaBZnR6TsZ_yxLn|++yxggTC(7qU=dZ3Ko9Cn>}7q?4tB~C6LL2uI# zjJaO0TbL*&N2jJuVsd6AXSt;*QgaudY1c$*X~y7rKgVUj-!m>F)VQU8xyKhnt!b$pqn|d5 z29HaId-*u8PM2ZuS4cTrK>9W#t%dIjyg}qI`NDfc?l5pz_acotB5w|rifsz6Le4?4 zNv(7n?vv+wo22m!otyo)#!?T%=tE-pd(l|lC7DLF%wVr&CW|)_A1hGncsN3C2FjDVMqwWJ(Anm^z8`6c<7FOT*!;mSz<`@_w9Y0WrWXV z?o_q0k|oR?!DtqmP;@tcU_!ez@(gtEKPcybt6_%KA&ijswCpo(;geeVX4fI{%H$7A zA4Z#n>zp7mXKzC+8N%dGCzAAl|H8w6u|Dn&9)zWy9Uk{Mfz|s_w?@1Xerq zFG?x9_$(-u)$$C|2v(>R>Q$+Kt*IUkeph3i5WM1UUs=+9GdchMs(-*@w~+W(qg+A4 zJF*NbpGALdvHa~wZ(yAvJ6P*pAoY_fZt z=+XHy4>PA4cqPAlSiJC>@rqX%TwQ~ECXHLWvcF24OM+@C-ntUEZx0w3)c?fLf!W?U;4&Yh5r3ATF3mBSodqG z$A>lOYFE9r4Q^*?^lstFKjn-ySlWnPa@XNjeE)$mH=t0OpNi9nc+WtW)5al!;!zFmKxdNAeLs2{G|B%#8qE!NEM)>fs z|1$ep?NN3!x5?Db)LT~Xj@|SE#B*SPnWvck9Uml>!61~uLX<(>P)0Kwent1dtP>ec z*G414Z)|cEN#?h-3;^vjiIXDwus2qfp7J#}vFGIGX4E-qZboBKLmKyy>kdT{STRsc zl6`O0aO_=hVR`a)9WDFymKd8Tr2lc2Zn97#VbY2>soUqbfoWq8*5exJWh_6WXaYfG zXlcga7VJG2>z$ZIGg4vGsHZM{0uFE41AM0qvUuYmEQ z0IPi`9A?_%EDV`gk_@NVHc)by$g>vv|KKp+520y=)kZ6uGZp2DX6ZW&!hF+=iDBZ1KEki@uA7$mR8avBgd!H+$N#;|zkbeF z=JoaXULB@}262^2@|m$-Gu(M{zM5;jG_p&>U6K(doT(J6XhprOQ@N)n?ac8nhc%&7 zrb4H;{OHs$ST347>okINGOhFIbd#5Kntq#3-wswR9o%u~5~9#>xE~GIHP*0mlY`~6 z&vNY2h$$%^9oKtwRNtoK?Ej>r^;uuZrhG>&+t6f%TE3Rif5TXyh~7<%ZtCzKq8k;_ zS6;l`udWR8mEoOK87j$YAue>cm9ld1Kg4gV&}I7pv5jB5%?*MRx0bqd%@R;8hBI8fUB5Kx<9~KYQmegu3Z;1%OR;ja zm9Gsl$x%k>8GH_P$Up->8hIWaI!3R0+%0@~ipION+Iipyf6?zLHrrr_6Q>J{5}(p$Lw<=yRP`8$J*cs16>& z%Bo1GD13K{)mmIS2*s_pP?f$=ydRJY1OmbrnP?CXO6JX>0U)We(H?n4mUqly63(8K zrxd}Wi9;6au{`2G5&D=0u4Q==vDi0bx?(|LSVBuM4Bl~4E{?M&$tLF(`K(0WTBNTE z1opuFWW7-~zvVt@A~+r8BhQlXsW~kzYh?FMRov`<&5J5+w7MesjYE7EV{-4l5!u@# z!_UMZA6Ke<^^)oYhAnSIdQMZ^cq7u|i7YlooE|YYtk%Yvo2jE-mk>823g|Q~MJuxE)22nRUG-Tc_2e+h5le!PUy) zYUQZ+<7?!vC@re7psW_ZQ0Q57ukS}Srx2y|sFq4+&q4Zhmr6ZWTSyLy#g$1FG`Ew# zp34ng*}-%WVh=)W3^wtl4`AI}LoP7t1vwZ^^VqV7%J6N(ib{JSwhcNWd(sDZ+k8-o z1lnm0d@bbELe7n!sUFZrnPO|G9(3`_f$M&OSzb7)Husi@8}c07lATWW?H zZ(OIe3gA;(ePh$%D|~W6GeYW2Z&NJH|B3vDrhlt`BEMO^P_3htPWrVxN2Sp|4=twy z-ybKd$#X9)ck#`ps?ubx^IKhlxAv0CDT2HItw~MR zt#DPf6~4qJ9L^GNqq*^K?f8`6`&A zsujE&rtocTmnah1e?m6Jg%f0oi@98*r59ip-`0>3$93z;I)htTB%A&)|0xO`}!K}2DwU!KT9BYLyVs;9xsPOoY= z=AS-{W)ythEbc1)yDb;B#!c$hXONXvifj(@W^Id^nH~ zM{8x%ubVUwEZB6nf(p^hCwWGBw9GZDr#V_Y1+}NzjD=AP zoZAZ5uJp98&v2@@!~7h2!$nYJ(AjzyGFULf=PcH0*;$TNld~Lu?rsbnC1+{8>Fyh? z#Ipf>JbUz(it?CGs!4dcT6T|5tI0h+d#CI@8v9?QYfHBFx zR;fZ3pL)S6FGl3keO6L=v(rt?PWR`cy%m4V4^;7w+Roxv66fK=ZuAAUDi$ZB@rhP% zv-*%{m*a%X*FwncD%V@?Hl%%y|I0?jv21ZGW}qjJZ~kb-Cj;?qU*xi*XY=KqN{qTI zX`_OgDEc6>v;k8K-D;J(c~pDJC6B*wC_-F29?@G~h87jOeUYZ4XDM7>+g+0Fo4CJN zN%MYvcyD>U{eQ{Uqf)kP@lw&X_hjpb1YfouK(^-i$<}pb>$;z8wYV)?yAu9mwt^Jd z(u>(Ltxk}$b>~9}r)Jac22C7%I~-J#M|g6%?zq(+33qa$64#@LN=I&+i@h`>Y#AaK zioD!DiL~$KZ4&P^<+jYGF~%c|CoSV~X^gS^?CoQWZVAdU27TDQ={@Hsxu@1eJ+!a8 zR95lF9pW5)#o1dmzSv8-MsO#o14ycArAO-JW0KTyw@I}%l6t2Vt(#BYe!$S^NyBkW z+S-WorJ?rJfTdiU_rjv3!GgaI=irmHl4wfsNLq1BTBoQNZneR~y%e^+y&~OGk5)rl zd5`3PAeEGIOp(yb=Y4PhleMW%asHF|kl`(Jg{p2+p$&k-(c+<%@HV)k(Z(&@bBr2p znz3gdqlSAXR!m;KEjx8R71?39x)Qag%kgI>`J6+PQ3FQwwA#JYRJafD9#{Z!FM^D^d z3Tlt?Sw7{BP~HgTpY|%hT2%gRDF4-MTmQN{D4*$3ezhOvul4x9Ti)PD`S-g@E)+1t zYxx2wUjXGpy~_6&mA?zhkH1a%?L9bWNq7^cznLYOzP}&si@n;@54N;t%A4FWJduTO zlk*dV%Yr{Qi;|3hn z3z~1X@6*w<%1DC>9T&EKSgRsB3J`a^A0kBRh?X9n9tV0D?O{He9c+?WsBnRY&erQz{3qKRvZ`(JJG z`yfZ?951yGwj&P2+CEQtC**;dN(EYIV{H9xDm^=n(ew`Uysq&r;UiQ~jDcfg2>=MQPw#e-de$&_(is z^23!F>e1x~TDPAKCE7y?&$1fUZ>1{`&+U>|@{8LB^2Kc_d3gr*i1YToe_D4%gYHkI zRxdHMTIsn*^pU7ikVmCiP>B{U4xGMSaDq~>!nFTp*_>He6gz#ZwSxUwDWoLV1-Gb1%Ztak(;J$anRgH+J@1k9Q>B#25q>0DNKzBSgtIeg5Y{!tBWk@z zl-iG|C+{HYb4gSykEppGQAbYQZu$Xt5S1&6GF8V&rb_gPTI)yD&8`afVCZB*_#IAZ zB+aBDjKTg84SHw!PHB{QQd3px?7!18wn_XXGVMG}K=pa+GkgV`HSdgiN6#P&>+Nwr~IwodZ9gNLMwr9XMQ3$Kh*`rVzUTE}N_2^%|^`g=sLJY*H;B!AW1 zs_mn3@*I$M+x`k{dZx2(Mo)auQhD|6O>kIT#*@A(UD*O(*!P41N9}1PU*ZmLY^Ocj zS-PK>awyT&`g&*#BV6smX#Qcjn;Scr8p6;&hvnfyq+7Tf+DgCbGyRYiMKfbgPu@^3 zr$N^@Mo~VXJX~|z90F%(@lrC>2&AAx4;m~wJvLEavikV zXXqGVZ7idCL_FEJ!#hy+?)8Wt4R3t1F`=D`PiV&orQ>C1!LJ111l3`&QN4Pw5|+9) zI{|%u;ASVrgLFm5&w)(6XM1x(y8wPdJG!AGjX`j+Od)s!&PGbB>fdww%X;D5V937= zyVg#VW&~TyXfKyb*vz)QJuvs+=D5tE2Oajik@5N%M$;E7>6pZpxrH83_OKsik1Doe zi=k_ABVDhJ^BIB8aZ0+5I>;U0+_MQ~BRtC1NXjOD;aAy-U&PJW@|~pYlU`+ihq9gj z56V_S*{Vj$E>I}D_B&bGogDu~uP(RSN*>P@8YROX;redr>d&ULw!{Y~;MgP$^9s3D zTY5Ax+8Kmvsh>o&c`I6K-~T!wMVrV4e%ZsH>=9qa_jDX^-~+y+oup!<$}# znBJ>MZzK2E*6vLhE(6KYwTS}m&hNN!nm$MctCe;N=jjHB) zZtK>BLtU66r4?JvE!Y<4&yt^Ri|f9^n^-my%SK|WyopupCp&(Xg%j-DpWB+sSAi$3 z3htiruBK+Fklah#E*OqJJBg6-40kpAkQy;qNoWS9kjFr*4II&&KbkZe>E& z0bMHOO0sE>yHMQc_N7pUP)kP?K5lQ!>N&!K;hPTo;7_A-`!^+aLy6rHZJ|WnV?HJ7 z_sOkTyZzLPMPwB~32CF4OSL83Q;TS|5mK+Z`e6glMB;NHkv;hh_=$&9>{3+hlZ%eu zN7g*^xbzMmN{GaV61XpI1EVEzj8SEzJ!x9_iSs2Aw7pM|C%vKDyZI}|`P<_=ciZQ{ zH!7tHkpdM`BHe=CoAe``ZF^K3kLhq_&SM|$-1Z)-zqr=+_MYB{x_i2ImbG7b2`3wh zW=G=JeaHIj^7CG~tzg7#sUE+r4-$8@Wm~Zy(6Agod|<@)os9SfHe_yzyo}zfbTalo zOi;Nh5}%Vb;&ZYn@zT9i_G&yG-b-bFWEOqY;YF`i3U3it4RO_x9Z+~Llek-?y}XwS zk)(aPmkRMSQQCN~v^FKCu_e;FgHp%q5PCiG8g!iGN9d%zG!h`8=Djo$$Pk{+Fek(eo`m~X)=ET_!G3T`~wW8B9nXtA?@Mfx6h!C6xJ=A+~aY2lMo;pEO1r? zL~YRGTRoU`9oj=Vr=^iU_E65RU=>HY!$-sacCdhiq`~8E#M+HmU+f`|p{!N!p^9)~ z=A9=1T+LUp;}$@hK{`rk@Nh~Pt5gu#0Ff_x<{Q}#JH8=1IHu#r=-W$nSoV+74lI7FoYU-zm2IKl zouL1BTV#2)l5HWz$JQ?Q{_eK^Y_ex}e2?q9d^R}?4bMWuAg_kKL=6+B<2Ts3$Zwmn zNyB)bO?n>YGQag}lQrMQbu8XR--IF0)O5f{#5%Zz_jbt^+0Fg@ZF{ZMa1>c?t0bB| zO;wWTp@O2}Fz$)>m+3Wo;<|@J1!+X7hYEVA(Ald($}TFD|4nlXPjKhaoM@08QZKw23{%eGU_?x~%W)@ih&ftB3my?%!nzwI65FB|>$#dRO; z6`c#wxe)!ZS9Go@dLcx=%Prp5)BrMNoK(kixxM@R4vcT^i;F+wkaMvbNv%dwzdPhy zv=x&ILsEl(;8OQD)x@59L`tje4_xtnza~4dKd$>CZ(>`J*cK$V)SFnTgG{z@DuyRq zy8}(-E7y}&DL3_i-+aAwAg+6aH>pY_Rf(ixyh+_FCN&C4&F1(6O?g6FPg3_D;u5~| zo2}{J#l>59$TqA;TJ=cFzC*U5a|dOMpMq~U9O6Fzu3HlmnbHi&hEDG9@BHSg&%t=r zXm0$$hZRFhd4z%AWr)J>GDOi}yM2bt#gBwTH)+Wrc}FEQ899Z1x=J5~+7U(Pkzf1X zHwIE`Y+A&`yR;~S-N2{gDLpD3PZ@a1h%(}7GM*-@qPU*lZ!u*e#mp#aoSu0fUE2J6 zvs!P(sDM5rBY)Llh*7O>!QRI&iV6lju{{Wb8FLhVb~5V8?YN5!dHGR2@g@CL6F1wY zm0z;b2!Hn1)Wy*#r0{DRr4&8Z4yQB9kb<*}()ng{y}c{~mpP?~w6sXe8eb=ECv^WZjbM)~fajAm_fbDVM!!3;6>_9dpBbdELDD)b^A{!x! z%lyG_L$vOP1l8-@cR$>3up%96)I($#-%U7d3x3>QPQeKiNM^3blVoPbo5C04DnnGJ zeUJiz;qZGGFga*@Py7%8EkafUS4RywciMfaf+^RRCF_TtJ>_PEH%6JoFWV$-QtOR$ z^cKU}ddR7VsVU}k8=3jj3hAfz+`f#210IMx4?L!rvJFaqjft7Jk1n z#6$=14Cg+KQ{m#ylv~KHkT+i6t*}7ex=A02@`m8ZqZyw7GQ$!>q0!aHjri73pGHff z^e#bs=ljNvAv%yZL`xbQy&spM-z{u63KsOFdbbJ3l`&6+w@k0FBH0;}X5-B1H1QKZ zwvBZ1g}yA}J3N;U#q$+nCD&nu^Y{9MhT#meRBsY1Dj{>oq$J3k2PI$s+=*KdjHVSk z4QnN&+_Y5_l^$q0kRT>cM^Za&l9KPDNZx|vEsErw*ej4#_*9|75j!;^l&!zHXO8yu z*I8^mnxI<32}cK~Rz+jB7kwB>{<&Z2)E)3SHXhu|8_97cw>IKQa=IKmNls_>Ivtl; z<=?HV;saRx^h9;fd+U%`U9?+R)+nj=;+Nm5HdcBQD)c5qiAxDteF+s-hjVGi!u@4z z{;~LwkG4xkc|!Jc>yP9y;N^!@X zFvqriJ|n3$uX>xkJDBG9@ht=6I%18XqtxoXp5ny8KDSWwIW-;KH`T*us8L#vDyDRa zvD}Uy{WeN}{TQ#xmG0LM0iJyu8e#4Bz1AR1sl2c&>HY4)U7?-@vBD(LUWJlGg_5DrEbe@bU+c%7j0>sUDxHHH z@GX~qGOmgFTh0AY7mJ?kx7_NJe(T1elX2aj-zpDGYM@aKGEKiea}E#$ZK%I7{hGx1*p z>KX~uH4<11fyEwyu@G23LROed6XL>+^YL+I`gvSUB!)Z(m*CdY5-wjzFdbZik<$|C zmpI!N71Dk9uDp}@tGQP?_$A`)H+i4f^Z%!ts42$9gxksou4L}cU$5&sO02_vUu zL?Gtd%sDi2giJ|EP|1-oKh8NnWX>_?4AhMLI>#J2GQ!{Uye~Jjwe9nG{J!5F9iQiQ z-tY78bzbN1`^|m(sZX*tOj6&3wQ=1xTFJGO)Hh*6kV6c)YLfaUY&3GTAy-UN--Jy@ zPB!FClhik1GmtY3xpb2HCTt#Zo*@@a3bIE(*KtHy}3{ za`q$}@^R$jhMX};Z9UqM+YC8%lIy*-^5#!NJQ52}-tk-cP-~ociV!JwAKQ zs<6<6D-XUjaZ1062QhW~q61$)TUg|0pWL+200DmPxCF<8mp-}a>LDZe@UeH4`dm0) z&z;JX0=s%r@QX|Ln-gh#l5M*b5a9H>Y~+ImmyI+%T9{0iao!m8S@8J&{BP@L2L@8X z07?@;Y1|L=pQ&7Rrspx z<$ic;@z&bQqdL6voA5R4H*;New3?6xoYlJpBPtH$Mq(0 zH9M)7LbY(Ug{%Mg+VxtFZ*MABpHBKKS6jK-%GHjqUGLWn>CNWq%%nE1wsE!1e)Fyi zfBaf~#*#hQR|{8iJ;KJ6v|;YRr$mY0U5L@J>@3TGrAqu-PJ9UENmR z#HYiXXvtemkvA0w`FOT8L|i(@cdpOfl;yv?JSM|vvpz%1)Ss~NNAuD(zwy(3WBL8ZvH#^rBmCj-xx&jQU$^Hw ztD@#T^)2iEKQSJ_Go2bnLDw;d>j9DaYYp{F{t?@R)t4CkMmY@0b+^Upfz+S&!2WBf zu>Zcc{M-Jz;pT-`zUsed;TOHsPvX-mFS+BAj9-=?!UDzlpsfE#-}xKxuhe7O{=(ck zytdqCH!avrE$XWst2SWebN}Jrr^1*1@ndt(SW|n?*m84s(G1@}7D0jPZ{^oUcOD$c zYrEotXM&9Z!p;@DaYckHUGL|fWs_Mp88OtC+Ovqk{nkr&s_T4@kt;#vpLCBjXJAJe zIpw|G{w{CemjNzs(l_3{E59s~_c?D?ZL^j&Nk||wav;C6E7a;Lh-?}~1%(5GoKT?s|-I$3mkD!1S+%n;6jRa{sunn>tRaTXSb(df~6 z|DE&sSvs8z@Y>+_a_I!M3b}}U(U6NKs8vWea89ZECJ$jyel+MzVlhTLYz zc@CwSF61slUg}Vqv5=nSUKKynp)})*>}$yB4y73fvcr()I?&9M?Xd*J8Ue`;rJ32t zvkf`Xp)`|;oN36h4yBm_W-lyzr>sF+koudMWem z(j3bZs-6)$ZF=rDe#HF2rh_r<_HE*T)lhh=hqW{z`iRQ+JMcf__w z2)QlvLiFVRQ2pcp8I^ErKDO5n#{}~=R^!<7UXDHQRrCELp?!I#KgjC_K~Gp_+Mci^ zc|UPDDPmjU5nCY@&Y{9N`fN?wBaI?``_36E*V}VC5~J22o)4)XKRf`b9APB6u+69wXG&Qw=h4LJdhHWBTjv)RWpy+>!e5r874*et#kY zM(Fe0mB9Vmx8oGBF^8PT_+{C4W<6_a3_3UwNuetMv^o0CKM zOmc|cGf)QR-)@i}#(cL13K`3bs8&&k`t$8|y=oDy9-Hj$RR&xb{q1~5l>Kw*zyBSz z^t^A|K>i|}RrMxveO9fgiRG^6pG==EbEz+ZFU`8)cKgPr#A*mPA)%d@fu+=#>{dspeexmDn){Xt8e7N)muicayA1lq}rdbWgZX^7=(^PNg_3(k8 zCSIa(-l4|Qdu^_Cl%#$I*qO6u+4n0<4okXqz`%UdV8@Ci*9BYojM{JfWiu*{ah{<< zoElJiarxPKbNQa}!UDU};< z7|&G2>*O!G#Z+t3zfg88rF1odvyiTaa2C=jsmz^s=`~jA8+L^vT``K}47HU#l61`| zl9eL4((5#e)EDoDRmSBP=eV~Q=QLC(4VU6C&FMD$8}M()iP)yXH{suulWX|5;NOzd zfZu7Axr~MbuuEq;BPf;AXDhpT;qxyn4p*v_XI26!s#KkRBUPEBHw}^g!4+Jn$eCGo zhA(m_;B!is54P>MdyKZV?;rXE>pr?y?ReelA;Zk8@vk1Q$9l+Ab2GiNdAu?Ci2K;v z+}A((XrW9dp=vTY8l)y4Uu0iHZVFP9PXuy=AvXl6$tMvx(U5C{)Z~+joNCBbL2B|@ zioDd2D}vPIQ-oY($eV(ge4cFILckUypfpHLKDEfThFlb+CZA^HW8)kJdX*l|88Oxnm1a9Y!8 z6T|R1+fLb?(;htWIj!N&vd{GQN6Ha;%~0v-pG-2zjQmNx>S#v&oYJ!10!G1O53%s! zTBbv98!G*R3-A|kpQG2g>EJIUdn?pv`A{^k$nu`n&FJ<`+_TA{2YE7(H{x$}=+ix= zpScx(t3%K6l!0!R32LbRnWr4>=7rZw|G-n;mtTnqRrc9+75=I|yRN}s(`VPU_-p&@ zx(!x($18#NU_`vHezi*94~vWQDu%u(4=TTc&hl(Ig*AAYbF{bBPPi9hzZ#GJ^5jn zVpzWsN>W0k1~AO{$7%UEUV5y%mSd~~cb^+e=ELv9+Y zOg$Aj)sP#;x=dZoiy!v=Hi#Nol%^}WuQH7Hjc&ST)!duRs`|sjq+7^$X>G8fHD^OR zhZ?8W_3UBNEA+c!{GY$6wsFO1di0TGS4-)8hRJ}1PD8PksW-ly#$+pda2qcx{LR^Z zrF^NxnXc*-PLmm0re=#*q6d?*)1W9zvWZrItuNNHZ({Ygx*k1T`r5u-Mm=-5beNB# zh@)Zp_Th4_`6B*{VY)U#t}^$8@d9(0UNk~x=Qm-lO?_tHjK8_h?2qC<+GqC1@gMIq z`xg8yeP(|O|EWH+Z^hqgn0-R~S^Q^na&PMbYRGryrONK~VdY~lyx6H!>CD=xd}r29 zzcXuni?>X%IkQmXi8BM;eWVQO3sq|D3ym8o<3gPosPV{|vKo(^>8kk7R8<^jb@T%x zWmrIeoPTqt%}0isofX$(ePm=`EOkEN%t=-6+wt}7KC<|KcjwGe{pqh6B^_?Q_cH_O z2S>>to5Syy?cw+9yWHeG`QaS8h4**nrQEgje$}^n$EeO+j9hHU*T<;NT!ma^$XCax z&fJLHXvmkwsLtGi++xV*#;DGG5&5DapB|$+b2oCgA)gqdI&-p>0$9UUhDXMz&TL1v z8}gwssxyZpha2*~F{(4iBgY%^t}&`J&qbbV$UDZkI

em)scORPNBShKeGK4@(}W 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 JWw~;|{{e*q6b=9Y diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h index 4e7e0d9ff..b2337d03b 100755 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h @@ -61,7 +61,7 @@ int testFpga(); int testBus(); #endif -#ifdef GOTTHARDD +#if defined(GOTTHARDD) || ((defined(EIGERD) || defined(JUNGFRAUD)) && defined(VIRTUAL)) void setTestImageMode(int ival); int getTestImageMode(); #endif diff --git a/slsDetectorServers/slsDetectorServer/src/ASIC_Driver.c b/slsDetectorServers/slsDetectorServer/src/ASIC_Driver.c index c5f5acc60..a83c29f3b 100755 --- a/slsDetectorServers/slsDetectorServer/src/ASIC_Driver.c +++ b/slsDetectorServers/slsDetectorServer/src/ASIC_Driver.c @@ -26,8 +26,12 @@ void ASIC_Driver_SetDefines(char* driverfname) { } int ASIC_Driver_Set (int index, int length, char* buffer) { + char temp[20]; + memset(temp, 0, sizeof(temp)); + sprintf(temp, "%d", index + 1); char fname[MAX_STR_LENGTH]; - sprintf(fname, "%s%d", ASIC_Driver_DriverFileName, index + 1); + strcpy(fname, ASIC_Driver_DriverFileName); + strcat(fname, temp); LOG(logDEBUG2, ("\t[chip index: %d, length: %d, fname: %s]\n", index, length, fname)); { LOG(logDEBUG2, ("\t[values: \n")); diff --git a/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c b/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c index 96ab3261e..26fc6b657 100755 --- a/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c +++ b/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c @@ -73,7 +73,11 @@ int LTC2620_D_SetDACValue (int dacnum, int val, int mV, char* dacname, int* dacv LOG(logINFO, ("Setting DAC %2d [%-12s] : %d dac (%d mV)\n",dacnum, dacname, *dacval, dacmV)); char fname[MAX_STR_LENGTH]; - sprintf(fname, "%s%d", LTC2620_D_DriverFileName, dacnum); + strcpy(fname, LTC2620_D_DriverFileName); + char temp[20]; + memset(temp, 0, sizeof(temp)); + sprintf(temp, "%d", dacnum); + strcat(fname, temp); LOG(logDEBUG1, ("fname %s\n",fname)); //open file diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c index 76e5bc705..301b0e51b 100755 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c @@ -101,17 +101,25 @@ int main(int argc, char *argv[]){ } #ifdef STOP_SERVER - char cmd[100]; - memset(cmd, 0, 100); + char cmd[MAX_STR_LENGTH]; + memset(cmd, 0, MAX_STR_LENGTH); #endif if (isControlServer) { LOG(logINFO, ("Opening control server on port %d \n", portno)); #ifdef STOP_SERVER { int i; - for (i = 0; i < argc; ++i) - sprintf(cmd, "%s %s", cmd, argv[i]); - sprintf(cmd,"%s -stopserver -port %d &", cmd, portno + 1); + for (i = 0; i < argc; ++i) { + if (i > 0) { + strcat(cmd, " "); + } + strcat(cmd, argv[i]); + } + char temp[50]; + memset(temp, 0, sizeof(temp)); + sprintf(temp, " -stopserver -port %d &", portno + 1); + strcat(cmd, temp); + LOG(logDEBUG1, ("Command to start stop server:%s\n", cmd)); system(cmd); } diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index fa3fb4ab8..c151d6d76 100755 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -776,10 +776,10 @@ int set_image_test_mode(int file_des) { return printSocketReadError(); LOG(logDEBUG1, ("Setting image test mode to \n", arg)); -#ifndef GOTTHARDD - functionNotImplemented(); -#else +#if defined(GOTTHARDD) || ((defined(EIGERD) || defined(JUNGFRAUD)) && defined(VIRTUAL)) setTestImageMode(arg); +#else + functionNotImplemented(); #endif return Server_SendResult(file_des, INT32, UPDATE, NULL, 0); } @@ -790,11 +790,11 @@ int get_image_test_mode(int file_des) { int retval = -1; LOG(logDEBUG1, ("Getting image test mode\n")); -#ifndef GOTTHARDD - functionNotImplemented(); -#else +#if defined(GOTTHARDD) || ((defined(EIGERD) || defined(JUNGFRAUD)) && defined(VIRTUAL)) retval = getTestImageMode(); LOG(logDEBUG1, ("image test mode retval: %d\n", retval)); +#else + functionNotImplemented(); #endif return Server_SendResult(file_des, INT32, UPDATE, &retval, sizeof(retval)); } @@ -1844,7 +1844,8 @@ int start_acquisition(int file_des) { #endif if (configured == FAIL) { ret = FAIL; - sprintf(mess, "Could not start acquisition because %s\n", configureMessage); + strcpy(mess, "Could not start acquisition because "); + strcat(mess, configureMessage); LOG(logERROR,(mess)); } else { ret = startStateMachine(); @@ -1979,7 +1980,8 @@ int start_and_read_all(int file_des) { #endif if (configured == FAIL) { ret = FAIL; - sprintf(mess, "Could not start acquisition because %s\n", configureMessage); + strcpy(mess, "Could not start acquisition because "); + strcat(mess, configureMessage); LOG(logERROR,(mess)); } else { ret = startStateMachine(); @@ -4352,7 +4354,11 @@ int copy_detector_server(int file_des) { memset(cmd, 0, MAX_STR_LENGTH); // copy server - sprintf(cmd, "tftp %s -r %s -g", hostname, sname); + strcpy(cmd, "tftp "); + strcat(cmd, hostname); + strcat(cmd, " -r "); + strcat(cmd, sname); + strcat(cmd, " -g"); int success = executeCommand(cmd, retvals, logDEBUG1); if (success == FAIL) { ret = FAIL; @@ -4364,7 +4370,8 @@ int copy_detector_server(int file_des) { else { LOG(logINFO, ("Server copied successfully\n")); // give permissions - sprintf(cmd, "chmod 777 %s", sname); + strcpy(cmd, "chmod 777 "); + strcat(cmd, sname); executeCommand(cmd, retvals, logDEBUG1); // edit /etc/inittab @@ -4384,7 +4391,9 @@ int copy_detector_server(int file_des) { LOG(logINFO, ("Deleted all lines containing DetectorServer in /etc/inittab\n")); // append line - sprintf(cmd, "echo \"ttyS0::respawn:/./%s\" >> /etc/inittab", sname); + strcpy(cmd, "echo \"ttyS0::respawn:/./"); + strcat(cmd, sname); + strcat(cmd, "\" >> /etc/inittab"); executeCommand(cmd, retvals, logDEBUG1); LOG(logINFO, ("/etc/inittab modified to have %s\n", sname)); diff --git a/slsDetectorSoftware/include/Detector.h b/slsDetectorSoftware/include/Detector.h index cc08a6ff9..692711507 100644 --- a/slsDetectorSoftware/include/Detector.h +++ b/slsDetectorSoftware/include/Detector.h @@ -5,6 +5,7 @@ #include #include #include +#include class detectorData; @@ -137,6 +138,16 @@ class Detector { void *), void *pArg); + /**[Eiger][Jungfrau] */ + bool getGapPixelsinCallback() const; + + /** + * [Eiger][Jungfrau] + * Only in client data call back + * Fills in gap pixels in data + */ + void setGapPixelsinCallback(const bool enable); + /************************************************** * * * Acquisition Parameters * @@ -255,12 +266,6 @@ class Detector { Result getHighVoltage(Positions pos = {}) const; - /** [Jungfrau][Mythen3][Gotthard2][Moench] */ - Result getPowerChip(Positions pos = {}) const; - - /** [Jungfrau][Mythen3][Gotthard2][Moench] */ - void setPowerChip(bool on, Positions pos = {}); - /** * [Gotthard] Options: 0, 90, 110, 120, 150, 180, 200 * [Jungfrau][CTB][Moench] Options: 0, 60 - 200 @@ -268,6 +273,21 @@ class Detector { */ void setHighVoltage(int value, Positions pos = {}); + /** [Jungfrau][Mythen3][Gotthard2][Moench] */ + Result getPowerChip(Positions pos = {}) const; + + /** [Jungfrau][Mythen3][Gotthard2][Moench] */ + void setPowerChip(bool on, Positions pos = {}); + + /** [Gotthard][Eiger virtual] */ + Result getImageTestMode(Positions pos = {}); + + /** [Gotthard] If 1, adds channel intensity with precalculated values. + * Default is 0 + * [Eiger virtual] If 1, pixels are saturated. If 0, increasing intensity + * Only for virtual servers */ + void setImageTestMode(const int value, Positions pos = {}); + /** * (Degrees) * [Gotthard] Options: TEMPERATURE_ADC, TEMPERATURE_FPGA @@ -694,16 +714,6 @@ class Detector { /** [Eiger] */ void loadTrimbits(const std::string &fname, Positions pos = {}); - /**[Eiger] */ - Result getRxAddGapPixels(Positions pos = {}) const; - - /** - * [Eiger] - * 4 bit mode not implemented in Receiver, but in client data call back - * Fills in gap pixels in data - */ - void setRxAddGapPixels(bool enable); - /** [Eiger] */ Result getParallelMode(Positions pos = {}) const; @@ -905,12 +915,6 @@ class Detector { void setExternalSignalFlags(defs::externalSignalFlag value, Positions pos = {}); - /** [Gotthard] */ - Result getImageTestMode(Positions pos = {}); - - /** [Gotthard] If 1, adds channel intensity with precalculated values. - * Default is 0 */ - void setImageTestMode(const int value, Positions pos = {}); /************************************************** * * @@ -1196,10 +1200,10 @@ class Detector { * ************************************************/ /** [Moench] */ - Result getAdditionalJsonHeader(Positions pos = {}) const; + Result> getAdditionalJsonHeader(Positions pos = {}) const; - /** [Moench] */ - void setAdditionalJsonHeader(const std::string &jsonheader, + /** [Moench] If empty, reset additional json header. Max 20 characters for each key/value */ + void setAdditionalJsonHeader(const std::map &jsonHeader, Positions pos = {}); /** [Moench] */ @@ -1207,12 +1211,11 @@ class Detector { Positions pos = {}) const; /** * [Moench] - * Sets the value for additional json header parameter if found, + * Sets the value for additional json header parameters if found, * else appends the parameter key and value - * The value cannot be empty + * If empty, deletes parameter. Max 20 characters for each key/value */ - void setAdditionalJsonParameter(const std::string &key, - const std::string &value, + void setAdditionalJsonParameter(const std::string &key, const std::string &value, Positions pos = {}); /** [Moench] TODO! How do we do this best??? Can be refactored to something diff --git a/slsDetectorSoftware/include/detectorData.h b/slsDetectorSoftware/include/detectorData.h index 528def82d..6e6b912e3 100755 --- a/slsDetectorSoftware/include/detectorData.h +++ b/slsDetectorSoftware/include/detectorData.h @@ -16,9 +16,10 @@ class detectorData { * @param dbytes number of bytes of image pointed to by cval pointer * @param dr dynamic range or bits per pixel * @param fIndex file index + * @param complete true if complete image, else missing packets */ - detectorData(double progress, std::string fname, int x, int y, char *d, int dbytes, int dr, uint64_t fIndex) : - progressIndex(progress), fileName(fname), fileIndex(fIndex), nx(x), ny(y), data(d), databytes(dbytes), dynamicRange(dr) {}; + detectorData(double progress, std::string fname, int x, int y, char *d, int dbytes, int dr, uint64_t fIndex, bool complete) : + progressIndex(progress), fileName(fname), fileIndex(fIndex), nx(x), ny(y), data(d), databytes(dbytes), dynamicRange(dr), completeImage(complete) {}; /** * Destructor @@ -55,4 +56,5 @@ class detectorData { char* data; int databytes; int dynamicRange; + bool completeImage; }; diff --git a/slsDetectorSoftware/src/CmdProxy.cpp b/slsDetectorSoftware/src/CmdProxy.cpp index e9d0a0e75..65f5043fc 100644 --- a/slsDetectorSoftware/src/CmdProxy.cpp +++ b/slsDetectorSoftware/src/CmdProxy.cpp @@ -1001,24 +1001,27 @@ std::string CmdProxy::GapPixels(int action) { std::ostringstream os; os << cmd << ' '; if (action == defs::HELP_ACTION) { - os << "[0, 1]\n\t[Eiger] Include Gap pixels in data file or data call " - "back. 4 bit mode gap pixels only ind ata call back." + os << "[0, 1]\n\t[Eiger][Jungfrau] Include Gap pixels only in data call back." << '\n'; } else if (action == defs::GET_ACTION) { + if (det_id != -1) { + throw sls::RuntimeError( + "Cannot get gap pixels at module level"); + } if (!args.empty()) { WrongNumberOfParameters(0); } - auto t = det->getRxAddGapPixels({det_id}); - os << OutString(t) << '\n'; + auto t = det->getGapPixelsinCallback(); + os << t << '\n'; } else if (action == defs::PUT_ACTION) { if (det_id != -1) { throw sls::RuntimeError( - "Cannot execute dynamic range at module level"); + "Cannot add gap pixels at module level"); } if (args.size() != 1) { WrongNumberOfParameters(1); } - det->setRxAddGapPixels(StringTo(args[0])); + det->setGapPixelsinCallback(StringTo(args[0])); os << args.front() << '\n'; } else { throw sls::RuntimeError("Unknown action"); @@ -1224,7 +1227,7 @@ std::string CmdProxy::Quad(int action) { } else if (action == defs::PUT_ACTION) { if (det_id != -1) { throw sls::RuntimeError( - "Cannot execute dynamic range at module level"); + "Cannot execute quad at module level"); } if (args.size() != 1) { WrongNumberOfParameters(1); @@ -1879,13 +1882,47 @@ std::string CmdProxy::PatternWaitTime(int action) { /* Moench */ +std::string CmdProxy::AdditionalJsonHeader(int action) { + std::ostringstream os; + os << cmd << ' '; + if (action == defs::HELP_ACTION) { + os << "[key1] [value1] [key2] [value2]...[keyn] [valuen]" + "\n\tAdditional json header to be streamed out from receiver via zmq. " + "Default is empty. Use only if to be processed by an intermediate user process " + "listening to receiver zmq packets. Empty value deletes header. " + << '\n'; + } else if (action == defs::GET_ACTION) { + if (args.size() != 0) { + WrongNumberOfParameters(0); + } + auto t = det->getAdditionalJsonHeader({det_id}); + os << OutString(t) << '\n'; + } else if (action == defs::PUT_ACTION) { + // arguments can be empty + std::map json; + for (size_t i = 0; i < args.size(); i = i + 2) { + // last value is empty + if (i + 1 >= args.size()) { + json[args[i]] = ""; + } else { + json[args[i]] = args[i + 1]; + } + } + det->setAdditionalJsonHeader(json, {det_id}); + os << sls::ToString(json) << '\n'; + } else { + throw sls::RuntimeError("Unknown action"); + } + return os.str(); +} + std::string CmdProxy::JsonParameter(int action) { std::ostringstream os; os << cmd << ' '; if (action == defs::HELP_ACTION) { os << "[key1] [value1]\n\tAdditional json header parameter streamed " - "out from receiver. If empty in a get, then no parameter found. " - "This is same as calling rx_jsonaddheader \"key\":\"value1\"." + "out from receiver. If not found in header, the pair is appended. " + "An empty values deletes parameter." << '\n'; } else if (action == defs::GET_ACTION) { if (args.size() != 1) { @@ -1894,11 +1931,21 @@ std::string CmdProxy::JsonParameter(int action) { auto t = det->getAdditionalJsonParameter(args[0], {det_id}); os << OutString(t) << '\n'; } else if (action == defs::PUT_ACTION) { - if (args.size() != 2) { - WrongNumberOfParameters(2); + switch (args.size()) { + case 1: + det->setAdditionalJsonParameter(args[0], "", {det_id}); + break; + case 2: + det->setAdditionalJsonParameter(args[0], args[1], {det_id}); + break; + default: + WrongNumberOfParameters(1); + } + if (args.size() == 1) { + os << args[0] << " deleted" << '\n'; + } else { + os << "{" << args[0] << ": " << args[1] << "}" << '\n'; } - det->setAdditionalJsonParameter(args[0], args[1], {det_id}); - os << sls::ToString(args) << '\n'; } else { throw sls::RuntimeError("Unknown action"); } diff --git a/slsDetectorSoftware/src/CmdProxy.h b/slsDetectorSoftware/src/CmdProxy.h index ef35f0db2..fe063e294 100644 --- a/slsDetectorSoftware/src/CmdProxy.h +++ b/slsDetectorSoftware/src/CmdProxy.h @@ -477,6 +477,7 @@ class CmdProxy { {"cycles", "triggers"}, {"cyclesl", "triggersl"}, {"clkdivider", "speed"}, + {"digitest", "imagetest"}, /** temperature */ /** dacs */ @@ -527,8 +528,6 @@ class CmdProxy { /* Jungfrau Specific */ /* Gotthard Specific */ - {"digitest", "imagetest"}, - /* Gotthard2 Specific */ /* Mythen3 Specific */ /* CTB Specific */ @@ -591,6 +590,7 @@ class CmdProxy { {"clkdiv", &CmdProxy::ClockDivider}, {"vhighvoltage", &CmdProxy::vhighvoltage}, {"powerchip", &CmdProxy::powerchip}, + {"imagetest", &CmdProxy::imagetest}, /** temperature */ {"temp_adc", &CmdProxy::temp_adc}, @@ -789,7 +789,6 @@ class CmdProxy { {"clearroi", &CmdProxy::ClearROI}, {"exptimel", &CmdProxy::exptimel}, {"extsig", &CmdProxy::extsig}, - {"imagetest", &CmdProxy::imagetest}, /* Gotthard2 Specific */ {"bursts", &CmdProxy::bursts}, @@ -867,7 +866,7 @@ class CmdProxy { {"patsetbit", &CmdProxy::patsetbit}, /* Moench */ - {"rx_jsonaddheader", &CmdProxy::rx_jsonaddheader}, + {"rx_jsonaddheader", &CmdProxy::AdditionalJsonHeader}, {"rx_jsonpara", &CmdProxy::JsonParameter}, {"emin", &CmdProxy::MinMaxEnergyThreshold}, {"emax", &CmdProxy::MinMaxEnergyThreshold}, @@ -980,6 +979,7 @@ class CmdProxy { std::string PatternWaitAddress(int action); std::string PatternWaitTime(int action); /* Moench */ + std::string AdditionalJsonHeader(int action); std::string JsonParameter(int action); std::string MinMaxEnergyThreshold(int action); /* Advanced */ @@ -1088,6 +1088,10 @@ class CmdProxy { "\n\t[Mythen3] If module not connected or wrong module, 1 will fail. By default, not powered on" "\n\t[Gotthard2] If module not connected or wrong module, 1 will fail. By default, powered on at server start up."); + INTEGER_COMMAND(imagetest, getImageTestMode, setImageTestMode, StringTo, + "[0, 1]\n\t[Gotthard] 1 adds channel intensity with precalculated values when taking an acquisition. Default is 0." + "\n\t[Eiger][Jungfrau] Only for Virtual servers. If 0, each pixel intensity incremented by 1. If 1, all pixels almost saturated."); + /** temperature */ GET_IND_COMMAND(temp_adc, getTemperature, slsDetectorDefs::TEMPERATURE_ADC, " °C", @@ -1582,9 +1586,6 @@ class CmdProxy { INTEGER_COMMAND(extsig, getExternalSignalFlags, setExternalSignalFlags, sls::StringTo, "[trigger_in_rising_edge|trigger_in_falling_edge]\n\t[Gotthard] External signal mode for trigger timing mode."); - INTEGER_COMMAND(imagetest, getImageTestMode, setImageTestMode, StringTo, - "[0, 1]\n\t[Gotthard] 1 adds channel intensity with precalculated values when taking an acquisition. Default is 0."); - /* Gotthard2 Specific */ INTEGER_COMMAND_NOID(bursts, getNumberOfBursts, setNumberOfBursts, StringTo, @@ -1719,9 +1720,6 @@ class CmdProxy { /* Moench */ - STRING_COMMAND(rx_jsonaddheader, getAdditionalJsonHeader, setAdditionalJsonHeader, - "[\\\"label1\\\":\\\"value1\\\"], [\\\"label2\\\":\\\"value2\\\"]\n\tAdditional json header to be streamd out from receiver via zmq. Default is empty. Use only if to be processed by an intermediate user process listening to receiver zmq packets."); - INTEGER_COMMAND(framemode, getFrameMode, setFrameMode, sls::StringTo, "[pedestal|newpedestal|flatfield|newflatfield]\n\t[Moench] Frame mode (soft setting) in processor."); diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index e2f2088c5..92e58fd05 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -167,6 +167,14 @@ void Detector::registerDataCallback(void (*func)(detectorData *, uint64_t, pimpl->registerDataCallback(func, pArg); } +bool Detector::getGapPixelsinCallback() const { + return pimpl->getGapPixelsinCallback(); +} + +void Detector::setGapPixelsinCallback(bool enable) { + pimpl->setGapPixelsinCallback(enable); +} + // Acquisition Parameters Result Detector::getNumberOfFrames(Positions pos) const { @@ -359,6 +367,14 @@ void Detector::setPowerChip(bool on, Positions pos) { } } +Result Detector::getImageTestMode(Positions pos) { + return pimpl->Parallel(&Module::getImageTestMode, pos); +} + +void Detector::setImageTestMode(int value, Positions pos) { + pimpl->Parallel(&Module::setImageTestMode, pos, value); +} + Result Detector::getTemperature(defs::dacIndex index, Positions pos) const { switch (index) { @@ -953,14 +969,6 @@ void Detector::loadTrimbits(const std::string &fname, Positions pos) { pimpl->Parallel(&Module::loadSettingsFile, pos, fname); } -Result Detector::getRxAddGapPixels(Positions pos) const { - return pimpl->Parallel(&Module::enableGapPixels, pos, -1); -} - -void Detector::setRxAddGapPixels(bool enable) { - pimpl->setGapPixelsinReceiver(enable); -} - Result Detector::getParallelMode(Positions pos) const { return pimpl->Parallel(&Module::getParallelMode, pos); } @@ -1195,14 +1203,6 @@ void Detector::setExternalSignalFlags(defs::externalSignalFlag value, pimpl->Parallel(&Module::setExternalSignalFlags, pos, value); } -Result Detector::getImageTestMode(Positions pos) { - return pimpl->Parallel(&Module::getImageTestMode, pos); -} - -void Detector::setImageTestMode(int value, Positions pos) { - pimpl->Parallel(&Module::setImageTestMode, pos, value); -} - // Gotthard2 Specific Result Detector::getNumberOfBursts(Positions pos) const { @@ -1612,13 +1612,13 @@ void Detector::setPatternBitMask(uint64_t mask, Positions pos) { // Moench -Result Detector::getAdditionalJsonHeader(Positions pos) const { +Result> Detector::getAdditionalJsonHeader(Positions pos) const { return pimpl->Parallel(&Module::getAdditionalJsonHeader, pos); } -void Detector::setAdditionalJsonHeader(const std::string &jsonheader, +void Detector::setAdditionalJsonHeader(const std::map &jsonHeader, Positions pos) { - pimpl->Parallel(&Module::setAdditionalJsonHeader, pos, jsonheader); + pimpl->Parallel(&Module::setAdditionalJsonHeader, pos, jsonHeader); } Result Detector::getAdditionalJsonParameter(const std::string &key, @@ -1626,8 +1626,7 @@ Result Detector::getAdditionalJsonParameter(const std::string &key, return pimpl->Parallel(&Module::getAdditionalJsonParameter, pos, key); } -void Detector::setAdditionalJsonParameter(const std::string &key, - const std::string &value, +void Detector::setAdditionalJsonParameter(const std::string &key, const std::string &value, Positions pos) { pimpl->Parallel(&Module::setAdditionalJsonParameter, pos, key, value); } diff --git a/slsDetectorSoftware/src/DetectorImpl.cpp b/slsDetectorSoftware/src/DetectorImpl.cpp index 42d6713f5..af32236c0 100755 --- a/slsDetectorSoftware/src/DetectorImpl.cpp +++ b/slsDetectorSoftware/src/DetectorImpl.cpp @@ -157,6 +157,7 @@ void DetectorImpl::initializeDetectorStructure() { multi_shm()->numberOfChannels.y = 0; multi_shm()->acquiringFlag = false; multi_shm()->initialChecks = true; + multi_shm()->gapPixels = false; } void DetectorImpl::initializeMembers(bool verify) { @@ -339,17 +340,30 @@ void DetectorImpl::setNumberOfChannels(const slsDetectorDefs::xy c) { multi_shm()->numberOfChannels = c; } -void DetectorImpl::setGapPixelsinReceiver(bool enable) { - Parallel(&Module::enableGapPixels, {}, static_cast(enable)); - // update number of channels - Result res = - Parallel(&Module::getNumberOfChannels, {}); - multi_shm()->numberOfChannels.x = 0; - multi_shm()->numberOfChannels.y = 0; - for (auto &it : res) { - multi_shm()->numberOfChannels.x += it.x; - multi_shm()->numberOfChannels.y += it.y; +bool DetectorImpl::getGapPixelsinCallback() const { + return multi_shm()->gapPixels; +} + +void DetectorImpl::setGapPixelsinCallback(const bool enable) { + if (enable) { + switch (multi_shm()->multiDetectorType) { + case JUNGFRAU: + break; + case EIGER: + if (size() && detectors[0]->getQuad()) { + break; + } + if (multi_shm()->numberOfDetector.y % 2 != 0) { + throw RuntimeError("Gap pixels can only be used " + "for full modules."); + } + break; + default: + throw RuntimeError("Gap Pixels is not implemented for " + + multi_shm()->multiDetectorType); + } } + multi_shm()->gapPixels = enable; } int DetectorImpl::createReceivingDataSockets(const bool destroy) { @@ -406,11 +420,13 @@ int DetectorImpl::createReceivingDataSockets(const bool destroy) { void DetectorImpl::readFrameFromReceiver() { + bool gapPixels = multi_shm()->gapPixels; + LOG(logDEBUG) << "Gap pixels: " << gapPixels; + int nX = 0; int nY = 0; int nDetPixelsX = 0; int nDetPixelsY = 0; - bool gappixelsenable = false; bool quadEnable = false; bool eiger = false; bool numInterfaces = @@ -434,6 +450,7 @@ void DetectorImpl::readFrameFromReceiver() { } int numConnected = numRunning; bool data = false; + bool completeImage = false; char *image = nullptr; char *multiframe = nullptr; char *multigappixels = nullptr; @@ -461,6 +478,7 @@ void DetectorImpl::readFrameFromReceiver() { if (multiframe != nullptr) { memset(multiframe, 0xFF, multisize); } + completeImage = true; // get each frame for (unsigned int isocket = 0; isocket < zmqSocket.size(); ++isocket) { @@ -470,9 +488,9 @@ void DetectorImpl::readFrameFromReceiver() { // HEADER { - rapidjson::Document doc; + zmqHeader zHeader; if (zmqSocket[isocket]->ReceiveHeader( - isocket, doc, SLS_DETECTOR_JSON_HEADER_VERSION) == + isocket, zHeader, SLS_DETECTOR_JSON_HEADER_VERSION) == 0) { // parse error, version error or end of acquisition for // socket @@ -484,33 +502,29 @@ void DetectorImpl::readFrameFromReceiver() { // if first message, allocate (all one time stuff) if (image == nullptr) { // allocate - size = doc["size"].GetUint(); + size = zHeader.imageSize; multisize = size * zmqSocket.size(); image = new char[size]; multiframe = new char[multisize]; memset(multiframe, 0xFF, multisize); // dynamic range - dynamicRange = doc["bitmode"].GetUint(); + dynamicRange = zHeader.dynamicRange; bytesPerPixel = (float)dynamicRange / 8; // shape - nPixelsX = doc["shape"][0].GetUint(); - nPixelsY = doc["shape"][1].GetUint(); + nPixelsX = zHeader.npixelsx; + nPixelsY = zHeader.npixelsy; // detector shape - nX = doc["detshape"][0].GetUint(); - nY = doc["detshape"][1].GetUint(); + nX = zHeader.ndetx; + nY = zHeader.ndety; nY *= numInterfaces; nDetPixelsX = nX * nPixelsX; nDetPixelsY = nY * nPixelsY; // det type - eiger = - (doc["detType"].GetUint() == static_cast(3)) + eiger = (zHeader.detType == static_cast(3)) ? true : false; // to be changed to EIGER when firmware // updates its header data - gappixelsenable = - (doc["gappixels"].GetUint() == 0) ? false : true; - quadEnable = - (doc["quad"].GetUint() == 0) ? false : true; + quadEnable = (zHeader.quad == 0) ? false : true; LOG(logDEBUG1) << "One Time Header Info:" "\n\tsize: " @@ -520,21 +534,23 @@ void DetectorImpl::readFrameFromReceiver() { << "\n\tnPixelsX: " << nPixelsX << "\n\tnPixelsY: " << nPixelsY << "\n\tnX: " << nX << "\n\tnY: " << nY << "\n\teiger: " << eiger - << "\n\tgappixelsenable: " << gappixelsenable << "\n\tquadEnable: " << quadEnable; } // each time, parse rest of header - currentFileName = doc["fname"].GetString(); - currentAcquisitionIndex = doc["acqIndex"].GetUint64(); - currentFrameIndex = doc["fIndex"].GetUint64(); - currentFileIndex = doc["fileIndex"].GetUint64(); - currentSubFrameIndex = doc["expLength"].GetUint(); - coordY = doc["row"].GetUint(); - coordX = doc["column"].GetUint(); + currentFileName = zHeader.fname; + currentAcquisitionIndex = zHeader.acqIndex; + currentFrameIndex = zHeader.frameIndex; + currentFileIndex = zHeader.fileIndex; + currentSubFrameIndex = zHeader.expLength; + coordY = zHeader.row; + coordX = zHeader.column; if (eiger) { coordY = (nY - 1) - coordY; } - flippedDataX = doc["flippedDataX"].GetUint(); + flippedDataX = zHeader.flippedDataX; + if (zHeader.completeImage == 0) { + completeImage = false; + } LOG(logDEBUG1) << "Header Info:" "\n\tcurrentFileName: " @@ -544,12 +560,14 @@ void DetectorImpl::readFrameFromReceiver() { << "\n\tcurrentFileIndex: " << currentFileIndex << "\n\tcurrentSubFrameIndex: " << currentSubFrameIndex << "\n\tcoordX: " << coordX << "\n\tcoordY: " << coordY - << "\n\tflippedDataX: " << flippedDataX; + << "\n\tflippedDataX: " << flippedDataX + << "\n\tcompleteImage: " << completeImage; } // DATA data = true; zmqSocket[isocket]->ReceiveData(isocket, image, size); + // creating multi image { uint32_t xoffset = coordX * nPixelsX * bytesPerPixel; @@ -586,43 +604,36 @@ void DetectorImpl::readFrameFromReceiver() { } } } + LOG(logDEBUG)<< "Call Back Info:" << "\n\t nDetPixelsX: " << nDetPixelsX << "\n\t nDetPixelsY: " << nDetPixelsY << "\n\t databytes: " << multisize - << "\n\t dynamicRange: " << dynamicRange ; + << "\n\t dynamicRange: " << dynamicRange; // send data to callback if (data) { setCurrentProgress(currentFrameIndex + 1); - // 4bit gap pixels - if (dynamicRange == 4 && gappixelsenable) { - if (quadEnable) { - nDetPixelsX += 2; - nDetPixelsY += 2; - } else { - nDetPixelsX = nX * (nPixelsX + 3); - nDetPixelsY = nY * (nPixelsY + 1); - } - int n = processImageWithGapPixels(multiframe, multigappixels, - quadEnable); - LOG(logDEBUG) - << "Call Back Info Recalculated:" - << "\n\t nDetPixelsX: " << nDetPixelsX - << "\n\t nDetPixelsY: " << nDetPixelsY - << "\n\t databytes: " << n; - thisData = - new detectorData(getCurrentProgress(), currentFileName, - nDetPixelsX, nDetPixelsY, multigappixels, - n, dynamicRange, currentFileIndex); - } - // normal pixels - else { - thisData = - new detectorData(getCurrentProgress(), currentFileName, - nDetPixelsX, nDetPixelsY, multiframe, - multisize, dynamicRange, currentFileIndex); + char* image = multiframe; + int imagesize = multisize; + + if (gapPixels) { + int n = InsertGapPixels(multiframe, multigappixels, + quadEnable, dynamicRange, nDetPixelsX, nDetPixelsY); + image = multigappixels; + imagesize = n; } + LOG(logDEBUG) + << "Image Info:" + << "\n\tnDetPixelsX: " << nDetPixelsX + << "\n\tnDetPixelsY: " << nDetPixelsY + << "\n\timagesize: " << imagesize + << "\n\tdynamicRange: " << dynamicRange; + + thisData = new detectorData(getCurrentProgress(), + currentFileName, nDetPixelsX, nDetPixelsY, image, + imagesize, dynamicRange, currentFileIndex, completeImage); + dataReady( thisData, currentFrameIndex, ((dynamicRange == 32 && eiger) ? currentSubFrameIndex : -1), @@ -667,141 +678,301 @@ void DetectorImpl::readFrameFromReceiver() { delete[] multigappixels; } -int DetectorImpl::processImageWithGapPixels(char *image, char *&gpImage, - bool quadEnable) { - // eiger 4 bit mode - int nxb = - multi_shm()->numberOfDetector.x * (512 + 3); //(divided by 2 already) - int nyb = multi_shm()->numberOfDetector.y * (256 + 1); - int nchipInRow = 4; - int nxchip = multi_shm()->numberOfDetector.x * 4; - int nychip = multi_shm()->numberOfDetector.y * 1; +int DetectorImpl::InsertGapPixels(char *image, char *&gpImage, + bool quadEnable, int dr, int &nPixelsx, int &nPixelsy) { + + LOG(logDEBUG)<< "Insert Gap pixels:" + << "\n\t nPixelsx: " << nPixelsx + << "\n\t nPixelsy: " << nPixelsy + << "\n\t quadEnable: " << quadEnable + << "\n\t dr: " << dr; + + // inter module gap pixels + int modGapPixelsx = 8; + int modGapPixelsy = 36; + // inter chip gap pixels + int chipGapPixelsx = 2; + int chipGapPixelsy = 2; + // number of pixels in a chip + int nChipPixelsx = 256; + int nChipPixelsy = 256; + // 1 module + // number of chips in a module + int nMod1Chipx = 4; + int nMod1Chipy = 2; if (quadEnable) { - nxb = multi_shm()->numberOfDetector.x * - (256 + 1); //(divided by 2 already) - nyb = multi_shm()->numberOfDetector.y * (512 + 2); - nxchip /= 2; - nychip *= 2; - nchipInRow /= 2; + nMod1Chipx = 2; } - int gapdatabytes = nxb * nyb; + // number of pixels in a module + int nMod1Pixelsx = nChipPixelsx * nMod1Chipx; + int nMod1Pixelsy = nChipPixelsy * nMod1Chipy; + // number of gap pixels in a module + int nMod1GapPixelsx = (nMod1Chipx - 1) * chipGapPixelsx; + int nMod1GapPixelsy = (nMod1Chipy - 1) * chipGapPixelsy; + // total number of modules + int nModx = nPixelsx / nMod1Pixelsx; + int nMody = nPixelsy / nMod1Pixelsy; - // allocate - if (gpImage == nullptr) { - gpImage = new char[gapdatabytes]; + // check if not full modules + // (setting gap pixels and then adding half module or disabling quad) + if (nPixelsy / nMod1Pixelsy == 0) { + LOG(logERROR) << "Gap pixels can only be enabled with full modules. " + "Sending dummy data without gap pixels.\n"; + double bytesPerPixel = (double)dr / 8.00; + int imagesize = nPixelsy * nPixelsx * bytesPerPixel; + if (gpImage == NULL) { + gpImage = new char[imagesize]; + } + memset(gpImage, 0xFF, imagesize); + return imagesize; } - // fill value - memset(gpImage, 0xFF, gapdatabytes); - const int b1chipx = 128; - const int b1chipy = 256; + // total number of pixels + int nTotx = nPixelsx + (nMod1GapPixelsx * nModx) + (modGapPixelsx * (nModx - 1)); + int nToty = nPixelsy + (nMod1GapPixelsy * nMody) + (modGapPixelsy * (nMody - 1)); + // total number of chips + int nChipx = nPixelsx / nChipPixelsx; + int nChipy = nPixelsy / nChipPixelsy; + + double bytesPerPixel = (double)dr / 8.00; + int imagesize = nTotx * nToty * bytesPerPixel; + + int nChipBytesx = nChipPixelsx * bytesPerPixel; // 1 chip bytes in x + int nChipGapBytesx = chipGapPixelsx * bytesPerPixel; // 2 pixel bytes + int nModGapBytesx = modGapPixelsx * bytesPerPixel; // 8 pixel bytes + int nChipBytesy = nChipPixelsy * nTotx * bytesPerPixel; // 1 chip bytes in y + int nChipGapBytesy = chipGapPixelsy * nTotx * bytesPerPixel; // 2 lines + int nModGapBytesy = modGapPixelsy * nTotx * bytesPerPixel; // 36 lines + // 4 bit mode, its 1 byte (because for 4 bit mode, we handle 1 byte at a time) + int pixel1 = (int)(ceil(bytesPerPixel)); + int row1Bytes = nTotx * bytesPerPixel; + int nMod1TotPixelsx = nMod1Pixelsx + nMod1GapPixelsx; + if (dr == 4) { + nMod1TotPixelsx /= 2; + } + // eiger requires inter chip gap pixels are halved + // jungfrau prefers same inter chip gap pixels as the boundary pixels + int divisionValue = 2; + slsDetectorDefs::detectorType detType = multi_shm()->multiDetectorType; + if (detType == JUNGFRAU) { + divisionValue = 1; + } + LOG(logDEBUG) + << "Insert Gap pixels Calculations:\n\t" + << "nPixelsx: " << nPixelsx << "\n\t" + << "nPixelsy: " << nPixelsy << "\n\t" + << "nMod1Pixelsx: " << nMod1Pixelsx << "\n\t" + << "nMod1Pixelsy: " << nMod1Pixelsy << "\n\t" + << "nMod1GapPixelsx: " << nMod1GapPixelsx << "\n\t" + << "nMod1GapPixelsy: " << nMod1GapPixelsy << "\n\t" + << "nChipy: " << nChipy << "\n\t" + << "nChipx: " << nChipx << "\n\t" + << "nModx: " << nModx << "\n\t" + << "nMody: " << nMody << "\n\t" + << "nTotx: " << nTotx << "\n\t" + << "nToty: " << nToty << "\n\t" + << "bytesPerPixel: " << bytesPerPixel << "\n\t" + << "imagesize: " << imagesize << "\n\t" + << "nChipBytesx: " << nChipBytesx << "\n\t" + << "nChipGapBytesx: " << nChipGapBytesx << "\n\t" + << "nModGapBytesx: " << nModGapBytesx << "\n\t" + << "nChipBytesy: " << nChipBytesy << "\n\t" + << "nChipGapBytesy: " << nChipGapBytesy << "\n\t" + << "nModGapBytesy: " << nModGapBytesy << "\n\t" + << "pixel1: " << pixel1 << "\n\t" + << "row1Bytes: " << row1Bytes << "\n\t" + << "nMod1TotPixelsx: " << nMod1TotPixelsx << "\n\t" + << "divisionValue: " << divisionValue << "\n\n"; + + if (gpImage == NULL) { + gpImage = new char[imagesize]; + } + memset(gpImage, 0xFF, imagesize); + //memcpy(gpImage, image, imagesize); char *src = nullptr; char *dst = nullptr; // copying line by line src = image; dst = gpImage; - for (int row = 0; row < nychip; ++row) { // for each chip row - for (int ichipy = 0; ichipy < b1chipy; - ++ichipy) { // for each row in a chip - for (int col = 0; col < nxchip; ++col) { // for each chip in a row - memcpy(dst, src, b1chipx); - src += b1chipx; - dst += b1chipx; - if (((col + 1) % nchipInRow) != 0) { // skip gap pixels - ++dst; + // for each chip row in y + for (int iChipy = 0; iChipy < nChipy; ++iChipy) { + // for each row + for (int iy = 0; iy < nChipPixelsy; ++iy) { + // in each row, for every chip + for (int iChipx = 0; iChipx < nChipx; ++iChipx) { + // copy 1 chip line + memcpy(dst, src, nChipBytesx); + src += nChipBytesx; + dst += nChipBytesx; + // skip inter chip gap pixels in x + if (((iChipx + 1) % nMod1Chipx) != 0) { + dst += nChipGapBytesx; + } + // skip inter module gap pixels in x + else if (iChipx + 1 != nChipx) { + dst += nModGapBytesx; } } } - - dst += (2 * nxb); + // skip inter chip gap pixels in y + if (((iChipy + 1) % nMod1Chipy) != 0) { + dst += nChipGapBytesy; + } + // skip inter module gap pixels in y + else if (iChipy + 1 != nChipy) { + dst += nModGapBytesy; + } } - // vertical filling of values - { - uint8_t temp, g1, g2; - int mod; - dst = gpImage; - for (int row = 0; row < nychip; ++row) { // for each chip row - for (int ichipy = 0; ichipy < b1chipy; - ++ichipy) { // for each row in a chip - for (int col = 0; col < nxchip; - ++col) { // for each chip in a row - dst += b1chipx; - mod = (col + 1) % nchipInRow; // get gap pixels - // copy gap pixel(chip 0, 1, 2) - if (mod != 0) { + // iner chip gap pixel values is half of neighboring one + // (corners becomes divide by 4 automatically after horizontal filling) + + // vertical filling of inter chip gap pixels + dst = gpImage; + // for each chip row in y + for (int iChipy = 0; iChipy < nChipy; ++iChipy) { + // for each row + for (int iy = 0; iy < nChipPixelsy; ++iy) { + // in each row, for every chip + for (int iChipx = 0; iChipx < nChipx; ++iChipx) { + // go to gap pixels + dst += nChipBytesx; + // fix inter chip gap pixels in x + if (((iChipx + 1) % nMod1Chipx) != 0) { + uint8_t temp8 = 0; + uint16_t temp16 = 0; + uint32_t temp32 = 0; + uint8_t g1 = 0; + uint8_t g2 = 0; + switch (dr) { + case 4: // neighbouring gap pixels to left - temp = (*((uint8_t *)(dst - 1))); - g1 = ((temp & 0xF) / 2); - (*((uint8_t *)(dst - 1))) = (temp & 0xF0) + g1; - + temp8 = (*((uint8_t *)(dst - 1))); + g1 = ((temp8 & 0xF) / 2); + (*((uint8_t *)(dst - 1))) = (temp8 & 0xF0) + g1; // neighbouring gap pixels to right - temp = (*((uint8_t *)(dst + 1))); - g2 = ((temp >> 4) / 2); - (*((uint8_t *)(dst + 1))) = (g2 << 4) + (temp & 0x0F); - + temp8 = (*((uint8_t *)(dst + 1))); + g2 = ((temp8 >> 4) / 2); + (*((uint8_t *)(dst + 1))) = (g2 << 4) + (temp8 & 0x0F); // gap pixels - (*((uint8_t *)dst)) = (g1 << 4) + g2; - - // increment to point to proper chip destination - ++dst; - } + (*((uint8_t *)dst)) = (g1 << 4) + g2; + break; + case 8: + // neighbouring gap pixels to left + temp8 = (*((uint8_t *)(dst - pixel1))) / 2; + (*((uint8_t *)dst)) = temp8; + (*((uint8_t *)(dst - pixel1))) = temp8; + // neighbouring gap pixels to right + temp8 = (*((uint8_t *)(dst + 2 * pixel1))) / 2; + (*((uint8_t *)(dst + pixel1))) = temp8; + (*((uint8_t *)(dst + 2 * pixel1))) = temp8; + break; + case 16: + // neighbouring gap pixels to left + temp16 = (*((uint16_t *)(dst - pixel1))) / divisionValue; + (*((uint16_t *)dst)) = temp16; + (*((uint16_t *)(dst - pixel1))) = temp16; + // neighbouring gap pixels to right + temp16 = (*((uint16_t *)(dst + 2 * pixel1))) / divisionValue; + (*((uint16_t *)(dst + pixel1))) = temp16; + (*((uint16_t *)(dst + 2 * pixel1))) = temp16; + break; + default: + // neighbouring gap pixels to left + temp32 = (*((uint32_t *)(dst - pixel1))) / 2; + (*((uint32_t *)dst)) = temp32; + (*((uint32_t *)(dst - pixel1))) = temp32; + // neighbouring gap pixels to right + temp32 = (*((uint32_t *)(dst + 2 * pixel1))) / 2; + (*((uint32_t *)(dst + pixel1))) = temp32; + (*((uint32_t *)(dst + 2 * pixel1))) = temp32; + break; + } + dst += nChipGapBytesx; + } + // skip inter module gap pixels in x + else if (iChipx + 1 != nChipx) { + dst += nModGapBytesx; } } + } + // skip inter chip gap pixels in y + if (((iChipy + 1) % nMod1Chipy) != 0) { + dst += nChipGapBytesy; + } + // skip inter module gap pixels in y + else if (iChipy + 1 != nChipy) { + dst += nModGapBytesy; + } + } - dst += (2 * nxb); + // horizontal filling of inter chip gap pixels + // starting at bottom part (1 line below to copy from) + src = gpImage + (nChipBytesy - row1Bytes); + dst = gpImage + nChipBytesy; + // for each chip row in y + for (int iChipy = 0; iChipy < nChipy; ++iChipy) { + // for each module in x + for (int iModx = 0; iModx < nModx; ++iModx) { + // in each module, for every pixel in x + for (int iPixel = 0; iPixel < nMod1TotPixelsx; ++iPixel) { + uint8_t temp8 = 0, g1 = 0, g2 = 0; + uint16_t temp16 = 0; + uint32_t temp32 = 0; + switch (dr) { + case 4: + temp8 = (*((uint8_t *)src)); + g1 = ((temp8 >> 4) / 2); + g2 = ((temp8 & 0xF) / 2); + temp8 = (g1 << 4) + g2; + (*((uint8_t *)dst)) = temp8; + (*((uint8_t *)src)) = temp8; + break; + case 8: + temp8 = (*((uint8_t *)src)) / divisionValue; + (*((uint8_t *)dst)) = temp8; + (*((uint8_t *)src)) = temp8; + break; + case 16: + temp16 = (*((uint16_t *)src)) / divisionValue; + (*((uint16_t *)dst)) = temp16; + (*((uint16_t *)src)) = temp16; + break; + default: + temp32 = (*((uint32_t *)src)) / 2; + (*((uint32_t *)dst)) = temp32; + (*((uint32_t *)src)) = temp32; + break; + } + // every pixel (but 4 bit mode, every byte) + src += pixel1; + dst += pixel1; + } + // skip inter module gap pixels in x + if (iModx + 1 < nModx) { + src += nModGapBytesx; + dst += nModGapBytesx; + } + } + // bottom parts, skip inter chip gap pixels + if ((iChipy % nMod1Chipy) == 0) { + src += nChipGapBytesy; + } + // top parts, skip inter module gap pixels and two chips + else { + src += (nModGapBytesy + 2 * nChipBytesy - 2 * row1Bytes); + dst += (nModGapBytesy + 2 * nChipBytesy); } } - // return gapdatabytes; - // horizontal filling - { - uint8_t temp, g1, g2; - char *dst_prevline = nullptr; - dst = gpImage; - for (int row = 0; row < nychip; ++row) { // for each chip row - dst += (b1chipy * nxb); - // horizontal copying of gap pixels from neighboring past line - // (bottom parts) - if (row < nychip - 1) { - dst_prevline = dst - nxb; - for (int gapline = 0; gapline < nxb; ++gapline) { - temp = (*((uint8_t *)dst_prevline)); - g1 = ((temp >> 4) / 2); - g2 = ((temp & 0xF) / 2); - (*((uint8_t *)dst_prevline)) = (g1 << 4) + g2; - (*((uint8_t *)dst)) = (*((uint8_t *)dst_prevline)); - ++dst; - ++dst_prevline; - } - } - - // horizontal copying of gap pixels from neihboring future line (top - // part) - if (row > 0) { - dst -= ((b1chipy + 1) * nxb); - dst_prevline = dst + nxb; - for (int gapline = 0; gapline < nxb; ++gapline) { - temp = (*((uint8_t *)dst_prevline)); - g1 = ((temp >> 4) / 2); - g2 = ((temp & 0xF) / 2); - temp = (g1 << 4) + g2; - (*((uint8_t *)dst_prevline)) = temp; - (*((uint8_t *)dst)) = temp; - ++dst; - ++dst_prevline; - } - dst += ((b1chipy + 1) * nxb); - } - - dst += nxb; - } - } - - return gapdatabytes; + nPixelsx = nTotx; + nPixelsy = nToty; + return imagesize; } + + bool DetectorImpl::enableDataStreamingToClient(int enable) { if (enable >= 0) { // destroy data threads diff --git a/slsDetectorSoftware/src/DetectorImpl.h b/slsDetectorSoftware/src/DetectorImpl.h index 107aada8a..d39e95a34 100755 --- a/slsDetectorSoftware/src/DetectorImpl.h +++ b/slsDetectorSoftware/src/DetectorImpl.h @@ -16,7 +16,7 @@ class detectorData; #include #define MULTI_SHMAPIVERSION 0x190809 -#define MULTI_SHMVERSION 0x200131 +#define MULTI_SHMVERSION 0x200319 #define SHORT_STRING_LENGTH 50 #include @@ -47,10 +47,7 @@ struct sharedMultiSlsDetector { /** last time stamp when accessing the shared memory */ char lastDate[SHORT_STRING_LENGTH]; - /** number of sls detectors in shared memory */ int numberOfDetectors; - - /** multi detector type */ slsDetectorDefs::detectorType multiDetectorType; /** END OF FIXED PATTERN @@ -62,11 +59,9 @@ struct sharedMultiSlsDetector { /** max number of channels for complete detector*/ slsDetectorDefs::xy numberOfChannels; - /** flag for acquiring */ bool acquiringFlag; - - /** initial checks */ bool initialChecks; + bool gapPixels; }; class DetectorImpl : public virtual slsDetectorDefs { @@ -236,11 +231,10 @@ class DetectorImpl : public virtual slsDetectorDefs { * Sets maximum number of channels of all sls detectors */ void setNumberOfChannels(const slsDetectorDefs::xy c); - /** - * Enable gap pixels, only for Eiger and for 8,16 and 32 bit mode. (Eiger) - * 4 bit mode gap pixels only in gui call back - */ - void setGapPixelsinReceiver(bool enable); + /** [Eiger][Jungfrau] */ + bool getGapPixelsinCallback() const; + /** [Eiger][Jungfrau] */ + void setGapPixelsinCallback(const bool enable); /** * Enable data streaming to client @@ -347,15 +341,18 @@ class DetectorImpl : public virtual slsDetectorDefs { */ void readFrameFromReceiver(); - /** - * add gap pixels to the image (only for Eiger in 4 bit mode) + /** [Eiger][Jungfrau] + * add gap pixels to the imag * @param image pointer to image without gap pixels * @param gpImage poiner to image with gap pixels, if NULL, allocated - * inside function - * quadEnable quad enabled - * @returns number of data bytes of image with gap pixels + * @param quadEnable quad enabled + * @param dr dynamic range + * @param nPixelsx number of pixels in X axis (updated) + * @param nPixelsy number of pixels in Y axis (updated) + * @returns total data bytes for updated image */ - int processImageWithGapPixels(char *image, char *&gpImage, bool quadEnable); + int InsertGapPixels(char *image, char *&gpImage, bool quadEnable, int dr, + int &nPixelsx, int &nPixelsy); double setTotalProgress(); diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 02018569d..0804e8f8d 100755 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -410,7 +410,6 @@ void Module::initializeDetectorStructure(detectorType type) { shm()->zmqport = DEFAULT_ZMQ_CL_PORTNO + (detId * ((shm()->myDetectorType == EIGER) ? 2 : 1)); shm()->zmqip = IpAddr{}; - shm()->gappixels = 0U; shm()->numUDPInterfaces = 1; shm()->stoppedFlag = false; @@ -422,8 +421,6 @@ void Module::initializeDetectorStructure(detectorType type) { shm()->nChip.y = parameters.nChipY; shm()->nDacs = parameters.nDacs; shm()->dynamicRange = parameters.dynamicRange; - shm()->nGappixels.x = parameters.nGappixelsX; - shm()->nGappixels.y = parameters.nGappixelsY; } int Module::sendModule(sls_detector_module *myMod, @@ -582,10 +579,8 @@ void Module::updateNumberOfChannels() { slsDetectorDefs::xy Module::getNumberOfChannels() const { slsDetectorDefs::xy coord{}; - coord.x = (shm()->nChan.x * shm()->nChip.x + - shm()->gappixels * shm()->nGappixels.x); - coord.y = (shm()->nChan.y * shm()->nChip.y + - shm()->gappixels * shm()->nGappixels.y); + coord.x = (shm()->nChan.x * shm()->nChip.x); + coord.y = (shm()->nChan.y * shm()->nChip.y); return coord; } @@ -937,23 +932,17 @@ int Module::getThresholdEnergy() { return retval; } -int Module::setThresholdEnergy(int e_eV, detectorSettings isettings, +void Module::setThresholdEnergy(int e_eV, detectorSettings isettings, int tb) { // check as there is client processing if (shm()->myDetectorType == EIGER) { setThresholdEnergyAndSettings(e_eV, isettings, tb); - return e_eV; } // moench - send threshold energy to processor else if (shm()->myDetectorType == MOENCH) { - std::string result = - setAdditionalJsonParameter("threshold", std::to_string(e_eV)); - if (result == std::to_string(e_eV)) { - return e_eV; - } - return -1; + setAdditionalJsonParameter("threshold", std::to_string(e_eV)); } throw RuntimeError( "Set threshold energy not implemented for this detector"); @@ -1719,7 +1708,6 @@ std::string Module::setReceiverHostname(const std::string &receiverIP) { setSubDeadTime(getSubDeadTime()); setDynamicRange(shm()->dynamicRange); activate(-1); - enableGapPixels(shm()->gappixels); enableTenGigabitEthernet(-1); setQuad(getQuad()); break; @@ -2105,106 +2093,99 @@ void Module::setTransmissionDelayRight(int value) { } -void Module::setAdditionalJsonHeader(const std::string &jsonheader) { +void Module::setAdditionalJsonHeader(const std::map &jsonHeader) { if (!shm()->useReceiverFlag) { throw RuntimeError("Set rx_hostname first to use receiver parameters (zmq json header)"); } - char args[MAX_STR_LENGTH]{}; - sls::strcpy_safe(args, jsonheader.c_str()); - sendToReceiver(F_SET_ADDITIONAL_JSON_HEADER, args, nullptr); -} - -std::string Module::getAdditionalJsonHeader() { - if (!shm()->useReceiverFlag) { - throw RuntimeError("Set rx_hostname first to use receiver parameters (zmq json header)"); - } - char retvals[MAX_STR_LENGTH]{}; - sendToReceiver(F_GET_ADDITIONAL_JSON_HEADER, nullptr, retvals); - return std::string(retvals); -} - -std::string Module::setAdditionalJsonParameter(const std::string &key, - const std::string &value) { - if (key.empty() || value.empty()) { - throw RuntimeError( - "Could not set additional json header parameter as the key or " - "value is empty"); - } - - // validation (ignore if key or value has , : ") - if (key.find_first_of(",\":") != std::string::npos || - value.find_first_of(",\":") != std::string::npos) { - throw RuntimeError("Could not set additional json header parameter as " - "the key or value has " - "illegal characters (,\":)"); - } - - // create actual key to search for and actual value to put, (key has - // additional ':' as value could exist the same way) - std::string keyLiteral(std::string("\"") + key + std::string("\":")); - std::string valueLiteral(value); - // add quotations to value only if it is a string - try { - std::stoi(valueLiteral); - } catch (...) { - // add quotations if it failed to convert to integer, otherwise nothing - valueLiteral.insert(0, "\""); - valueLiteral.append("\""); - } - - std::string header = getAdditionalJsonHeader(); - size_t keyPos = header.find(keyLiteral); - - // if key found, replace value - if (keyPos != std::string::npos) { - size_t valueStartPos = header.find(std::string(":"), keyPos) + 1; - size_t valueEndPos = header.find(std::string(","), valueStartPos) - 1; - // if valueEndPos doesnt find comma (end of string), it goes anyway to - // end of line - header.replace(valueStartPos, valueEndPos - valueStartPos + 1, - valueLiteral); - } - - // key not found, append key value pair - else { - if (header.length() != 0U) { - header.append(","); + for (auto &it : jsonHeader) { + if (it.first.empty() || it.first.length() > SHORT_STR_LENGTH || + it.second.length() > SHORT_STR_LENGTH ) { + throw RuntimeError(it.first + " or " + it.second + " pair has invalid size. " + "Key cannot be empty. Both can have max 20 characters"); } - header.append(keyLiteral + valueLiteral); } + const int size = jsonHeader.size(); + int fnum = F_SET_ADDITIONAL_JSON_HEADER; + int ret = FAIL; + LOG(logDEBUG) << "Sending to receiver additional json header " << ToString(jsonHeader); + auto client = ReceiverSocket(shm()->rxHostname, shm()->rxTCPPort); + client.Send(&fnum, sizeof(fnum)); + client.Send(&size, sizeof(size)); + if (size > 0) { + char args[size * 2][SHORT_STR_LENGTH]; + memset(args, 0, sizeof(args)); + int iarg = 0; + for (auto &it : jsonHeader) { + sls::strcpy_safe(args[iarg], it.first.c_str()); + sls::strcpy_safe(args[iarg + 1], it.second.c_str()); + iarg += 2; + } + client.Send(args, sizeof(args)); + } + client.Receive(&ret, sizeof(ret)); + if (ret == FAIL) { + char mess[MAX_STR_LENGTH]{}; + client.Receive(mess, MAX_STR_LENGTH); + throw RuntimeError("Receiver " + std::to_string(detId) + + " returned error: " + std::string(mess)); + } +} - // update additional json header - setAdditionalJsonHeader(header); - return getAdditionalJsonParameter(key); +std::map Module::getAdditionalJsonHeader() { + if (!shm()->useReceiverFlag) { + throw RuntimeError("Set rx_hostname first to use receiver parameters (zmq json header)"); + } + int fnum = F_GET_ADDITIONAL_JSON_HEADER; + int ret = FAIL; + int size = 0; + auto client = ReceiverSocket(shm()->rxHostname, shm()->rxTCPPort); + client.Send(&fnum, sizeof(fnum)); + client.Receive(&ret, sizeof(ret)); + if (ret == FAIL) { + char mess[MAX_STR_LENGTH]{}; + client.Receive(mess, MAX_STR_LENGTH); + throw RuntimeError("Receiver " + std::to_string(detId) + + " returned error: " + std::string(mess)); + } else { + client.Receive(&size, sizeof(size)); + std::map retval; + if (size > 0) { + char retvals[size * 2][SHORT_STR_LENGTH]; + memset(retvals, 0, sizeof(retvals)); + client.Receive(retvals, sizeof(retvals)); + for (int i = 0; i < size; ++i) { + retval[retvals[2 * i]] = retvals[2 * i + 1]; + } + } + LOG(logDEBUG) << "Getting additional json header " << ToString(retval); + return retval; + } +} + +void Module::setAdditionalJsonParameter(const std::string &key, const std::string &value) { + if (!shm()->useReceiverFlag) { + throw RuntimeError("Set rx_hostname first to use receiver parameters (zmq json parameter)"); + } + if (key.empty() || key.length() > SHORT_STR_LENGTH || + value.length() > SHORT_STR_LENGTH ) { + throw RuntimeError(key + " or " + value + " pair has invalid size. " + "Key cannot be empty. Both can have max 2 characters"); + } + char args[2][SHORT_STR_LENGTH]{}; + sls::strcpy_safe(args[0], key.c_str()); + sls::strcpy_safe(args[1], value.c_str()); + sendToReceiver(F_SET_ADDITIONAL_JSON_PARAMETER, args, nullptr); } std::string Module::getAdditionalJsonParameter(const std::string &key) { - // additional json header is empty - std::string jsonheader = getAdditionalJsonHeader(); - if (jsonheader.empty()) - return jsonheader; - - // add quotations before and after the key value - std::string keyLiteral = key; - keyLiteral.insert(0, "\""); - keyLiteral.append("\""); - - // loop through the parameters - for (const auto ¶meter : - sls::split(jsonheader, ',')) { - // get a vector of key value pair for each parameter - const auto &pairs = sls::split(parameter, ':'); - // match for key - if (pairs[0] == keyLiteral) { - // return value without quotations (if it has any) - if (pairs[1][0] == '\"') - return pairs[1].substr(1, pairs[1].length() - 2); - else - return pairs[1]; - } + if (!shm()->useReceiverFlag) { + throw RuntimeError("Set rx_hostname first to use receiver parameters (zmq json parameter)"); } - // return empty string as no match found with key - return std::string(); + char arg[SHORT_STR_LENGTH]{}; + sls::strcpy_safe(arg, key.c_str()); + char retval[SHORT_STR_LENGTH]{}; + sendToReceiver(F_GET_ADDITIONAL_JSON_PARAMETER, arg, retval); + return retval; } int64_t Module::setReceiverUDPSocketBufferSize(int64_t udpsockbufsize) { @@ -2672,24 +2653,6 @@ int Module::setAllTrimbits(int val) { return retval; } -int Module::enableGapPixels(int val) { - if (val >= 0) { - if (shm()->myDetectorType != EIGER) { - throw NotImplementedError( - "Function (enableGapPixels) not implemented for this detector"); - } - int fnum = F_ENABLE_GAPPIXELS_IN_RECEIVER; - int retval = -1; - LOG(logDEBUG1) << "Sending gap pixels enable to receiver: " << val; - if (shm()->useReceiverFlag) { - sendToReceiver(fnum, val, retval); - LOG(logDEBUG1) << "Gap pixels enable to receiver:" << retval; - shm()->gappixels = retval; - } - } - return shm()->gappixels; -} - int Module::setTrimEn(const std::vector& energies) { if (shm()->myDetectorType != EIGER) { throw RuntimeError("setTrimEn not implemented for this detector."); @@ -3084,33 +3047,6 @@ void Module::execReceiverCommand(const std::string &cmd) { } } -void Module::updateCachedReceiverVariables() const { - int fnum = F_UPDATE_RECEIVER_CLIENT; - LOG(logDEBUG1) << "Sending update client to receiver server"; - - if (shm()->useReceiverFlag) { - auto receiver = - sls::ClientSocket("Receiver", shm()->rxHostname, shm()->rxTCPPort); - receiver.sendCommandThenRead(fnum, nullptr, 0, nullptr, 0); - int n = 0, i32 = 0; - IpAddr ip; - - n += receiver.Receive(&ip, sizeof(ip)); - LOG(logDEBUG1) - << "Updating receiver last modified by " << ip; - - // gap pixels - n += receiver.Receive(&i32, sizeof(i32)); - shm()->gappixels = i32; - - if (n == 0) { - throw RuntimeError( - "Could not update receiver: " + std::string(shm()->rxHostname) + - ", received 0 bytes\n"); - } - } -} - void Module::sendMultiDetectorSize() { int args[]{shm()->multiSize.x, shm()->multiSize.y}; int retval = -1; @@ -3317,9 +3253,6 @@ std::vector Module::getNumMissingPackets() const { throw RuntimeError("Receiver " + std::to_string(detId) + " returned error: " + std::string(mess)); } else { - if (ret == FORCE_UPDATE) { - updateCachedReceiverVariables(); - } int nports = -1; client.Receive(&nports, sizeof(nports)); uint64_t mp[nports]; diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index 1567c6165..873f43ebc 100755 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -9,11 +9,12 @@ #include #include #include +#include class ServerInterface; #define SLS_SHMAPIVERSION 0x190726 -#define SLS_SHMVERSION 0x200318 +#define SLS_SHMVERSION 0x200324 namespace sls{ @@ -104,12 +105,6 @@ struct sharedSlsDetector { /** zmq tcp src ip address in client (only data) **/ sls::IpAddr zmqip; - /** gap pixels enable */ - int gappixels; - - /** gap pixels in each direction */ - slsDetectorDefs::xy nGappixels; - /** num udp interfaces */ int numUDPInterfaces; @@ -221,10 +216,7 @@ class Module : public virtual slsDetectorDefs { */ void updateNumberOfChannels(); - /** - * Returns the total number of channels including gap pixels - * @returns the total number of channels including gap pixels - */ + slsDetectorDefs::xy getNumberOfChannels() const; /** @@ -353,9 +345,8 @@ class Module : public virtual slsDetectorDefs { * @param e_eV threshold in eV * @param isettings ev. change settings * @param tb 1 to include trimbits, 0 to exclude - * @returns current threshold value in ev (-1 failed) */ - int setThresholdEnergy(int e_eV, detectorSettings isettings = GET_SETTINGS, + void setThresholdEnergy(int e_eV, detectorSettings isettings = GET_SETTINGS, int tb = 1); /** @@ -988,36 +979,14 @@ class Module : public virtual slsDetectorDefs { */ void setTransmissionDelayRight(int value); - /** - * Sets the additional json header\sa sharedSlsDetector - * @param jsonheader additional json header - */ - void setAdditionalJsonHeader(const std::string &jsonheader); + /** empty vector deletes entire additional json header */ + void setAdditionalJsonHeader(const std::map &jsonHeader); + std::map getAdditionalJsonHeader(); /** - * Returns the additional json header \sa sharedSlsDetector - * @returns the additional json header, returns "none" if default setting - * and no custom ip set - */ - std::string getAdditionalJsonHeader(); - - /** - * Sets the value for the additional json header parameter if found, else - * append it - * @param key additional json header parameter - * @param value additional json header parameter value (cannot be empty) - * @returns the additional json header parameter value, - * empty if no parameter found in additional json header - */ - std::string setAdditionalJsonParameter(const std::string &key, - const std::string &value); - - /** - * Returns the additional json header parameter value - * @param key additional json header parameter - * @returns the additional json header parameter value, - * empty if no parameter found in additional json header - */ + * Sets the value for the additional json header parameter key if found, else + * append it. If value empty, then deletes parameter */ + void setAdditionalJsonParameter(const std::string &key, const std::string &value); std::string getAdditionalJsonParameter(const std::string &key); /** @@ -1045,11 +1014,13 @@ class Module : public virtual slsDetectorDefs { /** [Gotthard][Jungfrau][CTB][Moench] */ void executeBusTest(); - /** [Gotthard] */ + /** [Gotthard][Eiger virtual] */ int getImageTestMode(); /** [Gotthard] If 1, adds channel intensity with precalculated values. - * Default is 0 */ + * Default is 0 + * [Eiger virtual] If 1, pixels are saturated. If 0, increasing intensity + * Only for virtual servers */ void setImageTestMode(const int value); @@ -1232,14 +1203,6 @@ class Module : public virtual slsDetectorDefs { */ int setAllTrimbits(int val); - /** - * Enable gap pixels, only for Eiger and for 8,16 and 32 bit mode. (Eiger) - * 4 bit mode gap pixels only in gui call back - * @param val 1 sets, 0 unsets, -1 gets - * @returns gap pixel enable or -1 for error - */ - int enableGapPixels(int val = -1); - /** * Sets the number of trim energies and their value (Eiger) * \sa sharedSlsDetector @@ -1436,11 +1399,6 @@ class Module : public virtual slsDetectorDefs { */ void execReceiverCommand(const std::string &cmd); - /** - * Updates the shared memory receiving the data from the detector - */ - void updateCachedReceiverVariables() const; - /** * Send the multi detector size to the detector * @param detx number of detectors in x dir diff --git a/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp b/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp index 05886e26f..767e646e2 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp @@ -680,7 +680,7 @@ TEST_CASE("rx_dbitlist", "[.cmd][.rx][.new]") { CmdProxy proxy(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::CHIPTESTBOARD) { - auto previous = det.getRxDbitList(); + auto prev_val = det.getRxDbitList(); { std::ostringstream oss; proxy.Call("rx_dbitlist", {"0", "4", "5", "8", "9", "10", "52", "63"}, -1, PUT, oss); @@ -694,9 +694,8 @@ TEST_CASE("rx_dbitlist", "[.cmd][.rx][.new]") { REQUIRE_THROWS(proxy.Call("rx_dbitlist", {"67"}, -1, PUT)); REQUIRE_THROWS(proxy.Call("rx_dbitlist", {"-1"}, -1, PUT)); REQUIRE_NOTHROW(proxy.Call("rx_dbitlist", {"all"}, -1, PUT)); - // Reset to previous value for (int i = 0; i != det.size(); ++i) { - det.setRxDbitList(previous[i], {i}); + det.setRxDbitList(prev_val[i], {i}); } } else { REQUIRE_THROWS(proxy.Call("rx_dbitlist", {}, -1, GET)); @@ -708,7 +707,7 @@ TEST_CASE("rx_dbitoffset", "[.cmd][.rx][.new]") { CmdProxy proxy(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::CHIPTESTBOARD) { - auto previous = det.getRxDbitOffset(); + auto prev_val = det.getRxDbitOffset(); { std::ostringstream oss; proxy.Call("rx_dbitoffset", {"1"}, -1, PUT, oss); @@ -729,9 +728,8 @@ TEST_CASE("rx_dbitoffset", "[.cmd][.rx][.new]") { proxy.Call("rx_dbitoffset", {}, -1, GET, oss); REQUIRE(oss.str() == "rx_dbitoffset 15\n"); } - // Reset to previous value for (int i = 0; i != det.size(); ++i) { - det.setRxDbitOffset(previous[i], {i}); + det.setRxDbitOffset(prev_val[i], {i}); } } else { REQUIRE_THROWS(proxy.Call("rx_dbitoffset", {}, -1, GET)); @@ -740,7 +738,60 @@ TEST_CASE("rx_dbitoffset", "[.cmd][.rx][.new]") { /* Moench */ -//FIXME: rx_jsonaddheader, rx_jsonpara +TEST_CASE("rx_jsonaddheader", "[.cmd][.rx][.new]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getAdditionalJsonHeader(); + + { + std::ostringstream oss; + proxy.Call("rx_jsonaddheader", {"key1", "value1", "key2", "value2"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_jsonaddheader {key1: value1, key2: value2}\n"); + } + { + std::ostringstream oss; + proxy.Call("rx_jsonaddheader", {}, -1, GET, oss); + REQUIRE(oss.str() == "rx_jsonaddheader {key1: value1, key2: value2}\n"); + } + { + std::ostringstream oss; + proxy.Call("rx_jsonaddheader", {}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_jsonaddheader {}\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setAdditionalJsonHeader(prev_val[i], {i}); + } +} + +TEST_CASE("rx_jsonpara", "[.cmd][.rx][.new]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getAdditionalJsonHeader(); + { + std::ostringstream oss; + proxy.Call("rx_jsonpara", {"key1", "value1"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_jsonpara {key1: value1}\n"); + } + { + std::ostringstream oss; + proxy.Call("rx_jsonpara", {"key1", "value2"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_jsonpara {key1: value2}\n"); + } + { + std::ostringstream oss; + proxy.Call("rx_jsonpara", {"key1"}, -1, GET, oss); + REQUIRE(oss.str() == "rx_jsonpara value2\n"); + } + { + std::ostringstream oss; + proxy.Call("rx_jsonpara", {"key1"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_jsonpara key1 deleted\n"); + } + REQUIRE_THROWS(proxy.Call("rx_jsonpara", {"key1"}, -1, GET)); + for (int i = 0; i != det.size(); ++i) { + det.setAdditionalJsonHeader(prev_val[i], {i}); + } +} /* Insignificant */ diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index e0889d977..b802183da 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -715,33 +715,6 @@ TEST_CASE("stopport", "[.cmd]") { // REQUIRE_NOTHROW(multiSlsDetectorClient("rx_jsonaddheader \"\"", PUT)); // } -// TEST_CASE("rx_jsonpara", "[.cmd][.moench]") { -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_jsonaddheader -// \"key1\":\"value1\"", PUT)); -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_jsonpara key1", GET, -// nullptr, oss)); REQUIRE(oss.str() == "rx_jsonpara value1\n"); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_jsonpara key1 value2", -// PUT, nullptr, oss)); REQUIRE(oss.str() == "rx_jsonpara [key1, -// value2]\n"); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_jsonpara key2 98", PUT, -// nullptr, oss)); REQUIRE(oss.str() == "rx_jsonpara [key2, 98]\n"); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_jsonaddheader", GET, -// nullptr, oss)); REQUIRE(oss.str() == "rx_jsonaddheader -// \"key1\":\"value2\",\"key2\":98\n"); -// } -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_jsonaddheader \"\"", PUT)); -// } // TEST_CASE("patsetbit", "[.cmd][.ctb]") { // if (test::type == slsDetectorDefs::CHIPTESTBOARD) { diff --git a/slsReceiverSoftware/src/BinaryFileStatic.h b/slsReceiverSoftware/src/BinaryFileStatic.h index c6181eb53..80f86fbc2 100755 --- a/slsReceiverSoftware/src/BinaryFileStatic.h +++ b/slsReceiverSoftware/src/BinaryFileStatic.h @@ -128,7 +128,6 @@ class BinaryFileStatic { "SubExptime (ns) : %lld\n" "SubPeriod(ns) : %lld\n" "Period (ns) : %lld\n" - "Gap Pixels Enable : %d\n" "Quad Enable : %d\n" "Analog Flag : %d\n" "Digital Flag : %d\n" @@ -167,7 +166,6 @@ class BinaryFileStatic { (long long int)attr.subExptimeNs, (long long int)attr.subPeriodNs, (long long int)attr.periodNs, - attr.gapPixelsEnable, attr.quadEnable, attr.analogFlag, attr.digitalFlag, diff --git a/slsReceiverSoftware/src/ClientInterface.cpp b/slsReceiverSoftware/src/ClientInterface.cpp index 7563fe754..44e39f99a 100755 --- a/slsReceiverSoftware/src/ClientInterface.cpp +++ b/slsReceiverSoftware/src/ClientInterface.cpp @@ -16,6 +16,7 @@ #include #include #include +#include using sls::RuntimeError; using sls::SocketError; @@ -113,7 +114,6 @@ int ClientInterface::functionTable(){ flist[F_LOCK_RECEIVER] = &ClientInterface::lock_receiver; flist[F_GET_LAST_RECEIVER_CLIENT_IP] = &ClientInterface::get_last_client_ip; flist[F_SET_RECEIVER_PORT] = &ClientInterface::set_port; - flist[F_UPDATE_RECEIVER_CLIENT] = &ClientInterface::update_client; flist[F_GET_RECEIVER_VERSION] = &ClientInterface::get_version; flist[F_GET_RECEIVER_TYPE] = &ClientInterface::set_detector_type; flist[F_SEND_RECEIVER_DETHOSTNAME] = &ClientInterface::set_detector_hostname; @@ -163,7 +163,6 @@ int ClientInterface::functionTable(){ flist[F_GET_RECEIVER_STREAMING_SRC_IP] = &ClientInterface::get_streaming_source_ip; flist[F_SET_RECEIVER_SILENT_MODE] = &ClientInterface::set_silent_mode; flist[F_GET_RECEIVER_SILENT_MODE] = &ClientInterface::get_silent_mode; - flist[F_ENABLE_GAPPIXELS_IN_RECEIVER] = &ClientInterface::enable_gap_pixels; flist[F_RESTREAM_STOP_FROM_RECEIVER] = &ClientInterface::restream_stop; flist[F_SET_ADDITIONAL_JSON_HEADER] = &ClientInterface::set_additional_json_header; flist[F_GET_ADDITIONAL_JSON_HEADER] = &ClientInterface::get_additional_json_header; @@ -194,6 +193,8 @@ int ClientInterface::functionTable(){ flist[F_RECEIVER_SET_ADC_MASK_10G] = &ClientInterface::set_adc_mask_10g; flist[F_RECEIVER_SET_NUM_COUNTERS] = &ClientInterface::set_num_counters; flist[F_INCREMENT_FILE_INDEX] = &ClientInterface::increment_file_index; + flist[F_SET_ADDITIONAL_JSON_PARAMETER] = &ClientInterface::set_additional_json_parameter; + flist[F_GET_ADDITIONAL_JSON_PARAMETER] = &ClientInterface::get_additional_json_parameter; for (int i = NUM_DET_FUNCTIONS + 1; i < NUM_REC_FUNCTIONS ; i++) { LOG(logDEBUG1) << "function fnum: " << i << " (" << @@ -325,29 +326,6 @@ int ClientInterface::set_port(Interface &socket) { return OK; } -int ClientInterface::update_client(Interface &socket) { - if (receiver == nullptr) - throw sls::SocketError( - "Receiver not set up. Please use rx_hostname first.\n"); - socket.Send(OK); - return send_update(socket); -} - -int ClientInterface::send_update(Interface &socket) { - int n = 0; - int i32 = -1; - - sls::IpAddr ip; - ip = server->getLastClient(); - n += socket.Send(&ip, sizeof(ip)); - - // gap pixels - i32 = (int)receiver->getGapPixelsEnable(); - n += socket.Send(&i32, sizeof(i32)); - - return OK; -} - int ClientInterface::get_version(Interface &socket) { return socket.sendResult(getReceiverVersion()); } @@ -989,26 +967,6 @@ int ClientInterface::get_silent_mode(Interface &socket) { return socket.sendResult(retval); } -int ClientInterface::enable_gap_pixels(Interface &socket) { - auto enable = socket.Receive(); - if (myDetectorType != EIGER) - functionNotImplemented(); - - if (enable >= 0) { - verifyIdle(socket); - LOG(logDEBUG1) << "Setting gap pixels enable:" << enable; - try { - impl()->setGapPixelsEnable(static_cast(enable)); - } catch(const RuntimeError &e) { - throw RuntimeError("Could not set gap pixels enable to " + std::to_string(enable)); - } - } - auto retval = static_cast(impl()->getGapPixelsEnable()); - validate(enable, retval, "set gap pixels enable", DEC); - LOG(logDEBUG1) << "Gap Pixels Enable: " << retval; - return socket.sendResult(retval); -} - int ClientInterface::restream_stop(Interface &socket) { verifyIdle(socket); if (!impl()->getDataStreamEnable()) { @@ -1022,19 +980,39 @@ int ClientInterface::restream_stop(Interface &socket) { } int ClientInterface::set_additional_json_header(Interface &socket) { - char arg[MAX_STR_LENGTH]{}; - socket.Receive(arg); + std::map json; + int size = socket.Receive(); + if (size > 0) { + char args[size * 2][SHORT_STR_LENGTH]; + memset(args, 0, sizeof(args)); + socket.Receive(args, sizeof(args)); + for (int i = 0; i < size; ++i) { + json[args[2 * i]] = args[2 * i + 1]; + } + } verifyIdle(socket); - LOG(logDEBUG1) << "Setting additional json header: " << arg; - impl()->setAdditionalJsonHeader(arg); + LOG(logDEBUG1) << "Setting additional json header: " << sls::ToString(json); + impl()->setAdditionalJsonHeader(json); return socket.Send(OK); } int ClientInterface::get_additional_json_header(Interface &socket) { - char retval[MAX_STR_LENGTH]{}; - sls::strcpy_safe(retval, impl()->getAdditionalJsonHeader().c_str()); - LOG(logDEBUG1) << "additional json header:" << retval; - return socket.sendResult(retval); + std::map json = impl()->getAdditionalJsonHeader(); + LOG(logDEBUG1) << "additional json header:" << sls::ToString(json); + int size = json.size(); + socket.sendResult(size); + if (size > 0) { + char retvals[size * 2][SHORT_STR_LENGTH]; + memset(retvals, 0, sizeof(retvals)); + int iarg = 0; + for (auto & it : json) { + sls::strcpy_safe(retvals[iarg], it.first.c_str()); + sls::strcpy_safe(retvals[iarg + 1], it.second.c_str()); + iarg += 2; + } + socket.Send(retvals, sizeof(retvals)); + } + return OK; } int ClientInterface::set_udp_socket_buffer_size(Interface &socket) { @@ -1427,4 +1405,23 @@ int ClientInterface::increment_file_index(Interface &socket) { impl()->setFileIndex(impl()->getFileIndex() + 1); } return socket.Send(OK); -} \ No newline at end of file +} + + +int ClientInterface::set_additional_json_parameter(Interface &socket) { + char args[2][SHORT_STR_LENGTH]{}; + socket.Receive(args); + verifyIdle(socket); + LOG(logDEBUG1) << "Setting additional json parameter (" << args[0] << "): " << args[1]; + impl()->setAdditionalJsonParameter(args[0], args[1]); + return socket.Send(OK); +} + +int ClientInterface::get_additional_json_parameter(Interface &socket) { + char arg[SHORT_STR_LENGTH]{}; + socket.Receive(arg); + char retval[SHORT_STR_LENGTH]{}; + sls::strcpy_safe(retval, impl()->getAdditionalJsonParameter(arg).c_str()); + LOG(logDEBUG1) << "additional json parameter (" << arg << "):" << retval; + return socket.sendResult(retval); +} diff --git a/slsReceiverSoftware/src/ClientInterface.h b/slsReceiverSoftware/src/ClientInterface.h index 6e1f3bc39..47716e9e9 100755 --- a/slsReceiverSoftware/src/ClientInterface.h +++ b/slsReceiverSoftware/src/ClientInterface.h @@ -55,8 +55,6 @@ class ClientInterface : private virtual slsDetectorDefs { int lock_receiver(sls::ServerInterface &socket); int get_last_client_ip(sls::ServerInterface &socket); int set_port(sls::ServerInterface &socket); - int update_client(sls::ServerInterface &socket); - int send_update(sls::ServerInterface &socket); int get_version(sls::ServerInterface &socket); int set_detector_type(sls::ServerInterface &socket); int set_detector_hostname(sls::ServerInterface &socket); @@ -107,7 +105,6 @@ class ClientInterface : private virtual slsDetectorDefs { int get_streaming_source_ip(sls::ServerInterface &socket); int set_silent_mode(sls::ServerInterface &socket); int get_silent_mode(sls::ServerInterface &socket); - int enable_gap_pixels(sls::ServerInterface &socket); int restream_stop(sls::ServerInterface &socket); int set_additional_json_header(sls::ServerInterface &socket); int get_additional_json_header(sls::ServerInterface &socket); @@ -138,6 +135,8 @@ class ClientInterface : private virtual slsDetectorDefs { int set_adc_mask_10g(sls::ServerInterface &socket); int set_num_counters(sls::ServerInterface &socket); int increment_file_index(sls::ServerInterface &socket); + int set_additional_json_parameter(sls::ServerInterface &socket); + int get_additional_json_parameter(sls::ServerInterface &socket); Implementation *impl() { if (receiver != nullptr) { diff --git a/slsReceiverSoftware/src/DataProcessor.cpp b/slsReceiverSoftware/src/DataProcessor.cpp index ed4d42e25..ad8a89a77 100755 --- a/slsReceiverSoftware/src/DataProcessor.cpp +++ b/slsReceiverSoftware/src/DataProcessor.cpp @@ -25,7 +25,7 @@ const std::string DataProcessor::TypeName = "DataProcessor"; DataProcessor::DataProcessor(int ind, detectorType dtype, Fifo* f, fileFormat* ftype, bool fwenable, bool* mfwenable, - bool* dsEnable, bool* gpEnable, uint32_t* dr, + bool* dsEnable, uint32_t* dr, uint32_t* freq, uint32_t* timer, bool* fp, bool* act, bool* depaden, bool* sm, bool* qe, std::vector * cdl, int* cdo, int* cad) : @@ -40,12 +40,10 @@ DataProcessor::DataProcessor(int ind, detectorType dtype, Fifo* f, fileFormatType(ftype), fileWriteEnable(fwenable), masterFileWriteEnable(mfwenable), - gapPixelsEnable(gpEnable), dynamicRange(dr), streamingFrequency(freq), streamingTimerInMs(timer), currentFreqCount(0), - tempBuffer(nullptr), activated(act), deactivatedPaddingEnable(depaden), silentMode(sm), @@ -69,7 +67,6 @@ DataProcessor::DataProcessor(int ind, detectorType dtype, Fifo* f, DataProcessor::~DataProcessor() { delete file; - delete [] tempBuffer; } /** getters */ @@ -116,15 +113,6 @@ void DataProcessor::ResetParametersforNewAcquisition(){ numFramesCaught = 0; firstIndex = 0; currentFrameIndex = 0; - - if (tempBuffer != nullptr) { - delete [] tempBuffer; - tempBuffer = nullptr; - } - if (*gapPixelsEnable) { - tempBuffer = new char[generalData->imageSize]; - memset(tempBuffer, 0, generalData->imageSize); - } } @@ -296,11 +284,6 @@ void DataProcessor::ProcessAnImage(char* buf) { } } - if (*gapPixelsEnable && (*dynamicRange!=4)) - InsertGapPixels(buf + FIFO_HEADER_NUMBYTES + sizeof(sls_receiver_header), - *dynamicRange); - - // frame padding if (*activated && *framePadding && nump < generalData->packetsPerFrame) PadMissingPackets(buf); @@ -512,103 +495,3 @@ void DataProcessor::RearrangeDbitData(char* buf) { (*((uint32_t*)buf)) = numResult8Bits * sizeof(uint8_t); } -/** eiger specific */ -void DataProcessor::InsertGapPixels(char* buf, uint32_t dr) { - - memset(tempBuffer, 0xFF, generalData->imageSize); - - int rightChip = ((*quadEnable) ? 0 : index); // quad enable, then faking both to be left chips - const uint32_t nx = generalData->nPixelsX; - const uint32_t ny = generalData->nPixelsY; - const uint32_t npx = nx * ny; - bool group3 = (*quadEnable) ? false : true; // if quad enabled, no last line for left chips - char* srcptr = nullptr; - char* dstptr = nullptr; - - const uint32_t b1px = generalData->imageSize / (npx); // not double as not dealing with 4 bit mode - const uint32_t b2px = 2 * b1px; - const uint32_t b1pxofst = (rightChip == 0 ? 0 : b1px); // left fpga (rightChip 0) has no extra 1px offset, but right fpga has - const uint32_t b1chip = 256 * b1px; - const uint32_t b1line = (nx * b1px); - const uint32_t bgroup3chip = b1chip + (group3 ? b1px : 0); - - // copying line by line - srcptr = buf; - dstptr = tempBuffer + b1line + b1pxofst; // left fpga (rightChip 0) has no extra 1px offset, but right fpga has - for (uint32_t i = 0; i < (ny-1); ++i) { - memcpy(dstptr, srcptr, b1chip); - srcptr += b1chip; - dstptr += (b1chip + b2px); - memcpy(dstptr, srcptr, b1chip); - srcptr += b1chip; - dstptr += bgroup3chip; - } - - // vertical filling of values - { - char* srcgp1 = nullptr; char* srcgp2 = nullptr; char* srcgp3 = nullptr; - char* dstgp1 = nullptr; char* dstgp2 = nullptr; char* dstgp3 = nullptr; - const uint32_t b3px = 3 * b1px; - - srcptr = tempBuffer + b1line; - dstptr = tempBuffer + b1line; - - for (uint32_t i = 0; i < (ny-1); ++i) { - srcgp1 = srcptr + b1pxofst + b1chip - b1px; - dstgp1 = srcgp1 + b1px; - srcgp2 = srcgp1 + b3px; - dstgp2 = dstgp1 + b1px; - if (group3) { - if (rightChip == 0u) { - srcgp3 = srcptr + b1line - b2px; - dstgp3 = srcgp3 + b1px; - } else { - srcgp3 = srcptr + b1px; - dstgp3 = srcptr; - } - } - switch (dr) { - case 8: - (*((uint8_t*)srcgp1)) = (*((uint8_t*)srcgp1))/2; (*((uint8_t*)dstgp1)) = (*((uint8_t*)srcgp1)); - (*((uint8_t*)srcgp2)) = (*((uint8_t*)srcgp2))/2; (*((uint8_t*)dstgp2)) = (*((uint8_t*)srcgp2)); - if (group3) { - (*((uint8_t*)srcgp3)) = (*((uint8_t*)srcgp3))/2; (*((uint8_t*)dstgp3)) = (*((uint8_t*)srcgp3)); - } - break; - case 16: - (*((uint16_t*)srcgp1)) = (*((uint16_t*)srcgp1))/2; (*((uint16_t*)dstgp1)) = (*((uint16_t*)srcgp1)); - (*((uint16_t*)srcgp2)) = (*((uint16_t*)srcgp2))/2; (*((uint16_t*)dstgp2)) = (*((uint16_t*)srcgp2)); - if (group3) { - (*((uint16_t*)srcgp3)) = (*((uint16_t*)srcgp3))/2; (*((uint16_t*)dstgp3)) = (*((uint16_t*)srcgp3)); - } - break; - default: - (*((uint32_t*)srcgp1)) = (*((uint32_t*)srcgp1))/2; (*((uint32_t*)dstgp1)) = (*((uint32_t*)srcgp1)); - (*((uint32_t*)srcgp2)) = (*((uint32_t*)srcgp2))/2; (*((uint32_t*)dstgp2)) = (*((uint32_t*)srcgp2)); - if (group3) { - (*((uint32_t*)srcgp3)) = (*((uint32_t*)srcgp3))/2; (*((uint32_t*)dstgp3)) = (*((uint32_t*)srcgp3)); - } - break; - } - srcptr += b1line; - dstptr += b1line; - } - - } - - // horizontal filling of values - srcptr = tempBuffer + b1line; - dstptr = tempBuffer; - for (uint32_t i = 0; i < nx; ++i) { - switch (dr) { - case 8: (*((uint8_t*)srcptr)) = (*((uint8_t*)srcptr))/2; (*((uint8_t*)dstptr)) = (*((uint8_t*)srcptr)); break; - case 16:(*((uint16_t*)srcptr)) = (*((uint16_t*)srcptr))/2; (*((uint16_t*)dstptr)) = (*((uint16_t*)srcptr)); break; - default:(*((uint32_t*)srcptr)) = (*((uint32_t*)srcptr))/2; (*((uint32_t*)dstptr)) = (*((uint32_t*)srcptr)); break; - } - srcptr += b1px; - dstptr += b1px; - } - - memcpy(buf, tempBuffer, generalData->imageSize); - return; -} diff --git a/slsReceiverSoftware/src/DataProcessor.h b/slsReceiverSoftware/src/DataProcessor.h index 7dbce1eb1..b6cdbd21d 100755 --- a/slsReceiverSoftware/src/DataProcessor.h +++ b/slsReceiverSoftware/src/DataProcessor.h @@ -33,7 +33,6 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject { * @param fwenable file writer enable * @apram mfwenable pointer to master file write enable * @param dsEnable pointer to data stream enable - * @param gpEnable pointer to gap pixels enable * @param dr pointer to dynamic range * @param freq pointer to streaming frequency * @param timer pointer to timer if streaming frequency is random @@ -47,7 +46,7 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject { * @param cad pointer to ctb analog databytes */ DataProcessor(int ind, detectorType dtype, Fifo* f, fileFormat* ftype, - bool fwenable, bool* mfwenable, bool* dsEnable, bool* gpEnable, uint32_t* dr, + bool fwenable, bool* mfwenable, bool* dsEnable, uint32_t* dr, uint32_t* freq, uint32_t* timer, bool* fp, bool* act, bool* depaden, bool* sm, bool* qe, std::vector * cdl, int* cdo, int* cad); @@ -252,13 +251,6 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject { */ void RearrangeDbitData(char* buf); - /** - * Processing Function (inserting gap pixels) eiger specific - * @param buf pointer to image - * @param dr dynamic range - */ - void InsertGapPixels(char* buf, uint32_t dr); - /** type of thread */ static const std::string TypeName; @@ -291,10 +283,6 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject { /** Master File Write Enable */ bool* masterFileWriteEnable; - /** Gap Pixels Enable */ - bool* gapPixelsEnable; - - /** Dynamic Range */ uint32_t* dynamicRange; @@ -310,9 +298,6 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject { /** timer beginning stamp for random streaming */ struct timespec timerBegin; - /** temporary buffer for processing */ - char* tempBuffer; - /** Activated/Deactivated */ bool* activated; diff --git a/slsReceiverSoftware/src/DataStreamer.cpp b/slsReceiverSoftware/src/DataStreamer.cpp index 9c96692cc..fe9ba9176 100755 --- a/slsReceiverSoftware/src/DataStreamer.cpp +++ b/slsReceiverSoftware/src/DataStreamer.cpp @@ -17,7 +17,7 @@ const std::string DataStreamer::TypeName = "DataStreamer"; DataStreamer::DataStreamer(int ind, Fifo* f, uint32_t* dr, ROI* r, - uint64_t* fi, int fd, std::string* ajh, int* nd, bool* gpEnable, bool* qe) : + uint64_t* fi, int fd, int* nd, bool* qe) : ThreadObject(ind, TypeName), runningFlag(0), generalData(nullptr), @@ -28,11 +28,9 @@ DataStreamer::DataStreamer(int ind, Fifo* f, uint32_t* dr, ROI* r, adcConfigured(-1), fileIndex(fi), flippedDataX(fd), - additionJsonHeader(ajh), startedFlag(false), firstIndex(0), completeBuffer(nullptr), - gapPixelsEnable(gpEnable), quadEnable(qe) { numDet[0] = nd[0]; @@ -108,6 +106,10 @@ void DataStreamer::SetFlippedDataX(int fd) { flippedDataX = fd; } +void DataStreamer::SetAdditionalJsonHeader(const std::map &json) { + additionJsonHeader = json; +} + void DataStreamer::CreateZmqSockets(int* nunits, uint32_t port, const sls::IpAddr ip) { uint32_t portnum = port + index; std::string sip = ip.str(); @@ -217,31 +219,58 @@ void DataStreamer::ProcessAnImage(char* buf) { int DataStreamer::SendHeader(sls_receiver_header* rheader, uint32_t size, uint32_t nx, uint32_t ny, bool dummy) { - if (dummy) - return zmqSocket->SendHeaderData(index, dummy,SLS_DETECTOR_JSON_HEADER_VERSION); + zmqHeader zHeader; + zHeader.data = !dummy; + zHeader.jsonversion = SLS_DETECTOR_JSON_HEADER_VERSION; + + if (dummy) { + return zmqSocket->SendHeader(index, zHeader); + } sls_detector_header header = rheader->detHeader; uint64_t frameIndex = header.frameNumber - firstIndex; uint64_t acquisitionIndex = header.frameNumber; - return zmqSocket->SendHeaderData(index, dummy, SLS_DETECTOR_JSON_HEADER_VERSION, *dynamicRange, *fileIndex, - numDet[0], numDet[1], nx, ny, size, - acquisitionIndex, frameIndex, fileNametoStream, - header.frameNumber, header.expLength, header.packetNumber, header.bunchId, header.timestamp, - header.modId, header.row, header.column, header.reserved, - header.debug, header.roundRNumber, - header.detType, header.version, - *gapPixelsEnable ? 1 : 0, flippedDataX, *quadEnable, - additionJsonHeader - ); + zHeader.dynamicRange = *dynamicRange; + zHeader.fileIndex = *fileIndex; + zHeader.ndetx = numDet[0]; + zHeader.ndety = numDet[1]; + zHeader.npixelsx = nx; + zHeader.npixelsy = ny; + zHeader.imageSize = size; + zHeader.acqIndex = acquisitionIndex; + zHeader.frameIndex = frameIndex; + zHeader.fname = fileNametoStream; + zHeader.frameNumber = header.frameNumber; + zHeader.expLength = header.expLength; + zHeader.packetNumber = header.packetNumber; + zHeader.bunchId = header.bunchId; + zHeader.timestamp = header.timestamp; + zHeader.modId = header.modId; + zHeader.row = header.row; + zHeader.column = header.column; + zHeader.reserved = header.reserved; + zHeader.debug = header.debug; + zHeader.roundRNumber = header.roundRNumber; + zHeader.detType = header.detType; + zHeader.version = header.version; + zHeader.flippedDataX = flippedDataX; + zHeader.quad = *quadEnable; + zHeader.completeImage = (header.packetNumber < generalData->packetsPerFrame ? false : true); + zHeader.addJsonHeader = additionJsonHeader; + + return zmqSocket->SendHeader(index, zHeader); } void DataStreamer::RestreamStop() { //send dummy header - int ret = zmqSocket->SendHeaderData(index, true, SLS_DETECTOR_JSON_HEADER_VERSION); + zmqHeader zHeader; + zHeader.data = false; + zHeader.jsonversion = SLS_DETECTOR_JSON_HEADER_VERSION; + int ret = zmqSocket->SendHeader(index, zHeader); if (!ret) { throw sls::RuntimeError("Could not restream Dummy Header via ZMQ for port " + std::to_string(zmqSocket->GetPortNumber())); } diff --git a/slsReceiverSoftware/src/DataStreamer.h b/slsReceiverSoftware/src/DataStreamer.h index c3fdd8d22..c43579e2a 100755 --- a/slsReceiverSoftware/src/DataStreamer.h +++ b/slsReceiverSoftware/src/DataStreamer.h @@ -15,7 +15,7 @@ class Fifo; class DataStreamer; class ZmqSocket; -#include +#include class DataStreamer : private virtual slsDetectorDefs, public ThreadObject { @@ -29,13 +29,11 @@ class DataStreamer : private virtual slsDetectorDefs, public ThreadObject { * @param r roi * @param fi pointer to file index * @param fd flipped data enable for x dimension - * @param ajh additional json header * @param nd pointer to number of detectors in each dimension - * @param gpEnable pointer to gap pixels enable * @param qe pointer to quad Enable */ DataStreamer(int ind, Fifo* f, uint32_t* dr, ROI* r, - uint64_t* fi, int fd, std::string* ajh, int* nd, bool* gpEnable, bool* qe); + uint64_t* fi, int fd, int* nd, bool* qe); /** * Destructor @@ -90,6 +88,12 @@ class DataStreamer : private virtual slsDetectorDefs, public ThreadObject { * @param flipped data enable in x dimension */ void SetFlippedDataX(int fd); + + /** + * Set additional json header + * @param json additional json header + */ + void SetAdditionalJsonHeader(const std::map &json); /** * Creates Zmq Sockets @@ -183,7 +187,7 @@ class DataStreamer : private virtual slsDetectorDefs, public ThreadObject { int flippedDataX; /** additional json header */ - std::string* additionJsonHeader; + std::map additionJsonHeader; /** Aquisition Started flag */ bool startedFlag; @@ -200,9 +204,6 @@ class DataStreamer : private virtual slsDetectorDefs, public ThreadObject { /** Number of Detectors in X and Y dimension */ int numDet[2]; - /** Gap Pixels Enable */ - bool* gapPixelsEnable; - /** Quad Enable */ bool* quadEnable; diff --git a/slsReceiverSoftware/src/GeneralData.h b/slsReceiverSoftware/src/GeneralData.h index c51fc79d6..ba6778094 100755 --- a/slsReceiverSoftware/src/GeneralData.h +++ b/slsReceiverSoftware/src/GeneralData.h @@ -171,16 +171,6 @@ public: LOG(logERROR) << "SetTenGigaEnable is a generic function that should be overloaded by a derived class"; }; - /** - * Enable Gap Pixels changes member variables - * @param enable true if gap pixels enable, else false - * @param dr dynamic range - * @param q quad enable - */ - virtual void SetGapPixelsEnable(bool b, int dr, bool q) { - LOG(logERROR) << "SetGapPixelsEnable is a generic function that should be overloaded by a derived class"; - }; - /** * Set odd starting packet (gotthard) * @param index thread index for debugging purposes @@ -452,39 +442,6 @@ class EigerData : public GeneralData { imageSize = dataSize*packetsPerFrame; }; - /** - * Enable Gap Pixels changes member variables - * @param enable true if gap pixels enable, else false - * @param dr dynamic range - * @param q quad enable - */ - void SetGapPixelsEnable(bool b, int dr, bool q) { - if (dr == 4) - b = 0; - switch((int)b) { - case 1: - nPixelsX = (256 * 2) + 3; - if (q) { - nPixelsX = (256 * 2) + 2; - } - nPixelsY = 256 + 1; - imageSize = nPixelsX * nPixelsY * ((dr > 16) ? 4 : // 32 bit - ((dr > 8) ? 2 : // 16 bit - ((dr > 4) ? 1 : // 8 bit - 0.5))); // 4 bit - break; - default: - nPixelsX = (256*2); - nPixelsY = 256; - imageSize = nPixelsX * nPixelsY * ((dr > 16) ? 4 : // 32 bit - ((dr > 8) ? 2 : // 16 bit - ((dr > 4) ? 1 : // 8 bit - 0.5))); // 4 bit - break; - } - }; - - }; diff --git a/slsReceiverSoftware/src/HDF5FileStatic.h b/slsReceiverSoftware/src/HDF5FileStatic.h index cea07edd4..a2d4cb89a 100755 --- a/slsReceiverSoftware/src/HDF5FileStatic.h +++ b/slsReceiverSoftware/src/HDF5FileStatic.h @@ -383,41 +383,29 @@ public: attribute = dataset.createAttribute("unit",strdatatype, dataspace); attribute.write(strdatatype, std::string("ns")); - //Gap Pixels Enable - dataset = group5.createDataSet ( "gap pixels enable", PredType::NATIVE_INT, dataspace ); - dataset.write ( &(attr.gapPixelsEnable), PredType::NATIVE_INT); - - //Quad Enable - dataset = group5.createDataSet ( "quad enable", PredType::NATIVE_INT, dataspace ); - dataset.write ( &(attr.quadEnable), PredType::NATIVE_INT); - - //Gap Pixels Enable - dataset = group5.createDataSet ( "gap pixels enable", PredType::NATIVE_INT, dataspace ); - dataset.write ( &(attr.gapPixelsEnable), PredType::NATIVE_INT); - //Quad Enable dataset = group5.createDataSet ( "quad enable", PredType::NATIVE_INT, dataspace ); dataset.write ( &(attr.quadEnable), PredType::NATIVE_INT); //Analog Flag dataset = group5.createDataSet ( "analog flag", PredType::NATIVE_INT, dataspace ); - dataset.write ( &(attr.quadEnable), PredType::NATIVE_INT); + dataset.write ( &(attr.analogFlag), PredType::NATIVE_INT); //Digital Flag dataset = group5.createDataSet ( "digital flag", PredType::NATIVE_INT, dataspace ); - dataset.write ( &(attr.gapPixelsEnable), PredType::NATIVE_INT); + dataset.write ( &(attr.digitalFlag), PredType::NATIVE_INT); //ADC Mask dataset = group5.createDataSet ( "adc mask", PredType::NATIVE_INT, dataspace ); - dataset.write ( &(attr.quadEnable), PredType::NATIVE_INT); + dataset.write ( &(attr.adcmask), PredType::NATIVE_INT); //Dbit Offset dataset = group5.createDataSet ( "dbit offset", PredType::NATIVE_INT, dataspace ); - dataset.write ( &(attr.gapPixelsEnable), PredType::NATIVE_INT); + dataset.write ( &(attr.dbitoffset), PredType::NATIVE_INT); // Dbit List dataset = group5.createDataSet ( "dbit bitset list", PredType::STD_U64LE, dataspace ); - dataset.write ( &(attr.periodNs), PredType::STD_U64LE); + dataset.write ( &(attr.dbitlist), PredType::STD_U64LE); // Roi xmin dataset = group5.createDataSet ( "roi xmin", PredType::NATIVE_INT, dataspace ); diff --git a/slsReceiverSoftware/src/Implementation.cpp b/slsReceiverSoftware/src/Implementation.cpp index d5f323c4c..b2bfec79d 100755 --- a/slsReceiverSoftware/src/Implementation.cpp +++ b/slsReceiverSoftware/src/Implementation.cpp @@ -37,6 +37,7 @@ void Implementation::DeleteMembers() { generalData = nullptr; } + additionalJsonHeader.clear(); listener.clear(); dataProcessor.clear(); dataStreamer.clear(); @@ -92,7 +93,6 @@ void Implementation::InitializeMembers() { streamingTimerInMs = DEFAULT_STREAMING_TIMER_IN_MS; streamingPort = 0; streamingSrcIP = sls::IpAddr{}; - additionalJsonHeader = ""; // detector parameters numberOfFrames = 0; @@ -108,7 +108,6 @@ void Implementation::InitializeMembers() { roi.xmax = -1; tengigaEnable = false; flippedDataX = 0; - gapPixelsEnable = false; quadEnable = false; activated = true; deactivatedPaddingEnable = true; @@ -273,7 +272,7 @@ void Implementation::setDetectorType(const detectorType d) { &activated, &deactivatedPaddingEnable, &silentMode)); dataProcessor.push_back(sls::make_unique( i, myDetectorType, fifo_ptr, &fileFormatType, fileWriteEnable, - &masterFileWriteEnable, &dataStreamEnable, &gapPixelsEnable, + &masterFileWriteEnable, &dataStreamEnable, &dynamicRange, &streamingFrequency, &streamingTimerInMs, &framePadding, &activated, &deactivatedPaddingEnable, &silentMode, &quadEnable, &ctbDbitList, &ctbDbitOffset, @@ -848,7 +847,6 @@ void Implementation::SetupWriter() { attr.subExptimeNs = subExpTime; attr.subPeriodNs = subPeriod; attr.periodNs = acquisitionPeriod; - attr.gapPixelsEnable = gapPixelsEnable; attr.quadEnable = quadEnable; attr.analogFlag = (readoutType == ANALOG_ONLY || readoutType == ANALOG_AND_DIGITAL) ? 1 : 0; attr.digitalFlag = (readoutType == DIGITAL_ONLY || readoutType == ANALOG_AND_DIGITAL) ? 1 : 0; @@ -943,7 +941,7 @@ void Implementation::setNumberofUDPInterfaces(const int n) { dataProcessor.push_back(sls::make_unique( i, myDetectorType, fifo_ptr, &fileFormatType, fileWriteEnable, &masterFileWriteEnable, &dataStreamEnable, - &gapPixelsEnable, &dynamicRange, &streamingFrequency, + &dynamicRange, &streamingFrequency, &streamingTimerInMs, &framePadding, &activated, &deactivatedPaddingEnable, &silentMode, &quadEnable, &ctbDbitList, &ctbDbitOffset, &ctbAnalogDataBytes)); @@ -965,10 +963,11 @@ void Implementation::setNumberofUDPInterfaces(const int n) { } dataStreamer.push_back(sls::make_unique( i, fifo[i].get(), &dynamicRange, &roi, &fileIndex, - fd, &additionalJsonHeader, (int*)nd, &gapPixelsEnable, &quadEnable)); + fd, (int*)nd, &quadEnable)); dataStreamer[i]->SetGeneralData(generalData); dataStreamer[i]->CreateZmqSockets( &numThreads, streamingPort, streamingSrcIP); + dataStreamer[i]->SetAdditionalJsonHeader(additionalJsonHeader); } catch (...) { if (dataStreamEnable) { @@ -1108,10 +1107,11 @@ void Implementation::setDataStreamEnable(const bool enable) { } dataStreamer.push_back(sls::make_unique( i, fifo[i].get(), &dynamicRange, &roi, &fileIndex, - fd, &additionalJsonHeader, (int*)nd, &gapPixelsEnable, &quadEnable)); + fd, (int*)nd, &quadEnable)); dataStreamer[i]->SetGeneralData(generalData); dataStreamer[i]->CreateZmqSockets( &numThreads, streamingPort, streamingSrcIP); + dataStreamer[i]->SetAdditionalJsonHeader(additionalJsonHeader); } catch (...) { dataStreamer.clear(); dataStreamEnable = false; @@ -1170,17 +1170,55 @@ void Implementation::setStreamingSourceIP(const sls::IpAddr ip) { LOG(logINFO) << "Streaming Source IP: " << streamingSrcIP; } -std::string Implementation::getAdditionalJsonHeader() const { +std::map Implementation::getAdditionalJsonHeader() const { LOG(logDEBUG3) << __SHORT_AT__ << " called"; return additionalJsonHeader; } -void Implementation::setAdditionalJsonHeader(const std::string& c) { +void Implementation::setAdditionalJsonHeader(const std::map &c) { LOG(logDEBUG3) << __SHORT_AT__ << " called"; additionalJsonHeader = c; - LOG(logINFO) << "Additional JSON Header: " << additionalJsonHeader; + for (const auto &it : dataStreamer) { + it->SetAdditionalJsonHeader(c); + } + LOG(logINFO) << "Additional JSON Header: " << sls::ToString(additionalJsonHeader); } +std::string Implementation::getAdditionalJsonParameter(const std::string &key) const { + if (additionalJsonHeader.find(key) != additionalJsonHeader.end()) { + return additionalJsonHeader.at(key); + } + throw sls::RuntimeError("No key " + key + " found in additional json header"); +} + +void Implementation::setAdditionalJsonParameter(const std::string &key, const std::string &value) { + auto pos = additionalJsonHeader.find(key); + + // if value is empty, delete + if (value.empty()) { + // doesnt exist + if (pos == additionalJsonHeader.end()) { + LOG(logINFO) << "Additional json parameter (" << key << ") does not exist anyway"; + } else { + LOG(logINFO) << "Deleting additional json parameter (" << key << ")"; + additionalJsonHeader.erase(pos); + } + } + // if found, set it + else if (pos != additionalJsonHeader.end()) { + additionalJsonHeader[key] = value; + LOG(logINFO) << "Setting additional json parameter (" << key << ") to " << value; + } + // append if not found + else { + additionalJsonHeader[key] = value; + LOG(logINFO) << "Adding additional json parameter (" << key << ") to " << value; + } + for (const auto &it : dataStreamer) { + it->SetAdditionalJsonHeader(additionalJsonHeader); + } + LOG(logINFO) << "Additional JSON Header: " << sls::ToString(additionalJsonHeader); +} /************************************************** * * @@ -1330,9 +1368,6 @@ void Implementation::setDynamicRange(const uint32_t i) { if (myDetectorType == EIGER || myDetectorType == MYTHEN3) { generalData->SetDynamicRange(i, tengigaEnable); - if (myDetectorType == EIGER) { - generalData->SetGapPixelsEnable(gapPixelsEnable, dynamicRange, quadEnable); - } // to update npixelsx, npixelsy in file writer for (const auto &it : dataProcessor) it->SetPixelDimension(); @@ -1377,7 +1412,6 @@ void Implementation::setTenGigaEnable(const bool b) { switch (myDetectorType) { case EIGER: generalData->SetTenGigaEnable(b, dynamicRange); - generalData->SetGapPixelsEnable(gapPixelsEnable, dynamicRange, quadEnable); break; case MOENCH: case CHIPTESTBOARD: @@ -1421,24 +1455,6 @@ void Implementation::setFlippedDataX(int enable) { LOG(logINFO) << "Flipped Data X: " << flippedDataX; } -bool Implementation::getGapPixelsEnable() const { - LOG(logDEBUG3) << __SHORT_AT__ << " called"; - return gapPixelsEnable; -} - -void Implementation::setGapPixelsEnable(const bool b) { - if (gapPixelsEnable != b) { - gapPixelsEnable = b; - - // side effects - generalData->SetGapPixelsEnable(b, dynamicRange, quadEnable); - for (const auto &it : dataProcessor) - it->SetPixelDimension(); - SetupFifoStructure(); - } - LOG(logINFO) << "Gap Pixels Enable: " << gapPixelsEnable; -} - bool Implementation::getQuad() const { LOG(logDEBUG) << __AT__ << " starting"; return quadEnable; @@ -1448,12 +1464,6 @@ void Implementation::setQuad(const bool b) { if (quadEnable != b) { quadEnable = b; - generalData->SetGapPixelsEnable(gapPixelsEnable, dynamicRange, b); - // to update npixelsx, npixelsy in file writer - for (const auto &it : dataProcessor) - it->SetPixelDimension(); - SetupFifoStructure(); - if (!quadEnable) { for (const auto &it : dataStreamer) { it->SetNumberofDetectors(numDet); diff --git a/slsReceiverSoftware/src/Implementation.h b/slsReceiverSoftware/src/Implementation.h index a5206593e..76cdc7dd7 100755 --- a/slsReceiverSoftware/src/Implementation.h +++ b/slsReceiverSoftware/src/Implementation.h @@ -14,6 +14,7 @@ class slsDetectorDefs; #include #include #include +#include class Implementation : private virtual slsDetectorDefs { public: @@ -123,8 +124,10 @@ class Implementation : private virtual slsDetectorDefs { void setStreamingPort(const uint32_t i); sls::IpAddr getStreamingSourceIP() const; void setStreamingSourceIP(const sls::IpAddr ip); - std::string getAdditionalJsonHeader() const; - void setAdditionalJsonHeader(const std::string& c); + std::map getAdditionalJsonHeader() const; + void setAdditionalJsonHeader(const std::map &c); + std::string getAdditionalJsonParameter(const std::string &key) const; + void setAdditionalJsonParameter(const std::string &key, const std::string &value); /************************************************** * * @@ -161,9 +164,6 @@ class Implementation : private virtual slsDetectorDefs { void setTenGigaEnable(const bool b); int getFlippedDataX() const; void setFlippedDataX(int enable = -1); - bool getGapPixelsEnable() const; - /* [Eiger] */ - void setGapPixelsEnable(const bool b); bool getQuad() const; /* [Eiger] */ void setQuad(const bool b); @@ -263,7 +263,7 @@ class Implementation : private virtual slsDetectorDefs { uint32_t streamingTimerInMs; uint32_t streamingPort; sls::IpAddr streamingSrcIP; - std::string additionalJsonHeader; + std::map additionalJsonHeader; // detector parameters uint64_t numberOfFrames; @@ -278,7 +278,6 @@ class Implementation : private virtual slsDetectorDefs { ROI roi; bool tengigaEnable; int flippedDataX; - bool gapPixelsEnable; bool quadEnable; bool activated; bool deactivatedPaddingEnable; diff --git a/slsReceiverSoftware/src/receiver_defs.h b/slsReceiverSoftware/src/receiver_defs.h index 2880d28fb..41eaaae16 100755 --- a/slsReceiverSoftware/src/receiver_defs.h +++ b/slsReceiverSoftware/src/receiver_defs.h @@ -74,7 +74,6 @@ struct masterAttributes { uint64_t subExptimeNs; uint64_t subPeriodNs; uint64_t periodNs; - uint32_t gapPixelsEnable; uint32_t quadEnable; uint32_t analogFlag; uint32_t digitalFlag; diff --git a/slsSupportLib/include/ZmqSocket.h b/slsSupportLib/include/ZmqSocket.h index ff1efac43..dd111c1f3 100755 --- a/slsSupportLib/include/ZmqSocket.h +++ b/slsSupportLib/include/ZmqSocket.h @@ -17,9 +17,59 @@ class zmq_msg_t; +#include + +/** zmq header structure */ +struct zmqHeader { + /** true if incoming data, false if end of acquisition */ + bool data{true}; + uint32_t jsonversion{0}; + uint32_t dynamicRange{0}; + uint64_t fileIndex{0}; + /** number of detectors in x axis */ + uint32_t ndetx{0}; + /** number of detectors in y axis */ + uint32_t ndety{0}; + /** number of pixels/channels in x axis for this zmq socket */ + uint32_t npixelsx{0}; + /** number of pixels/channels in y axis for this zmq socket */ + uint32_t npixelsy{0}; + /** number of bytes for an image in this socket */ + uint32_t imageSize{0}; + /** frame number from detector */ + uint64_t acqIndex{0}; + /** frame index (starting at 0 for each acquisition) */ + uint64_t frameIndex{0}; + /** file name prefix */ + std::string fname{""}; + /** header from detector */ + uint64_t frameNumber{0}; + uint32_t expLength{0}; + uint32_t packetNumber{0}; + uint64_t bunchId{0}; + uint64_t timestamp{0}; + uint16_t modId{0}; + uint16_t row{0}; + uint16_t column{0}; + uint16_t reserved{0}; + uint32_t debug{0}; + uint16_t roundRNumber{0}; + uint8_t detType{0}; + uint8_t version{0}; + /** if image should be flipped across x axis */ + int flippedDataX{0}; + /** quad type (eiger hardware specific) */ + uint32_t quad{0}; + /** true if complete image, else missing packets */ + bool completeImage{false}; + /** additional json header */ + std::map addJsonHeader; +}; + class ZmqSocket { public: + // Socket Options for optimization // ZMQ_LINGER default is already -1 means no messages discarded. use this // options if optimizing required ZMQ_SNDHWM default is 0 means no limit. use @@ -110,47 +160,10 @@ class ZmqSocket { /** * Send Message Header * @param index self index for debugging - * @param dummy true if a dummy message for end of acquisition - * @param jsonversion json version - * @param dynamicrange dynamic range - * @param fileIndex file or acquisition index - * @param ndetx number of detectors in x axis - * @param ndety number of detectors in y axis - * @param npixelsx number of pixels/channels in x axis for this zmq socket - * @param npixelsy number of pixels/channels in y axis for this zmq socket - * @param imageSize number of bytes for an image in this socket - * @param frameNumber current frame number - * @param expLength exposure length or subframe index if eiger - * @param packetNumber number of packets caught for this frame - * @param bunchId bunch id - * @param timestamp time stamp - * @param modId module Id - * @param row row index in complete detector - * @param column column index in complete detector - * @param reserved reserved - * @param debug debug - * @param roundRNumber not used yet - * @param detType detector enum - * @param version detector header version - * @param gapPixelsEnable gap pixels enable (exception: if gap pixels enable - * for 4 bit mode, data is not yet gap pixel enabled in receiver) - * @param flippedDataX if it is flipped across x axis - * @param quadEnable if quad is enabled - * @param additionalJsonHeader additional json header + * @param header zmq header (from json) * @returns 0 if error, else 1 */ - int SendHeaderData( - int index, bool dummy, uint32_t jsonversion, uint32_t dynamicrange = 0, - uint64_t fileIndex = 0, uint32_t ndetx = 0, uint32_t ndety = 0, - uint32_t npixelsx = 0, uint32_t npixelsy = 0, uint32_t imageSize = 0, - uint64_t acqIndex = 0, uint64_t fIndex = 0, std::string fname = "", - uint64_t frameNumber = 0, uint32_t expLength = 0, - uint32_t packetNumber = 0, uint64_t bunchId = 0, uint64_t timestamp = 0, - uint16_t modId = 0, uint16_t row = 0, uint16_t column = 0, - uint16_t reserved = 0, uint32_t debug = 0, uint16_t roundRNumber = 0, - uint8_t detType = 0, uint8_t version = 0, int gapPixelsEnable = 0, - int flippedDataX = 0, uint32_t quadEnable = 0, - std::string *additionalJsonHeader = 0); + int SendHeader(int index, zmqHeader header); /** * Send Message Body @@ -159,39 +172,16 @@ class ZmqSocket { * @returns 0 if error, else 1 */ int SendData(char *buf, int length); - - - + /** - * Receive Header (Important to close message after parsing header) + * Receive Header * @param index self index for debugging - * @param document parsed document reference + * @param zHeader filled out zmqHeader structure (parsed from json header) * @param version version that has to match, -1 to not care * @returns 0 if error or end of acquisition, else 1 (call * CloseHeaderMessage after parsing header) */ - int ReceiveHeader(const int index, rapidjson::Document &document, uint32_t version); - - /** - * Close Header Message. Call this function if ReceiveHeader returned 1 - */ - // void CloseHeaderMessage() { - // if (headerMessage) - // zmq_msg_close(headerMessage); - // headerMessage = 0; - // }; - /** - * Parse Header - * @param index self index for debugging - * @param length length of message - * @param message message - * @param document parsed document reference - * @param dummy true if end of acqusition, else false, loaded upon parsing - * @param version version that has to match, -1 to not care - * @returns true if successful else false - */ - int ParseHeader(const int index, int length, char *buff, rapidjson::Document &document, - bool &dummy, uint32_t version); + int ReceiveHeader(const int index, zmqHeader& zHeader, uint32_t version); /** * Receive Data @@ -216,6 +206,19 @@ class ZmqSocket { * @returns length of message, -1 if error */ int ReceiveMessage(const int index, zmq_msg_t &message); + + /** + * Parse Header + * @param index self index for debugging + * @param length length of message + * @param message message + * @param zHeader filled out zmqHeader structure (parsed from json header) + * @param version version that has to match, -1 to not care + * @returns true if successful else false + */ + int ParseHeader(const int index, int length, char *buff, + zmqHeader& zHeader, uint32_t version); + /** * Class to close socket descriptors automatically * upon encountering exceptions in the ZmqSocket constructor @@ -246,4 +249,6 @@ class ZmqSocket { /** Socket descriptor */ mySocketDescriptors sockfd; + + }; diff --git a/slsSupportLib/include/sls_detector_defs.h b/slsSupportLib/include/sls_detector_defs.h index 7e88d989d..d2a8f6198 100755 --- a/slsSupportLib/include/sls_detector_defs.h +++ b/slsSupportLib/include/sls_detector_defs.h @@ -37,7 +37,7 @@ #define DEFAULT_ZMQ_RX_PORTNO 30001 #define SLS_DETECTOR_HEADER_VERSION 0x2 -#define SLS_DETECTOR_JSON_HEADER_VERSION 0x3 +#define SLS_DETECTOR_JSON_HEADER_VERSION 0x4 // ctb/ moench 1g udp (read from fifo) #define UDP_PACKET_DATA_BYTES (1344) @@ -61,6 +61,7 @@ /** default maximum string length */ #define MAX_STR_LENGTH 1000 +#define SHORT_STR_LENGTH 20 #define DEFAULT_STREAMING_TIMER_IN_MS 200 @@ -480,8 +481,6 @@ struct detParameters { int nChipY{0}; int nDacs{0}; int dynamicRange{0}; - int nGappixelsX{0}; - int nGappixelsY{0}; detParameters() = default; explicit detParameters(slsDetectorDefs::detectorType type) { @@ -493,8 +492,6 @@ struct detParameters { nChipY = 1; nDacs = 8; dynamicRange = 16; - nGappixelsX = 0; - nGappixelsY = 0; break; case slsDetectorDefs::detectorType::JUNGFRAU: nChanX = 256; @@ -503,8 +500,6 @@ struct detParameters { nChipY = 2; nDacs = 8; dynamicRange = 16; - nGappixelsX = 0; - nGappixelsY = 0; break; case slsDetectorDefs::detectorType::CHIPTESTBOARD: nChanX = 36; @@ -513,8 +508,6 @@ struct detParameters { nChipY = 1; nDacs = 24; dynamicRange = 16; - nGappixelsX = 0; - nGappixelsY = 0; break; case slsDetectorDefs::detectorType::MOENCH: nChanX = 32; @@ -523,8 +516,6 @@ struct detParameters { nChipY = 1; nDacs = 8; dynamicRange = 16; - nGappixelsX = 0; - nGappixelsY = 0; break; case slsDetectorDefs::detectorType::EIGER: nChanX = 256; @@ -533,8 +524,6 @@ struct detParameters { nChipY = 1; nDacs = 16; dynamicRange = 16; - nGappixelsX = 6; - nGappixelsY = 1; break; case slsDetectorDefs::detectorType::MYTHEN3: nChanX = 128 * 3; @@ -543,8 +532,6 @@ struct detParameters { nChipY = 1; nDacs = 16; dynamicRange = 32; - nGappixelsX = 0; - nGappixelsY = 0; break; case slsDetectorDefs::detectorType::GOTTHARD2: nChanX = 128; @@ -553,8 +540,6 @@ struct detParameters { nChipY = 1; nDacs = 14; dynamicRange = 16; - nGappixelsX = 0; - nGappixelsY = 0; break; default: throw sls::RuntimeError("Unknown detector type! " + std::to_string(type)); diff --git a/slsSupportLib/include/sls_detector_funcs.h b/slsSupportLib/include/sls_detector_funcs.h index f4a4bd941..c5f0ee1eb 100755 --- a/slsSupportLib/include/sls_detector_funcs.h +++ b/slsSupportLib/include/sls_detector_funcs.h @@ -206,7 +206,6 @@ enum detFuncs{ F_LOCK_RECEIVER, F_GET_LAST_RECEIVER_CLIENT_IP, F_SET_RECEIVER_PORT, - F_UPDATE_RECEIVER_CLIENT, F_GET_RECEIVER_VERSION, F_GET_RECEIVER_TYPE, F_SEND_RECEIVER_DETHOSTNAME, @@ -256,7 +255,6 @@ enum detFuncs{ F_GET_RECEIVER_STREAMING_SRC_IP, F_SET_RECEIVER_SILENT_MODE, F_GET_RECEIVER_SILENT_MODE, - F_ENABLE_GAPPIXELS_IN_RECEIVER, F_RESTREAM_STOP_FROM_RECEIVER, F_SET_ADDITIONAL_JSON_HEADER, F_GET_ADDITIONAL_JSON_HEADER, @@ -287,6 +285,8 @@ enum detFuncs{ F_RECEIVER_SET_ADC_MASK_10G, F_RECEIVER_SET_NUM_COUNTERS, F_INCREMENT_FILE_INDEX, + F_SET_ADDITIONAL_JSON_PARAMETER, + F_GET_ADDITIONAL_JSON_PARAMETER, NUM_REC_FUNCTIONS }; @@ -489,7 +489,6 @@ static const char* getFunctionNameFromEnum(enum detFuncs func) { case F_LOCK_RECEIVER: return "F_LOCK_RECEIVER"; case F_GET_LAST_RECEIVER_CLIENT_IP: return "F_GET_LAST_RECEIVER_CLIENT_IP"; case F_SET_RECEIVER_PORT: return "F_SET_RECEIVER_PORT"; - case F_UPDATE_RECEIVER_CLIENT: return "F_UPDATE_RECEIVER_CLIENT"; case F_GET_RECEIVER_VERSION: return "F_GET_RECEIVER_VERSION"; case F_GET_RECEIVER_TYPE: return "F_GET_RECEIVER_TYPE"; case F_SEND_RECEIVER_DETHOSTNAME: return "F_SEND_RECEIVER_DETHOSTNAME"; @@ -539,7 +538,6 @@ static const char* getFunctionNameFromEnum(enum detFuncs func) { case F_GET_RECEIVER_STREAMING_SRC_IP: return "F_GET_RECEIVER_STREAMING_SRC_IP"; case F_SET_RECEIVER_SILENT_MODE: return "F_SET_RECEIVER_SILENT_MODE"; case F_GET_RECEIVER_SILENT_MODE: return "F_GET_RECEIVER_SILENT_MODE"; - case F_ENABLE_GAPPIXELS_IN_RECEIVER: return "F_ENABLE_GAPPIXELS_IN_RECEIVER"; case F_RESTREAM_STOP_FROM_RECEIVER: return "F_RESTREAM_STOP_FROM_RECEIVER"; case F_SET_ADDITIONAL_JSON_HEADER: return "F_SET_ADDITIONAL_JSON_HEADER"; case F_GET_ADDITIONAL_JSON_HEADER: return "F_GET_ADDITIONAL_JSON_HEADER"; @@ -570,7 +568,8 @@ static const char* getFunctionNameFromEnum(enum detFuncs func) { case F_RECEIVER_SET_ADC_MASK_10G: return "F_RECEIVER_SET_ADC_MASK_10G"; case F_RECEIVER_SET_NUM_COUNTERS: return "F_RECEIVER_SET_NUM_COUNTERS"; case F_INCREMENT_FILE_INDEX: return "F_INCREMENT_FILE_INDEX"; - + case F_SET_ADDITIONAL_JSON_PARAMETER: return "F_SET_ADDITIONAL_JSON_PARAMETER"; + case F_GET_ADDITIONAL_JSON_PARAMETER: return "F_GET_ADDITIONAL_JSON_PARAMETER"; case NUM_REC_FUNCTIONS: return "NUM_REC_FUNCTIONS"; default: return "Unknown Function"; diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index 9067d6269..5b6504124 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -3,10 +3,10 @@ #define APILIB 0x200227 #define APIRECEIVER 0x200227 #define APIGUI 0x200227 -#define APICTB 0x200310 -#define APIGOTTHARD 0x200310 -#define APIJUNGFRAU 0x200310 -#define APIMYTHEN3 0x200310 -#define APIMOENCH 0x200310 -#define APIEIGER 0x200310 -#define APIGOTTHARD2 0x200313 +#define APICTB 0x200311 +#define APIGOTTHARD 0x200326 +#define APIGOTTHARD2 0x200326 +#define APIJUNGFRAU 0x200326 +#define APIMYTHEN3 0x200311 +#define APIMOENCH 0x200326 +#define APIEIGER 0x200326 diff --git a/slsSupportLib/src/ZmqSocket.cpp b/slsSupportLib/src/ZmqSocket.cpp index 3ef63f91d..3874e8b99 100644 --- a/slsSupportLib/src/ZmqSocket.cpp +++ b/slsSupportLib/src/ZmqSocket.cpp @@ -145,6 +145,244 @@ int ZmqSocket::ConvertInternetAddresstoIpString(struct addrinfo *res, char *ip, return 1; } +int ZmqSocket::SendHeader( + int index, zmqHeader header) { + + /** Json Header Format */ + const char jsonHeaderFormat[] = "{" + "\"jsonversion\":%u, " + "\"bitmode\":%u, " + "\"fileIndex\":%lu, " + "\"detshape\":[%u, %u], " + "\"shape\":[%u, %u], " + "\"size\":%u, " + "\"acqIndex\":%lu, " + "\"frameIndex\":%lu, " + "\"fname\":\"%s\", " + "\"data\": %d, " + "\"completeImage\": %d, " + + "\"frameNumber\":%lu, " + "\"expLength\":%u, " + "\"packetNumber\":%u, " + "\"bunchId\":%lu, " + "\"timestamp\":%lu, " + "\"modId\":%u, " + "\"row\":%u, " + "\"column\":%u, " + "\"reserved\":%u, " + "\"debug\":%u, " + "\"roundRNumber\":%u, " + "\"detType\":%u, " + "\"version\":%u, " + + // additional stuff + "\"flippedDataX\":%u, " + "\"quad\":%u" + + ; //"}\n"; + char buf[MAX_STR_LENGTH] = ""; + sprintf(buf, jsonHeaderFormat, + header.jsonversion, + header.dynamicRange, + header.fileIndex, + header.ndetx, + header.ndety, + header.npixelsx, + header.npixelsy, + header.imageSize, + header.acqIndex, + header.frameIndex, + header.fname.c_str(), + header.data ? 1 : 0, + header.completeImage ? 1 : 0, + + header.frameNumber, + header.expLength, + header.packetNumber, + header.bunchId, + header.timestamp, + header.modId, + header.row, + header.column, + header.reserved, + header.debug, + header.roundRNumber, + header.detType, + header.version, + + // additional stuff + header.flippedDataX, + header.quad); + + if (header.addJsonHeader.size() > 0) { + strcat(buf, ", "); + strcat(buf, "\"addJsonHeader\": {"); + for (auto it = header.addJsonHeader.begin(); it != header.addJsonHeader.end(); ++it) { + if (it != header.addJsonHeader.begin()) { + strcat(buf, ", "); + } + strcat(buf, "\""); + strcat(buf, it->first.c_str()); + strcat(buf, "\":\""); + strcat(buf, it->second.c_str()); + strcat(buf, "\""); + } + strcat(buf, " } "); + } + + strcat(buf, "}\n"); + int length = strlen(buf); + +#ifdef VERBOSE + // if(!index) + cprintf(BLUE, "%d : Streamer: buf: %s\n", index, buf); +#endif + + if (zmq_send(sockfd.socketDescriptor, buf, length, + header.data ? ZMQ_SNDMORE : 0) < 0) { + PrintError(); + return 0; + } +#ifdef VERBOSE + cprintf(GREEN, "[%u] send header data\n", portno); +#endif + return 1; +} + +int ZmqSocket::SendData(char *buf, int length) { + if (zmq_send(sockfd.socketDescriptor, buf, length, 0) < 0) { + PrintError(); + return 0; + } + return 1; +} + +int ZmqSocket::ReceiveHeader(const int index, zmqHeader& zHeader, + uint32_t version) { + std::vector buffer(MAX_STR_LENGTH); + int len = + zmq_recv(sockfd.socketDescriptor, buffer.data(), buffer.size(), 0); + if (len > 0) { +#ifdef ZMQ_DETAIL + cprintf(BLUE, "Header %d [%d] Length: %d Header:%s \n", index, portno, + len, buffer.data()); +#endif + if (ParseHeader(index, len, buffer.data(), zHeader, version)) { +#ifdef ZMQ_DETAIL + cprintf(RED, "Parsed Header %d [%d] Length: %d Header:%s \n", index, + portno, len, buffer.data()); +#endif + if (!zHeader.data) { +#ifdef ZMQ_DETAIL + cprintf(RED, "%d [%d] Received end of acquisition\n", index, + portno); +#endif + return 0; + } +#ifdef ZMQ_DETAIL + cprintf(GREEN, "%d [%d] data\n", index, portno); +#endif + return 1; + } + } + return 0; +}; + +int ZmqSocket::ParseHeader(const int index, int length, char *buff, + zmqHeader& zHeader, uint32_t version) { + Document document; + if (document.Parse(buff, length).HasParseError()) { + LOG(logERROR) << index << " Could not parse. len:" << length + << ": Message:" << buff; + fflush(stdout); + // char* buf = (char*) zmq_msg_data (&message); + for (int i = 0; i < length; ++i) { + cprintf(RED, "%02x ", buff[i]); + } + printf("\n"); + fflush(stdout); + return 0; + } + + // version check + zHeader.jsonversion = document["jsonversion"].GetUint(); + if (zHeader.jsonversion != version) { + LOG(logERROR) << "version mismatch. required " << version << ", got " + << zHeader.jsonversion; + return 0; + } + + // parse + zHeader.data = ((document["data"].GetUint()) == 0) ? false : true; + zHeader.dynamicRange = document["bitmode"].GetUint(); + zHeader.fileIndex = document["fileIndex"].GetUint64(); + zHeader.ndetx = document["detshape"][0].GetUint(); + zHeader.ndety = document["detshape"][1].GetUint(); + zHeader.npixelsx = document["shape"][0].GetUint(); + zHeader.npixelsy = document["shape"][1].GetUint(); + zHeader.imageSize = document["size"].GetUint(); + zHeader.acqIndex = document["acqIndex"].GetUint64(); + zHeader.frameIndex = document["frameIndex"].GetUint64(); + zHeader.fname = document["fname"].GetString(); + + zHeader.frameNumber = document["frameNumber"].GetUint64(); + zHeader.expLength = document["expLength"].GetUint(); + zHeader.packetNumber = document["packetNumber"].GetUint(); + zHeader.bunchId = document["bunchId"].GetUint64(); + zHeader.timestamp = document["timestamp"].GetUint64(); + zHeader.modId = document["modId"].GetUint(); + zHeader.row = document["row"].GetUint(); + zHeader.column = document["column"].GetUint(); + zHeader.reserved = document["reserved"].GetUint(); + zHeader.debug = document["debug"].GetUint(); + zHeader.roundRNumber = document["roundRNumber"].GetUint(); + zHeader.detType = document["detType"].GetUint(); + zHeader.version = document["version"].GetUint(); + + zHeader.flippedDataX = document["flippedDataX"].GetUint(); + zHeader.quad = document["quad"].GetUint(); + zHeader.completeImage = document["completeImage"].GetUint(); + + if (document.HasMember("addJsonHeader")) { + const Value& V = document["addJsonHeader"]; + zHeader.addJsonHeader.clear(); + for (Value::ConstMemberIterator iter = V.MemberBegin(); iter != V.MemberEnd(); ++iter){ + zHeader.addJsonHeader[iter->name.GetString()] = iter->value.GetString(); + } + } + + return 1; +} + +int ZmqSocket::ReceiveData(const int index, char *buf, const int size) { + zmq_msg_t message; + zmq_msg_init(&message); + int length = ReceiveMessage(index, message); + if (length == size) { + memcpy(buf, (char *)zmq_msg_data(&message), size); + } else if (length < size) { + memcpy(buf, (char *)zmq_msg_data(&message), length); + memset(buf + length, 0xFF, size - length); + } else { + LOG(logERROR) << "Received weird packet size " << length + << " for socket " << index; + memset(buf, 0xFF, size); + } + + zmq_msg_close(&message); + return length; +} + +int ZmqSocket::ReceiveMessage(const int index, zmq_msg_t &message) { + int length = zmq_msg_recv(&message, sockfd.socketDescriptor, 0); + if (length == -1) { + PrintError(); + LOG(logERROR) << "Could not read header for socket " << index; + } + return length; +} + void ZmqSocket::PrintError() { switch (errno) { case EINVAL: @@ -210,181 +448,6 @@ void ZmqSocket::PrintError() { } } -int ZmqSocket::ReceiveData(const int index, char *buf, const int size) { - zmq_msg_t message; - zmq_msg_init(&message); - int length = ReceiveMessage(index, message); - if (length == size) { - memcpy(buf, (char *)zmq_msg_data(&message), size); - } else if (length < size) { - memcpy(buf, (char *)zmq_msg_data(&message), length); - memset(buf + length, 0xFF, size - length); - } else { - LOG(logERROR) << "Received weird packet size " << length - << " for socket " << index; - memset(buf, 0xFF, size); - } - - zmq_msg_close(&message); - return length; -} - -int ZmqSocket::ParseHeader(const int index, int length, char *buff, - Document &document, bool &dummy, uint32_t version) { - if (document.Parse(buff, length).HasParseError()) { - LOG(logERROR) << index << " Could not parse. len:" << length - << ": Message:" << buff; - fflush(stdout); - // char* buf = (char*) zmq_msg_data (&message); - for (int i = 0; i < length; ++i) { - cprintf(RED, "%02x ", buff[i]); - } - printf("\n"); - fflush(stdout); - return 0; - } - - if (document["jsonversion"].GetUint() != version) { - LOG(logERROR) << "version mismatch. required " << version << ", got " - << document["jsonversion"].GetUint(); - return 0; - } - - dummy = false; - int temp = document["data"].GetUint(); - dummy = temp ? false : true; - - return 1; -} - -int ZmqSocket::ReceiveHeader(const int index, Document &document, - uint32_t version) { - std::vector buffer(MAX_STR_LENGTH); - int len = - zmq_recv(sockfd.socketDescriptor, buffer.data(), buffer.size(), 0); - if (len > 0) { - bool dummy = false; -#ifdef ZMQ_DETAIL - cprintf(BLUE, "Header %d [%d] Length: %d Header:%s \n", index, portno, - len, buffer.data()); -#endif - if (ParseHeader(index, len, buffer.data(), document, dummy, version)) { -#ifdef ZMQ_DETAIL - cprintf(RED, "Parsed Header %d [%d] Length: %d Header:%s \n", index, - portno, len, buffer.data()); -#endif - if (dummy) { -#ifdef ZMQ_DETAIL - cprintf(RED, "%d [%d] Received end of acquisition\n", index, - portno); -#endif - return 0; - } -#ifdef ZMQ_DETAIL - cprintf(GREEN, "%d [%d] data\n", index, portno); -#endif - return 1; - } - } - return 0; -}; - -int ZmqSocket::ReceiveMessage(const int index, zmq_msg_t &message) { - int length = zmq_msg_recv(&message, sockfd.socketDescriptor, 0); - if (length == -1) { - PrintError(); - LOG(logERROR) << "Could not read header for socket " << index; - } - return length; -} - -int ZmqSocket::SendData(char *buf, int length) { - if (zmq_send(sockfd.socketDescriptor, buf, length, 0) < 0) { - PrintError(); - return 0; - } - return 1; -} - -int ZmqSocket::SendHeaderData( - int index, bool dummy, uint32_t jsonversion, uint32_t dynamicrange, - uint64_t fileIndex, uint32_t ndetx, uint32_t ndety, uint32_t npixelsx, - uint32_t npixelsy, uint32_t imageSize, uint64_t acqIndex, uint64_t fIndex, - std::string fname, uint64_t frameNumber, uint32_t expLength, - uint32_t packetNumber, uint64_t bunchId, uint64_t timestamp, uint16_t modId, - uint16_t row, uint16_t column, uint16_t reserved, uint32_t debug, - uint16_t roundRNumber, uint8_t detType, uint8_t version, - int gapPixelsEnable, int flippedDataX, uint32_t quadEnable, - std::string *additionalJsonHeader) { - - /** Json Header Format */ - const char jsonHeaderFormat[] = "{" - "\"jsonversion\":%u, " - "\"bitmode\":%u, " - "\"fileIndex\":%lu, " - "\"detshape\":[%u, %u], " - "\"shape\":[%u, %u], " - "\"size\":%u, " - "\"acqIndex\":%lu, " - "\"fIndex\":%lu, " - "\"fname\":\"%s\", " - "\"data\": %d, " - - "\"frameNumber\":%lu, " - "\"expLength\":%u, " - "\"packetNumber\":%u, " - "\"bunchId\":%lu, " - "\"timestamp\":%lu, " - "\"modId\":%u, " - "\"row\":%u, " - "\"column\":%u, " - "\"reserved\":%u, " - "\"debug\":%u, " - "\"roundRNumber\":%u, " - "\"detType\":%u, " - "\"version\":%u, " - - // additional stuff - "\"gappixels\":%u, " - "\"flippedDataX\":%u, " - "\"quad\":%u" - - ; //"}\n"; - char buf[MAX_STR_LENGTH] = ""; - sprintf(buf, jsonHeaderFormat, jsonversion, dynamicrange, fileIndex, ndetx, - ndety, npixelsx, npixelsy, imageSize, acqIndex, fIndex, - fname.c_str(), dummy ? 0 : 1, - - frameNumber, expLength, packetNumber, bunchId, timestamp, modId, - row, column, reserved, debug, roundRNumber, detType, version, - - // additional stuff - gapPixelsEnable, flippedDataX, quadEnable); - - if (additionalJsonHeader && !((*additionalJsonHeader).empty())) { - strcat(buf, ", "); - strcat(buf, (*additionalJsonHeader).c_str()); - } - strcat(buf, "}\n"); - int length = strlen(buf); - -#ifdef VERBOSE - // if(!index) - cprintf(BLUE, "%d : Streamer: buf: %s\n", index, buf); -#endif - - if (zmq_send(sockfd.socketDescriptor, buf, length, - dummy ? 0 : ZMQ_SNDMORE) < 0) { - PrintError(); - return 0; - } -#ifdef VERBOSE - cprintf(GREEN, "[%u] send header data\n", portno); -#endif - return 1; -} - - //Nested class to do RAII handling of socket descriptors ZmqSocket::mySocketDescriptors::mySocketDescriptors() : server(false), contextDescriptor(0), socketDescriptor(0){}; From 719157f5c355b087e128a7fc969f9c027d6fb491 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Mon, 30 Mar 2020 14:59:08 +0200 Subject: [PATCH 12/33] python funcs --- docs/src/installation.rst | 14 ++++++++++++- python/src/detector.cpp | 41 ++++++++++++++++++++------------------- 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/docs/src/installation.rst b/docs/src/installation.rst index 57f624dc7..868b7aef2 100644 --- a/docs/src/installation.rst +++ b/docs/src/installation.rst @@ -54,4 +54,16 @@ using this compiler conda create -n myenv gxx_linux-64 cmake zmq conda activate myenv cmake ../slsDetectorPackage -DCMAKE_PREFIX_PATH=$CONDA_PREFIX - make -j12 \ No newline at end of file + make -j12 + + +Build this documentation +------------------------------- + +The documentation for the slsDetectorPackage is build using a combination +of Doxygen, Sphinx and Breathe. The easiest way to install the dependencies +is to use conda + +.. code-block:: bash + + conda create -n myenv python sphinx sphinx_rtd_theme \ No newline at end of file diff --git a/python/src/detector.cpp b/python/src/detector.cpp index d14258e8b..09a69668d 100644 --- a/python/src/detector.cpp +++ b/python/src/detector.cpp @@ -99,6 +99,12 @@ void init_det(py::module &m) { void (*)(detectorData *, uint64_t, uint32_t, void *), void *)) & Detector::registerDataCallback, py::arg(), py::arg()) + .def("getGapPixelsinCallback", + (bool (Detector::*)()) & Detector::getGapPixelsinCallback) + .def("setGapPixelsinCallback", + (void (Detector::*)(const bool)) & + Detector::setGapPixelsinCallback, + py::arg()) .def("getNumberOfFrames", (Result(Detector::*)(sls::Positions)) & Detector::getNumberOfFrames, @@ -246,6 +252,10 @@ void init_det(py::module &m) { (Result(Detector::*)(sls::Positions)) & Detector::getHighVoltage, py::arg() = Positions{}) + .def("setHighVoltage", + (void (Detector::*)(int, sls::Positions)) & + Detector::setHighVoltage, + py::arg(), py::arg() = Positions{}) .def("getPowerChip", (Result(Detector::*)(sls::Positions)) & Detector::getPowerChip, @@ -254,9 +264,13 @@ void init_det(py::module &m) { (void (Detector::*)(bool, sls::Positions)) & Detector::setPowerChip, py::arg(), py::arg() = Positions{}) - .def("setHighVoltage", - (void (Detector::*)(int, sls::Positions)) & - Detector::setHighVoltage, + .def("getImageTestMode", + (Result(Detector::*)(sls::Positions)) & + Detector::getImageTestMode, + py::arg() = Positions{}) + .def("setImageTestMode", + (void (Detector::*)(const int, sls::Positions)) & + Detector::setImageTestMode, py::arg(), py::arg() = Positions{}) .def("getTemperature", (Result(Detector::*)(defs::dacIndex, sls::Positions)) & @@ -685,13 +699,6 @@ void init_det(py::module &m) { (void (Detector::*)(const std::string &, sls::Positions)) & Detector::loadTrimbits, py::arg(), py::arg() = Positions{}) - .def("getRxAddGapPixels", - (Result(Detector::*)(sls::Positions)) & - Detector::getRxAddGapPixels, - py::arg() = Positions{}) - .def("setRxAddGapPixels", - (void (Detector::*)(bool)) & Detector::setRxAddGapPixels, - py::arg()) .def("getParallelMode", (Result(Detector::*)(sls::Positions)) & Detector::getParallelMode, @@ -889,14 +896,6 @@ void init_det(py::module &m) { (void (Detector::*)(defs::externalSignalFlag, sls::Positions)) & Detector::setExternalSignalFlags, py::arg(), py::arg() = Positions{}) - .def("getImageTestMode", - (Result(Detector::*)(sls::Positions)) & - Detector::getImageTestMode, - py::arg() = Positions{}) - .def("setImageTestMode", - (void (Detector::*)(const int, sls::Positions)) & - Detector::setImageTestMode, - py::arg(), py::arg() = Positions{}) .def("getNumberOfBursts", (Result(Detector::*)(sls::Positions)) & Detector::getNumberOfBursts, @@ -1190,11 +1189,13 @@ void init_det(py::module &m) { Detector::setPatternBitMask, py::arg(), py::arg() = Positions{}) .def("getAdditionalJsonHeader", - (Result(Detector::*)(sls::Positions)) & + (Result>(Detector::*)( + sls::Positions)) & Detector::getAdditionalJsonHeader, py::arg() = Positions{}) .def("setAdditionalJsonHeader", - (void (Detector::*)(const std::string &, sls::Positions)) & + (void (Detector::*)(const std::map &, + sls::Positions)) & Detector::setAdditionalJsonHeader, py::arg(), py::arg() = Positions{}) .def("getAdditionalJsonParameter", From 3ba9e5ec22a7e059537464a04241c7689607bec1 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 30 Mar 2020 18:24:42 +0200 Subject: [PATCH 13/33] eiger, jungfrau, ctb, moench, gotthard virtual servers checked --- slsDetectorServers/CMakeLists.txt | 6 +- .../slsDetectorFunctionList.c | 205 +++++++++++------- .../slsDetectorFunctionList.c | 76 +++---- .../slsDetectorFunctionList.c | 6 +- .../gotthardDetectorServer/CMakeLists.txt | 1 + .../slsDetectorFunctionList.c | 194 ++++++++++++----- .../slsDetectorFunctionList.c | 13 +- .../slsDetectorFunctionList.c | 205 +++++++++++------- .../slsDetectorFunctionList.c | 4 + .../src/communication_funcs.c | 5 + .../src/communication_funcs_UDP.c | 6 +- 11 files changed, 448 insertions(+), 273 deletions(-) diff --git a/slsDetectorServers/CMakeLists.txt b/slsDetectorServers/CMakeLists.txt index f185b732a..9d6d45d31 100644 --- a/slsDetectorServers/CMakeLists.txt +++ b/slsDetectorServers/CMakeLists.txt @@ -22,7 +22,7 @@ install(TARGETS slsProjectCWarnings add_subdirectory(ctbDetectorServer) add_subdirectory(eigerDetectorServer) add_subdirectory(gotthardDetectorServer) -add_subdirectory(jungfrauDetectorServer) -add_subdirectory(mythen3DetectorServer) -add_subdirectory(gotthard2DetectorServer) +#add_subdirectory(jungfrauDetectorServer) +#add_subdirectory(mythen3DetectorServer) +#add_subdirectory(gotthard2DetectorServer) add_subdirectory(moenchDetectorServer) diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c index 8ca4963a9..f8f2a1137 100755 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c @@ -13,19 +13,26 @@ #include #include // usleep +#include #ifdef VIRTUAL #include #include +#include //ceil #endif // Global variable from slsDetectorServer_funcs extern int debugflag; extern udpStruct udpDetails; +extern const enum detectorType myDetectorType; // Global variable from UDPPacketHeaderGenerator extern uint64_t udpFrameNumber; extern uint32_t udpPacketNumber; +// Global variable from communication_funcs.c +extern void getMacAddressinString(char* cmac, int size, uint64_t mac); +extern void getIpAddressinString(char* cip, uint32_t ip); + int initError = OK; int initCheckDone = 0; char initErrorMessage[MAX_STR_LENGTH]; @@ -1473,26 +1480,36 @@ void calcChecksum(udp_header* udp) { int configureMAC(){ - uint32_t sourceip = udpDetails.srcip; - uint32_t destip = udpDetails.dstip; - uint64_t sourcemac = udpDetails.srcmac; - uint64_t destmac = udpDetails.dstmac; - int sourceport = udpDetails.srcport; - int destport = udpDetails.dstport; -#ifdef VIRTUAL - return OK; -#endif + uint32_t srcip = udpDetails.srcip; + uint32_t dstip = udpDetails.dstip; + uint64_t srcmac = udpDetails.srcmac; + uint64_t dstmac = udpDetails.dstmac; + int srcport = udpDetails.srcport; + int dstport = udpDetails.dstport; + LOG(logINFOBLUE, ("Configuring MAC\n")); + char src_mac[50], src_ip[INET_ADDRSTRLEN],dst_mac[50], dst_ip[INET_ADDRSTRLEN]; + getMacAddressinString(src_mac, 50, srcmac); + getMacAddressinString(dst_mac, 50, dstmac); + getIpAddressinString(src_ip, srcip); + getIpAddressinString(dst_ip, dstip); + + LOG(logINFO, ( + "\tSource IP : %s\n" + "\tSource MAC : %s\n" + "\tSource Port : %d\n" + "\tDest IP : %s\n" + "\tDest MAC : %s\n" + "\tDest Port : %d\n", + src_ip, src_mac, srcport, + dst_ip, dst_mac, dstport)); + // 1 giga udp if (!enableTenGigabitEthernet(-1)) { - LOG(logINFOBLUE, ("Configuring 1G MAC\n")); + LOG(logINFOBLUE, ("\t1G MAC\n")); if (updateDatabytesandAllocateRAM() == FAIL) return -1; - char cDestIp[MAX_STR_LENGTH]; - memset(cDestIp, 0, MAX_STR_LENGTH); - sprintf(cDestIp, "%d.%d.%d.%d", (destip>>24)&0xff,(destip>>16)&0xff,(destip>>8)&0xff,(destip)&0xff); - LOG(logINFO, ("1G UDP: Destination (IP: %s, port:%d)\n", cDestIp, destport)); - if (setUDPDestinationDetails(0, cDestIp, destport) == FAIL) { + if (setUDPDestinationDetails(0, dst_ip, dstport) == FAIL) { LOG(logERROR, ("could not set udp 1G destination IP and port\n")); return FAIL; } @@ -1500,31 +1517,7 @@ int configureMAC(){ } // 10 G - LOG(logINFOBLUE, ("Configuring 10G MAC\n")); - - LOG(logINFO, ("\tSource IP : %d.%d.%d.%d \t\t(0x%08x)\n", - (sourceip>>24)&0xff,(sourceip>>16)&0xff,(sourceip>>8)&0xff,(sourceip)&0xff, sourceip)); - LOG(logINFO, ("\tSource MAC : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", - (unsigned int)((sourcemac>>40)&0xFF), - (unsigned int)((sourcemac>>32)&0xFF), - (unsigned int)((sourcemac>>24)&0xFF), - (unsigned int)((sourcemac>>16)&0xFF), - (unsigned int)((sourcemac>>8)&0xFF), - (unsigned int)((sourcemac>>0)&0xFF), - (long long unsigned int)sourcemac)); - LOG(logINFO, ("\tSource Port : %d \t\t\t(0x%08x)\n",sourceport, sourceport)); - - LOG(logINFO, ("\tDest. IP : %d.%d.%d.%d \t\t(0x%08x)\n", - (destip>>24)&0xff,(destip>>16)&0xff,(destip>>8)&0xff,(destip)&0xff, destip)); - LOG(logINFO, ("\tDest. MAC : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", - (unsigned int)((destmac>>40)&0xFF), - (unsigned int)((destmac>>32)&0xFF), - (unsigned int)((destmac>>24)&0xFF), - (unsigned int)((destmac>>16)&0xFF), - (unsigned int)((destmac>>8)&0xFF), - (unsigned int)((destmac>>0)&0xFF), - (long long unsigned int)destmac)); - LOG(logINFO, ("\tDest. Port : %d \t\t\t(0x%08x)\n",destport, destport)); + LOG(logINFOBLUE, ("\t10G MAC\n")); // start addr uint32_t addr = RXR_ENDPOINT_START_REG; @@ -1534,21 +1527,21 @@ int configureMAC(){ // mac addresses // msb (32) + lsb (16) - udp->udp_destmac_msb = ((destmac >> 16) & BIT32_MASK); - udp->udp_destmac_lsb = ((destmac >> 0) & BIT16_MASK); + udp->udp_destmac_msb = ((dstmac >> 16) & BIT32_MASK); + udp->udp_destmac_lsb = ((dstmac >> 0) & BIT16_MASK); // msb (16) + lsb (32) - udp->udp_srcmac_msb = ((sourcemac >> 32) & BIT16_MASK); - udp->udp_srcmac_lsb = ((sourcemac >> 0) & BIT32_MASK); + udp->udp_srcmac_msb = ((srcmac >> 32) & BIT16_MASK); + udp->udp_srcmac_lsb = ((srcmac >> 0) & BIT32_MASK); // ip addresses - udp->ip_srcip_msb = ((sourceip >> 16) & BIT16_MASK); - udp->ip_srcip_lsb = ((sourceip >> 0) & BIT16_MASK); - udp->ip_destip_msb = ((destip >> 16) & BIT16_MASK); - udp->ip_destip_lsb = ((destip >> 0) & BIT16_MASK); + udp->ip_srcip_msb = ((srcip >> 16) & BIT16_MASK); + udp->ip_srcip_lsb = ((srcip >> 0) & BIT16_MASK); + udp->ip_destip_msb = ((dstip >> 16) & BIT16_MASK); + udp->ip_destip_lsb = ((dstip >> 0) & BIT16_MASK); // source port - udp->udp_srcport = sourceport; - udp->udp_destport = destport; + udp->udp_srcport = srcport; + udp->udp_destport = dstport; // other defines udp->udp_ethertype = 0x800; @@ -1579,6 +1572,9 @@ int* getDetectorPosition() { } int enableTenGigabitEthernet(int val) { +#ifdef VIRTUAL + return 0; +#endif uint32_t addr = CONFIG_REG; // set @@ -2157,11 +2153,16 @@ uint64_t getPatternBitMask() { int startStateMachine(){ #ifdef VIRTUAL - virtual_status = 1; + // create udp socket + if(createUDPSocket(0) != OK) { + return FAIL; + } + LOG(logINFOBLUE, ("Starting State Machine\n")); + virtual_status = 1; virtual_stop = 0; if(pthread_create(&pthread_virtual_tid, NULL, &start_timer, NULL)) { - virtual_status = 0; LOG(logERROR, ("Could not start Virtual acquisition thread\n")); + virtual_status = 0; return FAIL; } LOG(logINFOGREEN, ("Virtual Acquisition started\n")); @@ -2195,41 +2196,83 @@ int startStateMachine(){ #ifdef VIRTUAL void* start_timer(void* arg) { - int64_t periodns = getPeriod(); + int64_t periodNs = getPeriod(); int numFrames = (getNumFrames() * getNumTriggers() ); - int64_t exp_ns = getExpTime(); + int64_t expUs = getExpTime() / 1000; - int frameNr = 0; - // loop over number of frames - for(frameNr=0; frameNr!= numFrames; ++frameNr ) { + int imageSize = dataBytes; + int dataSize = UDP_PACKET_DATA_BYTES; + int packetSize = sizeof(sls_detector_header) + dataSize; + int packetsPerFrame = ceil((double)imageSize / (double)dataSize); - //check if virtual_stop is high - if(virtual_stop == 1){ - break; - } - - // sleep for exposure time - struct timespec begin, end; - clock_gettime(CLOCK_REALTIME, &begin); - usleep(exp_ns / 1000); - clock_gettime(CLOCK_REALTIME, &end); - - // calculate time left in period - int64_t time_ns = ((end.tv_sec - begin.tv_sec) * 1E9 + - (end.tv_nsec - begin.tv_nsec)); - - // sleep for (period - exptime) - if (frameNr < numFrames) { // if there is a next frame - if (periodns > time_ns) { - usleep((periodns - time_ns)/ 1000); - } - } - - // set register frames left + // Generate Data + char imageData[imageSize]; + memset(imageData, 0, imageSize); + { + int i = 0; + for (i = 0; i < imageSize; i += sizeof(uint16_t)) { + *((uint16_t*)(imageData + i)) = i; + } } - // set status to idle + // Send data + { + int frameNr = 0; + // loop over number of frames + for(frameNr=0; frameNr!= numFrames; ++frameNr ) { + + //check if virtual_stop is high + if(virtual_stop == 1){ + break; + } + + // sleep for exposure time + struct timespec begin, end; + clock_gettime(CLOCK_REALTIME, &begin); + usleep(expUs); + + int srcOffset = 0; + char packetData[packetSize]; + memset(packetData, 0, packetSize); + + // loop packet + { + int i = 0; + for(i = 0; i != packetsPerFrame; ++i) { + // set header + sls_detector_header* header = (sls_detector_header*)(packetData); + header->detType = (uint16_t)myDetectorType; + header->version = SLS_DETECTOR_HEADER_VERSION - 1; + header->frameNumber = frameNr; + header->packetNumber = i; + header->modId = 0; + header->row = detPos[X]; + header->column = detPos[Y]; + + // fill data + memcpy(packetData + sizeof(sls_detector_header), imageData + srcOffset, dataSize); + srcOffset += dataSize; + + sendUDPPacket(0, packetData, packetSize); + } + } + LOG(logINFO, ("Sent frame: %d\n", frameNr)); + clock_gettime(CLOCK_REALTIME, &end); + int64_t timeNs = ((end.tv_sec - begin.tv_sec) * 1E9 + + (end.tv_nsec - begin.tv_nsec)); + + // sleep for (period - exptime) + if (frameNr < numFrames) { // if there is a next frame + if (periodNs > timeNs) { + usleep((periodNs - timeNs)/ 1000); + } + } + } + } + + closeUDPSocket(0); + virtual_status = 0; LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c index 2a59ce9b4..db5f40809 100755 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c @@ -1200,21 +1200,20 @@ enum timingMode getTiming() { /* configure mac */ int configureMAC() { - uint32_t sourceip = udpDetails.srcip; - uint32_t destip = udpDetails.dstip; - uint64_t sourcemac = udpDetails.srcmac; - uint64_t destmac = udpDetails.dstmac; - int src_port = udpDetails.srcport; - int destport = udpDetails.dstport; - int destport2 = udpDetails.dstport2; + uint32_t srcip = udpDetails.srcip; + uint32_t dstip = udpDetails.dstip; + uint64_t srcmac = udpDetails.srcmac; + uint64_t dstmac = udpDetails.dstmac; + int srcport = udpDetails.srcport; + int dstport = udpDetails.dstport; + int dstport2 = udpDetails.dstport2; - LOG(logINFO, ("Configuring MAC\n")); - + LOG(logINFOBLUE, ("Configuring MAC\n")); char src_mac[50], src_ip[INET_ADDRSTRLEN],dst_mac[50], dst_ip[INET_ADDRSTRLEN]; - getMacAddressinString(src_mac, 50, sourcemac); - getMacAddressinString(dst_mac, 50, destmac); - getIpAddressinString(src_ip, sourceip); - getIpAddressinString(dst_ip, destip); + getMacAddressinString(src_mac, 50, srcmac); + getMacAddressinString(dst_mac, 50, dstmac); + getIpAddressinString(src_ip, srcip); + getIpAddressinString(dst_ip, dstip); LOG(logINFO, ( "\tSource IP : %s\n" @@ -1224,19 +1223,15 @@ int configureMAC() { "\tDest MAC : %s\n" "\tDest Port : %d\n" "\tDest Port2 : %d\n", - src_ip, src_mac, src_port, - dst_ip, dst_mac, destport, destport2)); + src_ip, src_mac, srcport, + dst_ip, dst_mac, dstport, dstport2)); #ifdef VIRTUAL - char cDestIp[MAX_STR_LENGTH]; - memset(cDestIp, 0, MAX_STR_LENGTH); - sprintf(cDestIp, "%d.%d.%d.%d", (destip>>24)&0xff,(destip>>16)&0xff,(destip>>8)&0xff,(destip)&0xff); - LOG(logINFO, ("1G UDP: Destination (IP: %s, port:%d, port2:%d)\n", cDestIp, destport, destport2)); - if (setUDPDestinationDetails(0, cDestIp, destport) == FAIL) { + if (setUDPDestinationDetails(0, dst_ip, dstport) == FAIL) { LOG(logERROR, ("could not set udp destination IP and port\n")); return FAIL; } - if (setUDPDestinationDetails(1, cDestIp, destport2) == FAIL) { + if (setUDPDestinationDetails(1, dst_ip, dstport2) == FAIL) { LOG(logERROR, ("could not set udp destination IP and port2\n")); return FAIL; } @@ -1245,11 +1240,9 @@ int configureMAC() { int beb_num = detid; int header_number = 0; - int dst_port = destport; + int dst_port = dstport; if (!top) - dst_port = destport2; - - LOG(logINFO, ("\tDest Port : %d\n", dst_port)); + dst_port = dstport2; int i=0; /* for(i=0;i<32;i++) { modified for Aldo*/ @@ -1262,10 +1255,9 @@ int configureMAC() { /*}*/ header_number = 32; - dst_port = destport2; + dst_port = dstport2; if (!top) - dst_port = destport; - LOG(logINFO, ("\tDest Port : %d\n",dst_port)); + dst_port = dstport; /*for(i=0;i<32;i++) {*//** modified for Aldo*/ if (Beb_SetBebSrcHeaderInfos(beb_num,send_to_ten_gig,src_mac,src_ip,src_port) && @@ -1752,7 +1744,7 @@ int startStateMachine() { if(createUDPSocket(1) != OK) { return FAIL; } - LOG(logINFOBLUE, ("starting state machine\n")); + LOG(logINFOBLUE, ("Starting State Machine\n")); eiger_virtual_status = 1; eiger_virtual_stop = 0; if (pthread_create(&eiger_virtual_tid, NULL, &start_timer, NULL)) { @@ -1763,7 +1755,7 @@ int startStateMachine() { LOG(logINFO ,("Virtual Acquisition started\n")); return OK; #else - + LOG(logINFOBLUE, ("Starting State Machine\n")); int ret = OK,prev_flag; //get the DAQ toggle bit prev_flag = Feb_Control_AcquisitionStartedBit(); @@ -1791,9 +1783,9 @@ int startStateMachine() { #ifdef VIRTUAL void* start_timer(void* arg) { - int64_t periodns = eiger_virtual_period; + int64_t periodNs = eiger_virtual_period; int numFrames = nimages_per_request; - int64_t exp_us = eiger_virtual_exptime / 1000; + int64_t expUs = eiger_virtual_exptime / 1000; int dr = eiger_dynamicrange; double bytesPerPixel = (double)dr/8.00; @@ -1811,7 +1803,7 @@ void* start_timer(void* arg) { LOG(logINFO, (" dr:%d\n bytesperpixel:%f\n tgenable:%d\n datasize:%d\n packetsize:%d\n numpackes:%d\n npixelsx:%d\n databytes:%d\n ntotpixels:%d\n", dr, bytesPerPixel, tgEnable, datasize, packetsize, numPacketsPerFrame, npixelsx, databytes, ntotpixels)); - //TODO: Generate data + // Generate data char imageData[databytes * 2]; memset(imageData, 0, databytes * 2); { @@ -1842,9 +1834,10 @@ void* start_timer(void* arg) { } } - //TODO: Send data + // Send data { int frameNr = 1; + // loop over number of frames for(frameNr=1; frameNr <= numFrames; ++frameNr ) { usleep(eiger_virtual_transmission_delay_frame); @@ -1854,12 +1847,13 @@ void* start_timer(void* arg) { break; } - int srcOffset = 0; - int srcOffset2 = npixelsx; - + // sleep for exposure time struct timespec begin, end; clock_gettime(CLOCK_REALTIME, &begin); - usleep(exp_us); + usleep(expUs); + + int srcOffset = 0; + int srcOffset2 = npixelsx; char packetData[packetsize]; memset(packetData, 0, packetsize); char packetData2[packetsize]; @@ -1929,13 +1923,13 @@ void* start_timer(void* arg) { } LOG(logINFO, ("Sent frame: %d\n", frameNr)); clock_gettime(CLOCK_REALTIME, &end); - int64_t time_ns = ((end.tv_sec - begin.tv_sec) * 1E9 + + int64_t timeNs = ((end.tv_sec - begin.tv_sec) * 1E9 + (end.tv_nsec - begin.tv_nsec)); // sleep for (period - exptime) if (frameNr < numFrames) { // if there is a next frame - if (periodns > time_ns) { - usleep((periodns - time_ns)/ 1000); + if (periodNs > timeNs) { + usleep((periodNs - timeNs)/ 1000); } } } diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c index 89ba8ae64..25ded2347 100644 --- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c @@ -25,6 +25,10 @@ extern int checkModuleFlag; extern udpStruct udpDetails; extern const enum detectorType myDetectorType; +// Global variable from communication_funcs.c +extern void getMacAddressinString(char* cmac, int size, uint64_t mac); +extern void getIpAddressinString(char* cip, uint32_t ip); + int initError = OK; int initCheckDone = 0; char initErrorMessage[MAX_STR_LENGTH]; @@ -2067,7 +2071,6 @@ void* start_timer(void* arg) { struct timespec begin, end; clock_gettime(CLOCK_REALTIME, &begin); usleep(exp_ns / 1000); - clock_gettime(CLOCK_REALTIME, &end); char packetData[packetsize]; memset(packetData, 0, packetsize); @@ -2086,6 +2089,7 @@ void* start_timer(void* arg) { // send 1 packet = 1 frame sendUDPPacket(0, packetData, packetsize); + clock_gettime(CLOCK_REALTIME, &end); LOG(logINFO, ("Sent frame: %d\n", frameNr)); // calculate time left in period diff --git a/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt b/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt index 6055fcbc4..8d38278af 100644 --- a/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt @@ -9,6 +9,7 @@ add_executable(gotthardDetectorServer_virtual ../slsDetectorServer/src/LTC2620.c ../slsDetectorServer/src/common.c ../slsDetectorServer/src/commonServerFunctions.c + ../slsDetectorServer/src/communication_funcs_UDP.c ) include_directories( diff --git a/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c index 133879600..1279e06ef 100755 --- a/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c @@ -4,19 +4,28 @@ #include "RegisterDefs.h" #include "LTC2620.h" // dacs +#ifdef VIRTUAL +#include "communication_funcs_UDP.h" +#endif #include "string.h" #include // usleep +#include #ifdef VIRTUAL #include #include #endif extern udpStruct udpDetails; +extern const enum detectorType myDetectorType; // Variables that will be exported int phaseShift = DEFAULT_PHASE_SHIFT; +// Global variable from communication_funcs.c +extern void getMacAddressinString(char* cmac, int size, uint64_t mac); +extern void getIpAddressinString(char* cip, uint32_t ip); + int initError = OK; int initCheckDone = 0; char initErrorMessage[MAX_STR_LENGTH]; @@ -1263,44 +1272,42 @@ void calcChecksum(mac_conf* mac, int sourceip, int destip) { } int configureMAC() { - uint32_t sourceip = udpDetails.srcip; - uint32_t destip = udpDetails.dstip; - uint64_t sourcemac = udpDetails.srcmac; - uint64_t destmac = udpDetails.dstmac; - int sourceport = udpDetails.srcport; - int destport = udpDetails.dstport; + uint32_t srcip = udpDetails.srcip; + uint32_t dstip = udpDetails.dstip; + uint64_t srcmac = udpDetails.srcmac; + uint64_t dstmac = udpDetails.dstmac; + int srcport = udpDetails.srcport; + int dstport = udpDetails.dstport; + + LOG(logINFOBLUE, ("Configuring MAC\n")); + char src_mac[50], src_ip[INET_ADDRSTRLEN],dst_mac[50], dst_ip[INET_ADDRSTRLEN]; + getMacAddressinString(src_mac, 50, srcmac); + getMacAddressinString(dst_mac, 50, dstmac); + getIpAddressinString(src_ip, srcip); + getIpAddressinString(dst_ip, dstip); + + LOG(logINFO, ( + "\tSource IP : %s\n" + "\tSource MAC : %s\n" + "\tSource Port : %d\n" + "\tDest IP : %s\n" + "\tDest MAC : %s\n" + "\tDest Port : %d\n", + src_ip, src_mac, srcport, + dst_ip, dst_mac, dstport)); + #ifdef VIRTUAL + if (setUDPDestinationDetails(0, dst_ip, dstport) == FAIL) { + LOG(logERROR, ("could not set udp 1G destination IP and port\n")); + return FAIL; + } return OK; #endif - LOG(logINFOBLUE, ("Configuring MAC\n")); u_int32_t addr = MULTI_PURPOSE_REG; LOG(logDEBUG1, ("\tRoi: %d, Ip Packet size: %d UDP Packet size: %d\n", adcConfigured, ipPacketSize, udpPacketSize)); - LOG(logINFO, ("\tSource IP : %d.%d.%d.%d (0x%08x)\n", - (sourceip>>24)&0xff,(sourceip>>16)&0xff,(sourceip>>8)&0xff,(sourceip)&0xff, sourceip)); - LOG(logINFO, ("\tSource MAC : %02x:%02x:%02x:%02x:%02x:%02x (0x%010llx)\n", - (unsigned int)((sourcemac>>40)&0xFF), - (unsigned int)((sourcemac>>32)&0xFF), - (unsigned int)((sourcemac>>24)&0xFF), - (unsigned int)((sourcemac>>16)&0xFF), - (unsigned int)((sourcemac>>8)&0xFF), - (unsigned int)((sourcemac>>0)&0xFF), - (long long unsigned int)sourcemac)); - LOG(logINFO, ("\tSource Port : %d (0x%08x)\n",sourceport, sourceport)); - LOG(logINFO, ("\tDest. IP : %d.%d.%d.%d (0x%08x)\n", - (destip>>24)&0xff,(destip>>16)&0xff,(destip>>8)&0xff,(destip)&0xff, destip)); - LOG(logINFO, ("\tDest. MAC : %02x:%02x:%02x:%02x:%02x:%02x (0x%010llx)\n", - (unsigned int)((destmac>>40)&0xFF), - (unsigned int)((destmac>>32)&0xFF), - (unsigned int)((destmac>>24)&0xFF), - (unsigned int)((destmac>>16)&0xFF), - (unsigned int)((destmac>>8)&0xFF), - (unsigned int)((destmac>>0)&0xFF), - (long long unsigned int)destmac)); - LOG(logINFO, ("\tDest. Port : %d (0x%08x)\n",destport, destport)); - //reset mac bus_w (addr, bus_r(addr) | RST_MSK); LOG(logDEBUG1, ("\tReset Mac. MultiPurpose reg: 0x%x\n", bus_r(addr))); @@ -1321,28 +1328,28 @@ int configureMAC() { LOG(logDEBUG1, ("\tConfiguring MAC CONF\n")); mac_conf *mac_conf_regs = (mac_conf*)(Blackfin_getBaseAddress() + ENET_CONF_REG / 2); // direct write - mac_conf_regs->mac.mac_dest_mac1 = ((destmac >> (8 * 5)) & 0xFF); - mac_conf_regs->mac.mac_dest_mac2 = ((destmac >> (8 * 4)) & 0xFF); - mac_conf_regs->mac.mac_dest_mac3 = ((destmac >> (8 * 3)) & 0xFF); - mac_conf_regs->mac.mac_dest_mac4 = ((destmac >> (8 * 2)) & 0xFF); - mac_conf_regs->mac.mac_dest_mac5 = ((destmac >> (8 * 1)) & 0xFF); - mac_conf_regs->mac.mac_dest_mac6 = ((destmac >> (8 * 0)) & 0xFF); + mac_conf_regs->mac.mac_dest_mac1 = ((dstmac >> (8 * 5)) & 0xFF); + mac_conf_regs->mac.mac_dest_mac2 = ((dstmac >> (8 * 4)) & 0xFF); + mac_conf_regs->mac.mac_dest_mac3 = ((dstmac >> (8 * 3)) & 0xFF); + mac_conf_regs->mac.mac_dest_mac4 = ((dstmac >> (8 * 2)) & 0xFF); + mac_conf_regs->mac.mac_dest_mac5 = ((dstmac >> (8 * 1)) & 0xFF); + mac_conf_regs->mac.mac_dest_mac6 = ((dstmac >> (8 * 0)) & 0xFF); LOG(logDEBUG1, ("\tDestination Mac: %llx %x:%x:%x:%x:%x:%x\n", - destmac, + dstmac, mac_conf_regs->mac.mac_dest_mac1, mac_conf_regs->mac.mac_dest_mac2, mac_conf_regs->mac.mac_dest_mac3, mac_conf_regs->mac.mac_dest_mac4, mac_conf_regs->mac.mac_dest_mac5, mac_conf_regs->mac.mac_dest_mac6)); - mac_conf_regs->mac.mac_src_mac1 = ((sourcemac >> (8 * 5)) & 0xFF); - mac_conf_regs->mac.mac_src_mac2 = ((sourcemac >> (8 * 4)) & 0xFF); - mac_conf_regs->mac.mac_src_mac3 = ((sourcemac >> (8 * 3)) & 0xFF); - mac_conf_regs->mac.mac_src_mac4 = ((sourcemac >> (8 * 2)) & 0xFF); - mac_conf_regs->mac.mac_src_mac5 = ((sourcemac >> (8 * 1)) & 0xFF); - mac_conf_regs->mac.mac_src_mac6 = ((sourcemac >> (8 * 0)) & 0xFF); + mac_conf_regs->mac.mac_src_mac1 = ((srcmac >> (8 * 5)) & 0xFF); + mac_conf_regs->mac.mac_src_mac2 = ((srcmac >> (8 * 4)) & 0xFF); + mac_conf_regs->mac.mac_src_mac3 = ((srcmac >> (8 * 3)) & 0xFF); + mac_conf_regs->mac.mac_src_mac4 = ((srcmac >> (8 * 2)) & 0xFF); + mac_conf_regs->mac.mac_src_mac5 = ((srcmac >> (8 * 1)) & 0xFF); + mac_conf_regs->mac.mac_src_mac6 = ((srcmac >> (8 * 0)) & 0xFF); LOG(logDEBUG1, ("\tSource Mac: %llx %x:%x:%x:%x:%x:%x\n", - sourcemac, + srcmac, mac_conf_regs->mac.mac_src_mac1, mac_conf_regs->mac.mac_src_mac2, mac_conf_regs->mac.mac_src_mac3, @@ -1351,9 +1358,9 @@ int configureMAC() { mac_conf_regs->mac.mac_src_mac6)); mac_conf_regs->mac.mac_ether_type = 0x0800; //ipv4 - calcChecksum(mac_conf_regs, sourceip, destip); - mac_conf_regs->udp.udp_srcport = sourceport; - mac_conf_regs->udp.udp_destport = destport; + calcChecksum(mac_conf_regs, srcip, dstip); + mac_conf_regs->udp.udp_srcport = srcport; + mac_conf_regs->udp.udp_destport = dstport; mac_conf_regs->udp.udp_len = udpPacketSize; mac_conf_regs->udp.udp_chksum = 0x0000; @@ -1488,11 +1495,16 @@ int setPhase(enum CLKINDEX ind, int val, int degrees) { int startStateMachine(){ #ifdef VIRTUAL - virtual_status = 1; + // create udp socket + if(createUDPSocket(0) != OK) { + return FAIL; + } + LOG(logINFOBLUE, ("Starting State Machine\n")); + virtual_status = 1; virtual_stop = 0; if(pthread_create(&pthread_virtual_tid, NULL, &start_timer, NULL)) { - virtual_status = 0; LOG(logERROR, ("Could not start Virtual acquisition thread\n")); + virtual_status = 0; return FAIL; } LOG(logINFOGREEN, ("Virtual Acquisition started\n")); @@ -1512,17 +1524,83 @@ int startStateMachine(){ #ifdef VIRTUAL void* start_timer(void* arg) { - int wait_in_s = (getNumFrames() * - getNumTriggers() * - (getPeriod()/(1E9))); - LOG(logDEBUG1, ("going to wait for %d s\n", wait_in_s)); - while(!virtual_stop && (wait_in_s >= 0)) { - usleep(1000 * 1000); - wait_in_s--; - } - LOG(logINFOGREEN, ("Virtual Timer Done\n")); + int64_t periodNs = getPeriod(); + int numFrames = (getNumFrames() * + getNumTriggers() ); + int64_t expUs = getExpTime() / 1000; + + int imageSize = adcConfigured == -1 ? DATA_BYTES : NCHAN_PER_ADC * NUM_BITS_PER_PIXEL; + int dataSize = adcConfigured == -1 ? 1280 : 512; + int packetSize = adcConfigured == -1 ? 1286 : 518; + int packetsPerFrame = adcConfigured == -1 ? 2 : 1; + + // Generate Data + char imageData[imageSize]; + memset(imageData, 0, imageSize); + { + int i = 0; + if (adcConfigured == -1) { + *((uint32_t*)(imageData)) = 0xCACACACA; + } + for (i = 4; i < imageSize; i += sizeof(uint16_t)) { + *((uint16_t*)(imageData + i)) = i; + } + } + + // Send data + { + int frameNr = 0; + int frameHeaderNr = 2; + // loop over number of frames + for(frameNr=0; frameNr!= numFrames; ++frameNr ) { + + //check if virtual_stop is high + if(virtual_stop == 1){ + break; + } + + // sleep for exposure time + struct timespec begin, end; + clock_gettime(CLOCK_REALTIME, &begin); + usleep(expUs); + + int srcOffset = 0; + char packetData[packetSize]; + memset(packetData, 0, packetSize); + + // loop packet + { + int i = 0; + for(i = 0; i != packetsPerFrame; ++i) { + // set header + *((uint16_t*)(packetData)) = frameHeaderNr; + ++frameHeaderNr; + + // fill data + memcpy(packetData + 4, imageData + srcOffset, dataSize); + srcOffset += dataSize; + + sendUDPPacket(0, packetData, packetSize); + } + } + LOG(logINFO, ("Sent frame: %d\n", frameNr)); + clock_gettime(CLOCK_REALTIME, &end); + int64_t timeNs = ((end.tv_sec - begin.tv_sec) * 1E9 + + (end.tv_nsec - begin.tv_nsec)); + + // sleep for (period - exptime) + if (frameNr < numFrames) { // if there is a next frame + if (periodNs > timeNs) { + usleep((periodNs - timeNs)/ 1000); + } + } + } + } + + closeUDPSocket(0); virtual_status = 0; + LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; } #endif diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index dba6bad05..7392b5975 100755 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -23,6 +23,10 @@ extern int debugflag; extern udpStruct udpDetails; extern const enum detectorType myDetectorType; +// Global variable from communication_funcs.c +extern void getMacAddressinString(char* cmac, int size, uint64_t mac); +extern void getIpAddressinString(char* cip, uint32_t ip); + int initError = OK; int initCheckDone = 0; char initErrorMessage[MAX_STR_LENGTH]; @@ -1672,7 +1676,7 @@ void* start_timer(void* arg) { const int numPacketsPerFrame = 128; int transmissionDelayUs = getTransmissionDelayFrame() * 1000; - //TODO: Generate data + // Generate data char imageData[DATA_BYTES]; memset(imageData, 0, DATA_BYTES); { @@ -1684,7 +1688,7 @@ void* start_timer(void* arg) { } - //TODO: Send data + // Send data { int frameNr = 0; for(frameNr=0; frameNr!= numFrames; ++frameNr ) { @@ -1696,13 +1700,12 @@ void* start_timer(void* arg) { break; } - int srcOffset = 0; - + // sleep for exposure time struct timespec begin, end; clock_gettime(CLOCK_REALTIME, &begin); - usleep(exp_us); + int srcOffset = 0; char packetData[packetsize]; memset(packetData, 0, packetsize); diff --git a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c index 4e1e22470..1db423728 100755 --- a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c @@ -11,19 +11,26 @@ #include #include // usleep +#include #ifdef VIRTUAL #include #include +#include //ceil #endif // Global variable from slsDetectorServer_funcs extern int debugflag; extern udpStruct udpDetails; +extern const enum detectorType myDetectorType; // Global variable from UDPPacketHeaderGenerator extern uint64_t udpFrameNumber; extern uint32_t udpPacketNumber; +// Global variable from communication_funcs.c +extern void getMacAddressinString(char* cmac, int size, uint64_t mac); +extern void getIpAddressinString(char* cip, uint32_t ip); + int initError = OK; int initCheckDone = 0; char initErrorMessage[MAX_STR_LENGTH]; @@ -1136,26 +1143,36 @@ void calcChecksum(udp_header* udp) { int configureMAC(){ - uint32_t sourceip = udpDetails.srcip; - uint32_t destip = udpDetails.dstip; - uint64_t sourcemac = udpDetails.srcmac; - uint64_t destmac = udpDetails.dstmac; - int sourceport = udpDetails.srcport; - int destport = udpDetails.dstport; -#ifdef VIRTUAL - return OK; -#endif + uint32_t srcip = udpDetails.srcip; + uint32_t dstip = udpDetails.dstip; + uint64_t srcmac = udpDetails.srcmac; + uint64_t dstmac = udpDetails.dstmac; + int srcport = udpDetails.srcport; + int dstport = udpDetails.dstport; + LOG(logINFOBLUE, ("Configuring MAC\n")); + char src_mac[50], src_ip[INET_ADDRSTRLEN],dst_mac[50], dst_ip[INET_ADDRSTRLEN]; + getMacAddressinString(src_mac, 50, srcmac); + getMacAddressinString(dst_mac, 50, dstmac); + getIpAddressinString(src_ip, srcip); + getIpAddressinString(dst_ip, dstip); + + LOG(logINFO, ( + "\tSource IP : %s\n" + "\tSource MAC : %s\n" + "\tSource Port : %d\n" + "\tDest IP : %s\n" + "\tDest MAC : %s\n" + "\tDest Port : %d\n", + src_ip, src_mac, srcport, + dst_ip, dst_mac, dstport)); + // 1 giga udp if (!enableTenGigabitEthernet(-1)) { - LOG(logINFOBLUE, ("Configuring 1G MAC\n")); + LOG(logINFOBLUE, ("\t1G MAC\n")); if (updateDatabytesandAllocateRAM() == FAIL) return -1; - char cDestIp[MAX_STR_LENGTH]; - memset(cDestIp, 0, MAX_STR_LENGTH); - sprintf(cDestIp, "%d.%d.%d.%d", (destip>>24)&0xff,(destip>>16)&0xff,(destip>>8)&0xff,(destip)&0xff); - LOG(logINFO, ("1G UDP: Destination (IP: %s, port:%d)\n", cDestIp, destport)); - if (setUDPDestinationDetails(0, cDestIp, destport) == FAIL) { + if (setUDPDestinationDetails(0, dst_ip, dstport) == FAIL) { LOG(logERROR, ("could not set udp 1G destination IP and port\n")); return FAIL; } @@ -1163,31 +1180,7 @@ int configureMAC(){ } // 10 G - LOG(logINFOBLUE, ("Configuring 10G MAC\n")); - - LOG(logINFO, ("\tSource IP : %d.%d.%d.%d \t\t(0x%08x)\n", - (sourceip>>24)&0xff,(sourceip>>16)&0xff,(sourceip>>8)&0xff,(sourceip)&0xff, sourceip)); - LOG(logINFO, ("\tSource MAC : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", - (unsigned int)((sourcemac>>40)&0xFF), - (unsigned int)((sourcemac>>32)&0xFF), - (unsigned int)((sourcemac>>24)&0xFF), - (unsigned int)((sourcemac>>16)&0xFF), - (unsigned int)((sourcemac>>8)&0xFF), - (unsigned int)((sourcemac>>0)&0xFF), - (long long unsigned int)sourcemac)); - LOG(logINFO, ("\tSource Port : %d \t\t\t(0x%08x)\n",sourceport, sourceport)); - - LOG(logINFO, ("\tDest. IP : %d.%d.%d.%d \t\t(0x%08x)\n", - (destip>>24)&0xff,(destip>>16)&0xff,(destip>>8)&0xff,(destip)&0xff, destip)); - LOG(logINFO, ("\tDest. MAC : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", - (unsigned int)((destmac>>40)&0xFF), - (unsigned int)((destmac>>32)&0xFF), - (unsigned int)((destmac>>24)&0xFF), - (unsigned int)((destmac>>16)&0xFF), - (unsigned int)((destmac>>8)&0xFF), - (unsigned int)((destmac>>0)&0xFF), - (long long unsigned int)destmac)); - LOG(logINFO, ("\tDest. Port : %d \t\t\t(0x%08x)\n",destport, destport)); + LOG(logINFOBLUE, ("\t10G MAC\n")); // start addr uint32_t addr = RXR_ENDPOINT_START_REG; @@ -1197,21 +1190,21 @@ int configureMAC(){ // mac addresses // msb (32) + lsb (16) - udp->udp_destmac_msb = ((destmac >> 16) & BIT32_MASK); - udp->udp_destmac_lsb = ((destmac >> 0) & BIT16_MASK); + udp->udp_destmac_msb = ((dstmac >> 16) & BIT32_MASK); + udp->udp_destmac_lsb = ((dstmac >> 0) & BIT16_MASK); // msb (16) + lsb (32) - udp->udp_srcmac_msb = ((sourcemac >> 32) & BIT16_MASK); - udp->udp_srcmac_lsb = ((sourcemac >> 0) & BIT32_MASK); + udp->udp_srcmac_msb = ((srcmac >> 32) & BIT16_MASK); + udp->udp_srcmac_lsb = ((srcmac >> 0) & BIT32_MASK); // ip addresses - udp->ip_srcip_msb = ((sourceip >> 16) & BIT16_MASK); - udp->ip_srcip_lsb = ((sourceip >> 0) & BIT16_MASK); - udp->ip_destip_msb = ((destip >> 16) & BIT16_MASK); - udp->ip_destip_lsb = ((destip >> 0) & BIT16_MASK); + udp->ip_srcip_msb = ((srcip >> 16) & BIT16_MASK); + udp->ip_srcip_lsb = ((srcip >> 0) & BIT16_MASK); + udp->ip_destip_msb = ((dstip >> 16) & BIT16_MASK); + udp->ip_destip_lsb = ((dstip >> 0) & BIT16_MASK); // source port - udp->udp_srcport = sourceport; - udp->udp_destport = destport; + udp->udp_srcport = srcport; + udp->udp_destport = dstport; // other defines udp->udp_ethertype = 0x800; @@ -1242,6 +1235,9 @@ int* getDetectorPosition() { } int enableTenGigabitEthernet(int val) { +#ifdef VIRTUAL + return 0; +#endif uint32_t addr = CONFIG_REG; // set @@ -1819,11 +1815,16 @@ uint64_t getPatternBitMask() { int startStateMachine(){ #ifdef VIRTUAL - virtual_status = 1; + // create udp socket + if(createUDPSocket(0) != OK) { + return FAIL; + } + LOG(logINFOBLUE, ("Starting State Machine\n")); + virtual_status = 1; virtual_stop = 0; if(pthread_create(&pthread_virtual_tid, NULL, &start_timer, NULL)) { - virtual_status = 0; LOG(logERROR, ("Could not start Virtual acquisition thread\n")); + virtual_status = 0; return FAIL; } LOG(logINFOGREEN, ("Virtual Acquisition started\n")); @@ -1857,41 +1858,83 @@ int startStateMachine(){ #ifdef VIRTUAL void* start_timer(void* arg) { - int64_t periodns = getPeriod(); + int64_t periodNs = getPeriod(); int numFrames = (getNumFrames() * getNumTriggers() ); - int64_t exp_ns = getExpTime(); + int64_t expNs = getExpTime(); - int frameNr = 0; - // loop over number of frames - for(frameNr=0; frameNr!= numFrames; ++frameNr ) { + int imageSize = dataBytes; + int dataSize = UDP_PACKET_DATA_BYTES; + int packetSize = sizeof(sls_detector_header) + dataSize; + int packetsPerFrame = ceil((double)imageSize / (double)dataSize); - //check if virtual_stop is high - if(virtual_stop == 1){ - break; - } - - // sleep for exposure time - struct timespec begin, end; - clock_gettime(CLOCK_REALTIME, &begin); - usleep(exp_ns / 1000); - clock_gettime(CLOCK_REALTIME, &end); - - // calculate time left in period - int64_t time_ns = ((end.tv_sec - begin.tv_sec) * 1E9 + - (end.tv_nsec - begin.tv_nsec)); - - // sleep for (period - exptime) - if (frameNr < numFrames) { // if there is a next frame - if (periodns > time_ns) { - usleep((periodns - time_ns)/ 1000); - } - } - - // set register frames left + // Generate Data + char imageData[imageSize]; + memset(imageData, 0, imageSize); + { + int i = 0; + for (i = 0; i < imageSize; i += sizeof(uint16_t)) { + *((uint16_t*)(imageData + i)) = i; + } } - // set status to idle + // Send data + { + int frameNr = 0; + // loop over number of frames + for(frameNr=0; frameNr!= numFrames; ++frameNr ) { + + //check if virtual_stop is high + if(virtual_stop == 1){ + break; + } + + // sleep for exposure time + struct timespec begin, end; + clock_gettime(CLOCK_REALTIME, &begin); + usleep(expNs / 1000); + + int srcOffset = 0; + char packetData[packetSize]; + memset(packetData, 0, packetSize); + + // loop packet + { + int i = 0; + for(i = 0; i != packetsPerFrame; ++i) { + // set header + sls_detector_header* header = (sls_detector_header*)(packetData); + header->detType = (uint16_t)myDetectorType; + header->version = SLS_DETECTOR_HEADER_VERSION - 1; + header->frameNumber = frameNr; + header->packetNumber = i; + header->modId = 0; + header->row = detPos[X]; + header->column = detPos[Y]; + + // fill data + memcpy(packetData + sizeof(sls_detector_header), imageData + srcOffset, dataSize); + srcOffset += dataSize; + + sendUDPPacket(0, packetData, packetSize); + } + } + LOG(logINFO, ("Sent frame: %d\n", frameNr)); + clock_gettime(CLOCK_REALTIME, &end); + int64_t timeNs = ((end.tv_sec - begin.tv_sec) * 1E9 + + (end.tv_nsec - begin.tv_nsec)); + + // sleep for (period - exptime) + if (frameNr < numFrames) { // if there is a next frame + if (periodNs > timeNs) { + usleep((periodNs - timeNs)/ 1000); + } + } + } + } + + closeUDPSocket(0); + virtual_status = 0; LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 9d8158ec2..5c881b4f2 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -22,6 +22,10 @@ extern int debugflag; extern udpStruct udpDetails; extern const enum detectorType myDetectorType; +// Global variable from communication_funcs.c +extern void getMacAddressinString(char* cmac, int size, uint64_t mac); +extern void getIpAddressinString(char* cip, uint32_t ip); + int initError = OK; int initCheckDone = 0; char initErrorMessage[MAX_STR_LENGTH]; diff --git a/slsDetectorServers/slsDetectorServer/src/communication_funcs.c b/slsDetectorServers/slsDetectorServer/src/communication_funcs.c index 18c2ba516..7eaf89732 100755 --- a/slsDetectorServers/slsDetectorServer/src/communication_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/communication_funcs.c @@ -616,7 +616,12 @@ void getMacAddressinString(char* cmac, int size, uint64_t mac) { void getIpAddressinString(char* cip, uint32_t ip) { memset(cip, 0, INET_ADDRSTRLEN); +#if defined(EIGERD) && !defined(VIRTUAL) inet_ntop(AF_INET, &ip, cip, INET_ADDRSTRLEN); +#else + sprintf(cip, "%d.%d.%d.%d", + (ip>>24)&0xff,(ip>>16)&0xff,(ip>>8)&0xff,(ip)&0xff); +#endif } diff --git a/slsDetectorServers/slsDetectorServer/src/communication_funcs_UDP.c b/slsDetectorServers/slsDetectorServer/src/communication_funcs_UDP.c index dd3a4d635..edc9c7eab 100755 --- a/slsDetectorServers/slsDetectorServer/src/communication_funcs_UDP.c +++ b/slsDetectorServers/slsDetectorServer/src/communication_funcs_UDP.c @@ -16,7 +16,7 @@ int udpSockfd[2] = {-1, -1}; struct addrinfo* udpServerAddrInfo[2] = {0, 0}; unsigned short int udpDestinationPort[2] = {0, 0}; -char udpDestinationIp[2][MAX_STR_LENGTH] = {"", ""}; +char udpDestinationIp[2][INET_ADDRSTRLEN] = {"", ""}; //DEFAULT_TX_UDP_PORT;// src port int getUdPSocketDescriptor(int index) { @@ -26,8 +26,8 @@ int getUdPSocketDescriptor(int index) { int setUDPDestinationDetails(int index, const char* ip, unsigned short int port) { udpDestinationPort[index] = port; size_t len = strlen(ip); - memset(udpDestinationIp[index], 0, MAX_STR_LENGTH); - strncpy(udpDestinationIp[index], ip, len > MAX_STR_LENGTH ? MAX_STR_LENGTH : len ); + memset(udpDestinationIp[index], 0, INET_ADDRSTRLEN); + strncpy(udpDestinationIp[index], ip, len > INET_ADDRSTRLEN ? INET_ADDRSTRLEN : len ); if (udpServerAddrInfo[index]) { freeaddrinfo(udpServerAddrInfo[index]); From 6289163ac8fea8714834c81a97c29a6a7047e288 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 31 Mar 2020 10:40:42 +0200 Subject: [PATCH 14/33] virtual servers checked --- slsDetectorServers/CMakeLists.txt | 6 +- .../slsDetectorFunctionList.c | 8 +- .../slsDetectorFunctionList.c | 16 +- .../slsDetectorFunctionList.c | 169 ++++++++++-------- .../slsDetectorFunctionList.c | 8 +- .../slsDetectorFunctionList.c | 164 +++++++++-------- .../slsDetectorFunctionList.c | 7 +- .../slsDetectorFunctionList.c | 162 ++++++++--------- slsDetectorSoftware/src/Module.cpp | 9 +- 9 files changed, 286 insertions(+), 263 deletions(-) diff --git a/slsDetectorServers/CMakeLists.txt b/slsDetectorServers/CMakeLists.txt index 9d6d45d31..f185b732a 100644 --- a/slsDetectorServers/CMakeLists.txt +++ b/slsDetectorServers/CMakeLists.txt @@ -22,7 +22,7 @@ install(TARGETS slsProjectCWarnings add_subdirectory(ctbDetectorServer) add_subdirectory(eigerDetectorServer) add_subdirectory(gotthardDetectorServer) -#add_subdirectory(jungfrauDetectorServer) -#add_subdirectory(mythen3DetectorServer) -#add_subdirectory(gotthard2DetectorServer) +add_subdirectory(jungfrauDetectorServer) +add_subdirectory(mythen3DetectorServer) +add_subdirectory(gotthard2DetectorServer) add_subdirectory(moenchDetectorServer) diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c index f8f2a1137..b3219db34 100755 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c @@ -2220,7 +2220,7 @@ void* start_timer(void* arg) { { int frameNr = 0; // loop over number of frames - for(frameNr=0; frameNr!= numFrames; ++frameNr ) { + for(frameNr = 0; frameNr != numFrames; ++frameNr ) { //check if virtual_stop is high if(virtual_stop == 1){ @@ -2233,13 +2233,13 @@ void* start_timer(void* arg) { usleep(expUs); int srcOffset = 0; - char packetData[packetSize]; - memset(packetData, 0, packetSize); - // loop packet { int i = 0; for(i = 0; i != packetsPerFrame; ++i) { + + char packetData[packetSize]; + memset(packetData, 0, packetSize); // set header sls_detector_header* header = (sls_detector_header*)(packetData); header->detType = (uint16_t)myDetectorType; diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c index db5f40809..7ac29e996 100755 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c @@ -1838,7 +1838,7 @@ void* start_timer(void* arg) { { int frameNr = 1; // loop over number of frames - for(frameNr=1; frameNr <= numFrames; ++frameNr ) { + for(frameNr = 1; frameNr <= numFrames; ++frameNr ) { usleep(eiger_virtual_transmission_delay_frame); @@ -1854,18 +1854,14 @@ void* start_timer(void* arg) { int srcOffset = 0; int srcOffset2 = npixelsx; - char packetData[packetsize]; - memset(packetData, 0, packetsize); - char packetData2[packetsize]; - memset(packetData2, 0, packetsize); // loop packet { int i = 0; for(i = 0; i != numPacketsPerFrame; ++i) { - int dstOffset = sizeof(sls_detector_header); - int dstOffset2 = sizeof(sls_detector_header); // set header + char packetData[packetsize]; + memset(packetData, 0, packetsize); sls_detector_header* header = (sls_detector_header*)(packetData); header->detType = 3;//(uint16_t)myDetectorType; updated when firmware updates header->version = SLS_DETECTOR_HEADER_VERSION - 1; @@ -1874,8 +1870,10 @@ void* start_timer(void* arg) { header->row = row; header->column = colLeft; + char packetData2[packetsize]; + memset(packetData2, 0, packetsize); header = (sls_detector_header*)(packetData2); - header->detType = (uint16_t)myDetectorType; + header->detType = 3;//(uint16_t)myDetectorType; updated when firmware updates header->version = SLS_DETECTOR_HEADER_VERSION - 1; header->frameNumber = frameNr; header->packetNumber = i; @@ -1887,6 +1885,8 @@ void* start_timer(void* arg) { } // fill data + int dstOffset = sizeof(sls_detector_header); + int dstOffset2 = sizeof(sls_detector_header); { int psize = 0; for (psize = 0; psize < datasize; psize += npixelsx) { diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c index 25ded2347..3362a9897 100644 --- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c @@ -13,6 +13,7 @@ #include #include // usleep +#include #ifdef VIRTUAL #include #include @@ -1191,42 +1192,30 @@ int configureMAC() { int srcport = udpDetails.srcport; int dstport = udpDetails.dstport; + LOG(logINFOBLUE, ("Configuring MAC\n")); + char src_mac[50], src_ip[INET_ADDRSTRLEN],dst_mac[50], dst_ip[INET_ADDRSTRLEN]; + getMacAddressinString(src_mac, 50, srcmac); + getMacAddressinString(dst_mac, 50, dstmac); + getIpAddressinString(src_ip, srcip); + getIpAddressinString(dst_ip, dstip); + + LOG(logINFO, ( + "\tSource IP : %s\n" + "\tSource MAC : %s\n" + "\tSource Port : %d\n" + "\tDest IP : %s\n" + "\tDest MAC : %s\n" + "\tDest Port : %d\n", + src_ip, src_mac, srcport, + dst_ip, dst_mac, dstport)); + #ifdef VIRTUAL - char cDestIp[MAX_STR_LENGTH]; - memset(cDestIp, 0, MAX_STR_LENGTH); - sprintf(cDestIp, "%d.%d.%d.%d", (dstip>>24)&0xff,(dstip>>16)&0xff,(dstip>>8)&0xff,(dstip)&0xff); - LOG(logINFO, ("1G UDP: Destination (IP: %s, port:%d)\n", cDestIp, dstport)); - if (setUDPDestinationDetails(0, cDestIp, dstport) == FAIL) { + if (setUDPDestinationDetails(0, dst_ip, dstport) == FAIL) { LOG(logERROR, ("could not set udp destination IP and port\n")); return FAIL; } return OK; #endif - LOG(logINFOBLUE, ("Configuring MAC\n")); - - LOG(logINFO, ("\tSource IP : %d.%d.%d.%d \t\t(0x%08x)\n", - (srcip>>24)&0xff,(srcip>>16)&0xff,(srcip>>8)&0xff,(srcip)&0xff, srcip)); - LOG(logINFO, ("\tSource MAC : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", - (unsigned int)((srcmac>>40)&0xFF), - (unsigned int)((srcmac>>32)&0xFF), - (unsigned int)((srcmac>>24)&0xFF), - (unsigned int)((srcmac>>16)&0xFF), - (unsigned int)((srcmac>>8)&0xFF), - (unsigned int)((srcmac>>0)&0xFF), - (long long unsigned int)srcmac)); - LOG(logINFO, ("\tSource Port : %d \t\t\t(0x%08x)\n", srcport, srcport)); - - LOG(logINFO, ("\tDest. IP : %d.%d.%d.%d \t\t(0x%08x)\n", - (dstip>>24)&0xff,(dstip>>16)&0xff,(dstip>>8)&0xff,(dstip)&0xff, dstip)); - LOG(logINFO, ("\tDest. MAC : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", - (unsigned int)((dstmac>>40)&0xFF), - (unsigned int)((dstmac>>32)&0xFF), - (unsigned int)((dstmac>>24)&0xFF), - (unsigned int)((dstmac>>16)&0xFF), - (unsigned int)((dstmac>>8)&0xFF), - (unsigned int)((dstmac>>0)&0xFF), - (long long unsigned int)dstmac)); - LOG(logINFO, ("\tDest. Port : %d \t\t\t(0x%08x)\n\n",dstport, dstport)); // start addr uint32_t addr = BASE_UDP_RAM; @@ -2015,7 +2004,7 @@ int startStateMachine(){ if(createUDPSocket(0) != OK) { return FAIL; } - LOG(logINFOBLUE, ("starting state machine\n")); + LOG(logINFOBLUE, ("Starting State Machine\n")); // set status to running virtual_status = 1; virtual_stop = 0; @@ -2040,10 +2029,18 @@ int startStateMachine(){ #ifdef VIRTUAL void* start_timer(void* arg) { - int64_t periodns = getPeriod(); - int numFrames = (getNumFrames() * - getNumTriggers() ); - int64_t exp_ns = getExpTime(); + int numRepeats = getNumTriggers(); + if (getTiming() == AUTO_TIMING) { + if (burstMode == BURST_OFF) { + numRepeats = 1; + } else { + numRepeats = getNumBursts(); + } + } + int repeatPeriodNs = getBurstPeriod(); + int numFrames = getNumFrames(); + int64_t periodNs = getPeriod(); + int64_t expUs = getExpTime() / 1000; int imagesize = NCHAN * NCHIP * 2; int datasize = imagesize; int packetsize = datasize + sizeof(sls_detector_header); @@ -2053,61 +2050,81 @@ void* start_timer(void* arg) { memset(imageData, 0, imagesize); { int i = 0; - for (i = 0; i < imagesize; i += sizeof(uint8_t)) { - *((uint8_t*)(imageData + i)) = i; + for (i = 0; i < imagesize; i += sizeof(uint16_t)) { + *((uint16_t*)(imageData + i)) = i; } } - int frameNr = 0; - // loop over number of frames - for(frameNr=0; frameNr!= numFrames; ++frameNr ) { + { + int repeatNr = 0; + int frameHeaderNr = 0; + // loop over number of repeats + for(repeatNr=0; repeatNr!= numRepeats; ++repeatNr ) { - //check if virtual_stop is high - if(virtual_stop == 1){ - break; - } + struct timespec rbegin, rend; + clock_gettime(CLOCK_REALTIME, &rbegin); - // sleep for exposure time - struct timespec begin, end; - clock_gettime(CLOCK_REALTIME, &begin); - usleep(exp_ns / 1000); + int frameNr = 0; + // loop over number of frames + for(frameNr = 0; frameNr != numFrames; ++frameNr ) { + + //check if virtual_stop is high + if(virtual_stop == 1){ + break; + } - char packetData[packetsize]; - memset(packetData, 0, packetsize); - // set header - sls_detector_header* header = (sls_detector_header*)(packetData); - header->frameNumber = frameNr; - header->packetNumber = 0; - header->modId = 0; - header->row = detPos[X]; - header->column = detPos[Y]; - header->detType = (uint16_t)myDetectorType; - header->version = SLS_DETECTOR_HEADER_VERSION - 1; + // sleep for exposure time + struct timespec begin, end; + clock_gettime(CLOCK_REALTIME, &begin); + usleep(expUs); - // fill data - memcpy(packetData + sizeof(sls_detector_header), imageData, datasize); + char packetData[packetsize]; + memset(packetData, 0, packetsize); + // set header + sls_detector_header* header = (sls_detector_header*)(packetData); + header->detType = (uint16_t)myDetectorType; + header->version = SLS_DETECTOR_HEADER_VERSION - 1; + header->frameNumber = frameHeaderNr; + ++frameHeaderNr; + header->packetNumber = 0; + header->modId = 0; + header->row = detPos[X]; + header->column = detPos[Y]; - // send 1 packet = 1 frame - sendUDPPacket(0, packetData, packetsize); - clock_gettime(CLOCK_REALTIME, &end); - LOG(logINFO, ("Sent frame: %d\n", frameNr)); + // fill data + memcpy(packetData + sizeof(sls_detector_header), imageData, datasize) ; - // calculate time left in period - int64_t time_ns = ((end.tv_sec - begin.tv_sec) * 1E9 + - (end.tv_nsec - begin.tv_nsec)); + // send 1 packet = 1 frame + sendUDPPacket(0, packetData, packetsize); - // sleep for (period - exptime) - if (frameNr < numFrames) { // if there is a next frame - if (periodns > time_ns) { - usleep((periodns - time_ns)/ 1000); + clock_gettime(CLOCK_REALTIME, &end); + LOG(logINFO, ("Sent frame: %d (bursts: %d)\n", frameNr, repeatNr)); + int64_t timeNs = ((end.tv_sec - begin.tv_sec) * 1E9 + + (end.tv_nsec - begin.tv_nsec)); + + // sleep for (period - exptime) + if (frameNr < numFrames) { // if there is a next frame + if (periodNs > timeNs) { + usleep((periodNs - timeNs)/ 1000); + } + } + } + clock_gettime(CLOCK_REALTIME, &rend); + int64_t timeNs = ((rend.tv_sec - rbegin.tv_sec) * 1E9 + + (rend.tv_nsec - rbegin.tv_nsec)); + + // sleep for (repeatPeriodNs - time remaining) + if (repeatNr < numRepeats) { // if there is a next repeat + if (repeatPeriodNs > timeNs) { + usleep((repeatPeriodNs - timeNs)/ 1000); + } } - } - // set register frames left - } + } + } closeUDPSocket(0); - // set status to idle + virtual_status = 0; LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; diff --git a/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c index 1279e06ef..9d7a0d297 100755 --- a/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c @@ -1552,7 +1552,7 @@ void* start_timer(void* arg) { int frameNr = 0; int frameHeaderNr = 2; // loop over number of frames - for(frameNr=0; frameNr!= numFrames; ++frameNr ) { + for(frameNr = 0; frameNr != numFrames; ++frameNr ) { //check if virtual_stop is high if(virtual_stop == 1){ @@ -1565,13 +1565,13 @@ void* start_timer(void* arg) { usleep(expUs); int srcOffset = 0; - char packetData[packetSize]; - memset(packetData, 0, packetSize); - // loop packet { int i = 0; for(i = 0; i != packetsPerFrame; ++i) { + + char packetData[packetSize]; + memset(packetData, 0, packetSize); // set header *((uint16_t*)(packetData)) = frameHeaderNr; ++frameHeaderNr; diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index 7392b5975..d48abacd0 100755 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -13,6 +13,7 @@ #include #include // usleep #include +#include #ifdef VIRTUAL #include #include @@ -1098,73 +1099,57 @@ int configureMAC() { int dstport = udpDetails.dstport; int dstport2 = udpDetails.dstport2; -#ifdef VIRTUAL - char cDestIp[MAX_STR_LENGTH]; - memset(cDestIp, 0, MAX_STR_LENGTH); - sprintf(cDestIp, "%d.%d.%d.%d", (dstip>>24)&0xff,(dstip>>16)&0xff,(dstip>>8)&0xff,(dstip)&0xff); - LOG(logINFO, ("1G UDP: Destination (IP: %s, port:%d)\n", cDestIp, dstport)); - if (setUDPDestinationDetails(0, cDestIp, dstport) == FAIL) { - LOG(logERROR, ("could not set udp destination IP and port\n")); - return FAIL; - } - return OK; -#endif LOG(logINFOBLUE, ("Configuring MAC\n")); + char src_mac[50], src_ip[INET_ADDRSTRLEN],dst_mac[50], dst_ip[INET_ADDRSTRLEN]; + getMacAddressinString(src_mac, 50, srcmac); + getMacAddressinString(dst_mac, 50, dstmac); + getIpAddressinString(src_ip, srcip); + getIpAddressinString(dst_ip, dstip); + char src_mac2[50], src_ip2[INET_ADDRSTRLEN],dst_mac2[50], dst_ip2[INET_ADDRSTRLEN]; + getMacAddressinString(src_mac2, 50, srcmac2); + getMacAddressinString(dst_mac2, 50, dstmac2); + getIpAddressinString(src_ip2, srcip2); + getIpAddressinString(dst_ip2, dstip2); + int numInterfaces = getNumberofUDPInterfaces(); int selInterface = getPrimaryInterface(); LOG(logINFO, ("\t#Interfaces : %d\n", numInterfaces)); LOG(logINFO, ("\tInterface : %d %s\n\n", selInterface, (selInterface ? "Inner" : "Outer"))); LOG(logINFO, ("\tOuter %s\n", (numInterfaces == 2) ? "(Bottom)": (selInterface ? "Not Used" : "Used"))); - LOG(logINFO, ("\tSource IP : %d.%d.%d.%d \t\t(0x%08x)\n", - (srcip>>24)&0xff,(srcip>>16)&0xff,(srcip>>8)&0xff,(srcip)&0xff, srcip)); - LOG(logINFO, ("\tSource MAC : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", - (unsigned int)((srcmac>>40)&0xFF), - (unsigned int)((srcmac>>32)&0xFF), - (unsigned int)((srcmac>>24)&0xFF), - (unsigned int)((srcmac>>16)&0xFF), - (unsigned int)((srcmac>>8)&0xFF), - (unsigned int)((srcmac>>0)&0xFF), - (long long unsigned int)srcmac)); - LOG(logINFO, ("\tSource Port : %d \t\t\t(0x%08x)\n", srcport, srcport)); - - LOG(logINFO, ("\tDest. IP : %d.%d.%d.%d \t\t(0x%08x)\n", - (dstip>>24)&0xff,(dstip>>16)&0xff,(dstip>>8)&0xff,(dstip)&0xff, dstip)); - LOG(logINFO, ("\tDest. MAC : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", - (unsigned int)((dstmac>>40)&0xFF), - (unsigned int)((dstmac>>32)&0xFF), - (unsigned int)((dstmac>>24)&0xFF), - (unsigned int)((dstmac>>16)&0xFF), - (unsigned int)((dstmac>>8)&0xFF), - (unsigned int)((dstmac>>0)&0xFF), - (long long unsigned int)dstmac)); - LOG(logINFO, ("\tDest. Port : %d \t\t\t(0x%08x)\n\n",dstport, dstport)); + LOG(logINFO, ( + "\tSource IP : %s\n" + "\tSource MAC : %s\n" + "\tSource Port : %d\n" + "\tDest IP : %s\n" + "\tDest MAC : %s\n" + "\tDest Port : %d\n", + src_ip, src_mac, srcport, + dst_ip, dst_mac, dstport)); LOG(logINFO, ("\tInner %s\n", (numInterfaces == 2) ? "(Top)": (selInterface ? "Used" : "Not Used"))); - LOG(logINFO, ("\tSource IP2 : %d.%d.%d.%d \t\t(0x%08x)\n", - (srcip2>>24)&0xff,(srcip2>>16)&0xff,(srcip2>>8)&0xff,(srcip2)&0xff, srcip2)); - LOG(logINFO, ("\tSource MAC2 : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", - (unsigned int)((srcmac2>>40)&0xFF), - (unsigned int)((srcmac2>>32)&0xFF), - (unsigned int)((srcmac2>>24)&0xFF), - (unsigned int)((srcmac2>>16)&0xFF), - (unsigned int)((srcmac2>>8)&0xFF), - (unsigned int)((srcmac2>>0)&0xFF), - (long long unsigned int)srcmac2)); - LOG(logINFO, ("\tSource Port2: %d \t\t\t(0x%08x)\n", srcport2, srcport2)); + LOG(logINFO, ( + "\tSource IP2 : %s\n" + "\tSource MAC2 : %s\n" + "\tSource Port2: %d\n" + "\tDest IP2 : %s\n" + "\tDest MAC2 : %s\n" + "\tDest Port2 : %d\n", + src_ip2, src_mac2, srcport2, + dst_ip2, dst_mac2, dstport2)); - LOG(logINFO, ("\tDest. IP2 : %d.%d.%d.%d \t\t(0x%08x)\n", - (dstip2>>24)&0xff,(dstip2>>16)&0xff,(dstip2>>8)&0xff,(dstip2)&0xff, dstip2)); - LOG(logINFO, ("\tDest. MAC2 : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", - (unsigned int)((dstmac2>>40)&0xFF), - (unsigned int)((dstmac2>>32)&0xFF), - (unsigned int)((dstmac2>>24)&0xFF), - (unsigned int)((dstmac2>>16)&0xFF), - (unsigned int)((dstmac2>>8)&0xFF), - (unsigned int)((dstmac2>>0)&0xFF), - (long long unsigned int)dstmac2)); - LOG(logINFO, ("\tDest. Port2 : %d \t\t\t(0x%08x)\n", dstport2, dstport2)); +#ifdef VIRTUAL + if (setUDPDestinationDetails(0, dst_ip, dstport) == FAIL) { + LOG(logERROR, ("could not set udp destination IP and port for interface 1\n")); + return FAIL; + } + if (numInterfaces == 2 && setUDPDestinationDetails(1, dst_ip2, dstport2) == FAIL) { + LOG(logERROR, ("could not set udp destination IP and port for interface 2\n")); + return FAIL; + } + return OK; +#endif // default one rxr entry (others not yet implemented in client yet) int iRxEntry = 0; @@ -1639,6 +1624,9 @@ int startStateMachine(){ if(createUDPSocket(0) != OK) { return FAIL; } + if (getNumberofUDPInterfaces() == 2 && createUDPSocket(1) != OK) { + return FAIL; + } LOG(logINFOBLUE, ("starting state machine\n")); virtual_status = 1; virtual_stop = 0; @@ -1665,15 +1653,16 @@ int startStateMachine(){ #ifdef VIRTUAL void* start_timer(void* arg) { - int64_t periodns = getPeriod(); + int numInterfaces = getNumberofUDPInterfaces(); + int64_t periodNs = getPeriod(); int numFrames = (getNumFrames() * getNumTriggers() * (getNumAdditionalStorageCells() + 1)); - int64_t exp_us = getExpTime() / 1000; + int64_t expUs = getExpTime() / 1000; const int npixels = 256 * 256 * 8; - const int datasize = 8192; - const int packetsize = datasize + sizeof(sls_detector_header); - const int numPacketsPerFrame = 128; + const int dataSize = 8192; + const int packetsize = dataSize + sizeof(sls_detector_header); + const int packetsPerFrame = numInterfaces == 1 ? 128 : 64; int transmissionDelayUs = getTransmissionDelayFrame() * 1000; // Generate data @@ -1691,7 +1680,7 @@ void* start_timer(void* arg) { // Send data { int frameNr = 0; - for(frameNr=0; frameNr!= numFrames; ++frameNr ) { + for(frameNr = 0; frameNr != numFrames; ++frameNr ) { usleep(transmissionDelayUs); @@ -1703,50 +1692,73 @@ void* start_timer(void* arg) { // sleep for exposure time struct timespec begin, end; clock_gettime(CLOCK_REALTIME, &begin); - usleep(exp_us); + usleep(expUs); int srcOffset = 0; - char packetData[packetsize]; - memset(packetData, 0, packetsize); - + int srcOffset2 = DATA_BYTES / 2; // loop packet { int i = 0; - for(i = 0; i != numPacketsPerFrame; ++i) { + for(i = 0; i != packetsPerFrame; ++i) { // set header + char packetData[packetsize]; + memset(packetData, 0, packetsize); sls_detector_header* header = (sls_detector_header*)(packetData); header->detType = (uint16_t)myDetectorType; header->version = SLS_DETECTOR_HEADER_VERSION - 1; header->frameNumber = frameNr; header->packetNumber = i; header->modId = 0; - header->row = detPos[X]; - header->column = detPos[Y]; + header->row = detPos[2]; + header->column = detPos[3]; // fill data - memcpy(packetData + sizeof(sls_detector_header), imageData + srcOffset, datasize); - srcOffset += datasize; + memcpy(packetData + sizeof(sls_detector_header), + imageData + srcOffset, dataSize); + srcOffset += dataSize; sendUDPPacket(0, packetData, packetsize); + + // second interface + char packetData2[packetsize]; + memset(packetData2, 0, packetsize); + if (numInterfaces == 2) { + header = (sls_detector_header*)(packetData2); + header->detType = (uint16_t)myDetectorType; + header->version = SLS_DETECTOR_HEADER_VERSION - 1; + header->frameNumber = frameNr; + header->packetNumber = i; + header->modId = 0; + header->row = detPos[0]; + header->column = detPos[1]; + + // fill data + memcpy(packetData2 + sizeof(sls_detector_header), + imageData + srcOffset2, dataSize); + srcOffset2 += dataSize; + + sendUDPPacket(1, packetData2, packetsize); + } } } LOG(logINFO, ("Sent frame: %d\n", frameNr)); clock_gettime(CLOCK_REALTIME, &end); - int64_t time_ns = ((end.tv_sec - begin.tv_sec) * 1E9 + + int64_t timeNs = ((end.tv_sec - begin.tv_sec) * 1E9 + (end.tv_nsec - begin.tv_nsec)); // sleep for (period - exptime) if (frameNr < numFrames) { // if there is a next frame - if (periodns > time_ns) { - usleep((periodns - time_ns)/ 1000); + if (periodNs > timeNs) { + usleep((periodNs - timeNs)/ 1000); } } } } - - closeUDPSocket(0); + if (numInterfaces == 2) { + closeUDPSocket(1); + } virtual_status = 0; LOG(logINFOBLUE, ("Finished Acquiring\n")); diff --git a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c index 1db423728..1573d3d24 100755 --- a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c @@ -1882,7 +1882,7 @@ void* start_timer(void* arg) { { int frameNr = 0; // loop over number of frames - for(frameNr=0; frameNr!= numFrames; ++frameNr ) { + for(frameNr = 0; frameNr != numFrames; ++frameNr ) { //check if virtual_stop is high if(virtual_stop == 1){ @@ -1895,14 +1895,13 @@ void* start_timer(void* arg) { usleep(expNs / 1000); int srcOffset = 0; - char packetData[packetSize]; - memset(packetData, 0, packetSize); - // loop packet { int i = 0; for(i = 0; i != packetsPerFrame; ++i) { // set header + char packetData[packetSize]; + memset(packetData, 0, packetSize); sls_detector_header* header = (sls_detector_header*)(packetData); header->detType = (uint16_t)myDetectorType; header->version = SLS_DETECTOR_HEADER_VERSION - 1; diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 5c881b4f2..b8061a648 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -12,6 +12,7 @@ #include #include // usleep +#include #ifdef VIRTUAL #include #include @@ -742,41 +743,29 @@ int configureMAC() { int srcport = udpDetails.srcport; int dstport = udpDetails.dstport; + LOG(logINFOBLUE, ("Configuring MAC\n")); + char src_mac[50], src_ip[INET_ADDRSTRLEN],dst_mac[50], dst_ip[INET_ADDRSTRLEN]; + getMacAddressinString(src_mac, 50, srcmac); + getMacAddressinString(dst_mac, 50, dstmac); + getIpAddressinString(src_ip, srcip); + getIpAddressinString(dst_ip, dstip); + + LOG(logINFO, ( + "\tSource IP : %s\n" + "\tSource MAC : %s\n" + "\tSource Port : %d\n" + "\tDest IP : %s\n" + "\tDest MAC : %s\n" + "\tDest Port : %d\n", + src_ip, src_mac, srcport, + dst_ip, dst_mac, dstport)); + #ifdef VIRTUAL - char cDestIp[MAX_STR_LENGTH]; - memset(cDestIp, 0, MAX_STR_LENGTH); - sprintf(cDestIp, "%d.%d.%d.%d", (dstip>>24)&0xff,(dstip>>16)&0xff,(dstip>>8)&0xff,(dstip)&0xff); - LOG(logINFO, ("1G UDP: Destination (IP: %s, port:%d)\n", cDestIp, dstport)); - if (setUDPDestinationDetails(0, cDestIp, dstport) == FAIL) { + if (setUDPDestinationDetails(0, dst_ip, dstport) == FAIL) { LOG(logERROR, ("could not set udp destination IP and port\n")); return FAIL; } #endif - LOG(logINFOBLUE, ("Configuring MAC\n")); - - LOG(logINFO, ("\tSource IP : %d.%d.%d.%d \t\t(0x%08x)\n", - (srcip>>24)&0xff,(srcip>>16)&0xff,(srcip>>8)&0xff,(srcip)&0xff, srcip)); - LOG(logINFO, ("\tSource MAC : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", - (unsigned int)((srcmac>>40)&0xFF), - (unsigned int)((srcmac>>32)&0xFF), - (unsigned int)((srcmac>>24)&0xFF), - (unsigned int)((srcmac>>16)&0xFF), - (unsigned int)((srcmac>>8)&0xFF), - (unsigned int)((srcmac>>0)&0xFF), - (long long unsigned int)srcmac)); - LOG(logINFO, ("\tSource Port : %d \t\t\t(0x%08x)\n", srcport, srcport)); - - LOG(logINFO, ("\tDest. IP : %d.%d.%d.%d \t\t(0x%08x)\n", - (dstip>>24)&0xff,(dstip>>16)&0xff,(dstip>>8)&0xff,(dstip)&0xff, dstip)); - LOG(logINFO, ("\tDest. MAC : %02x:%02x:%02x:%02x:%02x:%02x \t(0x%010llx)\n", - (unsigned int)((dstmac>>40)&0xFF), - (unsigned int)((dstmac>>32)&0xFF), - (unsigned int)((dstmac>>24)&0xFF), - (unsigned int)((dstmac>>16)&0xFF), - (unsigned int)((dstmac>>8)&0xFF), - (unsigned int)((dstmac>>0)&0xFF), - (long long unsigned int)dstmac)); - LOG(logINFO, ("\tDest. Port : %d \t\t\t(0x%08x)\n\n",dstport, dstport)); // start addr uint32_t addr = BASE_UDP_RAM; @@ -1358,7 +1347,7 @@ int startStateMachine(){ if(createUDPSocket(0) != OK) { return FAIL; } - LOG(logINFOBLUE, ("starting state machine\n")); + LOG(logINFOBLUE, ("Starting State Machine\n")); // set status to running virtual_status = 1; virtual_stop = 0; @@ -1385,14 +1374,15 @@ int startStateMachine(){ #ifdef VIRTUAL void* start_timer(void* arg) { - int64_t periodns = getPeriod(); + int64_t periodNs = getPeriod(); int numFrames = (getNumFrames() * getNumTriggers() ); - int64_t exp_ns = getExpTime(); + int64_t expUs = getExpTime() / 1000; + //int dr = setDynamicRange(-1); int imagesize = calculateDataBytes(); - int datasize = imagesize / PACKETS_PER_FRAME; - int packetsize = datasize + sizeof(sls_detector_header); + int dataSize = imagesize / PACKETS_PER_FRAME; + int packetSize = dataSize + sizeof(sls_detector_header); // Generate data char imageData[imagesize]; @@ -1404,65 +1394,65 @@ void* start_timer(void* arg) { } } - int frameNr = 1; - // loop over number of frames - for (frameNr = 0; frameNr != numFrames; ++frameNr) { + // Send data + { + int frameNr = 1; + // loop over number of frames + for (frameNr = 0; frameNr != numFrames; ++frameNr) { - //check if virtual_stop is high - if(virtual_stop == 1){ - break; - } - - int srcOffset = 0; - - // sleep for exposure time - struct timespec begin, end; - clock_gettime(CLOCK_REALTIME, &begin); - usleep(exp_ns / 1000); - - // loop packet - { - int i = 0; - for(i = 0; i!=PACKETS_PER_FRAME; ++i) { - char packetData[packetsize]; - memset(packetData, 0, packetsize); - - // set header - sls_detector_header* header = (sls_detector_header*)(packetData); - header->frameNumber = frameNr + 1; - header->packetNumber = i; - header->modId = 0; - header->row = detPos[X]; - header->column = detPos[Y]; - header->detType = (uint16_t)myDetectorType; - header->version = SLS_DETECTOR_HEADER_VERSION - 1; - - // fill data - memcpy(packetData + sizeof(sls_detector_header), imageData + srcOffset, datasize); - srcOffset += datasize; - - sendUDPPacket(0, packetData, packetsize); + //check if virtual_stop is high + if(virtual_stop == 1){ + break; } - } - LOG(logINFO, ("Sent frame: %d\n", frameNr)); - // calculate time left in period - clock_gettime(CLOCK_REALTIME, &end); - int64_t time_ns = ((end.tv_sec - begin.tv_sec) * 1E9 + - (end.tv_nsec - begin.tv_nsec)); - // sleep for (period - exptime) - if (frameNr < numFrames) { // if there is a next frame - if (periodns > time_ns) { - usleep((periodns - time_ns)/ 1000); + // sleep for exposure time + struct timespec begin, end; + clock_gettime(CLOCK_REALTIME, &begin); + usleep(expUs); + + int srcOffset = 0; + // loop packet + { + int i = 0; + for(i = 0; i != PACKETS_PER_FRAME; ++i) { + char packetData[packetSize]; + memset(packetData, 0, packetSize); + + // set header + sls_detector_header* header = (sls_detector_header*) (packetData); + header->detType = (uint16_t)myDetectorType; + header->version = SLS_DETECTOR_HEADER_VERSION - 1; + header->frameNumber = frameNr + 1; + header->packetNumber = i; + header->modId = 0; + header->row = detPos[X]; + header->column = detPos[Y]; + + // fill data + memcpy(packetData + sizeof(sls_detector_header), + imageData + srcOffset, dataSize); + srcOffset += dataSize; + + sendUDPPacket(0, packetData, packetSize); + } } - } + LOG(logINFO, ("Sent frame: %d\n", frameNr)); + clock_gettime(CLOCK_REALTIME, &end); + int64_t timeNs = ((end.tv_sec - begin.tv_sec) * 1E9 + + (end.tv_nsec - begin.tv_nsec)); - // set register frames left - } + // sleep for (period - exptime) + if (frameNr < numFrames) { // if there is a next frame + if (periodNs > timeNs) { + usleep((periodNs - timeNs)/ 1000); + } + } + } + } closeUDPSocket(0); - // set status to idle + virtual_status = 0; LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 0804e8f8d..a523912d3 100755 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -1165,8 +1165,13 @@ int64_t Module::getTotalNumFramesToReceive() { int64_t repeats = shm()->nTriggers; // gotthard2 & auto & burst mode, use nBursts instead of nTriggers if (shm()->myDetectorType == GOTTHARD2) { - if (shm()->burstMode != BURST_OFF && shm()->timingMode == AUTO_TIMING) { - repeats = shm()->nBursts; + // auto mode (either bursts or no repeats) + if (shm()->timingMode == AUTO_TIMING) { + if (shm()->burstMode != BURST_OFF) { + repeats = shm()->nBursts; + } else { + repeats = 1; + } } } return (shm()->nFrames * repeats * (int64_t)(shm()->nAddStorageCells + 1)); From 043e62f9fda0e8642371fba261ef8dd1511ba572 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 31 Mar 2020 13:35:04 +0200 Subject: [PATCH 15/33] delay test --- slsDetectorSoftware/tests/test-CmdProxy.cpp | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index b802183da..967d7d8da 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -122,18 +122,7 @@ TEST_CASE("type", "[.cmd][.new]"){ TEST_CASE("detsize", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); - auto prev_val = det.getDetectorSize(); - { - std::ostringstream oss; - proxy.Call("detsize", {"1000", "2000"}, -1, PUT, oss); - REQUIRE(oss.str() == "detsize [1000, 2000]\n"); - } - { - std::ostringstream oss; - proxy.Call("detsize", {}, -1, GET, oss); - REQUIRE(oss.str() == "detsize [1000, 2000]\n"); - } - det.setDetectorSize(prev_val); + REQUIRE_NOTHROW(proxy.Call("detsize", {}, -1, GET)); } TEST_CASE("settings", "[.cmd][.new]") { @@ -311,6 +300,9 @@ TEST_CASE("delay", "[.cmd][.new]") { if (det_type == defs::EIGER) { REQUIRE_THROWS(proxy.Call("delay", {"1"}, -1, PUT)); REQUIRE_THROWS(proxy.Call("delay", {}, -1, GET)); + } if (det_type == defs::GOTTHARD) { + // extra delays for master (can throw when setting) + REQUIRE_NOTHROW(proxy.Call("delay", {}, -1, GET)); } else { auto prev_val = det.getDelayAfterTrigger(); { From 03af145ee8d5b3c86a92bb306cd8f05853edad4a Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 31 Mar 2020 13:38:11 +0200 Subject: [PATCH 16/33] test delay fix --- slsDetectorSoftware/tests/test-CmdProxy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index 967d7d8da..d54250be1 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -300,7 +300,7 @@ TEST_CASE("delay", "[.cmd][.new]") { if (det_type == defs::EIGER) { REQUIRE_THROWS(proxy.Call("delay", {"1"}, -1, PUT)); REQUIRE_THROWS(proxy.Call("delay", {}, -1, GET)); - } if (det_type == defs::GOTTHARD) { + } else if (det_type == defs::GOTTHARD) { // extra delays for master (can throw when setting) REQUIRE_NOTHROW(proxy.Call("delay", {}, -1, GET)); } else { From f2dd146e56f55a07030c3f0d24e72d62f5960650 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 31 Mar 2020 16:54:35 +0200 Subject: [PATCH 17/33] updates on servers (mainly virtual): indices, dbit clock not allowed for moench anymore --- .../slsDetectorFunctionList.c | 8 +- .../slsDetectorFunctionList.c | 2 - .../slsDetectorFunctionList.c | 8 +- .../slsDetectorFunctionList.c | 8 +- .../slsDetectorFunctionList.c | 2 - .../slsDetectorServer/include/MAX1932.h | 6 +- .../slsDetectorServer/src/ASIC_Driver.c | 5 +- .../slsDetectorServer/src/DAC6571.c | 2 + .../slsDetectorServer/src/LTC2620_Driver.c | 4 + .../slsDetectorServer/src/MAX1932.c | 18 +- .../src/slsDetectorServer_funcs.c | 25 +- slsDetectorSoftware/src/CmdProxy.cpp | 128 +-- .../tests/test-CmdProxy-mythen3.cpp | 83 -- slsDetectorSoftware/tests/test-CmdProxy.cpp | 904 ++++++++++-------- 14 files changed, 625 insertions(+), 578 deletions(-) diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c index b3219db34..e7228fd26 100755 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c @@ -1386,12 +1386,6 @@ int getADC(enum ADCINDEX ind){ int setHighVoltage(int val){ -#ifdef VIRTUAL - if (val >= 0) - highvoltage = val; - return highvoltage; -#endif - // setting hv if (val >= 0) { LOG(logINFO, ("Setting High voltage: %d V\n", val)); @@ -1400,7 +1394,7 @@ int setHighVoltage(int val){ // switch to external high voltage bus_w(addr, bus_r(addr) & (~POWER_HV_INTERNAL_SLCT_MSK)); - MAX1932_Set(val); + MAX1932_Set(&val); // switch on internal high voltage, if set if (val > 0) diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c index 3362a9897..6ffbcf663 100644 --- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c @@ -388,7 +388,6 @@ void setupDetector() { } -#ifndef VIRTUAL // pll defines ALTERA_PLL_C10_SetDefines(REG_OFFSET, BASE_READOUT_PLL, BASE_SYSTEM_PLL, PLL_RESET_REG, PLL_RESET_REG, PLL_RESET_READOUT_MSK, PLL_RESET_SYSTEM_MSK, READOUT_PLL_VCO_FREQ_HZ, SYSTEM_PLL_VCO_FREQ_HZ); ALTERA_PLL_C10_ResetPLL(READOUT_PLL); @@ -399,7 +398,6 @@ void setupDetector() { LTC2620_D_SetDefines(DAC_MAX_MV, DAC_DRIVER_FILE_NAME, NDAC); // on chip dacs ASIC_Driver_SetDefines(ONCHIP_DAC_DRIVER_FILE_NAME); -#endif setTimingSource(DEFAULT_TIMING_SOURCE); // Default values diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index d48abacd0..96409c5f0 100755 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -921,16 +921,10 @@ int getADC(enum ADCINDEX ind){ int setHighVoltage(int val){ -#ifdef VIRTUAL - if (val >= 0) - highvoltage = val; - return highvoltage; -#endif - // setting hv if (val >= 0) { LOG(logINFO, ("Setting High voltage: %d V", val)); - MAX1932_Set(val); + MAX1932_Set(&val); highvoltage = val; } return highvoltage; diff --git a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c index 1573d3d24..59f0763ee 100755 --- a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c @@ -1049,12 +1049,6 @@ void setVLimit(int l) { int setHighVoltage(int val){ -#ifdef VIRTUAL - if (val >= 0) - highvoltage = val; - return highvoltage; -#endif - // setting hv if (val >= 0) { LOG(logINFO, ("Setting High voltage: %d V\n", val)); @@ -1063,7 +1057,7 @@ int setHighVoltage(int val){ // switch to external high voltage bus_w(addr, bus_r(addr) & (~POWER_HV_INTERNAL_SLCT_MSK)); - MAX1932_Set(val); + MAX1932_Set(&val); // switch on internal high voltage, if set if (val > 0) diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index b8061a648..12a8e36ef 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -349,7 +349,6 @@ void setupDetector() { } } -#ifndef VIRTUAL // pll defines ALTERA_PLL_C10_SetDefines(REG_OFFSET, BASE_READOUT_PLL, BASE_SYSTEM_PLL, PLL_RESET_REG, PLL_RESET_REG, PLL_RESET_READOUT_MSK, PLL_RESET_SYSTEM_MSK, READOUT_PLL_VCO_FREQ_HZ, SYSTEM_PLL_VCO_FREQ_HZ); ALTERA_PLL_C10_ResetPLL(READOUT_PLL); @@ -358,7 +357,6 @@ void setupDetector() { DAC6571_SetDefines(HV_HARD_MAX_VOLTAGE, HV_DRIVER_FILE_NAME); //dac LTC2620_D_SetDefines(DAC_MAX_MV, DAC_DRIVER_FILE_NAME, NDAC); -#endif resetCore(); resetPeripheral(); diff --git a/slsDetectorServers/slsDetectorServer/include/MAX1932.h b/slsDetectorServers/slsDetectorServer/include/MAX1932.h index d3f9668c0..2a3ed7d78 100755 --- a/slsDetectorServers/slsDetectorServer/include/MAX1932.h +++ b/slsDetectorServers/slsDetectorServer/include/MAX1932.h @@ -21,11 +21,11 @@ void MAX1932_SetDefines(uint32_t reg, uint32_t cmsk, uint32_t clkmsk, uint32_t d void MAX1932_Disable(); /** - * Set value - * @param val value to set + * Set value (value is updated to correct range) + * @param val pointer to value to set * @return OK or FAIL */ -int MAX1932_Set (int val) ; +int MAX1932_Set (int* val) ; diff --git a/slsDetectorServers/slsDetectorServer/src/ASIC_Driver.c b/slsDetectorServers/slsDetectorServer/src/ASIC_Driver.c index a83c29f3b..af5da114a 100755 --- a/slsDetectorServers/slsDetectorServer/src/ASIC_Driver.c +++ b/slsDetectorServers/slsDetectorServer/src/ASIC_Driver.c @@ -42,9 +42,7 @@ int ASIC_Driver_Set (int index, int length, char* buffer) { LOG(logDEBUG2, ("\t]\n")); } -#ifdef VIRTUAL - return OK; -#endif +#ifndef VIRTUAL int fd=open(fname, O_RDWR); if (fd == -1) { LOG(logERROR, ("Could not open file %s for writing to control ASIC (%d)\n", fname, index)); @@ -66,6 +64,7 @@ int ASIC_Driver_Set (int index, int length, char* buffer) { return FAIL; } close(fd); +#endif return OK; } diff --git a/slsDetectorServers/slsDetectorServer/src/DAC6571.c b/slsDetectorServers/slsDetectorServer/src/DAC6571.c index f83e28fee..ba18cb865 100755 --- a/slsDetectorServers/slsDetectorServer/src/DAC6571.c +++ b/slsDetectorServers/slsDetectorServer/src/DAC6571.c @@ -36,6 +36,7 @@ int DAC6571_Set (int val) { LOG(logINFO, ("\t%dV (dacval %d)\n", val, dacvalue)); +#ifndef VIRTUAL //open file FILE* fd=fopen(DAC6571_DriverFileName,"w"); if (fd==NULL) { @@ -45,6 +46,7 @@ int DAC6571_Set (int val) { //convert to string, add 0 and write to file fprintf(fd, "%d\n", dacvalue); fclose(fd); +#endif return OK; } diff --git a/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c b/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c index 26fc6b657..a5aa214c9 100755 --- a/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c +++ b/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c @@ -72,6 +72,8 @@ int LTC2620_D_SetDACValue (int dacnum, int val, int mV, char* dacname, int* dacv if ( (*dacval >= 0) || (*dacval == LTC2620_D_PWR_DOWN_VAL)) { LOG(logINFO, ("Setting DAC %2d [%-12s] : %d dac (%d mV)\n",dacnum, dacname, *dacval, dacmV)); + +#ifndef VIRTUAL char fname[MAX_STR_LENGTH]; strcpy(fname, LTC2620_D_DriverFileName); char temp[20]; @@ -89,6 +91,8 @@ int LTC2620_D_SetDACValue (int dacnum, int val, int mV, char* dacname, int* dacv //convert to string, add 0 and write to file fprintf(fd, "%d\n", *dacval); fclose(fd); +#endif + } return OK; } diff --git a/slsDetectorServers/slsDetectorServer/src/MAX1932.c b/slsDetectorServers/slsDetectorServer/src/MAX1932.c index fc6885dc6..c7fca3733 100755 --- a/slsDetectorServers/slsDetectorServer/src/MAX1932.c +++ b/slsDetectorServers/slsDetectorServer/src/MAX1932.c @@ -43,33 +43,33 @@ void MAX1932_Disable() { & ~(MAX1932_DigMask)); } -int MAX1932_Set (int val) { - LOG(logDEBUG1, ("Setting high voltage to %d\n", val)); - if (val < 0) +int MAX1932_Set (int* val) { + LOG(logDEBUG1, ("Setting high voltage to %d\n", *val)); + if (*val < 0) return FAIL; int dacvalue = 0; // limit values (normally < 60 => 0 (off)) - if (val < MAX1932_MinVoltage) { + if (*val < MAX1932_MinVoltage) { dacvalue = MAX1932_POWER_OFF_DAC_VAL; - val = 0; + *val = 0; } // limit values (normally > 200 => 0x1 (max)) - else if (val > MAX1932_MaxVoltage) { + else if (*val > MAX1932_MaxVoltage) { dacvalue = MAX1932_MAX_DAC_VAL; - val = MAX1932_MaxVoltage; + *val = MAX1932_MaxVoltage; } // convert value else { // no failure in conversion as limits handled (range from 0x1 to 0xFF) ConvertToDifferentRange(MAX1932_MinVoltage, MAX1932_MaxVoltage, MAX1932_MIN_DAC_VAL, MAX1932_MAX_DAC_VAL, - val, &dacvalue); + *val, &dacvalue); dacvalue &= MAX1932_HV_DATA_MSK; } - LOG(logINFO, ("\t%dV (dacval %d)\n", val, dacvalue)); + LOG(logINFO, ("\t%dV (dacval %d)\n", *val, dacvalue)); serializeToSPI(MAX1932_Reg, dacvalue, MAX1932_CsMask, MAX1932_HV_NUMBITS, MAX1932_ClkMask, MAX1932_DigMask, MAX1932_DigOffset, 0); return OK; diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index c151d6d76..d84d0ca2e 100755 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -5804,9 +5804,11 @@ int set_clock_frequency(int file_des) { case ADC_CLOCK: c = ADC_CLK; break; +#ifdef CHIPTESTBOARDD case DBIT_CLOCK: c = DBIT_CLK; break; +#endif case RUN_CLOCK: c = RUN_CLK; break; @@ -5860,9 +5862,11 @@ int get_clock_frequency(int file_des) { case ADC_CLOCK: c = ADC_CLK; break; +#ifdef CHIPTESTBOARDD case DBIT_CLOCK: c = DBIT_CLK; break; +#endif case RUN_CLOCK: c = RUN_CLK; break; @@ -5916,14 +5920,14 @@ int set_clock_phase(int file_des) { c = ADC_CLK; break; #endif -#if defined(CHIPTESTBOARDD) || defined(MOENCHD) || defined(JUNGFRAUD) +#if defined(CHIPTESTBOARDD) || defined(JUNGFRAUD) case DBIT_CLOCK: c = DBIT_CLK; break; #endif default: #if defined(GOTTHARD2D) || defined(MYTHEN3D) - if (c < NUM_CLOCKS) { + if (ind < NUM_CLOCKS) { c = (enum CLKINDEX)ind; break; } @@ -5995,7 +5999,7 @@ int get_clock_phase(int file_des) { if (receiveData(file_des, args, sizeof(args), INT32) < 0) return printSocketReadError(); - LOG(logDEBUG1, ("Getting clock (%d) phase %s \n", args[0], (args[1] == 0 ? "" : "in degrees"))); + LOG(logINFOBLUE, ("Getting clock (%d) phase %s \n", args[0], (args[1] == 0 ? "" : "in degrees"))); #if !defined(CHIPTESTBOARDD) && !defined(MOENCHD) && !defined(JUNGFRAUD) && !defined(GOTTHARD2D) && !defined(MYTHEN3D) functionNotImplemented(); @@ -6009,14 +6013,17 @@ int get_clock_phase(int file_des) { case ADC_CLOCK: c = ADC_CLK; break; +#endif +#if defined(CHIPTESTBOARDD) || defined(JUNGFRAUD) case DBIT_CLOCK: c = DBIT_CLK; break; #endif default: #if defined(GOTTHARD2D) || defined(MYTHEN3D) - if (c < NUM_CLOCKS) { + if (ind < NUM_CLOCKS) { c = (enum CLKINDEX)ind; + LOG(logINFOBLUE, ("NUMclocks:%d c:%d\n", NUM_CLOCKS, c)); break; } #endif @@ -6053,13 +6060,15 @@ int get_max_clock_phase_shift(int file_des) { case ADC_CLOCK: c = ADC_CLK; break; +#endif +#if defined(CHIPTESTBOARDD) || defined(JUNGFRAUD) case DBIT_CLOCK: c = DBIT_CLK; break; #endif default: #if defined(GOTTHARD2D) || defined(MYTHEN3D) - if (c < NUM_CLOCKS) { + if (arg < NUM_CLOCKS) { c = (enum CLKINDEX)arg; break; } @@ -6104,7 +6113,7 @@ int set_clock_divider(int file_des) { default: // any clock index #if defined(GOTTHARD2D) || defined(MYTHEN3D) - if (c < NUM_CLOCKS) { + if (ind < NUM_CLOCKS) { c = (enum CLKINDEX)ind; break; } @@ -6187,7 +6196,7 @@ int get_clock_divider(int file_des) { #endif default: #if defined(GOTTHARD2D) || defined(MYTHEN3D) - if (c < NUM_CLOCKS) { + if (arg < NUM_CLOCKS) { c = (enum CLKINDEX)arg; break; } @@ -6272,9 +6281,11 @@ int get_pipeline(int file_des) { case ADC_CLOCK: c = ADC_CLK; break; +#ifdef CHIPTESTBOARDD case DBIT_CLOCK: c = DBIT_CLK; break; +#endif default: modeNotImplemented("clock index (pipeline get)", arg); break; diff --git a/slsDetectorSoftware/src/CmdProxy.cpp b/slsDetectorSoftware/src/CmdProxy.cpp index 65f5043fc..971d5a954 100644 --- a/slsDetectorSoftware/src/CmdProxy.cpp +++ b/slsDetectorSoftware/src/CmdProxy.cpp @@ -402,37 +402,45 @@ std::string CmdProxy::Adcphase(int action) { "resets adcphase and sets it to previous values.\n\t[Gotthard] " "Relative phase shift" << '\n'; - } else if (action == defs::GET_ACTION) { - Result t; - if (args.empty()) { - t = det->getADCPhase({det_id}); - os << OutString(t) << '\n'; - } else if (args.size() == 1) { - if (args[0] != "deg") { - throw sls::RuntimeError("Unknown adcphase argument " + args[0] + - ". Did you mean deg?"); + } else { + auto det_type = det->getDetectorType().squash(defs::GENERIC); + if (det_type == defs::EIGER || + det_type == defs::MYTHEN3 || + det_type == defs::GOTTHARD2) { + throw sls::RuntimeError("adcphase not implemented for this detector"); } - t = det->getADCPhaseInDegrees({det_id}); - os << OutString(t) << " deg\n"; - } else { - WrongNumberOfParameters(0); - } - } else if (action == defs::PUT_ACTION) { - if (args.size() == 1) { - det->setADCPhase(StringTo(args[0]), {det_id}); - os << args.front() << '\n'; - } else if (args.size() == 2) { - if (args[1] != "deg") { - throw sls::RuntimeError("Unknown adcphase 2nd argument " + - args[1] + ". Did you mean deg?"); + if (action == defs::GET_ACTION) { + Result t; + if (args.empty()) { + t = det->getADCPhase({det_id}); + os << OutString(t) << '\n'; + } else if (args.size() == 1) { + if (args[0] != "deg") { + throw sls::RuntimeError("Unknown adcphase argument " + args[0] + + ". Did you mean deg? "); + } + t = det->getADCPhaseInDegrees({det_id}); + os << OutString(t) << " deg\n"; + } else { + WrongNumberOfParameters(0); + } + } else if (action == defs::PUT_ACTION) { + if (args.size() == 1) { + det->setADCPhase(StringTo(args[0]), {det_id} ); + os << args.front() << '\n'; + } else if (args.size() == 2) { + if (args[1] != "deg") { + throw sls::RuntimeError("Unknown adcphase 2nd argument " + + args[1] + ". Did you mean deg?"); + } + det->setADCPhaseInDegrees(StringTo(args[0]) , {det_id}); + os << args[0] << " " << args[1] << '\n'; + } else { + WrongNumberOfParameters(1); } - det->setADCPhaseInDegrees(StringTo(args[0]), {det_id}); - os << args[0] << args[1] << '\n'; } else { - WrongNumberOfParameters(1); + throw sls::RuntimeError("Unknown action"); } - } else { - throw sls::RuntimeError("Unknown action"); } return os.str(); } @@ -446,37 +454,45 @@ std::string CmdProxy::Dbitphase(int action) { "shift in degrees. \n\t[Ctb]Changing dbitclk also resets dbitphase and " "sets to previous values." << '\n'; - } else if (action == defs::GET_ACTION) { - Result t; - if (args.empty()) { - t = det->getDBITPhase({det_id}); - os << OutString(t) << '\n'; - } else if (args.size() == 1) { - if (args[0] != "deg") { - throw sls::RuntimeError("Unknown dbitphase argument " + - args[0] + ". Did you mean deg?"); - } - t = det->getDBITPhaseInDegrees({det_id}); - os << OutString(t) << " deg\n"; - } else { - WrongNumberOfParameters(0); + } else { + auto det_type = det->getDetectorType().squash(defs::GENERIC); + if (det_type == defs::EIGER || + det_type == defs::MYTHEN3 || + det_type == defs::GOTTHARD2) { + throw sls::RuntimeError("dbitphase not implemented for this detector"); } - } else if (action == defs::PUT_ACTION) { - if (args.size() == 1) { - det->setDBITPhase(StringTo(args[0]), {det_id}); - os << args.front() << '\n'; - } else if (args.size() == 2) { - if (args[1] != "deg") { - throw sls::RuntimeError("Unknown dbitphase 2nd argument " + - args[1] + ". Did you mean deg?"); + if (action == defs::GET_ACTION) { + Result t; + if (args.empty()) { + t = det->getDBITPhase({det_id}); + os << OutString(t) << '\n'; + } else if (args.size() == 1) { + if (args[0] != "deg") { + throw sls::RuntimeError("Unknown dbitphase argument " + + args[0] + ". Did you mean deg? "); + } + t = det->getDBITPhaseInDegrees({det_id}); + os << OutString(t) << " deg\n"; + } else { + WrongNumberOfParameters(0); + } + } else if (action == defs::PUT_ACTION) { + if (args.size() == 1) { + det->setDBITPhase(StringTo(args[0]), {det_id}); + os << args.front() << '\n'; + } else if (args.size() == 2) { + if (args[1] != "deg") { + throw sls::RuntimeError("Unknown dbitphase 2nd argument " + + args[1] + ". Did you mean deg? "); + } + det->setDBITPhaseInDegrees(StringTo(args[0]), {det_id} ); + os << args[0] << " " << args[1] << '\n'; + } else { + WrongNumberOfParameters(1); } - det->setDBITPhaseInDegrees(StringTo(args[0]), {det_id}); - os << args[0] << args[1] << '\n'; } else { - WrongNumberOfParameters(1); + throw sls::RuntimeError("Unknown action"); } - } else { - throw sls::RuntimeError("Unknown action"); } return os.str(); } @@ -538,7 +554,7 @@ std::string CmdProxy::ClockPhase(int action) { } auto t = det->getClockPhaseinDegrees(StringTo(args[0]), {det_id}); - os << OutString(t) << '\n'; + os << OutString(t) << " deg\n"; } else { WrongNumberOfParameters(1); } @@ -554,7 +570,7 @@ std::string CmdProxy::ClockPhase(int action) { } det->setClockPhaseinDegrees(StringTo(args[0]), StringTo(args[1]), {det_id}); - os << args[1] << '\n'; + os << args[1] << " " << args[2] << '\n'; } else { WrongNumberOfParameters(1); } diff --git a/slsDetectorSoftware/tests/test-CmdProxy-mythen3.cpp b/slsDetectorSoftware/tests/test-CmdProxy-mythen3.cpp index 406d43d66..0376da13f 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-mythen3.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-mythen3.cpp @@ -87,89 +87,6 @@ TEST_CASE("Setting and reading back MYTHEN3 dacs", "[.cmd][.dacs]") { } } -TEST_CASE("clkfreq", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::MYTHEN3 || det_type == defs::GOTTHARD2) { - REQUIRE_THROWS(proxy.Call("clkfreq", {"0", "2"}, -1, PUT)); - REQUIRE_THROWS(proxy.Call("clkfreq", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("clkfreq", {"7"}, -1, GET)); - - auto value = det.getClockFrequency(0).squash(-1); - std::ostringstream oss_set, oss_get; - proxy.Call("clkfreq", {"0"}, -1, GET, oss_get); - REQUIRE(oss_get.str() == "clkfreq " + std::to_string(value) + "\n"); - } else { - REQUIRE_THROWS(proxy.Call("clkfreq", {"0"}, -1, GET)); - } -} - -TEST_CASE("clkphase", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::MYTHEN3 || det_type == defs::GOTTHARD2) { - REQUIRE_THROWS(proxy.Call("clkphase", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("clkphase", {"7"}, -1, GET)); - REQUIRE_THROWS(proxy.Call("clkphase", {"4"}, -1, PUT)); - REQUIRE_THROWS(proxy.Call("clkphase", {"7", "4"}, -1, PUT)); - - auto previous = det.getClockFrequency(0).squash(-1); - auto previous_string = std::to_string(previous); - std::ostringstream oss_set, oss_get, oss_get2; - proxy.Call("clkfreq", {"0", previous_string}, -1, PUT, oss_set); - REQUIRE(oss_set.str() == "clkfreq" + previous_string + "\n"); - proxy.Call("clkfreq", {"0"}, -1, GET, oss_get); - REQUIRE(oss_get.str() == "clkfreq " + previous_string + "\n"); - REQUIRE_NOTHROW(proxy.Call("clkphase", {"0", "deg"}, -1, GET)); - } else { - REQUIRE_THROWS(proxy.Call("clkphase", {"0"}, -1, GET)); - } -} - -TEST_CASE("clkdiv", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::MYTHEN3 || det_type == defs::GOTTHARD2) { - REQUIRE_THROWS(proxy.Call("clkdiv", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("clkdiv", {"7"}, -1, GET)); - REQUIRE_THROWS(proxy.Call("clkdiv", {"7", "4"}, -1, PUT)); - REQUIRE_THROWS(proxy.Call("clkdiv", {"7", "4"}, -1, PUT)); - REQUIRE_THROWS(proxy.Call("clkdiv", {"0", "1"}, -1, PUT)); - - auto previous = det.getClockDivider(0).squash(-1); - auto previous_string = std::to_string(previous); - std::ostringstream oss_set, oss_get; - proxy.Call("clkdiv", {"0", previous_string}, -1, PUT, oss_set); - REQUIRE(oss_set.str() == "clkdiv" + previous_string + "\n"); - proxy.Call("clkdiv", {"0"}, -1, GET, oss_get); - REQUIRE(oss_get.str() == "clkdiv " + previous_string + "\n"); - } else { - REQUIRE_THROWS(proxy.Call("clkdiv", {"0"}, -1, GET)); - } -} - -TEST_CASE("maxclkphaseshift", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::MYTHEN3 || det_type == defs::GOTTHARD2) { - REQUIRE_THROWS(proxy.Call("maxclkphaseshift", {"0", "2"}, -1, PUT)); - REQUIRE_THROWS(proxy.Call("maxclkphaseshift", {}, -1, GET)); - REQUIRE_THROWS(proxy.Call("maxclkphaseshift", {"7"}, -1, GET)); - - auto value = det.getMaxClockPhaseShift(0).squash(-1); - std::ostringstream oss_set, oss_get; - proxy.Call("maxclkphaseshift", {"0"}, -1, GET, oss_get); - REQUIRE(oss_get.str() == - "maxclkphaseshift " + std::to_string(value) + "\n"); - } else { - REQUIRE_THROWS(proxy.Call("maxclkphaseshift", {"0"}, -1, GET)); - } -} - TEST_CASE("counters", "[.cmd]") { Detector det; CmdProxy proxy(&det); diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index d54250be1..4166b26d4 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -3,12 +3,11 @@ #include "catch.hpp" #include "sls_detector_defs.h" #include +#include +#include #include "tests/globals.h" -// auto GET = slsDetectorDefs::GET_ACTION; -// auto PUT = slsDetectorDefs::PUT_ACTION; - using sls::CmdProxy; using sls::Detector; using test::GET; @@ -326,22 +325,434 @@ TEST_CASE("delay", "[.cmd][.new]") { } } +TEST_CASE("framesl", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + REQUIRE_THROWS(proxy.Call("framesl", {}, -1, GET)); + } else { + REQUIRE_NOTHROW(proxy.Call("framesl", {}, -1, GET)); + } +} + +TEST_CASE("triggersl", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + REQUIRE_THROWS(proxy.Call("triggersl", {}, -1, GET)); + } else { + REQUIRE_NOTHROW(proxy.Call("triggersl", {}, -1, GET)); + } +} + +TEST_CASE("delayl", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + REQUIRE_THROWS(proxy.Call("delayl", {}, -1, GET)); + } else { + REQUIRE_NOTHROW(proxy.Call("delayl", {}, -1, GET)); + } +} + +TEST_CASE("periodl", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + REQUIRE_THROWS(proxy.Call("periodl", {}, -1, GET)); + } else { + REQUIRE_NOTHROW(proxy.Call("periodl", {}, -1, GET)); + } +} + +TEST_CASE("timing", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getTimingMode(); + det.setTimingMode(defs::AUTO_TIMING); + { + std::ostringstream oss1, oss2; + proxy.Call("timing", {"auto"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "timing auto\n"); + proxy.Call("timing", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "timing auto\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("timing", {"trigger"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "timing trigger\n"); + proxy.Call("timing", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "timing trigger\n"); + } + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER) { + { + std::ostringstream oss1, oss2; + proxy.Call("timing", {"gating"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "timing gating\n"); + proxy.Call("timing", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "timing gating\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("timing", {"burst_trigger"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "timing burst_trigger\n"); + proxy.Call("timing", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "timing burst_trigger\n"); + } + } else { + REQUIRE_THROWS(proxy.Call("timing", {"gating"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("timing", {"burst_trigger"}, -1, PUT)); + } + for (int i = 0; i != det.size(); ++i) { + det.setTimingMode(prev_val[i], {i}); + } +} + +TEST_CASE("speed", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER || det_type == defs::JUNGFRAU) { + auto prev_val = det.getSpeed(); + // full speed for jungfrau only works for new boards + /* + { + std::ostringstream oss1, oss2, oss3, oss4; + proxy.Call("speed", {"0"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "speed full_speed\n"); + proxy.Call("speed", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "speed full_speed\n"); + proxy.Call("speed", {"full_speed"}, -1, PUT, oss3); + REQUIRE(oss3.str() == "speed full_speed\n"); + proxy.Call("speed", {}, -1, GET, oss4); + REQUIRE(oss4.str() == "speed full_speed\n"); + } + */ + { + std::ostringstream oss1, oss2, oss3, oss4; + proxy.Call("speed", {"1"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "speed half_speed\n"); + proxy.Call("speed", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "speed half_speed\n"); + proxy.Call("speed", {"half_speed"}, -1, PUT, oss3); + REQUIRE(oss3.str() == "speed half_speed\n"); + proxy.Call("speed", {}, -1, GET, oss4); + REQUIRE(oss4.str() == "speed half_speed\n"); + } + { + std::ostringstream oss1, oss2, oss3, oss4; + proxy.Call("speed", {"2"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "speed quarter_speed\n"); + proxy.Call("speed", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "speed quarter_speed\n"); + proxy.Call("speed", {"quarter_speed"}, -1, PUT, oss3); + REQUIRE(oss3.str() == "speed quarter_speed\n"); + proxy.Call("speed", {}, -1, GET, oss4); + REQUIRE(oss4.str() == "speed quarter_speed\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setSpeed(prev_val[i], {i}); + } + } else { + REQUIRE_THROWS(proxy.Call("speed", {"0"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("speed", {}, -1, GET)); + } +} + +TEST_CASE("adcphase", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::GOTTHARD || + det_type == defs::JUNGFRAU || + det_type == defs::CHIPTESTBOARD || + det_type == defs::MOENCH) { + if (det_type == defs::GOTTHARD) { + std::ostringstream oss1; + proxy.Call("adcphase", {"20"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "adcphase 20\n"); + // cant get, cant use deg + REQUIRE_THROWS(proxy.Call("adcphase", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("adcphase", {"20", "deg"}, -1, PUT)); + } else { + auto prev_val = det.getADCPhase(); + { + std::ostringstream oss1, oss2; + proxy.Call("adcphase", {"20"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "adcphase 20\n"); + proxy.Call("adcphase", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "adcphase 20\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("adcphase", {"20", "deg"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "adcphase 20 deg\n"); + proxy.Call("adcphase", {"deg"}, -1, GET, oss2); + REQUIRE(oss2.str() == "adcphase 20 deg\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setADCPhase(prev_val[i], {i}); + } + } + } else { + REQUIRE_THROWS(proxy.Call("adcphase", {"0"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("adcphase", {}, -1, GET)); + } +} + +TEST_CASE("maxadcphaseshift", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::JUNGFRAU || + det_type == defs::CHIPTESTBOARD || + det_type == defs::MOENCH || + det_type == defs::MYTHEN3 || // only because clk index of 0 exists + det_type == defs::GOTTHARD2) { // only because clk index of 0 exists + REQUIRE_NOTHROW(proxy.Call("maxadcphaseshift", {}, -1, GET)); + } else { + REQUIRE_THROWS(proxy.Call("maxadcphaseshift", {}, -1, GET)); + } +} + +TEST_CASE("dbitphase", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::JUNGFRAU || + det_type == defs::CHIPTESTBOARD) { + auto prev_val = det.getDBITPhase(); + { + std::ostringstream oss1, oss2; + proxy.Call("dbitphase", {"20"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "dbitphase 20\n"); + proxy.Call("dbitphase", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "dbitphase 20\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("dbitphase", {"20", "deg"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "dbitphase 20 deg\n"); + proxy.Call("dbitphase", {"deg"}, -1, GET, oss2); + REQUIRE(oss2.str() == "dbitphase 20 deg\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setDBITPhase(prev_val[i], {i}); + } + } else { + REQUIRE_THROWS(proxy.Call("dbitphase", {"0"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("dbitphase", {}, -1, GET)); + } +} + +TEST_CASE("maxdbitphaseshift", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::JUNGFRAU || + det_type == defs::CHIPTESTBOARD || + det_type == defs::MYTHEN3 || // only because clk index of 0 exists + det_type == defs::GOTTHARD2) { // only because clk index of 0 exists + REQUIRE_NOTHROW(proxy.Call("maxdbitphaseshift", {}, -1, GET)); + } else { + REQUIRE_THROWS(proxy.Call("maxdbitphaseshift", {}, -1, GET)); + } +} + +TEST_CASE("clkfreq", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::MYTHEN3 || det_type == defs::GOTTHARD2) { + REQUIRE_THROWS(proxy.Call("clkfreq", {"0", "2"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("clkfreq", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("clkfreq", {"7"}, -1, GET)); + REQUIRE_NOTHROW(proxy.Call("clkfreq", {"0"}, -1, GET)); + } else { + REQUIRE_THROWS(proxy.Call("clkfreq", {"0"}, -1, GET)); + } +} + +TEST_CASE("clkphase", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::MYTHEN3 || det_type == defs::GOTTHARD2) { + REQUIRE_THROWS(proxy.Call("clkphase", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("clkphase", {"7"}, -1, GET)); + REQUIRE_THROWS(proxy.Call("clkphase", {"4"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("clkphase", {"7", "4"}, -1, PUT)); + auto prev_val = det.getClockPhase(0); + { + std::ostringstream oss1, oss2; + proxy.Call("clkphase", {"0", "20"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "clkphase 20\n"); + proxy.Call("clkphase", {"0"}, -1, GET, oss2); + REQUIRE(oss2.str() == "clkphase 20\n"); + } + std::string s_deg_val = "15"; + if (det_type == defs::MYTHEN3) { + s_deg_val = "14"; + } + { + std::ostringstream oss1, oss2; + proxy.Call("clkphase", {"0", s_deg_val, "deg"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "clkphase " + s_deg_val + " deg\n"); + proxy.Call("clkphase", {"0", "deg"}, -1, GET, oss2); + REQUIRE(oss2.str() == "clkphase " + s_deg_val + " deg\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setClockPhase(0, prev_val[i], {i}); + } + } else { + REQUIRE_THROWS(proxy.Call("clkphase", {"0"}, -1, GET)); + } +} + +TEST_CASE("clkdiv", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::MYTHEN3 || det_type == defs::GOTTHARD2) { + REQUIRE_THROWS(proxy.Call("clkdiv", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("clkdiv", {"7"}, -1, GET)); + REQUIRE_THROWS(proxy.Call("clkdiv", {"7", "4"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("clkdiv", {"7", "4"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("clkdiv", {"0", "1"}, -1, PUT)); + auto prev_val = det.getClockDivider(0); + { + std::ostringstream oss1, oss2; + proxy.Call("clkdiv", {"0", "3"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "clkdiv 3\n"); + proxy.Call("clkdiv", {"0"}, -1, GET, oss2); + REQUIRE(oss2.str() == "clkdiv 3\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setClockDivider(0, prev_val[i], {i}); + } + } else { + REQUIRE_THROWS(proxy.Call("clkdiv", {"0"}, -1, GET)); + } +} + +TEST_CASE("maxclkphaseshift", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::MYTHEN3 || det_type == defs::GOTTHARD2) { + REQUIRE_THROWS(proxy.Call("maxclkphaseshift", {"0", "2"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("maxclkphaseshift", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("maxclkphaseshift", {"7"}, -1, GET)); + REQUIRE_NOTHROW(proxy.Call("maxclkphaseshift", {"0"}, -1, GET)); + } else { + REQUIRE_THROWS(proxy.Call("maxclkphaseshift", {"0"}, -1, GET)); + } +} - - - - - - - - - - - - - - +TEST_CASE("vhighvoltage", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + auto prev_val = det.getHighVoltage(); + // selected values + if (det_type == defs::GOTTHARD) { + REQUIRE_THROWS(proxy.Call("vhighvoltage", {"50"}, -1, PUT)); + { + std::ostringstream oss1, oss2; + proxy.Call("vhighvoltage", {"90"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "vhighvoltage 90\n"); + proxy.Call("vhighvoltage", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "vhighvoltage 90\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("vhighvoltage", {"0"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "vhighvoltage 0\n"); + proxy.Call("vhighvoltage", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "vhighvoltage 0\n"); + } + } + // range 0, 60 - 200 + else if (det_type == defs::JUNGFRAU || + det_type == defs::CHIPTESTBOARD || + det_type == defs::MOENCH) { + REQUIRE_THROWS(proxy.Call("vhighvoltage", {"50"}, -1, PUT)); + { + std::ostringstream oss1, oss2; + proxy.Call("vhighvoltage", {"90"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "vhighvoltage 90\n"); + proxy.Call("vhighvoltage", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "vhighvoltage 90\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("vhighvoltage", {"0"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "vhighvoltage 0\n"); + proxy.Call("vhighvoltage", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "vhighvoltage 0\n"); + } + } + // full range 0 - 200 (get needs to wait) + else if (det_type == defs::EIGER) { + { + std::ostringstream oss1, oss2; + proxy.Call("vhighvoltage", {"50"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "vhighvoltage 50\n"); + std::this_thread::sleep_for(std::chrono::seconds(2)); + proxy.Call("vhighvoltage", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "vhighvoltage 50\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("vhighvoltage", {"120"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "vhighvoltage 120\n"); + std::this_thread::sleep_for(std::chrono::seconds(2)); + proxy.Call("vhighvoltage", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "vhighvoltage 120\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("vhighvoltage", {"0"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "vhighvoltage 0\n"); + std::this_thread::sleep_for(std::chrono::seconds(2)); + proxy.Call("vhighvoltage", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "vhighvoltage 0\n"); + } + } + // full range 0 - 200 + else { + { + std::ostringstream oss1, oss2; + proxy.Call("vhighvoltage", {"50"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "vhighvoltage 50\n"); + proxy.Call("vhighvoltage", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "vhighvoltage 50\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("vhighvoltage", {"120"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "vhighvoltage 120\n"); + proxy.Call("vhighvoltage", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "vhighvoltage 120\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("vhighvoltage", {"0"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "vhighvoltage 0\n"); + proxy.Call("vhighvoltage", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "vhighvoltage 0\n"); + } + } + for (int i = 0; i != det.size(); ++i) { + det.setHighVoltage(prev_val[i], {i}); + } +} @@ -475,7 +886,7 @@ TEST_CASE("stopport", "[.cmd]") { } // TEST_CASE("reg", "[.cmd]") { -// if (test::type == slsDetectorDefs::JUNGFRAU) { +// if (test::type == defs::JUNGFRAU) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("reg 0x01", GET, nullptr, @@ -512,7 +923,7 @@ TEST_CASE("stopport", "[.cmd]") { // oss)); REQUIRE(oss.str() == "frames 6\n"); // } // REQUIRE_NOTHROW(multiSlsDetectorClient("frames 1", PUT)); -// } else if (test::type == slsDetectorDefs::GOTTHARD) { +// } else if (test::type == defs::GOTTHARD) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("reg 0x023", GET, nullptr, @@ -549,7 +960,7 @@ TEST_CASE("stopport", "[.cmd]") { // oss)); REQUIRE(oss.str() == "frames 6\n"); // } // REQUIRE_NOTHROW(multiSlsDetectorClient("frames 1", PUT)); -// } else if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// } else if (test::type == defs::CHIPTESTBOARD) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("reg 0x01", GET, nullptr, @@ -590,8 +1001,8 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("update", "[.cmd][.ctb][.jungfrau]") { -// if (test::type == slsDetectorDefs::JUNGFRAU || test::type == -// slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::JUNGFRAU || test::type == +// defs::CHIPTESTBOARD) { // REQUIRE_THROWS(multiSlsDetectorClient("update", PUT)); // REQUIRE_THROWS(multiSlsDetectorClient("update // jungfrauDetectorServer_developer", PUT)); @@ -609,8 +1020,8 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("copydetectorserver", "[.cmd][.ctb][.jungfrau]") { -// if (test::type == slsDetectorDefs::JUNGFRAU || test::type == -// slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::JUNGFRAU || test::type == +// defs::CHIPTESTBOARD) { // REQUIRE_THROWS(multiSlsDetectorClient("copydetectorserver", PUT)); // REQUIRE_THROWS(multiSlsDetectorClient("copydetectorserver // jungfrauDetectorServer_developer", PUT)); @@ -622,8 +1033,8 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("rebootcontroller", "[.cmd][.ctb][.jungfrau]") { -// if (test::type == slsDetectorDefs::JUNGFRAU || test::type == -// slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::JUNGFRAU || test::type == +// defs::CHIPTESTBOARD) { // ;//REQUIRE_NOTHROW(multiSlsDetectorClient("rebootcontroller", PUT)); // } else { // REQUIRE_THROWS(multiSlsDetectorClient("rebootcontroller", GET)); @@ -631,8 +1042,8 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("programfpga", "[.cmd][.ctb][.jungfrau]") { -// if (test::type == slsDetectorDefs::JUNGFRAU || test::type == -// slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::JUNGFRAU || test::type == +// defs::CHIPTESTBOARD) { // REQUIRE_THROWS(multiSlsDetectorClient("programfpga fdgd.oki", PUT)); // //REQUIRE_NOTHROW(multiSlsDetectorClient("programfpga // /afs/psi.ch/project/sls_det_firmware/jungfrau_firmware/cyclone_V/v0_8/Jungfrau_MCB.pof", @@ -709,7 +1120,7 @@ TEST_CASE("stopport", "[.cmd]") { // TEST_CASE("patsetbit", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // uint64_t val = 0; // { // std::ostringstream oss; @@ -731,7 +1142,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("patmask", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // uint64_t val = 0; // { // std::ostringstream oss; @@ -754,7 +1165,7 @@ TEST_CASE("stopport", "[.cmd]") { // TEST_CASE("patwaittime", "[.cmd][.ctb]") { // for (int loop = 0; loop < 3; ++loop) { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // uint64_t val = 0; // { // std::ostringstream oss; @@ -781,7 +1192,7 @@ TEST_CASE("stopport", "[.cmd]") { // TEST_CASE("patwait", "[.cmd][.ctb]") { // for (int loop = 0; loop < 3; ++loop) { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // int val = 0; // { // std::ostringstream oss; @@ -808,7 +1219,7 @@ TEST_CASE("stopport", "[.cmd]") { // TEST_CASE("patnloop", "[.cmd][.ctb]") { // for (int loop = 0; loop < 3; ++loop) { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // int val = 0; // { // std::ostringstream oss; @@ -835,7 +1246,7 @@ TEST_CASE("stopport", "[.cmd]") { // TEST_CASE("patloop", "[.cmd][.ctb]") { // for (int loop = 0; loop < 3; ++loop) { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // uint32_t limit1 = 0, limit2 = 0; // { // std::ostringstream oss; @@ -864,7 +1275,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("patlimits", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // uint32_t patlimit1 = 0, patlimit2 = 0; // { // std::ostringstream oss; @@ -888,7 +1299,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("patword", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // uint64_t prev_value = 0; // { // std::ostringstream oss; @@ -920,7 +1331,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("patclkctrl", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // uint64_t prev_value = 0; // { // std::ostringstream oss; @@ -952,7 +1363,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("patioctrl", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // uint64_t prev_value = 0; // { // std::ostringstream oss; @@ -985,7 +1396,7 @@ TEST_CASE("stopport", "[.cmd]") { // TEST_CASE("savepattern", "[.cmd][.ctb]") { // REQUIRE_THROWS(multiSlsDetectorClient("savepattern", GET)); -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("savepattern @@ -1000,13 +1411,13 @@ TEST_CASE("stopport", "[.cmd]") { // TEST_CASE("pattern", "[.cmd][.ctb]") { // REQUIRE_THROWS(multiSlsDetectorClient("pattern", GET)); -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // ;// todo test with real file? // } // } // TEST_CASE("led", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("led 1", PUT, nullptr, @@ -1028,7 +1439,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("diodelay", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // REQUIRE_NOTHROW(multiSlsDetectorClient("diodelay 0x01010 125", PUT)); // { // std::ostringstream oss; @@ -1045,7 +1456,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("extsampling", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("extsampling 1", PUT, @@ -1067,7 +1478,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("extsamplingsrc", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("extsamplingsrc 1", PUT, @@ -1095,8 +1506,8 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("adcinvert", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD || test::type == -// slsDetectorDefs::JUNGFRAU) { +// if (test::type == defs::CHIPTESTBOARD || test::type == +// defs::JUNGFRAU) { // std::string s; // { // std::ostringstream oss; @@ -1120,7 +1531,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("adcenable", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // std::string s; // { // std::ostringstream oss; @@ -1144,7 +1555,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("vm_a", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // REQUIRE_NOTHROW(multiSlsDetectorClient("vm_a", GET)); // REQUIRE_NOTHROW(multiSlsDetectorClient("vm_b", GET)); // REQUIRE_NOTHROW(multiSlsDetectorClient("vm_c", GET)); @@ -1170,7 +1581,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("v_a", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // std::string s; // { // std::ostringstream oss; @@ -1243,7 +1654,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("adcvpp", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // int prev_val = 0; // { // std::ostringstream oss; @@ -1271,7 +1682,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("dbitpipeline", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("dbitpipeline 1", PUT, @@ -1299,7 +1710,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("adcpipeline", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("adcpipeline 1", PUT, @@ -1326,53 +1737,10 @@ TEST_CASE("stopport", "[.cmd]") { // } // } -// TEST_CASE("maxdbitphaseshift", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD ) { -// REQUIRE_NOTHROW(multiSlsDetectorClient("maxdbitphaseshift", GET)); -// REQUIRE_THROWS(multiSlsDetectorClient("maxdbitphaseshift 120", PUT)); -// } else { -// REQUIRE_THROWS(multiSlsDetectorClient("maxdbitphaseshift", GET)); -// } -// } -// TEST_CASE("dbitphase", "[.cmd][.ctb]") { -// if (test::type != slsDetectorDefs::CHIPTESTBOARD) { -// REQUIRE_THROWS(multiSlsDetectorClient("dbitphase", GET)); -// } else { -// int prev_val = 0; -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("dbitphase", GET, nullptr, -// oss)); std::string s = (oss.str()).erase (0, strlen("dbitphase -// ")); prev_val = std::stoi(s); -// } -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("dbitphase 20", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("dbitphase", GET, nullptr, -// oss)); REQUIRE(oss.str() == "dbitphase 20\n"); -// } -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("dbitphase 0", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("dbitphase", GET, nullptr, -// oss)); REQUIRE(oss.str() == "dbitphase 0\n"); -// } -// if (test::type == slsDetectorDefs::GOTTHARD) { -// REQUIRE_THROWS(multiSlsDetectorClient("dbitphase deg", GET)); -// } else { -// REQUIRE_NOTHROW(multiSlsDetectorClient("dbitphase 20 deg", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("dbitphase deg", GET, -// nullptr, oss)); REQUIRE(oss.str() == "dbitphase 20 deg\n"); -// } -// REQUIRE_NOTHROW(multiSlsDetectorClient("dbitphase " + -// std::to_string(prev_val), PUT)); -// } -// } // TEST_CASE("romode", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("romode digital", PUT, @@ -1400,7 +1768,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("samples", "[.cmd][.ctb]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // uint64_t prev_value1 = 0; // { // std::ostringstream oss; @@ -1459,7 +1827,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("imagetest", "[.cmd][.gotthard]") { -// if (test::type == slsDetectorDefs::GOTTHARD) { +// if (test::type == defs::GOTTHARD) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("imagetest 1", PUT, @@ -1481,7 +1849,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("extsig", "[.cmd][.gotthard]") { -// if (test::type == slsDetectorDefs::GOTTHARD) { +// if (test::type == defs::GOTTHARD) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("extsig @@ -1506,7 +1874,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("exptimel", "[.cmd][.gotthard]") { -// if (test::type == slsDetectorDefs::GOTTHARD) { +// if (test::type == defs::GOTTHARD) { // REQUIRE_NOTHROW(multiSlsDetectorClient("frames 1", PUT)); // REQUIRE_NOTHROW(multiSlsDetectorClient("exptime 5 s", PUT)); // REQUIRE_NOTHROW(multiSlsDetectorClient("start", PUT)); @@ -1526,9 +1894,9 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("periodl", "[.cmd][.gotthard]") { -// if (test::type == slsDetectorDefs::GOTTHARD || test::type == -// slsDetectorDefs::JUNGFRAU || test::type == -// slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::GOTTHARD || test::type == +// defs::JUNGFRAU || test::type == +// defs::CHIPTESTBOARD) { // REQUIRE_NOTHROW(multiSlsDetectorClient("frames 2", PUT)); // REQUIRE_NOTHROW(multiSlsDetectorClient("period 5", PUT)); // REQUIRE_NOTHROW(multiSlsDetectorClient("start", PUT)); @@ -1549,7 +1917,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("roi", "[.cmd][.gotthard]") { -// if (test::type == slsDetectorDefs::GOTTHARD) { +// if (test::type == defs::GOTTHARD) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("roi 0 255", PUT, nullptr, @@ -1573,7 +1941,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("storagecell_delay", "[.cmd][.jungfrau]") { -// if (test::type == slsDetectorDefs::JUNGFRAU) { +// if (test::type == defs::JUNGFRAU) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("storagecell_delay 1.62ms", @@ -1599,7 +1967,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("storagecell_start", "[.cmd][.jungfrau]") { -// if (test::type == slsDetectorDefs::JUNGFRAU) { +// if (test::type == defs::JUNGFRAU) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("storagecell_start 1", @@ -1630,7 +1998,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("storagecells", "[.cmd][.jungfrau]") { -// if (test::type == slsDetectorDefs::JUNGFRAU) { +// if (test::type == defs::JUNGFRAU) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("storagecells 1", PUT, @@ -1658,7 +2026,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("auto_comp_disable", "[.cmd][.jungfrau]") { -// if (test::type == slsDetectorDefs::JUNGFRAU) { +// if (test::type == defs::JUNGFRAU) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("auto_comp_disable 1", @@ -1682,7 +2050,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("temp_", "[.cmd][.jungfrau]") { -// if (test::type == slsDetectorDefs::JUNGFRAU) { +// if (test::type == defs::JUNGFRAU) { // std::string s; // { // std::ostringstream oss; @@ -1731,7 +2099,7 @@ TEST_CASE("stopport", "[.cmd]") { // REQUIRE_THROWS(multiSlsDetectorClient("pulse", GET)); // REQUIRE_THROWS(multiSlsDetectorClient("pulsenmove", GET)); // REQUIRE_THROWS(multiSlsDetectorClient("pulsechip", GET)); -// if (test::type == slsDetectorDefs::EIGER) { +// if (test::type == defs::EIGER) { // REQUIRE_NOTHROW(multiSlsDetectorClient("pulse 1 1 5", PUT)); // REQUIRE_NOTHROW(multiSlsDetectorClient("pulsenmove 1 1 5", PUT)); // REQUIRE_NOTHROW(multiSlsDetectorClient("pulsechip 1", PUT)); @@ -1743,7 +2111,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("partialreset", "[.cmd][.eiger]") { -// if (test::type == slsDetectorDefs::EIGER) { +// if (test::type == defs::EIGER) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("partialreset 1", PUT, @@ -1767,7 +2135,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("measuredsubperiod", "[.cmd][.eiger]") { -// if (test::type == slsDetectorDefs::EIGER) { +// if (test::type == defs::EIGER) { // REQUIRE_NOTHROW(multiSlsDetectorClient("frames 1", PUT)); // REQUIRE_NOTHROW(multiSlsDetectorClient("dr 32", PUT)); // REQUIRE_NOTHROW(multiSlsDetectorClient("start", PUT)); @@ -1786,7 +2154,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("measuredperiod", "[.cmd][.eiger]") { -// if (test::type == slsDetectorDefs::EIGER) { +// if (test::type == defs::EIGER) { // REQUIRE_NOTHROW(multiSlsDetectorClient("frames 2", PUT)); // REQUIRE_NOTHROW(multiSlsDetectorClient("period 1", PUT)); // REQUIRE_NOTHROW(multiSlsDetectorClient("start", PUT)); @@ -1805,7 +2173,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("readnlines", "[.cmd][.eiger]") { -// if (test::type == slsDetectorDefs::EIGER) { +// if (test::type == defs::EIGER) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("readnlines 256", PUT, @@ -1829,7 +2197,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("ratecorr", "[.cmd][.eiger]") { -// if (test::type == slsDetectorDefs::EIGER) { +// if (test::type == defs::EIGER) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("ratecorr 120", PUT, @@ -1855,7 +2223,7 @@ TEST_CASE("stopport", "[.cmd]") { // TEST_CASE("trimval", "[.cmd][.eiger]") { -// if (test::type == slsDetectorDefs::EIGER) { +// if (test::type == defs::EIGER) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("trimval 63", PUT, @@ -1878,7 +2246,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("flippeddatax", "[.cmd][.eiger]") { -// if (test::type == slsDetectorDefs::EIGER) { +// if (test::type == defs::EIGER) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("0:flippeddatax", GET, @@ -1900,7 +2268,7 @@ TEST_CASE("stopport", "[.cmd]") { // TEST_CASE("parallel", "[.cmd][.eiger]") { -// if (test::type == slsDetectorDefs::EIGER) { +// if (test::type == defs::EIGER) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("parallel 1", PUT, @@ -1922,7 +2290,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // TEST_CASE("gappixels", "[.cmd][.eiger]") { -// if (test::type == slsDetectorDefs::EIGER) { +// if (test::type == defs::EIGER) { // { // std::ostringstream oss; // REQUIRE_NOTHROW(multiSlsDetectorClient("gappixels 1", PUT, @@ -1976,9 +2344,9 @@ TEST_CASE("zmqport", "[.cmd]") { int socketsperdetector = 1; auto det_type = det.getDetectorType().squash(); int prev = 1; - if (det_type == slsDetectorDefs::EIGER) { + if (det_type == defs::EIGER) { socketsperdetector *= 2; - } else if (det_type == slsDetectorDefs::JUNGFRAU) { + } else if (det_type == defs::JUNGFRAU) { prev = det.getNumberofUDPInterfaces().squash(); det.setNumberofUDPInterfaces(2); socketsperdetector *= 2; @@ -2008,7 +2376,7 @@ TEST_CASE("zmqport", "[.cmd]") { proxy.Call("zmqport", {}, i, GET, oss); REQUIRE(oss.str() == "zmqport " + std::to_string(port + i * socketsperdetector) + '\n'); } - if (det_type == slsDetectorDefs::JUNGFRAU) { + if (det_type == defs::JUNGFRAU) { det.setNumberofUDPInterfaces(prev); } } @@ -2019,7 +2387,7 @@ TEST_CASE("zmqport", "[.cmd]") { // TEST_CASE("txndelay", "[.cmd][.eiger][.jungfrau]") { -// if (test::type == slsDetectorDefs::EIGER) { +// if (test::type == defs::EIGER) { // { // REQUIRE_NOTHROW(multiSlsDetectorClient("0:txndelay_frame 50000", // PUT)); std::ostringstream oss; @@ -2056,7 +2424,7 @@ TEST_CASE("zmqport", "[.cmd]") { // REQUIRE_NOTHROW(multiSlsDetectorClient("0:txndelay_right", GET, // nullptr, oss)); REQUIRE(oss.str() == "txndelay_right 0\n"); // } -// } else if (test::type == slsDetectorDefs::JUNGFRAU) { +// } else if (test::type == defs::JUNGFRAU) { // { // REQUIRE_NOTHROW(multiSlsDetectorClient("txndelay_frame 5", PUT)); // std::ostringstream oss; @@ -2080,8 +2448,8 @@ TEST_CASE("zmqport", "[.cmd]") { // } // TEST_CASE("flowcontrol_10g", "[.cmd][.eiger][.jungfrau]") { -// if (test::type == slsDetectorDefs::EIGER || test::type == -// slsDetectorDefs::JUNGFRAU) { +// if (test::type == defs::EIGER || test::type == +// defs::JUNGFRAU) { // { // REQUIRE_NOTHROW(multiSlsDetectorClient("flowcontrol_10g 1", // PUT)); std::ostringstream oss; @@ -2133,9 +2501,9 @@ TEST_CASE("zmqport", "[.cmd]") { // { // DetectorImpl d; // int socketsperdetector = 1; -// if (test::type == slsDetectorDefs::EIGER) { +// if (test::type == defs::EIGER) { // socketsperdetector *= 2; -// } else if (test::type == slsDetectorDefs::JUNGFRAU) { +// } else if (test::type == defs::JUNGFRAU) { // REQUIRE_NOTHROW(multiSlsDetectorClient("numinterfaces 2", PUT)); // socketsperdetector *= 2; // } @@ -2157,7 +2525,7 @@ TEST_CASE("zmqport", "[.cmd]") { // "udp_dstport " + std::to_string(port + i * socketsperdetector) + // '\n'); // } -// if (test::type == slsDetectorDefs::JUNGFRAU) { +// if (test::type == defs::JUNGFRAU) { // REQUIRE_NOTHROW(multiSlsDetectorClient("numinterfaces 1", PUT)); // } // REQUIRE_NOTHROW(multiSlsDetectorClient("udp_dstport 50001", PUT)); @@ -2166,7 +2534,7 @@ TEST_CASE("zmqport", "[.cmd]") { // REQUIRE_THROWS(multiSlsDetectorClient("udp_srcip 124586954", PUT)); // REQUIRE_THROWS(multiSlsDetectorClient("udp_srcip 999.999.0.0.0.5", PUT)); -// if (test::type == slsDetectorDefs::JUNGFRAU) { +// if (test::type == defs::JUNGFRAU) { // /* {TODO custom srcip2 in globals // REQUIRE_NOTHROW(multiSlsDetectorClient("0:udp_srcip2 // 129.129.205.203", PUT)); std::ostringstream oss; @@ -2199,7 +2567,7 @@ TEST_CASE("zmqport", "[.cmd]") { // nullptr, oss)); REQUIRE(oss.str() == "udp_dstport2 6400\n"); // } // REQUIRE_NOTHROW(multiSlsDetectorClient("udp_dstport2 50002", PUT)); -// } else if (test::type == slsDetectorDefs::EIGER) { +// } else if (test::type == defs::EIGER) { // { // REQUIRE_NOTHROW(multiSlsDetectorClient("0:udp_dstport2 6400", // PUT)); std::ostringstream oss; @@ -2217,7 +2585,7 @@ TEST_CASE("zmqport", "[.cmd]") { // } // TEST_CASE("selinterface", "[.cmd][.jungfrau]") { -// if (test::type == slsDetectorDefs::JUNGFRAU) { +// if (test::type == defs::JUNGFRAU) { // REQUIRE_NOTHROW(multiSlsDetectorClient("numinterfaces 1", PUT)); // { // REQUIRE_NOTHROW(multiSlsDetectorClient("selinterface 0", PUT)); @@ -2238,7 +2606,7 @@ TEST_CASE("zmqport", "[.cmd]") { // } // TEST_CASE("numinterfaces", "[.cmd][.jungfrau]") { -// if (test::type == slsDetectorDefs::JUNGFRAU) { +// if (test::type == defs::JUNGFRAU) { // { // REQUIRE_NOTHROW(multiSlsDetectorClient("numinterfaces 2", PUT)); // std::ostringstream oss; @@ -2260,49 +2628,10 @@ TEST_CASE("zmqport", "[.cmd]") { // REQUIRE_THROWS(multiSlsDetectorClient("numinterfaces 0", PUT)); // } -TEST_CASE("timing", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - det.setTimingMode(defs::AUTO_TIMING); // start in auto - { - std::ostringstream oss1, oss2; - proxy.Call("timing", {"auto"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "timing auto\n"); - proxy.Call("timing", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "timing auto\n"); - } - { - std::ostringstream oss1, oss2; - proxy.Call("timing", {"trigger"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "timing trigger\n"); - proxy.Call("timing", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "timing trigger\n"); - } - auto det_type = det.getDetectorType().squash(); - if (det_type == slsDetectorDefs::EIGER) { - { - std::ostringstream oss1, oss2; - proxy.Call("timing", {"gating"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "timing gating\n"); - proxy.Call("timing", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "timing gating\n"); - } - { - std::ostringstream oss1, oss2; - proxy.Call("timing", {"burst_trigger"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "timing burst_trigger\n"); - proxy.Call("timing", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "timing burst_trigger\n"); - } - } else { - REQUIRE_THROWS(proxy.Call("timing", {"gating"}, -1, PUT)); - REQUIRE_THROWS(proxy.Call("timing", {"burst_trigger"}, -1, PUT)); - } - det.setTimingMode(defs::AUTO_TIMING); // reset to auto -} + // TEST_CASE("adc", "[.cmd][.ctb]") { -// if (test::type != slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type != defs::CHIPTESTBOARD) { // REQUIRE_THROWS(multiSlsDetectorClient("adc 8", GET)); // } else { // REQUIRE_THROWS(multiSlsDetectorClient("adc", GET)); @@ -2315,7 +2644,7 @@ TEST_CASE("timing", "[.cmd]") { // } // TEST_CASE("temp_fpga", "[.cmd][.eiger][.jungfrau][.gotthard]") { -// if (test::type == slsDetectorDefs::CHIPTESTBOARD) { +// if (test::type == defs::CHIPTESTBOARD) { // REQUIRE_THROWS(multiSlsDetectorClient("temp_fpga", GET)); // } else { // REQUIRE_THROWS(multiSlsDetectorClient("temp_fpga 0", PUT)); @@ -2327,8 +2656,8 @@ TEST_CASE("timing", "[.cmd]") { // } // TEST_CASE("temp_adc", "[.cmd][.jungfrau][.gotthard]") { -// if (test::type != slsDetectorDefs::GOTTHARD && test::type != -// slsDetectorDefs::JUNGFRAU ) { +// if (test::type != defs::GOTTHARD && test::type != +// defs::JUNGFRAU ) { // REQUIRE_THROWS(multiSlsDetectorClient("temp_adc", GET)); // } else { // REQUIRE_THROWS(multiSlsDetectorClient("temp_adc 0", PUT)); @@ -2340,7 +2669,7 @@ TEST_CASE("timing", "[.cmd]") { // } // TEST_CASE("temp", "[.cmd][.eiger]") { -// if (test::type != slsDetectorDefs::EIGER) { +// if (test::type != defs::EIGER) { // REQUIRE_THROWS(multiSlsDetectorClient("temp_fpgaext", GET)); // REQUIRE_THROWS(multiSlsDetectorClient("temp_10ge", GET)); // REQUIRE_THROWS(multiSlsDetectorClient("temp_dcdc", GET)); @@ -2401,112 +2730,11 @@ TEST_CASE("timing", "[.cmd]") { // } // } -// TEST_CASE("vhighvoltage", "[.cmd]") { -// if (test::type == slsDetectorDefs::GOTTHARD) { -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("vhighvoltage 90", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("vhighvoltage", GET, -// nullptr, oss)); REQUIRE(oss.str() == "vhighvoltage 90\n"); -// } -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("vhighvoltage 0", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("vhighvoltage", GET, -// nullptr, oss)); REQUIRE(oss.str() == "vhighvoltage 0\n"); -// } -// REQUIRE_THROWS(multiSlsDetectorClient("vhighvoltage 50", PUT)); -// } else if (test::type == slsDetectorDefs::EIGER) { -// REQUIRE_NOTHROW(multiSlsDetectorClient("vhighvoltage 50", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("vhighvoltage 120", PUT)); -// sleep(2); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:vhighvoltage", GET, -// nullptr, oss)); REQUIRE(oss.str() == "vhighvoltage 120\n"); -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("vhighvoltage 0", PUT)); -// sleep(2); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:vhighvoltage", GET, -// nullptr, oss)); REQUIRE(oss.str() == "vhighvoltage 0\n"); -// } -// } else { -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("vhighvoltage 50", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("vhighvoltage", GET, -// nullptr, oss)); REQUIRE(oss.str() == "vhighvoltage 50\n"); -// } -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("vhighvoltage 120", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("vhighvoltage", GET, -// nullptr, oss)); REQUIRE(oss.str() == "vhighvoltage 120\n"); -// } -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("vhighvoltage 0", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("vhighvoltage", GET, -// nullptr, oss)); REQUIRE(oss.str() == "vhighvoltage 0\n"); -// } -// } -// } -// TEST_CASE("maxadcphaseshift", "[.cmd][.ctb][.jungfrau]") { -// if (test::type != slsDetectorDefs::CHIPTESTBOARD && test::type != -// slsDetectorDefs::JUNGFRAU) { -// REQUIRE_THROWS(multiSlsDetectorClient("maxadcphaseshift", GET)); -// } else { -// REQUIRE_NOTHROW(multiSlsDetectorClient("maxadcphaseshift", GET)); -// } -// } -// TEST_CASE("adcphase", "[.cmd][.ctb][.jungfrau][.gotthard]") { - -// if (test::type == slsDetectorDefs::GOTTHARD) { -// REQUIRE_NOTHROW(multiSlsDetectorClient("adcphase 120", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("adcphase 0", PUT)); -// REQUIRE_THROWS(multiSlsDetectorClient("adcphase 120 deg", PUT)); -// REQUIRE_THROWS(multiSlsDetectorClient("adcphase", GET)); -// // get is -1 -// } else if (test::type == slsDetectorDefs::CHIPTESTBOARD || test::type == -// slsDetectorDefs::JUNGFRAU) { -// int prev_val = 0; -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("adcphase", GET, nullptr, -// oss)); std::string s = (oss.str()).erase (0, strlen("adcphase -// ")); prev_val = std::stoi(s); -// } -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("adcphase 20", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("adcphase", GET, nullptr, -// oss)); REQUIRE(oss.str() == "adcphase 20\n"); -// } -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("adcphase 0", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("adcphase", GET, nullptr, -// oss)); REQUIRE(oss.str() == "adcphase 0\n"); -// } -// if (test::type == slsDetectorDefs::GOTTHARD) { -// REQUIRE_THROWS(multiSlsDetectorClient("adcphase deg", GET)); -// } else { -// REQUIRE_NOTHROW(multiSlsDetectorClient("adcphase 20 deg", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("adcphase deg", GET, -// nullptr, oss)); REQUIRE(oss.str() == "adcphase 20 deg\n"); -// } -// REQUIRE_NOTHROW(multiSlsDetectorClient("adcphase " + -// std::to_string(prev_val), PUT)); -// } else { -// REQUIRE_THROWS(multiSlsDetectorClient("adcphase", GET)); -// } -// } // TEST_CASE("syncclk", "[.cmd][.ctb]") { -// if(test::type != slsDetectorDefs::CHIPTESTBOARD) { +// if(test::type != defs::CHIPTESTBOARD) { // REQUIRE_THROWS(multiSlsDetectorClient("syncclk", GET)); // } else { // REQUIRE_NOTHROW(multiSlsDetectorClient("syncclk", GET)); @@ -2515,7 +2743,7 @@ TEST_CASE("timing", "[.cmd]") { // } // TEST_CASE("adcclk", "[.cmd][.ctb]") { -// if(test::type != slsDetectorDefs::CHIPTESTBOARD) { +// if(test::type != defs::CHIPTESTBOARD) { // REQUIRE_THROWS(multiSlsDetectorClient("adcclk", GET)); // } else { // int prev_clk = 0; @@ -2543,7 +2771,7 @@ TEST_CASE("timing", "[.cmd]") { // } // TEST_CASE("dbitclk", "[.cmd][.ctb]") { -// if(test::type != slsDetectorDefs::CHIPTESTBOARD) { +// if(test::type != defs::CHIPTESTBOARD) { // REQUIRE_THROWS(multiSlsDetectorClient("dbitclk", GET)); // } else { // int prev_clk = 0; @@ -2571,7 +2799,7 @@ TEST_CASE("timing", "[.cmd]") { // } // TEST_CASE("runclk", "[.cmd][.ctb]") { -// if(test::type != slsDetectorDefs::CHIPTESTBOARD) { +// if(test::type != defs::CHIPTESTBOARD) { // REQUIRE_THROWS(multiSlsDetectorClient("runclk", GET)); // } else { // int prev_runclk = 0; @@ -2598,54 +2826,10 @@ TEST_CASE("timing", "[.cmd]") { // } // } -// TEST_CASE("speed", "[.cmd][.eiger][.jungfrau]") { -// if(test::type != slsDetectorDefs::EIGER && test::type != -// slsDetectorDefs::JUNGFRAU) { -// REQUIRE_THROWS(multiSlsDetectorClient("speed", GET)); -// } else { -// /*{TODO : only for new jungfrau boards -// REQUIRE_NOTHROW(multiSlsDetectorClient("speed 0", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("speed", GET, nullptr, -// oss)); REQUIRE(oss.str() == "speed full_speed\n"); -// } -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("speed full_speed", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("speed", GET, nullptr, -// oss)); REQUIRE(oss.str() == "speed full_speed\n"); -// }*/ -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("speed 1", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("speed", GET, nullptr, -// oss)); REQUIRE(oss.str() == "speed half_speed\n"); -// } -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("speed half_speed", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("speed", GET, nullptr, -// oss)); REQUIRE(oss.str() == "speed half_speed\n"); -// } -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("speed 2", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("speed", GET, nullptr, -// oss)); REQUIRE(oss.str() == "speed quarter_speed\n"); -// } -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("speed quarter_speed", -// PUT)); std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("speed", GET, nullptr, -// oss)); REQUIRE(oss.str() == "speed quarter_speed\n"); -// } -// REQUIRE_THROWS(multiSlsDetectorClient("speed 3", PUT)); -// } -// } // TEST_CASE("threshold", "[.cmd]") { -// if (test::type == slsDetectorDefs::EIGER) { +// if (test::type == defs::EIGER) { // REQUIRE_NOTHROW(multiSlsDetectorClient("threshold 6400 standard", // PUT)); REQUIRE_NOTHROW(multiSlsDetectorClient("thresholdnotb 6400 // standard", PUT)); REQUIRE_NOTHROW(multiSlsDetectorClient("threshold @@ -2707,70 +2891,6 @@ TEST_CASE("timing", "[.cmd]") { // proxy.Call("frames", {"1"}, -1, PUT); // } -// TEST_CASE("framesl", "[.cmd][.jungfrau][gotthard][ctb]") { -// if(test::type == slsDetectorDefs::EIGER) { -// REQUIRE_THROWS(multiSlsDetectorClient("framesl", GET)); -// } else { -// REQUIRE_NOTHROW(multiSlsDetectorClient("timing auto", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("frames 10", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("period 1", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("start", PUT)); -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("framesl", GET, nullptr, -// oss)); std::string s = (oss.str()).erase (0, strlen("framesl ")); -// int framesl = std::stoi(s); -// REQUIRE(framesl > 0); -// } -// REQUIRE_NOTHROW(multiSlsDetectorClient("stop", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("frames 1", PUT)); -// } -// } - -// TEST_CASE("triggersl", "[.cmd][.jungfrau][gotthard][ctb]") { -// if(test::type == slsDetectorDefs::EIGER) { -// REQUIRE_THROWS(multiSlsDetectorClient("triggersl", GET)); -// } else { -// REQUIRE_NOTHROW(multiSlsDetectorClient("timing trigger", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("frames 1", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("triggers 10", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("start", PUT)); -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("triggersl", GET, nullptr, -// oss)); std::string s = (oss.str()).erase (0, strlen("triggersl -// ")); int triggersl = std::stoi(s); REQUIRE(triggersl == 8); -// } -// REQUIRE_NOTHROW(multiSlsDetectorClient("stop", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("timing auto", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("triggers 1", PUT)); -// } -// } - -// TEST_CASE("delayl", "[.cmd][.jungfrau][gotthard][ctb]") { -// if(test::type == slsDetectorDefs::EIGER) { -// REQUIRE_THROWS(multiSlsDetectorClient("delayl", GET)); -// } else if(test::type == slsDetectorDefs::GOTTHARD) { -// REQUIRE_NOTHROW(multiSlsDetectorClient("delay 0", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("delayl", GET)); -// // delayl always gives 0 for gotthard -// } else { -// REQUIRE_NOTHROW(multiSlsDetectorClient("timing trigger", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("frames 1", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("triggers 2", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("delay 1", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("start", PUT)); -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("delayl s", GET, nullptr, -// oss)); REQUIRE(oss.str() == "delayl 1s\n"); -// } -// REQUIRE_NOTHROW(multiSlsDetectorClient("stop", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("timing auto", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("triggers 1", PUT)); -// REQUIRE_NOTHROW(multiSlsDetectorClient("delay 0", PUT)); -// } -// } From 83010de9f47eff15c6009bb1d03b9fd9371568ce Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 31 Mar 2020 16:58:35 +0200 Subject: [PATCH 18/33] updated all binaries, previous ones may not work --- .../bin/ctbDetectorServer_developer | Bin 192096 -> 189552 bytes .../bin/eigerDetectorServer_developer | Bin 346320 -> 346320 bytes .../slsDetectorFunctionList.c | 4 ++-- .../bin/gotthard2DetectorServer_developer | Bin 166532 -> 166532 bytes .../bin/gotthardDetectorServer_developer | Bin 140932 -> 140548 bytes .../bin/jungfrauDetectorServer_developer | Bin 157792 -> 156888 bytes .../bin/moenchDetectorServer_developer | Bin 187180 -> 184508 bytes .../bin/mythen3DetectorServer_developer | Bin 168056 -> 168056 bytes slsSupportLib/include/versionAPI.h | 14 +++++++------- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer index cde78956362ae8fdd0f69039ab00a62863c7d8b4..3dcad70d69812c3e1e8faed153ef54a48518f166 100755 GIT binary patch delta 94020 zcmb4M4SWn&*Pl%y7K;fXOF||QM0~A}5=FZStu)mNO;uHE5vocX8bsgJE)7D1jnPu| zv>Vb^RcmRqSxYVQkZR~sZMBb9#;{UCVVDrmU`BJo#spC3W`gtFO$H28l!^O(S$XaM57X?mMa&2A{1 zn#~qyDkc5!x5U1ElTpykXFx2UDpVjuMIZ!|S&ylVV-!APqA;=)dRAg;OtAtq70

-IaT$f;6AUN`$!aKhah}HFoabOnjQEkp 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 delta 94492 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

_qiWheqi)a?xsh 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 AL;wH) diff --git a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer index 500446b97ae5dd2df8c5211b977ea493a1b51d69..b926fc836d079efda42650a9ca4b426ba3a27168 100755 GIT binary patch delta 56694 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 delta 56415 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�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 UH)L+bsES1kyLs*`^}7210sThWpa1{> delta 37774 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

  • aQa= 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

    ?e7i0_xAo5cZrN!(llwGtacwM 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 OWuH3=Mro)J)&74;Rt1p& delta 66772 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%0AZ8PCdlN+wKq?>*P$*Cw z5D16`(gJ~iIshdDfq?vgGJrrp*P~ElfIvVEK>0u*1K_WK#eg6nCr~*M2wj+Ss06}p44^RmZ z2*?Cf1q1@x4Ri?z1hfO_1`r5nD^S1|6um7JQk#Q=eTo(Iwbfiy0I?P)fTDoZKp>znpm-n!xfwVv%AUlu_ z2n1vWN&^A`9gQ@gTmpgs--2TS5D2Ik$P5Gm+6z|tb2xtyaJ`e~<2XqJs z1oQweF0+0g;1T+q)9tZ?90?5E@M@`>O;UGX25D2IrkOl|@)Ej6L5C}*Glnev{ z3Is|A0s(adG6I2s+5qJPfq-tPVJHv?=r16<0njeM-vG}8f#CQP&?O)cP#qBS3JiUP zqOXBeKp>!VKpG$r&}TrCfIvVMK*>NLpbvpEfj~g-18sT*{of`5z5`eYM-Utj0hIuO zfQo?1fj~fefE+*|AOds&2n4hZ=mro7Xai7iE+%2Q6s-k{0RjQN05m=q{U81SW&qBD zBM9gzpfn&5&_bYWAP~@FKm|Y`pjkl2fIvVG0aXHlfF=Xg0)c?;19Aa@fZ~DL=Ar+? zAHbo2DnJkr9dE_~fq>|Ea}p2;NEqw_%@YtEZ)O02;6}%rIY1yFI^HY*0s NevJ z1yj&*^|u{Cm>Q1IV>pjlf|td)z;Ws6r3a4?H+})8e+zPDob%wEU*M2&wk^a0-$J(3 z=c^W++J!n9CvFjDWs7oU9D@-o<06NQRRvDfBKD|Hktzj?)hRj|#|VxwC0E9&1gA2^ zA>$M*#;WgP_FbQz#55d=NYlwUBMi8EHsYyV8LI-Eil-bh&JA2qy0Mh*{PG`#kN)wXOINbaO^fMgT7loo>CZxz&iw9Pan^~&BN)RdC#)WFdvgE0j~tS za2ZcLzQa0u$#~*vB-R-r=v(Lov||BHt@EAH&Dhq58iq3;$%E6R;9J8StmWr zAQ@;7*Tq@qU>UOkf(;NHBI8ZUMiOSTPK}J04_-caLuI@R;9UT3n2a|9>t7?*u+HH! zUJiIUYgmJGgpBC`(*ePeGF~{Aj>6Zn&QUU68hB~ojh69_fp-kNco|PzW@4RVWIPL2 zZY;?5u>#M~5lMli4I^S=WS!$=g29-b2d`tD<7K=I@G`)=N5-?S$5P{Z)_Jdt7yKgp zzQ{W7lktjkuws+LI<+!hykR4DL^iU{1R2u~o*ldiGG5$EXt`cuofBm|6L==@Cdqig zn-K6O)_K2-mkVAlc#~y3RaytdnM=4(6ad|1Xy-;TnN4(2Qw(*i*Yc#p_<<6l7s^a|^o zE#u{Ymjm7$8BdvuWX)xr$ugb}JRNwC%6Qe_Rf9LzAY+DODJDFRbv`EJnZPrFH&4c^ z2d^Hy$7Q@pJ5W7$u+I51UJiIU;5{MZxxjOQr}yyC{$po=AgKxKTp$xH1g{W0VU^6& zNGbCXyL{HUNG6vFUM6@cGF}~cb>KZI<4t`P8+)&^&QuxC@+xECEMP8{F)!>w1G0;C zrpb8G1!(mOSm#qRUM_gK;4P8ynBC}zcC*fK~WxP7@>cD$J#!D$e?21@tmW)>dUI}GF~xw#o(=#@#5Y_!}T^A z8X51{f6!F_hjkhmEbK}>QTicN#Y3!folLL-ybAEv%XqpsQJvmooiECGSqLNxf#k?| ziAONlI>I_P$ap63OyF(w@(kE(cn5n8@3797yi6@ufItcm$R-(2cNhU5W}Ta5yhGp} z0&k0qHv*|O0;#oC#>+$)nFwQ>j2CT2p*EOV=gTr?CYYJvZI|&H!D|HX6&X)kih@+i zI&)>b3h*kx%aic}j^h5wQP#Ob#>)jS7d!%uA%=2L8%LM1Wi+15%*7>T8R}5Y; zcspghm}5x6W2|$RjF$mk26zQBUITay;O+MDF#mZEP3wECbB~Y7*}=1e_nM5Sd>@U^ z`>eB2#>)UN1H8R5UM+aF;Jq&61zS;@tgLgNjF$smjuis|lZ@#C(*?mI885jEBiS<6 zxnIVs0IveP12SHm4JF;iI*Vnz0`LmJdqc)+TaJ#XoOK?gJZb!w31%jk|B(sa0PhBP zhh)6O4^gT=WSwuyc*P$fOFm+qhh@C<$J#tCipeMuT|g$h~vMh z5S&^;baP`3;+Bw7n2}2RP;P$lpR5MML=MA54%6CvOl$LT^8X2mhr@)z)fIZ|1EW%CTs`C9njV6~_q3Nh8Ghh#EkxcC(ui8z5+B1?` z+#C@vct~pLuH7V@@sAHkP+c`yObX>a*h=#SnN_3=2xff&-$1}O^2Zff5OkwSQ%Zvm z(qMNk`iUS+-6i{?U-jdnU%g!n2ase&26~MgB^bHdV`LhRPAi$LQfuioI>8oVPtHFU zElXs}er14)%_^eTi^lDrf?(T&CUc3e`h(W&cbSKlt|)!Cw7qb87$*eghpL-PXF@vj z4$|+;_hryKF6r!6wZ97$o$o=`&9fQ$r!|_SH-;k9;)}#XK!q5t6uwH&z>RU)ZSh4X za2#m9%MM=$(&;wi!ZfAEVp8J3gymIi2D~~9=~lZ~zBS!B70X+2v%gB^OXizwy>K25 z2W;R|O`rFf>A;N{2eCcg*|0LLn|htK(X<2lpG`AbcUb9RwwlF8Yo2vKc)e4ZfbW7# z_==iuwp}aH;Z8Oa5Tn9jiGUy#z09WNDqwNNt5;!h?PYq*fR;psaLZ?MdJsmkN4G} zYYN|@&KIc&r5oJ)K_ zu!`X~BU~2YGAYU~?S$}Myi)zURm;WgL|3=d&DY()z19o39%uc*I+2Ut*#;!qLz@ye zf9=K;jr}%@vc@$%4ceZu3~VtO15z6oU0p=);JNv8=ZJAZ$k=J)e7OMsEqcH3q|f_K z(R;tU@Ln$SUT}`67ls?IkM)Eu+_7t^1nhXy&FdYK1dCUHP{d`qQzL1@qA2YnB*{DF zR62AmISUDc(2O=$W|k>yEm0;TR@gqowJzVGjO0;bA()ISPhC(5+xY8@BzMfKQT(Bg+6HD?tqqqqS&ex?#d^i7!aMOymUdM!+R#($LR8Q<= zEkdmp;NgOF^SzGGsPD|iivhzjUa6?7qDmqC0E>45Z_357}+{vQ)Ul8tOm8adK z&P8LdK_&g}d!@#N`*E>NY)0Jxe**eWKhQ+((#|&1@#iHWprM{yK{$^o3q&nk>7s$$ zFI?%`lGaIWMjUn^Vf5dd(f7D{Q!XB}!4L4%f z2e$=%?onU-&UvqKT@kNwrA^ToQ^lsM(bIJO5l?if!7a318;Kz`RI!unN*z7C5~ZMW z7k!&YGKyxs*lGoTk26NiTE^W(vABB++6R%Li^CM-$U}=m4G+aL0i#)ml^zOy^c;LfOB`V2hRnDLJZ<9M!wNf)pLhi1)Mb*pnBR!EMg7f;b>J?$ov zV~o(0_l?iR(*U&T5grjllhIl)Vp&Lg5kuv0v0}e}(QZ?#>kx-d=NuRzoI^{_Vikog zaP#FC>EMVSP3JDs!9YJ)V7jg4t{rX16HmUDSKUgBm9Y@_RBQ|>O$(iGNHwAP?)ekb zIhx*e42Wz}c%_1YZKnckI~9D2>K(OE;-X)I$FB+JXu*hJEr2zwcE1JKB}&) z&f?3uZvT{Z20a}?G5o9r^wx%WLDwvt<;T5eCySdnPd@2DPBKoKla7CtlS)}4CjBf8 z!k_*bDZ(FnvJJ9>K6T}3W9BZ6Fm(Oj?fuTIQIY^n>rSfangywJSUqpJmrsx<$Z480 zYo4TrwWa3qFFfg$ke((*&7luiN&IG=?Qq1uQs219flkLxI~`dkd48x^mrmpE(QB|= z>{xyoNn+Fc8N|UJweX+%6En(|8D(oS`V+lg%6L3nQZJRQkLleYKHy2E`YftvBMM0) z3Q4yslC`wSnTVzcw@JRi8xz)(C>zS%Z9t4c7zv6aujnQo2Ev08^99_Q`ogP-c)wt9 zPgXJp8^OD=5xo1{0*3D@GjT?}lylG5)10%Vpvi7h%#du)kQvKb8gBX%!?G~L)RDfD z*xE?t2RvEPb0ib+C>jhiE)tl}(DWVn56#Ccm_BQFEKE0fr>EE;KZ6Z&oU^|q@^I#m zbMxng%R#jFyD3}_nvfEs#&Oplys7e!>648>vUguZ8@1dU2;PtpE-6uc|0i4x>X~wT zAwD}ojJAQk`p`o8Lpr7*)}|4d;-SC4_g|P)2$KqT{{WNv%1m19HEEk*(%D6VN%67~ z=q8U%^!8Y5BhUyk{ps#;izOeeM&j0dlKXVHVWQWAvXxkWgJ(LrA=Y=B*9G2LzAvvY zNIV1b+ToO{*I&YYqp^!qJRgxg8o7I`(Ha0cKukZ;)Bj!wf) zl6NwCjqr_~q{=2uUuPobTZYp&8nkE#v8H@h8Zqv8COH0;;hy?}!|N@Vn|||slbzgZ zI#)8JNuHTW3fl0sJm|jpI8{I&ubHk{x0n?M+Y=Ch&O^j@@A{8sn?{XiEMcs#k)w@L z7;CqlMY9x9?dFrJ>2&Rswc5&cvi^Z~%(5G+eY?q}XQCB>BydG&%s(eZv0#BX-Afds z;2b8k7yl*-tN$SiTL+6#ScxbMKop9G`HcSdOFTyBGg`3O0h=AWHKh#saYdwI=P!F^%6(up@5XGm>?oBx)Vnj60h=z6>JQ}j{`6JHc4Ob%{oNN!ee|9`Gl zJ09~zJzt1=wMNQ-e-rhm#Hg=~6Z3tsC+e?gd{IB%Bi6DN)W4i7Sz4Qku*K2-2)Pwo3W>G&!Udd`{4vW>jtlonT50NsOuEw|A+-S-1m7xk9 z>9aD@@WK$;N?ofBRe&s&vt8o4pH>)Yh$U2a7gjhQMUIhED}((0jwR<;s)zKtD^re= z{;PTq{(JDhkM_1liG5{=qL6G|6*>OY;Jb-;GPTvSJh@F=U)&=LxwR%qBlDgidS7uD z-jy=%$3*W*cj3J**=Ky5=soH#yjx`6`w89$T^r;}_15B^OO|H$9#nl7K9-OVvU?kj z+=Y)xG82#e*1TA5x(i(qqAv2tnjV7}-i5!$Iizq+#NhEVFRd-zoSQ@J`VhY#Vs@+z zj{7T)LBHX$(#xu2u#)MpuEQHnLBf*!w^h>ed%+&85bPn^wZV^-?7?Y|J=nYQL|DEf zz{SZ{aavtMdVWsR`R^9;&f4CFRWV{ynD)KhHVz$NE({#xSs&X}K1gctr9F*jhc$^pYo$y%2g?=2VCZg` z9w#>_2&)JuWK;WV{b}h?Y9dp7YvQi{J|CWPEsXrMTs@Mw9!dP?chqP#rhO{G=*J(E zd^8(C7%(O)n=OxxpC0RgacVB!`(9PoR@&!1@b9>7O`@c~m>YY(%dowOH3?(D)AUtQ z;a(;knFj-v1I3ot1m-1ic6{3D&#)-zu*oS zVL1YkZrn3nqgafmG{2*BD!O8r^BrBX_+&19W+C7;oHuz5ub2qQLS3Kxj^<_ATwlQ6 zKncy?t^=h&**rVeX^qlg`2o*5@Z$qBY#IN0aQVk0UiEpxq8s0JEZurA3>)Zcm^!zT z%9W2aE)rM0u+StcBIo;wDSi4|qs@f3@~}e2Uy5Y{mSOOR_hs>uEn}K2OvoqJ#o8fz!O^2NI71&<)|&AM{m`*T0n}vZubKiLRWh z!79A()~-AZQMt z*d8ktX*z%nRndjFf@t}5cdHkPPpgY1$1XgxE)Gd&=54VVrA)kStwDU&TRdAKO^BIC zy!AwhazHD}gJkcEq4)SkxDdbsT^&fAu=>mw_M-V4*pqHr!~aKqM|A%9 zLXw6;l7>orUo9;n^qH2FT3STjBnvi#Y91dT??74`Q2y~S?Z^~<aM}y%m*Y_{Kg%e~XbO;JC&AFZ`|-{B9@z+1O{;vD^Fxv=VOO!^E*Eyc1pi zu$b1P>|sFsQlFvE$4EOcq6saoBBQbINM3lUk0O}7hQDLU@t3-X`%14=r=aR#8S2p$W+t!~LEx|3Ap`IxW zgf(Q*=19Yw{<7?9bpmi{hHor6ufF+6OVi)i0Jm0ZPE%cU0)S^5L$^c@x!Lb-EZIR8 zZ|QBQ>E{ctwStz8@a$+wXxF;V)8Nx(uk0wXZY=rQjIA>}oT_hSOOU~P8E zaU~9u)ZsV=!>@{Mhs`zmb$Jllru&-g^yl_#T6$Ycfan=QwHZMk+uBDlml(FTR2+WO z5%bobem5dX)mF8pPd|D6Y;B-v5&SAnlhNBEC;r-3?zOdn)p}j?Lj?KcwQZ3aTVMHl zP-}73>4Y+;Cv9GiG`!UJZgM&tCU_@b&gNxK-`7_LS~KJC>Dca?aa)(6j1&vN-(NX! z^^G=;*=QWI(Kss3OZ{iR^R#hXI?K&J==Anlp23T{FR^bAZefw`*mQA`t{<$glZHMX z&)1^=z4f`&`rC}(uNIBZjrUq_g7qd?|JqlQ_4co*_3dE&k3ZgSeHl5vy``pQ8o9hZ z%#eQSbk@8o1E**Rq zc2-Plo}4wk#pJB0k;;M#cDi8a7d299Hq_A6977UvyZimtrWY#dJ56ZH)a1py zK7NytCOcZ{fWCQ%O8Z@mAg;V91KUT|8r(K)Y&O3_k6Zi@=3&i@{WVI8Y-?>m&OmswwYLyh>y)~KAA=TnjX?S_CIs-~~`;9Y&tV0F`4+1ls|%QLZu!2Y>0H?frA{&aOA^kHjVmxxb*dA#E?F zJA2m&=ic5qCp~ysea?)8?=d}=)4HVKsPb$mryRTG zOK`fh_nctmmHSA|?ugE!^aRZWEZFTMiaq^jC~>z<`8qnjv(h3^!&zGL$9OGBd>yB# zUZ0?$N4YYaSa8aN@X!flQXs?dR%q?s8&{gRENISpeH|7kcAu3x)sN27I?#r^y(e`1 z2N5*$;xBZ)Ar;)#ddH*(q?TsKYatJ8kB|^nz{D2`TAkUbA3(Jcdjw%d7=<_uBTu{* zsd$vEdo8Gik;iX|#Qa*%gb@**piog;8&!Xr*gP=I3JW6@ZD?REH0A~5vBI!~?|S|F zurluu)<*I{VWi>hUh)xqYdg9V62*bcvG1A>WH!m{X|4N>5cHt?B_Hd%Dh89qd;9p! z>eb4Kp?-?cKQ^jJ_1-AIh+f3FwWR^Z(J4e<5;F0mO6>E@U(i*LvpB$xdWEuAh*Dkl zg;ess|ALmh=&AVCr0$6h00MLeC5l%;;EfgD^$=ZiAS$ARQ50jhQ*$^tG z=MSGtcAkfw=V9lspG&FPO|Wwg>>S}0Vrl+-q_3`Vc@X*g~W!Qip;vmHV7 zm$&F@ya~u8pnn=)1@FUqGW)(Upee4qU+N(6j`HWy3E3&1)2?7!(x({6Ny_P3b}opX zT$X|;g_L_h?rog?156l&sja1~?(Z3M;Qn0ego!4rc4DmXKri0oL3A?rxy-Z^Fptx6+xFp9>^_pdzb6}l zE|R|Di&vN+WZp-1?$@X%Oq3MT-_~PGXOz;S80`zjxqq;~C&Zoy`n53eR^2b1aP{qQ z(Iual5V0VKoU!9s9I;_=z$(W+H?KY;73KTS&?2(s0X*v36L+v!oUF&Y)Ln%w6i=$- zKx$Hil-xKAQg-XMvV<4DzdbNeHcq5Rvy(rUUo>n)%p3RNhq%W2vih?sY6MMXR~0p4 zq_=x8E{7G6)j|+#K-XtBI!-1tLT9TAdf1-+( zB>xBK{j#;*6wbX(T?*8tn0lfpjHc>t)An2yEfQ4Qo+?@-zE7mu=6JOQ78zz1DKzZt zrZ#SZ(oLpou(9(Uls1i84b~!r@Ri zA1Nd&wREzOtXs+6HzEx`ob(PCysPSTv#hU5$`HJ*2E|pTqcHYOD3+30+|I!dha&>w zNE~PDKa(nmzmOUaCeq)RzkoEmV8R8C&uFyh)8tn^qtP0li0kp%Z)&Q zBM_iL2rvc#77GFXJOw`|s=`D07+V`|F*txP6}`X%I2ESsfJ505hkX}kY~8n4giR{i zrVjh()$#C&v`zIYIUw%rjqWe(?9EmE`!3csp?Q@3JW+Oi>JaWnV5sSd@hrr67Giwm zQ>osE3o%|W#my&t?TH1s`JWDcAwmpVXl@Qq5POC2ubcM@uF!uUfsJ>FKtYh0XB!_u z3`SuQ8Z+U3VxDCp2APP#%ib6q{gf7xE0Y=iwNNq7UcM>Mv%F?`MqGzN{C0-6l0~sX z1f?v>^<>fg{e&z^yNej!N@$)%tS5%IK9RC0&=bJ|M6du6Z0C(&tPsJcC%gIS=RH}} z$$K9%T8Ksqqah0kI~+FnR){Z0TH7qnPoM+J$;I8oOxW>>(U#!pH_BmLIgBg(L@GZg zKB1}akJLXLLJxJo?FJLj+goFZ{cu02|GIQoHECCf(YJ5f>f9kNL0S%%@`3&&6+H$# zc!?}Vt?dagLW~Bno*3P#^bL_~5u;kfNa>ByAR$I8$QN&QH}ns=oBe}wtz<0@N`BRR z@t%>H+*&5=)M7k97L^1|J{TzGLw=<%A8x?v8?gHIN+};sRnmM=-jAEv-Nk%({d$vp zC@<;PTO3EQM`s+xuU6ggHCp2M9~a2p4vPEdHfyjqdQxT(?b|&ErFZugt=2Nak33Nl zIU)cf&L!hZZ-jyFa_gcxN`!dh6(?WPVO+}kZpRX!qJkMuV9$t-KF>nOOd zc_lr}iYZ_4F}+1hdyGU_nFuQnd@QAV<;OJLJ5Rz-wFHZ;&w*>6)@KNAcVwK&Gu_^0 zG5YVA>wV{&Vtc?~`{KxhA01hbR3qz0I+dMBSx{8J#JuMlU z3qx~Z=!d7Jy!hcX&5Qmpw0(0!YlCR|w$M;!khjcXOWzOr_X#@n4tCD>*g4f}=P}rM z40g`(+L-E1O4Vvu zTMcV}|F4v)A%eA!O>pz$s&C7Fo^8$g;(J8vL+)Vx#cuyTsf~BAeuu|;qtAL5taris ztzPTR|D|Q(uLRs;`to+`4|i*&NZd=hz8hx9xeGgc-oef|kDWcei5zeMhsqA%$p){P zNrIWLz|5y_H?s{tNwBkpI(B|MseQNS(ulh-^w{|3#o=^ku{a#7kV-=w42^@K$19}L zaG`>x=K!+cSa-kg0%`g!`sXHV#dtCIFPv*$b}fPbKKHRLdn}Z0MZFiP*$^mOt8aD1 zq~~}-PwT{zr{C-IxK8dBQ_84TPR(2x=ew+Lq+8L#Wqth60%k^k1c+%>cS>9Kry4yk zx%}RMs6?b!;sJWke75fZJYA9U~@g37EKj6oe9}vx;m-*@QIWw_}(QT-2 zzSr#(EeCX}KKc|b2ifRSq(wxr8yn7Q%e2zP+*uPjT%O&qvdUx1<(jjR4gM4Kf&_WfO3qy{D1TOIyk_>O1VMsZd zXzkmAw|--3`3fB6@fPg~Z4-IR+EQq)F~nt!=c|jVpAJ(YO+zq~$7};ykXDg> zw%!9mAT2F7pGUDikJdtcLTWAUKS4{$mV0opi2P*h+ro98>Ui{?rtnqEP|C3x-zs=|!}V%eqdwM@55mSozgCD!rSh9R3j9N2<( zhJ5j1_j~^u-SmD~hYsQ^J6Dd!JJ+~}BYoz6etX#;(pjpYBZO)*v}j!UunRkqS6NitW)Y)PmWTYASpWJDrDV%OvSlIJ z{`^qNSk*@~V;>)jUvMS~C;LbLb5-9ouuPd+;t)?qzbep&+17MyIU z1n5SJCEz3(eX6CDibL@9$g*%Xl)QLKeoR1kEkkd#jd>%9E5SxU2{r;0%HdcWXnMfA zuo#!UixnD1IN)6j1OkeG!`C~N6yuqhVzFlXA!%;JO1%=p$13R0KhmGanyxSz;Fvll zERxlW=L)6@uZ$Q2{yA8-Nw92_U@sxqOP*l6LGuY&u$LLSwN8T#R+!;7a7>+AsV4_3 zLJYr;X7yRldaMgF{H{?tsKo12qq3YoyKx*dHP^Zx{L;}a8KrJwl)8yg!Eg9+!EcCZ z5ru%4%Zw_dzYjN5u zXSb$F6gBcF4o3WZaU6y?aszz%-Ibx$gr@BX;Roa%BnwW5`F%WE_~o4FTUfAV#g7%ds$kJxBu_ zHGux|Su}98fCmpy0mlQ!3%K6^7I-S~Q~^f}Py*|L^#TqVAb+4Ql9Ybj-;iI&aQSr! z$Vi%*QJj&%Zp$z&SHR$%>YaN0IA=zglyA8HfS;$t!#;I*W2ugIXR%xXMxnz#q=P>{ zB=Da8b$Dlm3GfRZ6jf(22Hb;fZpMn{XE;*Xwn%R6Cd)F;fs58G<(6W7o33bLO>=rcz;${etGRG{2O zS{A&`O<8-SW-$ydhQS??Dq5ZV4oM7uXe zVY`ZyeiCUAp8)ois$e_`9Q+@=PjZX?5GfroFTTa19IqWUHWE+t!Zil2!*9`F7p1Pr zx72WbdelI;YT&AYYxFJgcS7;9!z~S5^`pY!s)ef-uHA2Gg@8M z0oUkJb+p{URS(y%Z_;1rq?&KtG{Uv}sIzJVE?K}i4bGq5q(8?=oiE?ag|q*tlkl7g z*G#zDZi;O+-rBoqg6ox$@50pxS0h|YZi-DRHmYx$;aWek7_Qskx(%*-Z%TW@CvV!} z`t`_H;hGQEd>W_iH>DZRyEh$h{&eI62ft-;l-`r*6>LelwzZD8rlEEp-8nco)?3 zji&zC*^VIWA@T#?-FxOUKf|d$^hBI7p#ML1^x7u2X&Qx9xuBl6^-w&(W3G9uw4A2 zI=%ezfL_^wzH}y6>uVzPO$^mTs{>jcZ!UnLx!0ru_1?8Q=&Tw>4IQtZq(r;9W8`2p zJ)%&Gla>l)%xwYq?0&{)H_U#b7tI%nC zZ$}~JrTdItp63c=1!OCPA3AQ27Fa~@ZaH^Y(IXkpdnX@u^F6L=ZH$#B_q|uOu>BG8 zQ1!&HbhxG;js*8&qYmyf@YVII4(|QPTh(L23*cTLxZ4}`aHpy8W1}AKH#9r`FFwo; zce~)evoQni&%oW*m;v{5^A$VX8O^nlvnCC)DpW-;V_hpbXVP*e$eZ383aOGS zQu#T1#R2(x(*LV*snu|=7WA#VQU`q;BoAJxgZqa=7;8+IVBuEPwUTZ{TFwPo*IR** zSbD_;+28S%d&LFW{|sTRt}>UjW+F@vrFkS>=pp)V;_#}!SODndRXr}Rwo^#MAv|wY zf)mOmb2JOV{|mK1+MMr$fW&?DL?NIjqz4Od>QgEfbnBn~K&kHnUK^Z{E)S~uj5SgB{wXPUZOg(f;0b?C3DJHXtU5b*Wl>oXeVCg5 z0{SFx_$2-7a77=o`RgYh%r5ccvP=Flk0@R7VQHzW)Kb(@6M}}ljc}@1O%Em`f7)W* z@G6uj^mH8m^#I(dO%XeWG82Xlal*nTne)v=|3YLTTqHGRJ~%|k1` z{yP9ojUYk?v;G5xQvd zzfFoHQJCh%CXDY(kN_Zl7ehN<`kU0{46QPM;`(zr+{#NLIX{+;^-hM<1~ERM8+=v5 zrLu%1e;Xg+QHQLQ6pJEt5UDF6N4^bLiw;3(oW!rdJRFLdzD|b=)(~neAs4@midNw_ z4M2QvhPIp3kVy=!E34z^J!=hIHE$Emclvg^w{aGWL~{KN+m4{)KjIry^4*?$%@Wx(rs9phFA>g&W=urJU@Oc40--`~_F9BZ?@bX@CsLnt?bA;+k?L~*` z!N9=+p5F^YbpsazMvTCi-HQ&@#{-WS@U&iZsICLn33zfZI#f>qP7(0Ez35Oq3ph)_ zqk74E$^_{e7Y^)7iRL}*1RgD4V@px%YmxD_H5L=CNp<+Ht7#OzFW~z^O?(mM*W-1e(TH8fEp~xZei_LTMr8kutNh|yRt(|{dmG#~KKOee09*KyI z2&?h$kdQgp7>*5)l!h5fPF@BV!&UZexxa3iBdIM#hLaW{3nt+=fPs z2>l|GqGJY#M#zYp@%83*Oz-D)jxKB4z3(6Q9((otd_LFb=lk>Hx~?~uuIhTobyQmtGT^UkVHhoYOEL$%0vyFXsL0WsTL?LdY5x@8(UrM`933gy^QBiw_dv96 zVlRKFZLj_P%b&mg;9vXAq?-9t66W``Nr*IPlNw1p(jK=Ov`I}Ro@$R<4BDjT5YMs4 z%?52!i-;H5<0gYPsTIU4>~W((o78&Z_4c@@!9J-SBy`vl+zi^J_7m^7$MptnQYVN{ z*yF;WO{zkNm0GQX)3<4p>Pg(w9-p}F+DZM(-~I{F^};%sNUlVF(i?YKds^21&GE~Z z^H}cA>AbBw{whXE?2xx#A^8f)7j)UNKlzs>m$m&F?d+#gpI}>1=V16gA ztfnc#Q&(2gG~wwht7(St%$3z7PB;&W6Mw&&9QA0c$q~|4)0w|$tI1KTV+A>Cb%gD; z@^4@J&iME#)T*4&{xY?NgZyf2lpjbKUFW+EesI%|d6}ToY5PiihXZvX1Vi?fBn~I* za`*9z3isJpQBxhifUWMERn$VRmVMeJ<#=hUsF!%JJ)Y&It)dCy6ZUwTm$r%&$}4qR z{$ww06?qc(w8!JUv{mF!+}|FL_0m?6mAKU&kMv>{JvJCeLYzIp>ZPrsG~#LYxW!9b zMY+Ut?Qyf0wu&5oq(p1bPG(d)%OzvbTCqw!E66H&i&M|K#fnWN? z^pV=P|AV(T@I}hcFI|1LsJ)~;-5li?jyM*Hc4j!1hjwN-7Ke6bI2N3CW;m7`XNJFz z3x8R~rJi5Aap~&rS$8Rq>UMmeQF6_4;;oA%7+YUr9Wm;%31-)q ztR}UXU~zrPmXQUzR)VedB@LwZ5$vlkIW-bs)3X@$CmaW?3t^WNjsw<>u-gg80qaiK z{e zH;$$qd&SYTBkX9pq~@z6H%AMa#T@mQc#ZmBNz{yYC2{3wM1Z4q&EAe`HG4ZM)k-_6 z)QUL9QqnmZ==)8P{~@FCe1Og|=90Mc!B@&?cYQ}Q+Q7bBx}@%W(f?n@l(D~6zGKX+ z8)1q@>Px!Da&_W;{!r@s_FW&s-@*xL_+~>`-)C38uWhP84{g`S6OXsY{XDc?pG`d5 z9{2Ikc6}l7LVMiHL)-P`#LMmRxgOfCuO(hov|Vo^ZnDQu-SW3xA346m*J0P2wl!50 z>b-b`cEsJbxtT9MYaPs>SVlvM)7N2FCm`zUP-7XXWes}sHv3CtIk9qkj0Ypa)eR-p zve@qa|R2W_Ak10PN(Z2+|ktNGfQ4{)9F88+kepL;~|Ysx{8zBUQeo#p3>Xf6dE;X z3C(-fng8<3Y(j4}Ykx4#6gu1N%zxDaPw5w73Jn_^II88-aySvzu3AD<1cM{p6sqNA zkVmz$;hYBHCvdfa;bLTe}aS;t6CwC@56@w4bo3%r4?!lHb{fb#0UQ7!(oF#hbLRu zI(*x1KI}wHocYs@M*iBfIP=_1YXTo!qgnRBE0#?adE5g3Ff;px1)h)dQ(+TVv=(2l zP3IR?I{I>}IjTh)*>`)8A|B`4ZbuK8v&PR2@)c>DK3Y~$wy$rW=f3!TJSySsim&th zWm;sY;U)8CUez2cLhFOh-jX(#+8n3aSHyCz-+;6gu}av?v#*rsIO;Um!P?RKrseE7 z%7ZC6c%5d}+GxeIZaKBgo@0KrWKQx81l2xoxj;8_^oGHiqpC7r2CvjN^Ow1s4<&1p zDTWr#7Gi9cRuzA|7Jm}xt7~&&c zq|R~}Qyo@gz9$288Fz5d-J#}xPcG6~Nw*$W4}4GV)ft=lJhZuSt*^8?c__Wz9}ax@ z?%Pjq6KU5a>ypnt<2I=DsvQgDc3lxQ7d5NN-v)v@nOPr`ib->f>D4fR?!VT|$sqTf zzuwAShPvXLJp-e-;*4$z|5?JL{Ij0O=1Bf9P-OF*K)03K5+3=bKJFoEo%m2|ZI)3h zFI?JhO;g`9$%P)J&DRf>Ha~CvBsF5Nrdg!T3ev&GNs~0oxHeWo+fkj~Wbg=lZ1*ge zTiip-T?ye!yU~3)HQa#wwuPCUe~d-Wf+rq+h*l_aD>tO#yRKaB{`AFqi8L+A4P}DJ{QtW~Xq2)ow_>MqX)*YH)~5 z)D=;p=%iX6B9mN=z1BfvFAo&GoX@?geu*@Clybe)UZayiYoUyI*-15YiL_YCPiprh z{)OmC%|GeIpBT}s?6942P`GI^!F3_RTpXp_<~t9z%~$s>kp|yFYAQTA{f?H)QEL<7 zI|Anh`UOVPC%x9M@g>rG#S|l+I;P*|RO+Ykv2a2*os4?m**_3bVK0N;vZc#=-lS<(l}48 z3zfcCtkl>aDp%~(tXh?2ES-k z7evZ<-!Z~tt<|-wG9EEIr{=r3xElv+g{h=?Sz4`?T=ty1BW2jtQlpWw?rM1VLvr`O zx-+Ll@t~&kisq~j_1f*TGD^1TlwNx{^Idbw{Z2`at;g2LEgL%Hu}U! zPpJzzIA<{AplbcG+-kBCwjLD1={@}$H*tGa+?_L=KGJS~{6!C!DQ=%!Me2ngOW%mN zgRkwMGZ=SG{(IOXaR;5zP2rE59~yj~`kp`NWG{amx8EpY&giD_M*_LMay9#)nj9iR@^=wB^^l~2n2YiD=pNf~;jjN|!SJ3_wm78IH!<0)gk`cPMqB=dDT_ue^! z?!BsMl?=W!lHXf&`sx>t?D)%PE=OzUto;Wl+7D5*|24j{O8!5$@23XbdFB5`lR4*3 zvnA&)XYKNwN7t-d`^+li@&}d~jlo8B$#12n8v9#0>lsJBd(0Ubj;vR6#;#eLP0l-0 zuc>HG_^O{|2N)lUHS$00+COW}kp+zVh ztw6~r6Xl{Us0>x1dUObNqtj>%T}1i_Av};T3XHG`VI>fQ5>YzJL7P!2+Kp<_0n~*~ zp%HWeDL=y8$cO?^2#P}SXf?`4`KTD}LN%xvb)e&D7){#vkBAh)6&a8pvY-eQhf+`$ z+K7tKPE?H=P#fw&185x0Am@jK@I(tx5DG)FC<$et4X6<9K$XZ=$A4PU5!8=H(KOOU zu?CP2GNVuwjS^5AT8|3Qc2t4(q88MN`p`Kvg`6H{4IppikAhJoT8UC0X8zX_$U|FE zIogAoP&?{HLudkBLN3v)0c1jpP&itFl2IngMO#oAszUYX5b8#!(HM$Ym-$Tgb89k< zraOOfm$7kCiEMDP#jL{IC;{@!qv=-%{jsHt3qMip*pD{j^nYt>6nP0YMT}G-g zv+?;I@~_u7mhP72P64NX&vc?o$h8B@p#T($Vo(ywL>tl8j>e>4%em4P`x&F}`nE1~ zI^uoM=gPIfe~|Cma+zG;gNpt|zH7@6w*6h>-^uX5dfob+f#!CxjjwGm>F+Xp`}(zc z|5>=>f3U#0?_Qhtod(^nWKg;qb=7jkb!z?d(ycN3w{k!R?D~S;f)1b~=rkHfmyqiK z^Nj*fD2f?SchyNtWApE1unh1UV*j8hlz`IF2DAn3M0-#(>O`l88hzfAu5zw8%bADV zkS8*pZH(9`LuEiGkyB_CT}003*j&gD1*0gGfYQ;1bL!rG^7P!;FFB4-F{(w~UpCUe z)lLB`$JsP!J=%q=mOIHnIjr4K#NcW zT8Tz4GYpiAhOV&lnz(jNla{7kFTX~Gg#C0<6zd(z(#s!+%|tZ0BNF}=*3z_i#5D@k zHy&w}dptd6j!F^IBSkK{8phYQwOfYX9(_WJ=su+J8fp2R)VF)&ZFjm!A^5)|+sP~0 zwIWxfRqM#Ah98yI>$;E0#%&+4$JN>%>7tf@Ag{NFydn=vaaH{vN@3RlctAbgBmJB# z|EW41lM9^2{;K*NBR+DSy7HLxaq3dk4O+Zrj#{N%&vR3c9FyKoGj8g*#_XF^*Iw!4 z<33l4B03u8s)W1T=<@n??>N1tb=-(j2~^BgSCG%C{$_Q3uk@QWog&2!_0wK?o7&nd z6{q57)OPK9PO3WED^0fL-a;(*Q3P+@VtEh@gAp(e#>3Sx9da-(&xKpyR#*-z;9gh< zTVWgQfyd!6KF3<~lLw{&i8t*zTpLSAr_Q~heWhbR^VZIQLZC1o% zJK#=5B)|lXd*EKu;bR&Pz(Z>CNy#q)JSpd^`6uN(^+Re<|Dr{AYN1mn78lm5BA4a~xwJr$p}9ha<|%TCUdSabiu8>Y(l<_#^MZw( z7YT{aTM6^wR=68h!D%7AoE6@Xg-v=H6nPsJ-L?gm!wN+jT7@)pz~iuAk+)|Gd3!e8 z4$BldKU~Q9D_|;2gX7EoQ1r@6B^+HMc(Zuyf9ypi^;c`iWi5%2)G$Ckj2gL5WFO$ z#YvHtV953RbVAqOfAw#$xV(TT)r^tu-0n5Ym^x*(V14%AICV4?0Xo6EhK1D@O zF|w!JFd+@j3x``E7MXVdwqsH{>O})yK`;c17GTlskb&GbfkoS}Xg8LO!;*=LwB24v zpa>I2W5NVj0ry}!S4`&)$#@4D?{>#Bbm(p?jD#B@Cck?xY=BJF-NRUH0~TXV_*cRj zcnY4zVg@W`gk7+gk+(4LPGzwSxj^6|BPYYdK8lQ~6*8uY5i@5=9tF-yhXd@MASw)^!k}On3fYE1Y{Q^l z*r$je`U&yF0Lbq8A-n5`d9VQ1!zMTeCls-Wfh=Mmi+H(N6bV)-`=Q4uUWai22`g<&uTu7I227PtfMghyZx z#FF=6$zUuQj3t9d;24a6Q7{8$*$9*oD2I$Fm=WF2OZ)xqkcRH3q5J9B{dDYpo>1@a zQbY(N4Pm4q(J&U$;Sf3;(gr&eu>?~u!PHBbx+P5Ak~EkBvFH*k8cO}4)E{buHeUkV zLPEKPgj!)ZjD>M98K%N4m<=&~D5eiBhNZ9qR>E3X4_jdy6i`vb(@gEtOzjIrLcCB+ z`Z>}^6|po@h^5i6fH$V4g#=1TD1()-8e)m1SYjz7TFQu)((|SCeCaS8fm3i=5mtrw zO+9pnp3oPXU=XyBFPnTh#5WSphcmn{2t_=A#U8+757hIh{Xi3eLnO4rZrBS?!yz~Z zSzKY8xp8lSG!RAuVVF1!6Ng!0IAkq^u@=HGc^D=SONW_|n{OC5-!M8DMhC-aCyaK& zXeW$z!cN-=&`=l+g=r04gqIYtOwZel3&e!WFyS&9UPi;qXm}Y7FQegQG`x(4m(lPt z8eT@j%V>BR4KJhNWi-5ujxVF*%SvGx+zqQBQ?`sLTV^{z;1Gc>*bPs?({KciL012= zi;AEv5ssTs7lGX* z)WBNU3=hB#*aeTnQ*aoLz)5&P5f2I>9#o(!oC^)m2>oCHw7?J;0i$3XjE5<3HOzw9 z?EeQ@91rG`Py~zNPPhwJ!y4ECn_(O5fIaXy9Du`c98SU+9<7BUBAlTs^n?bu0Q$io zXn|oc0>;8P_J2eYffSelv)~4}5f;KCxC8Elm9QGt!3Nk0+u#w{1N-3s9EIa>8qO%< zM>-*X+Qtb%)BJ#2!9U_0z)|3B1A;4~b9V{igqgqIW%rRUAj z1$sa)=nG9S5H5mN7!G6L3YZ9!VLHr&IWQM)hFf4MEQ7mY6|~h7s3&j$9)ex48=iuv z;Rqaq7vM!jJgf-uupZ8Z9?%GVVE_z-ApG*+q$s||^ixiQx6|dBG*aTZ(FYHsqQ;|YE6%8}tS~vx# zxy{nSr|Doy7!J+|h{;nh`6^7j3KOrQ{3^HfGc%!hX!+K@Z|y_UM^%2t*4?5khNqhRYV?(FE2(Bn^+5*SPS_y zlutYP%z6H5MZAiIU&X?&PO|@BWf8qvPC|tus819q#F@KSnY#j4;&Tc-tScR^Dc<>}HB~*DKW`X*_~?KlS{Xnq1Nhh=#K%TO zwDs__h2x6&BvOb^q9GmsgpU7SFU0R%*#Do#2=VC(MRc-wI$1nNba*n^r$;vkadabO zN{%umJwE(^VgbyDn-y`&6OW^T1_o$gn2Is^Cz$+`8GL|(20UoMi~2G7rX;uMJZjJw@O&6|>lSSZqDTu#^TC&;Z-8?E(#4q+%B7CoIzTxisKG1O7B% zhLw7{JstV|1e{Vthv3IE3Uq_+&cSHP8!`ah%o z&$hDvKif{AhJ;$kV*8B6_Spzz4!f9&E~cW(7n)$0_Jb=(N4w}~*G8C6gOux}+z}(D z^~Iv4ShNhDgQHk91dCc>Ijm5`=UDD@EcbaK`~P#M;PZYsporsUe78Z6)p@)S_Q8Hd zoS?u73Y=i1Cm898Uf8Dy{xAC2J$(r<32ug46me27#7P&XFpw!+1P9=-BL0vm#2?ne z3RnqkEP_AKfj>0E1B&?Lgb;t6Qp9N&TA4K_Cm^iLAftz=L_1g5f=lBA_m-`J2XOHXof-13d3P6jH6&N z1xppaOXn9XVA8<}IHiaoEHs3LhDaYGeJC2n!bF%1Ghh~EAVUmfs0bFb|A)#6RFF^u zYhep)g2Lo*D4 zRu~OqVIoY1888dx!aV9}p}tl{e989xlI{B?yWvY4+u_T#1lGgta0je|4X_6uhm7z` zMmS>T$F)Il58MmeVJ94gFc-2o$61`?Ww0Dl!8jF+H^COz0lQ!y?1v+83{JxtMSQIn z;%gV;k;J2kcN6bb!~_lHa`LdaQDiu8aU&^TA{r5E&vK`;WwKzxtJVnyDGPw`Hincu^?`8}MMCcLMn1F#R` zmAxxb$h%TtIK=mOml;yeUA7nk_<`?IAPwK;0dZ2^l?B&R0p3(oAn{t_^$@4yU2TdC z^b#@R!X0;lDaB4hEI#?FO!x?`(g8|;ANkn4}o(MM?L5jW@#aqm8Y+xHPV`Uo9;qzG<@ zRS+-iBkizLk^J~y#zjLq5Jv~%a$v4vllPn!@}40@K0yUfEQ0Id21R<2!7CT$!_5#c zs#k*|Z}$`Oc8el|DHl9SoN~8^5Fa8wPCSsfmH0X0lZy1kE9;Bf)|Za?7AxY0Ng-~y zpa|Cxen4q;!|%rl7R(8DKilShi)#2!xl?y<67JCywdFr$itRqO<9%#L|2BT+-vQZ{ z{%lMC0mxD6Plf(exR8TsAqUe!w&6my;XBDZ%BAusr{hu18M56f*=?1vFpfvLT|CO| zhGTGoN3~!c)k5J`xLpy|Z1?IQPRMHZe>MBRdI#LeqnSI8W}a{X^n)AVMjq98PWUa) z2{k@Esx5$|*O2}@I`}&}xR(=iFDK?+cH3Td+k5Pq_t-V>U4)l-gp1)3ZUwIc3}6id zc#-@s`fx(NOGWQe(YuAPhzt>Ah$6#EG9)m98b(kHJK+&Xg}tEjk& z?Oc@wcf%^!3frjHpL)$a9p~|MTmbvw0G48ADs4>7ZcMTplk6s8H}Q8c^*flla)yQk zzFtOrA0xh>j^0m4L)gwCY-ei%j>jb4C#d*UDt>hsj_{tK@SdRO$%-j$V@f{>=E*7) z4!~iauoyr)1NhX+3HfO_4;X8q#UG%vf9f0pvk2EagA0V{dg_26aK3u1{hEWy7o z6=@C7)&e@%0Vcv^*bEOq<}RJNd%m2v;R@cC72cNhFdD|f zVps}UtQjoUj3IcAw`KCZK)x3Y&0H|P$tU^c9U^^hscV#;2`f-joc z|1TC0C?o+>zKAJbJOXOg^}elGVKegTzZ^a4lCdooKVD1LxlLL6&Ar_*a!O+vC&tE zjV6f6H)8UQEwGh2#*#KHX={aTipcX5A};_25zn&_pn<#!*bDpcY%r2djAWAqhQJ({ zi-)5F4@VaVje*(w`hj*OK;6ePf6SPE-kEu4T;I5-yI;P8W17!IjtGxfX{#QuMc z4!l+^#A`K*D5T;-DlRO8<%;;3n-D*9hk397QsK|2a7zXs(qut8yoC<`+$hA)ePJOi zf~5bP^diCY!U}2c7qqw4h5f(PjQ}Ir%1E|iqOEPXV8U_1L_$pb zIwmfrBgJ&2I36a#emH<@29s~Y>2b%Qzu^84nM^cFuNx&UQ1*fLU-0+zRRV4mz$f zbt+S*GG!`LrjEf0MU+vljB;gIwhYU@p~qL`!kX9_g)b;Z5#^qIgJXd7yqunwGpFUu zX*ms*(@=Rg#Ds5>?@jW(Nk`wLqi?ps4n^!T@#UmH%!1hv3+=)}Z$;uWiiVVbi}Do) zd`CuD0V~=66^yikk-kksZ`07*^{|P%p@q9)2rP#c+!dMQcbMZ!8m^?_Ux#ydjD&@- zh}-QYZnI9@ZuQUww!l`NE1249rnb5ZcH;ty#|4xK>A-I)+5dY;*h9jeT3FA6MhFiY zR#*TFdC*`AYM6qW8d%E%M-UGj7MKSMc;JZTfg=u9!x|nq%sg-eK|1;#9j*1}!NUxR z*Am|+@F6KM6565((6fE?tj-;$k|!*K0mP*{E(4<$jCpefR#9@TyRpkK}OcX$o^ds;@|Z!9wy?vqQeL1@J9^n zBL?E#e@g_g*a%2WIRa5gRQVl5r<5CBkB)HKScVW zemHV)$wJ z3VtZf%`B9gnKg_jqX@k1?ReWe@j30n=d>G_j*b0$g#9}}0|PWLG>RW!oY!j7&yoJM z2QQUgyvwcTRW6NVe&0$PJ<#3{Itcfy6Oq*HMIaX#6hgNx0OkuNTX zm5>ivEOYsU#}lrF>tQa;gPpJ&PQq#O^A5V$2L{718v$Oy7Blk24Uo6m#TUuwOo2r( zjBkRR_$G*WNE08z@Ci>yH|*!@Dqc=QhxyuycgCf3Jd_4PFDUZ+SmygX6?uQQkoVJp zhco$bh7LuC2pMfvCov^oTzD#5uawnr+2~KkTdQyXWYPgj+_m!7?win9iZL; z%G(C0U@#HqXEF)pT&RFpU;qmYauyAy6Q`m9t)ffBok*vHgLH79p7bW-&ct2e2Dp** zR?^#uGnIo(2Klnc zXCR-Ed{g9`CLbLerDNx@#Ca@n{uDe-ex_uMDfyFa0R{ZXNY6&;*(eo`QsH?laUM&Y zABH0o$fH031i%Wi7VtAk{7lko0rwL>E;w_+ z6&6Aox`&4D;rPF&8FFfKP)QCd8Or@AbT@}%ItODW@fPB(9E5aWDIHiG%PAkn>CS;^ zq2qj*C;2c>TB_h4$f;}@ji(?tF1}BbOXyiBJzMHY1>U5)5O;%A7)phqQE&w#@n9rg zihPp$%9Eim97aMfNVz9DnV&SPT`o>LZ4U%-hFJIv+Jm3wdqETQhruuua%e5*&|01Z zQy}YaIqPqEKHLmTVHsqhFK3}IZ-Onb6LPjJXCW_VAunh8moxn_ETb5fQ4H%f#zUDc zVwkoVQ)7Xv(;>x{Kra&LMFIy&0tZP#C=7$F{sdNk!fKcfS%e8J!UPs!0*f$VH>`pU zuo=>N0<9;oW)fI436t;wC#8;)(iyUbo?s2(3l&cU!Y~-YS^vaJ0tqCf!%Vml=5rLX z-8$HApDH|M>0vWG0EZ!~ztf4QE*(cFW@^Vw?ZvPZ*1%fI_ffu|lhcQja{**vhZ)%6 zy|4~;!EVm_BjKFEkuU|W=B!`OS-*jf^w5#x@Ejb)Kjn>o$_Iu(E8GEh!WP&H2jDP% zD=haUmV1)z`6S!($x2wwy@HNCMaQ0MgB@@T+9q&hF+s^pP;w-U#*wAq$kM}D7zfGt zH2G30aA;M+2{?t{%8K7A9I_yuVL?1I0Eh8g`Qx`TL()@8PdyEX@LzS|zv_m=a0I`V zg|mKj2mwsEIt9|eY8qI52)5(EVx-S9(r3B;EZ3i{fwefUh^G-xI}T65X*h%biUB;w z0G`A2&tdv>U;I@j$jVM^kL;2wAY9>OmbgQ9Tr)KMb=@F zb#!DM9a&FD*3*&oX)pt_JJz#1Uh>6HWrC3~8nOmnVhy~+B7TWQoD++`Dh_7D9M1Zj zRswA}s^;RT@_>x^Wk&omYvEHGU`qekda>g2iwKKa{{9 zl>>9(035~-<&PiA3`=1dB>m^47cu2UOnFg1v<={pio_um4QcQfG`Q6hKa>IH!2;L? z8TsqX-RsQV>t(PUKNKA)rX$6vFb$5tG5k+wU;Kq(EB7Q!Mp1*h>xCF74ug-2iy{wE9mrw~X7chJEd zRJ?&@F2sc8Sny5K-z5D_I{GFZeX|?(;)e>t4`qS5Fb`s(U0CR?IQ&uZ zu%G?^78O*O@I(2-8c2sK7-l8*d39{*G#%z#<=r9ALUc|kh%E**QRZ|98~?yCPVOpDGbQ zRWhuHP3)@oLU2@Baahsg_vmr01xHl~BwkB=p9}seH;BphVX}R6Y#$w~Gvc4}g_W=x zj=>51R9X0`vLPMVPY3F$zn=Q*3t%DsDLwuv7sy(9KaTzXelLMO98?AzR7Oa~1~N8G zz$qM6*?bh01Gm7fkdv;7ldkDB9Kv5^!e8YN%V0VFDg}R)9%jHSNQay0@P}C9LoD%O z4Xnj)<%!?Q!2WMxq%Dl}-`#Lrxx-YLh69Tc9AE?=<>9a@z&}OLTj_Z#6}M6`zlBn? zV#0$K{8J&2dmAd3tGku7E%xDniAm6qTWJRDmi{HLB6eY{J>3WfRZV;AfPEe& z5A~w~G;HHPBWMgwpeZzsX7sXDAO-1>3vxs5$P*cm5&0q$@<(PAge)ioSy4EOMA0Y~ z#i4kVh?0>lmH(un43vekQ4Y#Qd8hytq9Rm`O7&8uuu5T-vMOa&%BqxADXUUerL0O> zm9i>jRm!TARkgBZs2o+GO1%tFs|nPgT2zmkPz!2BZF*TnrBzf~MWt1FYS|r5KDKwe z_43^gz5I<8_9M!@JEND?3KFEl-xyIO>Aj>?pjN`v{VsLCtA(li-7eIJ2GB4XL1SnF zO`&PZ>5&U^L+;3vHB)UMU_`#ig#3{i1tALxK~@xw=tOliibZiK9wnk=l#0?&2FgO& zCP3C19}S>kz1&Zp{p8tCp8e$6Po4%EZlK`?8g8KB1{!Xl;RYIRpy7r@l#H}9qk&#D zk=R6H6Nyc!NK2z*O?0e@jy2_=T$G0jP!Xy|HK-Vsp$bH2nwn4xYDML!7L}q(RF4W# z2O2M@pfoU{DSioL1jHXZ@>PI7J0(GHoz3e4lFXejm$VD%Yk@pyN9HWk-G(PrC6RcjSqvtS1~rqgWJ&;!z}xSWq%5LNw6Zua}=w W$>+X^GM}fRLR5qL(2QOlH~u#%^Y;A! diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer index 7cf0b600de033b9fb0627333ac39f1809c44f0f5..924eb9255772f33419abafaaab92a1ba86d12e22 100755 GIT binary patch delta 78223 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 delta 78545 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%0A$Lkn(8?X8hkb2SDRqMRvS3G-j79xYW# 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 z zyJqy)GQ{AxG*ODJNDETx=VIOvm0!gvQDMrTdXt<}*G-c`Lo$%lLp*eoU&Sd=VJg1x zCdrv5=ZJv2q*#BqOH$#QAu+*WzjCW^<)3wvOuM_L|Ic!(?}T1=14na%$U=tQ(D@sq zVWP9%XbAL+GaE$QSVZwA3G;9c8V%F@^f<4fG%DSYWO+CvMi`dec66kn<|Bi_OFGRX z44x{_k-Ez-!Ob9srSmUR=yC~Oa(0;v)7?xcDbhK2q`})c!`(2>J@$59F&ErVoRdcy z#yRco29rVacdm3d1Q@dXof{RCzT@1j7#!d{=5Cl~Xbp7sxErP$nx{JhJPcC|^>;cW zJ@A)VovS>E&-%V|s|V@3zwg|qm=^9ltx{eWfhL3JCg+)vh9F1WCT{OrG!a(@%i&(Q4>rJ~ z@H9LFJK+V$42>Jq#9~h&7Mo!JoC2*d46=n>91Rm-5?l^f!fcoWH^NP@6qackntlbz$txH8R#@X^bR+y^`~vCIz!I4jJCr=9nVHB1V4 zbhHqUdTHX(DR3H`31>kzMUO6Wn#UTx>wIJ^xxO~mV0F-vM`_8U=V2FQO-VLrBH0W2 zz-e$goCPBw+lAzKm;#r>)o=}@1NG9eB}5?lr=;68W=Ho!q4mw0M&NdTM%X~B{NO(xQ!#6W0;VK5n{ z!b-STllDDA+7+pQ{fs6b_Y?AQH1PN$hz1_t0=H_?@%RZGBuLpNWXeud7=sE)usjW> zYch)rvkt(+@Tev?lnJ?E58MaqG?||-WIh??Z-;0o(ugLhaAZ70Ly>uK6Fdq}!vP`Z zX=peW4KLLkGO7wkEh;WR#U-fLAJx*b=r~AAW9Z|UDUb@qWTMK`sIpm;3rV+-bdNNn zN^X}4CNxH0CqzTKAYnCJ3u!dL|b(5KOlj~sv?1DX-`0i;TzI#R!fmQ78 zt6>vth66%O6`GjJe3;6@H`NaYz!(^-iSO+e;(L3T=2MdhNG4z#0ozHCfjGotqrkb0_PLDqx%Aas`f6?= zEQV!}^m7?>a~X7V>tO?Aw9jR<&qV`sJ772L)dWL9L~76sy`cpLLMsd-og;&US(-?t zC8@L|17^U;L=r58wXhEM!ahyRW30?$tjwb&^JvMuKo|tWU^t}W^Qic|1egRF9~hsCgj`9H55M+F6RP(UXU^wB)}C@P)pVTL9i@DbtxKNtvuAgX%+)jeQ?QE(BA zhsn?mFTs9D0j%2Mft_#{tb*0>5IhWz!$#)+17~ow5YP!PKx+5^HH@a9XbOs^plAw; zrl4pFil!j$up)XTTm`dX4n%X&XfB$9qbWF=f}<%onu4P#IGTc^DL9&fqZ=XRMz=8k zqbWF=f}^Q z4;&C;fzZSP4>%h7LVq|7PKRMI97e)u7zY#JGMEC>A!BR78s`6kwK(z#D1ckxHdqcT z;9j^7*24yP0-l7;uoa$%U9b-h@M5G9lcWdqhQ4qLoCd8h3`W367z^XzQs)1{WjNAc zI$RCc!1XX6Zh>2287zl;;9gh<>)|nY0ye>Bcn+S2y|7Oc4;nCc8lf3_!vHu1216@! z%)$|YgHC=h7AC@_Fcqf3Ot>26!u4S#?7}Uf=CLtd3gg(#@2Erg13THwajDm|`JWPgmxDu{{*)Rv@ z!HuvOmcX5G7p#KS@DMx&2keAB@RBAT7D7C% z!O_qQ`a=tx4ntr#oDHMlLYM%PU4;7ByTJ53Wm zLX|&4l|R}Fw`syoOYOAOPDXYzvLAydU>_XN#N&fPq!=`j5(I-`6pVqjunxAsvzmA! zRfs3jH1Q;3<4MNGlclgs6KRK;|7k~XkkM0Q^b{(53Kc$82Fo?El0IH(BR-dO>oxJT zL5Qb~kS=P!<(>9!))urd9_Cv3iOoUi22? zMPEoh+2oTw3r1*S4J}+l3tv7e#LLGuk<-i5fm@+l&pqD^oMY=B2KQ5=e~eJ1n2xDH1>0kq&vTJUBnOoI%{HyM;$8C+W#Tw9A_ zi6)$OA)Kk2DDlSNO3Oz`JF+#g za}f{D;$b~(&_wwu9yK*-;y*ow_)jym!Z1k1{*#LRXBjMqhoOVP_n!lpl7%LA(ehoi zd{;P}4NG7tJOB^D7I;<@zcdK(O9tVu(uDX`x+dNU6ylvAi2ohsN2Bkc(MrNA34eFB z5bv(RPghpbmG9DkcWFRnBV(ZQlqU8>@jNR=6YrUYc+VTsckj`6RaBsg3cMdA#QVW8 z4{p@NUb<#4UGx4{{M#Tcf1j4`rR95R`Cdl*UPk)|$AtLcgeIz~STz-^ref7pteWs@ z!hh|{{QtE-j&$Ba&VXd}YcksBgJIndqLF=QWFIx&M~!PxX$>m865@9~nm9&FkI~W- zwEP4uKhXr6HF0t}&q70p_a@$#a5Q!Tjh#3P&k-L+d^qs|#7`mILU%1h;77WBecE{~s#& zKUDC4(9Hj!nG^dc=zu2vuvUmatb_FZAL#o=6Zv^k0eI4r`F|>f2cOF|@xKE+CKj6b zWTOzDY|=ziEe}@fG;xL+pP|OhJ9%QeOB0{_3h}u=q$@tBD_WX(EZ3}wHd@+7OV2Wh z&oYR=JT1hRXEgEELLt6d1WREV?17gwaXy~sE{V+lZ#sqe<^ly&Q9v~rPb1^$@HlLw z09w>Si`qgcAd~_q=qv?&*+BuFWSB&T$#6H^L&k!PHE4&a0t2BHhCv&Q zf^jeb+F>f!mvMbL4MGEswnSP)pP!}A&yw&g3D44!v$W*wQFt7pfwO3!ox$18;B21) zr$Gv6r-1flFa_qoT*&&+&ic?^3+cjkx}u$~Xzzu6n&|N2Z2%u=W&U?i(~d<1#8VI# zp5?+XyHRZ~DosVDX^_G66@%$KgX}zm?0h=R(8L8a_h&TsXS(3ebito1VU;GBJfcg3 z2`~v(z)DE^i=@9uLod?Mi{;G!ixoId!6r>~Pv_x#2uy@aVH0F<^%!_$YlKy>S`&YX z5aKV9Fau^mD)1L7@RyBnlP3OJFT`IPU^8rmjDf#01}??&E=3&7hXwGiJvjE_I1U>% zaXCzg%i)lWFO%`*T(}+kjnN`+5R+`4zpnn%!dWA1eU@ISP5%k9p&^<&Hz((@BmN1xgia%gL#^` zW)b3AAWVjKm<}^w4$OsA^coetRtn2tC9HyVupZKYYc$|mGi-$yU^m3j%6lhLctSJ& zSi<8R1neYW7d#6w-AaRy(g>%(X)qE-!xXrjbQrq@HfC9mzd@6RSwb2jU?N-!*Fa3d z25i*^Y~6+ih)vtj2`^~!HcZX8@i^hOaOl9ye_IERPEBeRJZ-3i_%-G4g?*ZI(}Z+0 zK`wOTLbpH|1jArBjDj&R0Vcszm>V_1&jF~BHn(4(RtHtSIs&qvu|D$IacFc+?eg|HZw z!E#syt6@ECfQ`Z-N1ejaN-nvmm6&_rMO=sY#z{Li$XHjCLPJ zJ8u9a$=Syr}has zbwHEB6c|i_b5QjhR2_4MCo(Ot7ZSf?;7K7LJgv#aRA@03 zT8zpUqw@GbA>*ldyeBjhPC1LoC*B9YAM<}PDqD=o7W3$4F^_oS!-=4UakLUk_n$j7oZ`7D}ywp5du`9fwA|GXyT^Nfk-Y5DWCoP}3r;m!d>A=k`;NiZ4GqBX>?DS;HUrW{tl zeeeK043B8?WoFOI(;!{+G7WfnDO{$>SDJ-?vSE#^RG_e*IjDnw)3j30f3f2p2(GJ8vxy(0X`aCN!DK#i`1VmZCNMtMRYH-;dvf ze+_=RfwysFY$p#(8CMT+_w+OJ7Mh19{8@he<22{bW*Fu=?q?fyKijB4lMsQP&E{iFGvMGpaLHx!DJ2_yEts@hP|+lvqB_ig=n}HZi6)B z*ED1w72QWg_ich(;8}Q%qrrNP2KkWmwWO~-54+em?l0!7Py#7nKLzZkhWn}E0cw7L znjhE)4{(O?;0!SuR>N9&1Rmo|;m4UG03L=%U>EG+j1kQlV?b!4K@1>HLIV+VI%@Bhb!SBc$mXUGKUj8B!iF0;3EqBhyo82 zewgsXgdZmSFyV&@&!obcR5*(YW>LYK6C9FGLT=AB+@3Qd**9iJlOUc1iKv#ARns#5 zn4zdXjY)3Xh{|fvPna0H?r3FdnAE47d~Sg7vTgUSi+4 zub&!uQzKuP3)gdCP2<3t4jbT6#sE8(4+ikB#=i!3z)pAxa(%T%g-twXN?|ZB=lM}5 z&yOzf7|6(DAP*jf9OGfg35*--F>d5T;x`cg)=Kt`Z>_=x5RMICHhcSG_Vy+0=~3P1 zsP6MBNbW6U&_V`njM_GDHn?c!ESmX}mVZghznaa))&@7hEszR+MFr1CvB8bu?0_b| zK@;Dcfh|19y1;|1ZcRivXn7PZkK)28E{v*$b?`7e0=XcH3w|^WOWJg}4(7oo*bIAN zAC|PWSkl(P3RsDyjEX)%MW3jIRXmrn@?0tmronVr4Qn|!J{gD!EeKN@89qsd%Y%ei z9t^W#4m=JUVHfPt#0p;_R`^2(=?Vtvid2{e(ZmWgk;bS_V^F7^fG4rQk^fWV|5P5_ z2x<9Kw0tG`tn_F8ucT!wY1zsWSc*w*G$uJOxDYOayWt+lpm~}>lOBetE*v(%qnPMu z=`*zSnFN>w_riU!2VTNtw-uA!HaLJuPhi@Mf-x{37BK&xMb*!u>Ss~)v#9!65@wJv z!yEd-Vpsw@V5cUYBm6nSp9_XoI1|o-rLYW=?m5zB(!xwMm6-vv;2O9VHo<00fQ+H% z9Sox9J#m;}I?RBTunP9VKBgyKl0}zfF*~xD9a$UUCdi=7I-!XdG$CFv!RasrCPO>i z1NXu{IDoCuj;%2jqM_Aj=*0x)|BFdDsQHW3{KfOI3*%!J#>Z?}2kSNQl0}G@0%00t z@Vs;!He#G)p08n^uc3u&Xd!n?v4+99h62}6;L8g!S}ua*|1$Z%Ood*iLOFpLF@xZ0 z=6??JIfucM!{EuG3v%d!SK@?tB>{5bD_n@y#9CUomhiQNudRi3j9xV7Ky!|4m;L?A0hCUX6jp%>P$QaCE>?t2)_fw_v&jvKP0Zne8!W*b? zzGEq7)@3+~Ar;B5g4K||&+o(hN(LLrU}Fg^)x=N9;HPBp(*jti2_OnINS77RWd+@^ zR}-((Rj<=kuT!ztso16%-j0oh4e+QY-Ut@r4J(>@gPOcSP2OmQ9hxX4qL7F}R91+} zHhT-P*%#)*_3#4h*2EUNVhdfdr54s<57w{;o8TCXvJe2WG!3k%G`G^Ch@6nDZ4 zn1#{wn_cw!&9&cJ8=Sb;v`55w$cJ8EqBs#Cn|SVz%JN>-I$7%P_dFm zcnbS*9rojT$aO#Cx@{D^je@ta4s2r`*v8n{#@Kj^b?2?=%>TEjz*|({Emo+vSfSpk zf^p-dyXR&M;VTCcnBVby|52M^eha~5wH?gY2s~*5N`)UE_|Eo-aZZ+F;vgS zP;JBhycR?BI_%0+ zL|6ywHL;ruc5}h*444H`;cis;4qfyPUGz>VEQ7lsiQhQ~&tsV8x=OCA91Xo-987@K zuoeS$5cB`tU>u29vX??y_AV`ZcPHG1L7NQrkinjOSO6R0DGb{b{2m3rN5St=aFvC9 z0Gg><5A)e%db7#&W#54R1N_yrw3>!i7s6up88onl2G%4iyRn_kpqb5}H#`cDvj-%@ z{babGLA0Mibim3UFbpz!4_sjHXJhXd1<}|+G*%bKo-cvD9@l-ybsuKK9QJxK?Db+{ z87yaum%$b<3sTN+D5u_0!rrbFM>p(cPe;O!Nca){kMJMHe;EH^{D<-XmmNcNDr|)v z7@~tPL3-V*J26lPW1qIdDp(Es-~jXgzjH8H=VG{SfJZT0 zQ{$u5_-G+4h9o>n!r!H0$WDU;7@`GsWHS0a86Ee-ejI?kI0Jie7VL$6*p1_`8z;cS z@CbHef9%EPt6+TS`PE&!?H0(4D`-J>HA-_+eU<^DC)pO$}D+cN? zm<@9vE&P-geoDemN%(0YEQVzKDH)$3{0!k|sK6O2@EO;C#`T|Z{byYNSu<>9FB!;Q zG6-hCEcTFf>>=y1Mdo3P+{j)qguS366h|@+J0yc|$l#mxFdvq|a*UNE>>*t<7dCTY z3-|99?%!>**^JuQj811W8lnlK55Ir%W7kVTHVTT2;8mbVcE6;bNBWeRJVl+w3b=|D zFcUj6bhP3)$4%%QH=#ZX>Z73kBNz%fkP1J{Z2?%TI32rjIv&-9ji?8cOdckgjaW9e zVcFQu0d*?}R8Gh9IB3qpE)avIB*u=NfK%~;K!_=4LAoX%IV9vGhc&qb{}TL5x-dd5 zA;UyYtcjdx9qL%TnhYYzAR5NQM2N*=0Vm}pi@1;imMnuQTxaLHG>9Q15kp2K@w{y% zBbUQW*Z_}1j^UAFtizzDU#iwq59$hmw8EnYH(4E@Q_0)t_=Cg)!e zay|x$MC<^Gv@{WaVmBF~0p7fk_BtW$4VrwMj32kcaAp4QW71 zDs-UAlmar?O$Phm35Y4>aUU+EB9CJOcsw3%f)w=lF-Uw0Do??`JXXl%w0LS zwt_S)BWYALjf$p`e;QpChh}(GFP}6C`6Ly1fd;=og`!_*#BoZKt4|8Knv8Skik!7r zENIy)6u^#1uA8mN*Sdv#Z9tPt&k4DdE?a*DqeY`8-`FVR8=JO98m5G-ApaH1g))m<40bS=1SSj zm9Zyd+H7RneB;kNwGe-T_>=G)7rfugU0ZGWr_rea%GwIu^!Jq0v;x z3$BE#I7C`#NFa=a(GZP9p^>N*xEyYS+c`{9;U77u@e}c!8WVY*gK9cZ&DUOJjLN$Y zv2-0~1tP;1GHlrdw?HyzA%k-)jptYz&r!fR3TP=Oyn>a61*P>E$7QbjlIy;t;$Kqn zFKsZ2$1N2+ZmEQgtVn-3g`=NGS6iz4-PtrKT7;@!UG6rnn{MHq-(C8 zVn=e7K{v>t8Vn(#mxw+hTDgD=2N@)Tvj`vLiGqRf3xu-}7?@WEPvVymp8^?#gUm-+ z$o0iMXh`Ql1AgiwH4S>e(J&0Mz-SRLlBKqZ70Im`$60tzlSW@5js9>7oCeEaIXn%| zKw4z%-~j>?dV~>rLNf(sQ(zA9`NXrp+_oNnKKU~F+%6FwO888|so-r?(8#1UGHGvf z)DysLHRceIOTcmbjbyxqjJM)1#a~8^St_*v$jYLzLb;(4qk-#eFp6{)q+{tbvNRg& z@mJ%o#lIW>9-egIH{o};2;BQqT=q+q+3Y3WYXE;Ubv5RRD2{AA4$bMsko_$^v#&X z-O13M3_V!OJXS(l;6V#UCUHSB&tyzo;K>CYT)d8EEV!A8O`9#rW~OjG}9z z>@XdZ_gWzzSjTOQzK^EwqcRC!O?V^WrwC6YoOF@dYyg-IOM3S970T!#ymNd)Q3;44xGXo-|sPM$4We z!>7p5-obsmllwLKJdP$)0=QpKfwVk@{8QGzwcIc1$`y3wib7aSK9#g2jXqgH->#r< z)5tK53|F+^Kc~sLaPC=6=A95S?<8!3&2SIoy1aVW;EY*lNO44!v#zuJ#^v#z-bPpg zOCdM7xIK_nGLBU;?gZq<6~`hM$08Tk126GwIaaI1te%T~pdSo^!EhFgfZT5ubH7>4 zqPLhuZ*d09g50lo4m3h6F2+$(6BldXzM34$FVkjfBAGQhnKe3jDO?6w!;@LVlesFH zyIk^CxD8UvWNMjw2p)zf;c0jdo`>8cl3Cy%V{L!T3r>O4AWQUP>;oQK2p2(W_gD(| z^~W-CtR?_;Jcc?R+XlD8J#a5P43EIm@C-Z;yWk){NMo&E<^_G=G&miihGnQ>*&-MZ zQy{m~Wvk&DxDjrG+u=^`>&y1y*awfmWAF@YfnBhN+hiHH$#TffrtkXnl7Ut+|SPvVpMq9B)hrtfmiS?NbmUI2` z^)Mf@Gg{8hXhk4a=O9RaE68ufDcGcmv;ZN}reJL*pQp&@sYLGUPtl^Mm;z5R1)e$p z4`FpC%xn~%je`krIb4Z#*@AUB5SGDmh-Na-%yUs# zlVjjgxD3+A&(X)vQK9FkP$nA4L<5-&#!Lod<{}sm^I-vG@MZ3Vjt(51Se5;-DhEI- z41?J)2U6hk6i82qEDfTWEHtA&2a?4!%320#Ko%OzLW5a*;9gC4#9Z-@q7Km#wN z!E}g*UqHjF*$J)Az|yc9)vQJ}FWRv(r$SotA}x9G670v??1{D640GXncoZJT+RR{k ziNW>~HG3%=Ho<1B%+s+lhrnW30%^b+8t}4)mDvR8!k6j7m+N5z^Z#Wu@G=_6q2)QW zJZBxugBM^o)@EAr3N3ksLHY`V^c5=j3Kd*S_*%l(626x3wGHqnE%Iel`@{7xAMS#? zVK?m6M6S0GxxO$JrZN9>t8vt7;#EzESE=EvaWDav!E(rjuX5qK*;t)zFdr5`TD*=H zzZQh`IT&Wc98IjZVs#FKRj``#LJa4HSjcrh<~r^Tf_sD5fCe`>P~ispYy*9^;TSx@ z38an_NIeIOat;<1Sd~fmQ_}sk1eRh=_QaZOhIC26dN_bJSzuMBD_+lr9k3ItaspQ6 zB-jW~VN4Fkm^>SbO2^BBd33p*Uj>CAI z0PA2qM&o#l#))th^S?9`2N9)2{5%M&aWG7S>F@|V20P&etjI}Nk&|IJ?8TZ)i+(|i z%FtLD8Y|0&IdBu)g3*`;?4SWV(qRTf^*d1gj^nTqI+}1aV@;06n!FIMf>dZ{Ev$oR zVkeq-o0h&!OW!7=x5?;ju6vv7%44uH$6{sPh?RL0*5o9t$;q%1R$)A*iz?`%3c@Q0 zub`n7H1t;*Mr0GS;#a8jSE%$?YvDS06duQ#%!RwTaCZ*Oh38=xR%Ft@L;81C!!?jG z^A2O?onw%}Tj`G#*#cR3Dp`0cS)eLepejjUN%~6iuO$DvJHS31?x2CjNtB=6^LARFgq<7R<){yb|m4Dwq!oAO+S?U@a}HrDe6JU=vno z3ffOW`x%V;8H@*JV}-WCUf72fIuuM2%3zUn^5bfM)P%R6>_;`qeziQ^N;r;bnElc(;@}kBKW{M(m2u+R+o*(UW3XJkpJJB_CbM zNB7J}_sqwdSl5kq0cS4YEGOo5qvd@k@4Jk+sw-{&_vU|pCpLAble*I>vG@6Z{!4>j zJMkOw_u?P4s}=Y`fgi@jq?i>qw5=DktrxYa$8@L1#Y3?qdh-3%lh1x)wYcblYA)!) zLKhagu)zx(yf_l8y4GvD)>-k+>;G?d^!Hh9>p8I`dcf)ys9T_36c2rU+J^pNLqFQU zk2dhnIc@5+cq!iKPEYDmPl=o2macTrmF^eiUCF!3iFw^=b*|O9cK+J=>vaoWTd<)( zLxF|@4FwucVn=s5sk@vKeN5l@n7+9d|K%$X9?M&g<*h=u3f($?+dJ>A_4a>$`F!@v z=ZkM6Cwv=uP>-mlM^qQp?W+6v8%?M`di{SsG4My^JAc8vYldjI=ZOwoo_XOlM8Ay@ zC(utKL?4Vl3^B|Iqm1G9553z5L-f@qTWqt#E_>v{dh}J^V4njD6hrj20$-1lB*g@i zOfk(2v&@kWQNhLvaRU7$uyDb~{&Yu^CpvU_=7rbw5S2|Xn_M=zY;xJ;vdLwW%dV6j4?`#5r#r^oMeU+6HGG2 zG_%aPM~~A6^DMB)63eWRVU;zqY_Q1|HhsLqE;;h-bASyW7dfOvnIo#4aZZi8SJd&P z!3}pbd7?v?XI^-9MR5ZCBp7slFGQDeF6CUxxr!n0O5T;cD|uJ)u7((9Bt+M9%!H_6 zL)QylQP(N5Y_j17v61J@aauH~F=af#B)#!8v&^%|63eWRVU;zu*k*@a_Q;WEpY;Pj z3KTh{M42P1^fqx$jXIaya7U9TI&^vFg;yJn5hu`3fwI=YRr54#O8wqhwH~`hMwGeLq|OG#;W)No?rT zM2PN9xHsY6g!@C}-^;&0qRJWP)ToE(-*E!{Bp3`)GtE2;xPYb$XfCrthE>+cdO|i` z!Goj+Ne_}9Bt1xaw9uo49xe1}p~p*ZxTDDv9lAV+s8z+BmN_kRTIRIOX_?b9r)5sd zoR&E)bK3ISHBZR4#J0q?#J0q?#J0q?#C9)H@%BrI{?qdsqW{K-6X++wAVUl@!f1%P z^Q^MQ0!ys0Lz+!`Z%Ey3mdUb6h7I;Oq(qK=3e>1_#yJO+$y4NrUFvjr3DM^SaRU9$ z-O=@g{2ViA^29T*TyhiozIfr)zW|F7H}25oIrRPHfJ4d@D22W^gJMxk)4R>wH|D(w z^pilXHUBZXA=v)J*N};1{57IZ@{7h<_*}` JfZGPT{|9su%7Op@ diff --git a/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer b/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer index 43c46788c743514663b9d9c435873223cf8909a4..a80b004735bbb86048d8251173d7a186034257dd 100755 GIT binary patch delta 91035 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 Z;%+V?_cpi3{w}(CC>Gt~=9U!7`hSXAV*LOB diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 0c3b1e35ff0b86b7f14cc7c7eb018ab856e916a7..4196e5c634dd4d76f7dc325fa0d6633363836b23 100755 GIT binary patch delta 42674 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 Date: Tue, 31 Mar 2020 18:19:32 +0200 Subject: [PATCH 19/33] more tests --- .../slsDetectorFunctionList.c | 3 + .../slsDetectorFunctionList.c | 5 -- .../slsDetectorFunctionList.c | 4 +- .../slsDetectorFunctionList.c | 3 + .../tests/test-CmdProxy-jungfrau.cpp | 30 -------- slsDetectorSoftware/tests/test-CmdProxy.cpp | 75 +++++++++++++++++-- 6 files changed, 77 insertions(+), 43 deletions(-) diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c index 6ffbcf663..df8358cb1 100644 --- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c @@ -1331,6 +1331,9 @@ int* getDetectorPosition() { // Detector Specific int checkDetectorType() { +#ifdef VIRTUAL + return OK; +#endif LOG(logINFO, ("Checking type of module\n")); FILE* fd = fopen(TYPE_FILE_NAME, "r"); if (fd == NULL) { diff --git a/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c index 9d7a0d297..959dd1c53 100755 --- a/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c @@ -1098,11 +1098,6 @@ int getADC(enum ADCINDEX ind){ } int setHighVoltage(int val){ -#ifdef VIRTUAL - if (val >= 0) - highvoltage = val; - return highvoltage; -#endif u_int32_t addr = HV_REG; u_int32_t sel = 0x0; diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index 96409c5f0..0d5237c6f 100755 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -1284,7 +1284,9 @@ int powerChip (int on){ bus_w(CHIP_POWER_REG, bus_r(CHIP_POWER_REG) & ~CHIP_POWER_ENABLE_MSK); } } - +#ifdef VIRTUAL + return ((bus_r(CHIP_POWER_REG) & CHIP_POWER_ENABLE_MSK) >> CHIP_POWER_ENABLE_OFST); +#endif return ((bus_r(CHIP_POWER_REG) & CHIP_POWER_STATUS_MSK) >> CHIP_POWER_STATUS_OFST); } diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 12a8e36ef..88f7db52d 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -1112,6 +1112,9 @@ uint64_t getPatternBitMask() { } int checkDetectorType() { +#ifdef VIRTUAL + return OK; +#endif LOG(logINFO, ("Checking type of module\n")); FILE* fd = fopen(TYPE_FILE_NAME, "r"); if (fd == NULL) { diff --git a/slsDetectorSoftware/tests/test-CmdProxy-jungfrau.cpp b/slsDetectorSoftware/tests/test-CmdProxy-jungfrau.cpp index 30dda3df2..2e5045320 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-jungfrau.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-jungfrau.cpp @@ -13,37 +13,7 @@ using sls::Detector; using test::GET; using test::PUT; -TEST_CASE("powerchip", "[.cmd][!mayfail]") { - // TODO! this test currently fails with the - // virtual detecto server - Detector det; - CmdProxy proxy(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::JUNGFRAU) { - auto pc = det.getPowerChip(); - { - std::ostringstream oss; - proxy.Call("powerchip", {"1"}, -1, PUT, oss); - REQUIRE(oss.str() == "powerchip 1\n"); - } - { - std::ostringstream oss; - proxy.Call("powerchip", {"0"}, -1, PUT, oss); - REQUIRE(oss.str() == "powerchip 0\n"); - } - { - std::ostringstream oss; - proxy.Call("powerchip", {}, -1, GET, oss); - REQUIRE(oss.str() == "powerchip 0\n"); - } - for (int i = 0; i != det.size(); ++i) { - det.setPowerChip(pc[i], {i}); - } - } else { - REQUIRE_THROWS(proxy.Call("powerchip", {}, -1, GET)); - } -} TEST_CASE("nframes", "[.cmd]") { Detector det; diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index 4166b26d4..182e56c34 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -702,26 +702,26 @@ TEST_CASE("vhighvoltage", "[.cmd][.new]") { else if (det_type == defs::EIGER) { { std::ostringstream oss1, oss2; - proxy.Call("vhighvoltage", {"50"}, -1, PUT, oss1); + proxy.Call("vhighvoltage", {"50"}, 0, PUT, oss1); REQUIRE(oss1.str() == "vhighvoltage 50\n"); std::this_thread::sleep_for(std::chrono::seconds(2)); - proxy.Call("vhighvoltage", {}, -1, GET, oss2); + proxy.Call("vhighvoltage", {}, 0, GET, oss2); REQUIRE(oss2.str() == "vhighvoltage 50\n"); } { std::ostringstream oss1, oss2; - proxy.Call("vhighvoltage", {"120"}, -1, PUT, oss1); + proxy.Call("vhighvoltage", {"120"}, 0, PUT, oss1); REQUIRE(oss1.str() == "vhighvoltage 120\n"); std::this_thread::sleep_for(std::chrono::seconds(2)); - proxy.Call("vhighvoltage", {}, -1, GET, oss2); + proxy.Call("vhighvoltage", {}, 0, GET, oss2); REQUIRE(oss2.str() == "vhighvoltage 120\n"); } { std::ostringstream oss1, oss2; - proxy.Call("vhighvoltage", {"0"}, -1, PUT, oss1); + proxy.Call("vhighvoltage", {"0"}, 0, PUT, oss1); REQUIRE(oss1.str() == "vhighvoltage 0\n"); std::this_thread::sleep_for(std::chrono::seconds(2)); - proxy.Call("vhighvoltage", {}, -1, GET, oss2); + proxy.Call("vhighvoltage", {}, 0, GET, oss2); REQUIRE(oss2.str() == "vhighvoltage 0\n"); } } @@ -754,9 +754,70 @@ TEST_CASE("vhighvoltage", "[.cmd][.new]") { } } +TEST_CASE("powerchip", "[.cmd][.new]") { + // TODO! this test currently fails with the + // virtual detecto server + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::JUNGFRAU || + det_type == defs::MYTHEN3 || + det_type == defs::GOTTHARD2 || + det_type == defs::MOENCH) { + auto prev_val = det.getPowerChip(); + { + std::ostringstream oss; + proxy.Call("powerchip", {"1"}, -1, PUT, oss); + REQUIRE(oss.str() == "powerchip 1\n"); + } + { + std::ostringstream oss; + proxy.Call("powerchip", {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == "powerchip 0\n"); + } + { + std::ostringstream oss; + proxy.Call("powerchip", {}, -1, GET, oss); + REQUIRE(oss.str() == "powerchip 0\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setPowerChip(prev_val[i], {i}); + } + } else { + REQUIRE_THROWS(proxy.Call("powerchip", {}, -1, GET)); + } +} - +TEST_CASE("imagetest", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::GOTTHARD) { + auto prev_val = det.getImageTestMode(); + { + std::ostringstream oss1, oss2; + proxy.Call("imagetest", {"1"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "imagetest 1\n"); + proxy.Call("imagetest", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "imagetest 1\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("imagetest", {"0"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "imagetest 0\n"); + proxy.Call("imagetest", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "imagetest 0\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setImageTestMode(prev_val[i], {i}); + } + } else if (det_type != defs::JUNGFRAU && + det_type != defs::EIGER) { + // wont fail for eiger and jungfrau virtual servers + REQUIRE_THROWS(proxy.Call("imagetest", {}, -1, GET)); + } +} From 7c7f7e8c70ec065a6750ac401d49bdc7c86d86c4 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 3 Apr 2020 16:20:05 +0200 Subject: [PATCH 20/33] testing WIP --- .../slsDetectorFunctionList.c | 2 - .../tests/test-CmdProxy-chiptestboard.cpp | 44 +-- .../tests/test-CmdProxy-eiger.cpp | 342 ++++++++++++------ .../tests/test-CmdProxy-global.cpp | 43 ++- .../tests/test-CmdProxy-global.h | 3 +- .../tests/test-CmdProxy-gotthard.cpp | 4 +- .../tests/test-CmdProxy-gotthard2.cpp | 116 ++++-- .../tests/test-CmdProxy-jungfrau.cpp | 183 ++++++---- .../tests/test-CmdProxy-moench.cpp | 4 +- .../tests/test-CmdProxy-mythen3.cpp | 20 +- slsDetectorSoftware/tests/test-CmdProxy.cpp | 120 ++---- 11 files changed, 542 insertions(+), 339 deletions(-) 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); -// } -// } -// } - From eeed102bf3969fe7bad18b7958d720ffaa100f8b Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 3 Apr 2020 20:18:16 +0200 Subject: [PATCH 21/33] somewhere between fork and pipes, crashes at sendingudppacket at print --- slsDetectorServers/CMakeLists.txt | 12 +-- .../mythen3DetectorServer/CMakeLists.txt | 1 + .../slsDetectorFunctionList.c | 24 ++++++ .../slsDetectorServer_defs.h | 3 + .../slsDetectorServer/src/slsDetectorServer.c | 81 ++++++++++++------- .../tests/test-CmdProxy-global.cpp | 1 - slsDetectorSoftware/tests/test-CmdProxy.cpp | 79 ++++++++++++++++++ 7 files changed, 164 insertions(+), 37 deletions(-) diff --git a/slsDetectorServers/CMakeLists.txt b/slsDetectorServers/CMakeLists.txt index f185b732a..44abc709d 100644 --- a/slsDetectorServers/CMakeLists.txt +++ b/slsDetectorServers/CMakeLists.txt @@ -19,10 +19,10 @@ install(TARGETS slsProjectCWarnings ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) -add_subdirectory(ctbDetectorServer) -add_subdirectory(eigerDetectorServer) -add_subdirectory(gotthardDetectorServer) -add_subdirectory(jungfrauDetectorServer) +#add_subdirectory(ctbDetectorServer) +#add_subdirectory(eigerDetectorServer) +#add_subdirectory(gotthardDetectorServer) +#add_subdirectory(jungfrauDetectorServer) add_subdirectory(mythen3DetectorServer) -add_subdirectory(gotthard2DetectorServer) -add_subdirectory(moenchDetectorServer) +#add_subdirectory(gotthard2DetectorServer) +#add_subdirectory(moenchDetectorServer) diff --git a/slsDetectorServers/mythen3DetectorServer/CMakeLists.txt b/slsDetectorServers/mythen3DetectorServer/CMakeLists.txt index f6a4c841c..cf4269bed 100644 --- a/slsDetectorServers/mythen3DetectorServer/CMakeLists.txt +++ b/slsDetectorServers/mythen3DetectorServer/CMakeLists.txt @@ -10,6 +10,7 @@ add_executable(mythen3DetectorServer_virtual ../slsDetectorServer/src/LTC2620_Driver.c ../slsDetectorServer/src/ALTERA_PLL_CYCLONE10.c ../slsDetectorServer/src/programFpgaNios.c + ../slsDetectorServer/src/clogger.c ) include_directories( diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 88f7db52d..8c4a3b68d 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -24,6 +24,7 @@ extern udpStruct udpDetails; extern const enum detectorType myDetectorType; // Global variable from communication_funcs.c +extern int isControlServer; extern void getMacAddressinString(char* cmac, int size, uint64_t mac); extern void getIpAddressinString(char* cip, uint32_t ip); @@ -32,6 +33,7 @@ int initCheckDone = 0; char initErrorMessage[MAX_STR_LENGTH]; #ifdef VIRTUAL +//int pipeFDs[2]; pthread_t pthread_virtual_tid; int virtual_status = 0; int virtual_stop = 0; @@ -1351,10 +1353,16 @@ int startStateMachine(){ LOG(logINFOBLUE, ("Starting State Machine\n")); // set status to running virtual_status = 1; + /*if (isControlServer) { + //write(pipeFDs[PIPE_WRITE], &virtual_status, sizeof(virtual_status)); + }*/ virtual_stop = 0; if(pthread_create(&pthread_virtual_tid, NULL, &start_timer, NULL)) { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); virtual_status = 0; + /*if (isControlServer) { + //write(pipeFDs[PIPE_WRITE], &virtual_status, sizeof(virtual_status)); + }*/ return FAIL; } LOG(logINFOGREEN, ("Virtual Acquisition started\n")); @@ -1455,6 +1463,9 @@ void* start_timer(void* arg) { closeUDPSocket(0); virtual_status = 0; + /*if (isControlServer) { + //write(pipeFDs[PIPE_WRITE], &virtual_status, sizeof(virtual_status)); + } */ LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; } @@ -1475,6 +1486,13 @@ int stopStateMachine(){ enum runStatus getRunStatus(){ #ifdef VIRTUAL + /*if (!isControlServer) { + LOG(logINFORED, ("***** reading\n")); + while (read(pipeFDs[PIPE_READ], &virtual_status, sizeof(virtual_status)) > 0) { + LOG(logINFORED, ("virtual status:%d\n", virtual_status)); + } + LOG(logINFORED, ("***** final %d\n", virtual_status)); + }*/ if(virtual_status == 0){ LOG(logINFOBLUE, ("Status: IDLE\n")); return IDLE; @@ -1550,6 +1568,12 @@ void readFrame(int *ret, char *mess) { u_int32_t runBusy() { #ifdef VIRTUAL + /*if (!isControlServer) { + LOG(logINFORED, ("runbusy \n")); + while (read(pipeFDs[PIPE_READ], &virtual_status, sizeof(virtual_status)) > 0) { + LOG(logINFORED, ("runbusy virtual status:%d\n", virtual_status)); + } + }*/ return virtual_status; #endif u_int32_t s = (bus_r(PAT_STATUS_REG) & PAT_STATUS_RUN_BUSY_MSK); diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h index 0486b21af..c41d0ef1d 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h @@ -5,6 +5,9 @@ #define CTRL_SRVR_INIT_TIME_US (300 * 1000) +#define PIPE_WRITE 1 +#define PIPE_READ 0 + /* Hardware Definitions */ #define NCOUNTERS (3) #define MAX_COUNTER_MSK (0x7) diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c index 301b0e51b..d7b163324 100755 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c @@ -11,6 +11,7 @@ #include #include #include +#include // Global variables from communication_funcs extern int isControlServer; @@ -23,6 +24,9 @@ extern int checkModuleFlag; // Global variables from slsDetectorFunctionList +#ifdef VIRTUAL +//extern int pipeFDs[2]; +#endif #ifdef GOTTHARDD extern int phaseShift; #endif @@ -31,7 +35,8 @@ void error(char *msg){ perror(msg); } -int main(int argc, char *argv[]){ +int main(int argc, char *argv[]) { + // print version if (argc > 1 && !strcasecmp(argv[1], "-version")) { int version = 0; @@ -61,11 +66,7 @@ int main(int argc, char *argv[]){ { int i; for (i = 1; i < argc; ++i) { - if(!strcasecmp(argv[i],"-stopserver")) { - LOG(logINFO, ("Detected stop server\n")); - isControlServer = 0; - } - else if(!strcasecmp(argv[i],"-devel")){ + if(!strcasecmp(argv[i],"-devel")){ LOG(logINFO, ("Detected developer mode\n")); debugflag = 1; } @@ -82,7 +83,7 @@ int main(int argc, char *argv[]){ LOG(logERROR, ("cannot decode port value %s. Exiting.\n", argv[i + 1])); return -1; } - LOG(logINFO, ("Detected port: %d\n", portno)); + LOG(logINFO, ("Detected control port: %d\n", portno)); } #ifdef GOTTHARDD else if(!strcasecmp(argv[i],"-phaseshift")){ @@ -100,33 +101,53 @@ int main(int argc, char *argv[]){ } } + + // stop server #ifdef STOP_SERVER - char cmd[MAX_STR_LENGTH]; - memset(cmd, 0, MAX_STR_LENGTH); + + // create pipes to communicate with stop server +#ifdef VIRTUAL + /*if (pipe(pipeFDs) < 0) { + LOG(logERROR, ("Could not create pipes to communicate with stop server\n")); + return -1; + }*/ #endif - if (isControlServer) { - LOG(logINFO, ("Opening control server on port %d \n", portno)); -#ifdef STOP_SERVER - { - int i; - for (i = 0; i < argc; ++i) { - if (i > 0) { - strcat(cmd, " "); - } - strcat(cmd, argv[i]); - } - char temp[50]; - memset(temp, 0, sizeof(temp)); - sprintf(temp, " -stopserver -port %d &", portno + 1); - strcat(cmd, temp); - - LOG(logDEBUG1, ("Command to start stop server:%s\n", cmd)); - system(cmd); - } + + // fork stop server + pid_t cpid = fork(); + if (cpid < 0) { + LOG(logERROR, ("Could not create fork a stop server\n")); + return -1; + } + //fcntl(pipeFDs[PIPE_READ], F_SETFL, O_NONBLOCK); + //fcntl(pipeFDs[PIPE_WRITE], F_SETFL, O_NONBLOCK); + + // stop server (child process) + if (cpid == 0) { + isControlServer = 0; + ++portno; + LOG(logINFOBLUE, ("Stop server [%d]\n", portno)); + // change name of stop server to distinguish + char stopServerSuffix[30]; + memset(stopServerSuffix, 0, sizeof(stopServerSuffix)); + sprintf(stopServerSuffix, " Stop_Server %d", portno); + //strcat(argv[0], stopServerSuffix); +#ifdef VIRTUAL + //close(pipeFDs[PIPE_WRITE]); + //fcntl(pipeFDs[PIPE_READ], F_SETFL, O_NONBLOCK); #endif } else { - LOG(logINFO,("Opening stop server on port %d \n", portno)); + isControlServer = 1; + LOG(logINFOBLUE, ("Control server [%d]\n", portno)); +#ifdef VIRTUAL + //close(pipeFDs[PIPE_READ]); +#endif } +#endif + + + + init_detector(); @@ -142,7 +163,7 @@ int main(int argc, char *argv[]){ if (isControlServer) { LOG(logINFOBLUE, ("Control Server Ready...\n\n")); } else { - LOG(logINFO, ("Stop Server Ready...\n\n")); + LOG(logINFOBLUE, ("Stop Server Ready...\n\n")); } // waits for connection diff --git a/slsDetectorSoftware/tests/test-CmdProxy-global.cpp b/slsDetectorSoftware/tests/test-CmdProxy-global.cpp index 7ff52aef9..b8de30eea 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-global.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-global.cpp @@ -49,7 +49,6 @@ void test_onchip_dac(defs::dacIndex index, const std::string &dacname, int dacva auto dacValueStr = sls::ToStringHex(dacvalue); auto chipIndexStr = std::to_string(chipIndex); std::ostringstream oss_set, oss_get; - std::cout << "chipindexstr:"< Date: Mon, 6 Apr 2020 06:56:35 +0200 Subject: [PATCH 22/33] Removeshm (#90) * eiger: moved rate correction outside, fixed threshold energy bug in client (binaries not updated yet) * removed dr and deadtiem from shm * help for rx_status and status to point them to rx_Start, rx_stop, start and stop * moved progress to receiver * removed currentsettings from eiger shm * updated server binaries, and client api * moench and ctb virtual servers compile fix * gui: moved acquire to a concurrent qt thread so it doesnt block updateplot --- slsDetectorGui/include/qDrawPlot.h | 3 +- slsDetectorGui/src/qDrawPlot.cpp | 4 +- .../ctbDetectorServer/CMakeLists.txt | 1 + .../bin/ctbDetectorServer_developer | Bin 189552 -> 189532 bytes .../bin/eigerDetectorServer_developer | Bin 346320 -> 346990 bytes .../slsDetectorFunctionList.c | 132 +++++--- .../bin/gotthard2DetectorServer_developer | Bin 166532 -> 166572 bytes .../bin/gotthardDetectorServer_developer | Bin 140548 -> 140528 bytes .../bin/jungfrauDetectorServer_developer | Bin 156888 -> 156804 bytes .../moenchDetectorServer/CMakeLists.txt | 1 + .../bin/moenchDetectorServer_developer | Bin 184508 -> 184488 bytes .../bin/mythen3DetectorServer_developer | Bin 168056 -> 168096 bytes .../include/slsDetectorFunctionList.h | 4 +- .../include/slsDetectorServer_funcs.h | 2 + .../src/slsDetectorServer_funcs.c | 105 ++---- slsDetectorSoftware/src/CmdProxy.cpp | 41 +++ slsDetectorSoftware/src/CmdProxy.h | 12 +- slsDetectorSoftware/src/Detector.cpp | 5 +- slsDetectorSoftware/src/DetectorImpl.cpp | 79 ++--- slsDetectorSoftware/src/DetectorImpl.h | 14 +- slsDetectorSoftware/src/Module.cpp | 305 ++++++------------ slsDetectorSoftware/src/Module.h | 65 +--- slsReceiverSoftware/src/ClientInterface.cpp | 93 +++++- slsReceiverSoftware/src/ClientInterface.h | 7 + slsReceiverSoftware/src/DataStreamer.cpp | 6 +- slsReceiverSoftware/src/DataStreamer.h | 6 +- slsReceiverSoftware/src/Implementation.cpp | 126 +++++++- slsReceiverSoftware/src/Implementation.h | 18 ++ slsSupportLib/include/ZmqSocket.h | 2 + slsSupportLib/include/sls_detector_defs.h | 14 +- slsSupportLib/include/sls_detector_funcs.h | 15 + slsSupportLib/include/versionAPI.h | 20 +- slsSupportLib/src/ZmqSocket.cpp | 3 + 33 files changed, 594 insertions(+), 489 deletions(-) diff --git a/slsDetectorGui/include/qDrawPlot.h b/slsDetectorGui/include/qDrawPlot.h index b3898494a..b600c4441 100644 --- a/slsDetectorGui/include/qDrawPlot.h +++ b/slsDetectorGui/include/qDrawPlot.h @@ -59,11 +59,9 @@ class qDrawPlot : public QWidget, private Ui::PlotObject { private slots: void SetSaveFileName(QString val); - void AcquireThread(); void UpdatePlot(); signals: - void StartAcquireSignal(); void AcquireFinishedSignal(); void AbortSignal(); void UpdateSignal(); @@ -74,6 +72,7 @@ class qDrawPlot : public QWidget, private Ui::PlotObject { void SetupPlots(); void GetStatistics(double &min, double &max, double &sum); void DetachHists(); + void AcquireThread(); static void GetAcquisitionFinishedCallBack(double currentProgress, int detectorStatus, void *this_pointer); diff --git a/slsDetectorGui/src/qDrawPlot.cpp b/slsDetectorGui/src/qDrawPlot.cpp index 39103d78f..518235523 100644 --- a/slsDetectorGui/src/qDrawPlot.cpp +++ b/slsDetectorGui/src/qDrawPlot.cpp @@ -87,7 +87,6 @@ void qDrawPlot::SetupWidgetWindow() { void qDrawPlot::Initialization() { connect(this, SIGNAL(UpdateSignal()), this, SLOT(UpdatePlot())); - connect(this, SIGNAL(StartAcquireSignal()), this, SLOT(AcquireThread())); } void qDrawPlot::SetupPlots() { @@ -657,7 +656,8 @@ void qDrawPlot::StartAcquisition() { xyRangeChanged = true; } - emit StartAcquireSignal(); + QtConcurrent::run(this, &qDrawPlot::AcquireThread); + LOG(logDEBUG) << "End of Starting Acquisition in qDrawPlot"; } diff --git a/slsDetectorServers/ctbDetectorServer/CMakeLists.txt b/slsDetectorServers/ctbDetectorServer/CMakeLists.txt index 7ffdf780c..e2075eae6 100644 --- a/slsDetectorServers/ctbDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/ctbDetectorServer/CMakeLists.txt @@ -33,6 +33,7 @@ target_compile_definitions(ctbDetectorServer_virtual target_link_libraries(ctbDetectorServer_virtual PUBLIC pthread rt slsProjectCWarnings + m ) set_target_properties(ctbDetectorServer_virtual PROPERTIES diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer index 3dcad70d69812c3e1e8faed153ef54a48518f166..731af3d6d5ea799d126b48510da3a985a2c4eb7e 100755 GIT binary patch delta 85881 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 delta 85743 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 diff --git a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer index b926fc836d079efda42650a9ca4b426ba3a27168..4422adcc19417d7baaed5fae4e9cf6bf66e1789d 100755 GIT binary patch delta 88809 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 bzaU??Q0vgZ`r0QN0*U`mnfY*it?T^{6fOix delta 88508 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 Wzt0)`AQE_L(b3w###61e0q0+PD#Shj diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c index 9f35704bd..1b28e1efb 100755 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c @@ -67,6 +67,7 @@ int eiger_extgating = 0; int eiger_extgatingpolarity = 0; int eiger_nexposures = 1; int eiger_ntriggers = 1; +int eiger_tau_ns = 0; #ifdef VIRTUAL @@ -477,6 +478,7 @@ void setupDetector() { getSubExpTime(DEFAULT_SUBFRAME_DEADTIME); setPeriod(DEFAULT_PERIOD); setNumTriggers(DEFAULT_NUM_CYCLES); + eiger_dynamicrange = DEFAULT_DYNAMIC_RANGE; setDynamicRange(DEFAULT_DYNAMIC_RANGE); eiger_photonenergy = DEFAULT_PHOTON_ENERGY; setParallelMode(DEFAULT_PARALLEL_MODE); @@ -488,6 +490,7 @@ void setupDetector() { setStartingFrameNumber(DEFAULT_STARTING_FRAME_NUMBER); setReadNLines(MAX_ROWS_PER_READOUT); //SetPhotonEnergyCalibrationParameters(-5.8381e-5,1.838515,5.09948e-7,-4.32390e-11,1.32527e-15); + eiger_tau_ns = DEFAULT_RATE_CORRECTION; setRateCorrection(DEFAULT_RATE_CORRECTION); int enable[2] = {DEFAULT_EXT_GATING_ENABLE, DEFAULT_EXT_GATING_POLARITY}; setExternalGating(enable);//disable external gating @@ -532,31 +535,27 @@ int readRegister(uint32_t offset, uint32_t* retval) { int setDynamicRange(int dr) { -#ifdef VIRTUAL - if (dr > 0) { - LOG(logINFO, ("Setting dynamic range: %d\n", dr)); - eiger_dynamicrange = dr; - } - return eiger_dynamicrange; -#else + // setting dr if (dr > 0) { LOG(logDEBUG1, ("Setting dynamic range: %d\n", dr)); +#ifndef VIRTUAL if (Feb_Control_SetDynamicRange(dr)) { - - //EigerSetBitMode(dr); on_dst = 0; int i; for(i=0;i<32;i++) dst_requested[i] = 0; //clear dst requested - if (Beb_SetUpTransferParameters(dr)) - eiger_dynamicrange = dr; - else LOG(logERROR, ("Could not set bit mode in the back end\n")); + if (!Beb_SetUpTransferParameters(dr)) { + LOG(logERROR, ("Could not set bit mode in the back end\n")); + return eiger_dynamicrange; + } } - } - //make sure back end and front end have the same bit mode - dr= Feb_Control_GetDynamicRange(); - - return dr; #endif + eiger_dynamicrange = dr; + } + // getting dr +#ifndef VIRTUAL + eiger_dynamicrange = Feb_Control_GetDynamicRange(); +#endif + return eiger_dynamicrange; } @@ -842,8 +841,9 @@ int setModule(sls_detector_module myMod, char* mess) { } } } - // trimbits + #ifndef VIRTUAL + // trimbits if (myMod.nchan == 0) { LOG(logINFO, ("Setting module without trimbits\n")); } else { @@ -872,6 +872,7 @@ int setModule(sls_detector_module myMod, char* mess) { return FAIL; } } +#endif //rate correction @@ -891,17 +892,24 @@ int setModule(sls_detector_module myMod, char* mess) { else { setDefaultSettingsTau_in_nsec(myMod.tau); if (getRateCorrectionEnable()) { - int64_t retvalTau = setRateCorrection(myMod.tau); - if (myMod.tau != retvalTau) { - sprintf(mess, "Cannot set module. Could not set rate correction\n"); + if (setRateCorrection(myMod.tau) == FAIL) { + sprintf(mess, "Cannot set module. Rate correction failed.\n"); LOG(logERROR, (mess)); setSettings(UNDEFINED); LOG(logERROR, ("Settings has been changed to undefined (random trim file)\n")); - return FAIL; + return FAIL; + } else { + int64_t retvalTau = getCurrentTau(); + if (myMod.tau != retvalTau) { + sprintf(mess, "Cannot set module. Could not set rate correction\n"); + LOG(logERROR, (mess)); + setSettings(UNDEFINED); + LOG(logERROR, ("Settings has been changed to undefined (random trim file)\n")); + return FAIL; + } } } } -#endif return OK; } @@ -1449,12 +1457,59 @@ int pulseChip(int n) { return OK; } -int64_t setRateCorrection(int64_t custom_tau_in_nsec) {//in nanosec (will never be -1) +int updateRateCorrection(char* mess) { + int ret = OK; + // recalculates rate correction table, or switches off in wrong bit mode + if (eiger_tau_ns != 0) { + switch (eiger_dynamicrange) { + case 16: + case 32: + ret = setRateCorrection(eiger_tau_ns); + break; + default: + setRateCorrection(0); + strcpy(mess, "Rate correction Deactivated, must be in 32 or 16 bit mode"); + ret = FAIL; + break; + } + } + getCurrentTau(); // update eiger_tau_ns + return ret; +} + +int validateAndSetRateCorrection(int64_t tau_ns, char* mess) { + // switching on in wrong bit mode + if ((tau_ns != 0) && + (eiger_dynamicrange != 32) && (eiger_dynamicrange != 16)) { + strcpy(mess,"Rate correction Deactivated, must be in 32 or 16 bit mode\n"); + LOG(logERROR,(mess)); + return FAIL; + } + // default tau (-1, get proper value) + if (tau_ns < 0) { + tau_ns = getDefaultSettingsTau_in_nsec(); + if (tau_ns < 0) { + strcpy(mess,"Default settings file not loaded. No default tau yet\n"); + LOG(logERROR,(mess)); + return FAIL; + } + eiger_tau_ns = -1; + } + // user defined value (settings become undefined) + else if (tau_ns > 0) { + setSettings(UNDEFINED); + LOG(logERROR, ("Settings has been changed to undefined (tau changed)\n")); + eiger_tau_ns = tau_ns; + } + return setRateCorrection(tau_ns); +} + +int setRateCorrection(int64_t custom_tau_in_nsec) {//in nanosec (will never be -1) #ifdef VIRTUAL //deactivating rate correction if (custom_tau_in_nsec==0) { eiger_virtual_ratecorrection_variable = 0; - return 0; + return OK; } //when dynamic range changes, use old tau @@ -1484,22 +1539,21 @@ int64_t setRateCorrection(int64_t custom_tau_in_nsec) {//in nanosec (will never //different setting, calculate table else { eiger_virtual_ratetable_tau_in_ns = custom_tau_in_nsec; - double period_in_sec = (double)(eiger_virtual_subexptime*10)/(double)1e9; + eiger_virtual_ratetable_period_in_ns = eiger_virtual_subexptime*10; if (eiger_dynamicrange == 16) - period_in_sec = eiger_virtual_exptime; - eiger_virtual_ratetable_period_in_ns = period_in_sec*1e9; + eiger_virtual_ratetable_period_in_ns = eiger_virtual_exptime; } //activating rate correction eiger_virtual_ratecorrection_variable = 1; LOG(logINFO, ("Rate Correction Value set to %lld ns\n",(long long int)eiger_virtual_ratetable_tau_in_ns)); - return eiger_virtual_ratetable_tau_in_ns; + return OK; #else //deactivating rate correction if (custom_tau_in_nsec==0) { Feb_Control_SetRateCorrectionVariable(0); - return 0; + return OK; } //when dynamic range changes, use old tau @@ -1533,7 +1587,7 @@ int64_t setRateCorrection(int64_t custom_tau_in_nsec) {//in nanosec (will never if (ret<=0) { LOG(logERROR, ("Rate correction failed. Deactivating rate correction\n")); Feb_Control_SetRateCorrectionVariable(0); - return ret; + return FAIL; } } //activating rate correction @@ -1541,7 +1595,7 @@ int64_t setRateCorrection(int64_t custom_tau_in_nsec) {//in nanosec (will never LOG(logINFO, ("Rate Correction Value set to %lld ns\n", (long long int)Feb_Control_Get_RateTable_Tau_in_nsec())); Feb_Control_PrintCorrectedValues(); - return Feb_Control_Get_RateTable_Tau_in_nsec(); + return OK; #endif } @@ -1559,18 +1613,22 @@ int getDefaultSettingsTau_in_nsec() { void setDefaultSettingsTau_in_nsec(int t) { default_tau_from_file = t; - LOG(logINFO, ("Default tau set to %d\n", default_tau_from_file)); + LOG(logINFOBLUE, ("Default tau set to %d\n", default_tau_from_file)); } int64_t getCurrentTau() { - if (!getRateCorrectionEnable()) + if (!getRateCorrectionEnable()) { + eiger_tau_ns = 0; return 0; - else + } + else { #ifndef VIRTUAL - return Feb_Control_Get_RateTable_Tau_in_nsec(); + eiger_tau_ns = Feb_Control_Get_RateTable_Tau_in_nsec(); #else - return eiger_virtual_ratetable_tau_in_ns; + eiger_tau_ns = eiger_virtual_ratetable_tau_in_ns; #endif + return eiger_tau_ns; + } } void setExternalGating(int enable[]) { diff --git a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer index 796b0ef8b4e0f4bbb96ba6f3ff7df1bebbfcd343..94f2ab3f3919c3e71cb3d9b7f230d3ef1a37abc3 100755 GIT binary patch delta 37550 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 delta 37765 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 diff --git a/slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer b/slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer index 79fb131196bcbb34ffa72441addd149e9be74c0d..a48a24d46dfe23b4613928a7f560a3df936b9298 100755 GIT binary patch delta 63214 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 #pXD%N{9fqp!2H(|5*z`uJ42^Tf+# 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 delta 63309 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 diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer index 924eb9255772f33419abafaaab92a1ba86d12e22..0a00d4fb670dd3ad51f5fe39d54dc57b698e8961 100755 GIT binary patch delta 72710 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�)3zoXltp`@E$0o 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 TI#SM&MkiBlas)!!OsVdo zQdTZjcHN~*E2_!$5KF_3GdF~mpK65re}B%yy=Mg)2GV$dZ z3~03RA-;S%J1Pu+^NM;jsQ|YkBkxQPeMLqxUooAK2LDcG9^`HNLqJ>)O&?3m^iaNL zI-93CBkG60#r7SACO&@-17f*U{xU*b_J?4ygPAk!8HLZ7DU2kAo|Tvyb0QB-g=NKz zaN`X|xb!9?ES;~_bzqec$vorMq~Oo;bVe9aY~uU48Bj8k)ll-nJdM@4$ibKy;XRGj z!3fXpRua`Bp{WU}d`4y{pTV^YNJx>?P38xbhjMrg-WI(bpRP^J0ueD)!RNNCPfJO31IyOXI#$k1JDvI8}G%`4pXpqPLU3c0lFk-;ktY4{af zui%cBy@wfo?_o_E+j~^rD8|H>K}^}9D>g<*EgT22RlrpuPAN) z1CCP;uQ0?*o?^^iAz$8lAo1N3ZaR*NC@WT&NpP7LrEf z7@P(NDrBLCZ)MPG!%?!vA=bE`6Ckyv*W^qVd{@0Z|x3StEymRGoO zBh5KdOud~q4dJeSjhu9{-5iYW90a-$!38ybzhQG0h~ikU4Z(i<+Q35-ry0-9xVxJ6 z>R<6ZJ^%51^^QM_8HYw2qYrdc7bo+TKWjiM9o2S?G1M4g^a`7AP_ZY258tpO&L*y) zY1`JD#rV7H#b=Lbc$Pcfw6)FOtT$94jx$qU$Hl&vg#G?x={^*y02M>l55Qw zG>ZsXe#9$WyH3@I@*?4e8{ukpGG?oj9FgnH1&-ySLwZ?$e~zASJZE;MJF?*jz5W@f znarPoA!m;4Ryktlb*VOa1>t%n;_TR|g*=x-n?ZHl?pUOC$K^T-@MhO@R$1%FqbTS{ zw?OOnuPa)YUMH>J*=Z%MxjiBGXg=b+Azd}O_?y5D57l;`|D5$La&KWLb^#ulljb}8W1Cl|FqKCg|E4> zX8b8fiZOxrGK}EaLRS3#iNsIlvk*4xXo`^$627c7->E_;p^AG8$;KtbrcSdigmX&++v9PAYFhy0%G_8;o#q z5m(y0NAOQe8DT5;PxH1RKP|-Q0;J>Gwnzw#dWjK+f&RCIOKp+ZeZJMeFJ+SXKB*d> z>%a&Ho-y%8WP%ZyuRc!kWX zN`Ak7mGV2osgxqpQfr=v%zro>9TL(438T0X>^&AKTiHC9lM$XnDU)z`o(m055X+eD z&S?gPOQn%Y*a}Ek0c~4dl|}(xq5oAkQf%qeBK*S$?<)qn+J!;`oz#VbnF*INR49ZO zcPOtY3;Y5oK|2z(Bf%3_ly)vqbkDIJlwd2Lg5h~4{u;twqw;)3Y1J-VA$OE=PlZQ^ zt4pz%wcMKU4#CpXuJ8^PDO=gRy(XX0&_;^Y64Ld*FrWiyHJ|dyUnR$}(CV9lQTx@ zJC;LCImC>pQ3}i48glV4QA~RS#(2lj^>I%{Muqfsq@s4ChI6k+_OeKI-9PcrVd7D2 zlREh%#7R2l6`Is2V~(yhc1R6yEU%;36K`hMQEbecR%f<@35(WS@i$UG$AJ!3%jz*8 zkahj_A2hyU;!uXEaY5|SVlFkx96S!Gj^j2*Ma^1UoQk%G+MnXnzj@hr4E!a==CmQ` zm)VQIa|I@kpy#)<>F;ORTB8y=ZLMig@)+W-$o7|lCg?dXq2%OeE8*C8sDR3d>(weI zSWJx@(dx0gS3rvu#~e1V(B>cVDRmNq{;7n_*kZIpsSMgN>O6{VnsII?hOh`9rAUgclRWX_xrpfddLBmb!w`QJ3GDq_DUuidu0{f-+YS5=Of|CMiY*b% zHzUMxi=v}KE`OMcRmTFkRT{=&ji8^rAz|e!;K0T z9dHvd~v_1M?QR9Clz+nA7qp>f_g48ckGke#&+{1D4 z5j$6h8!y>eV-sTw3_rH7W`rr+yqMOJC*G|aAy|wM`9`e>(dhN=e3yGMt~aNP)kS* zW2&WIu8k3(xjE}HSwHv-N!!`=Qhtk49@eH-%F(d?n|CDZcl)e& z!TPz-UTuB9dh*gmOU|uQd-EBTnm4(G*7rt-B7V&~b**npaRzRz6{i>CJoFA#(LTAx zV03<{YUcDg7`aqr`CFkt#*{u1yn|VsyLBu5cUg>3R8Rb`Z;J&sqn7*&xr`9Pb#D`+ zUyVph>P6ZlMvClHE7Dhp^vm1a8*TJ)(|lSC)-Y$VE|wk+JtjcbgWRq*QNgPbbSw93 zo0#DH!0S%D4ljVW`fbT3vZ%S(NF?yzGg_^dP36~NM7WN-vu%Q9_;H3Ge%!wXp|3y_ zQsEVLUCMUO5nE5srEKKuSKF+-)|$XGI!1UYtN^8;4?^}q$ihps&P46(flF3|+=!42 zg$%+XPS^^BOhd>tgj{opR*xuT$)#L`yMz72wI7t4_s2FyH8$nBWTLDG^l8WiXmYg5$+noT|>Cumz3UR z>?NulJ+`qF4kh<5T?E4E;a5Gk*$@>Mv+c^1bW8;O%7un0IdIa@H#qBfQ$CApozOYD ze5=f#q|6bde43QdKj8W@?(Kxp0SA|H)d_x+3Kq;YYpcEg<0qXBVR-isU zv<#@b59I>g;Y0aAZGFfFL<>P1Va>+lyBr4{UZL%u)$QfAo56op!}PeDsC_iCUHIGc zFax(~v?=JF+Mi(f_FS`eJqHcO)8G?c;YhX8c>G&Uk`8XEv6-FJyY?>_VsuSYmQS$s zGM~{kV~cH*F`<$Mn+w||Sj4AHc7#-X&pBHfYNk{>i*0fk`3;*l!pKj@ynkM`qtaPf zYx0UlW}d&22ceo!SPZ0uaR@EHIimqT6_YNSc%fqo(_!`q6u_r(ZQFO~?th`z)6iHE z(Q%$u7sP7Km6!=uWArA5>(T|DjZl z!+%g3o8%Y=CzWP!oi%a1=8`GLtf(vS1ZzUN$9 zHU@-cNUsbwoV`eG5Y2j;|6xOFr#EvwI<^|9ncjsT>RmJ5!TNy8Ajek@_y!KEmo-ZdDj>i@m~&JT!FAF5O&N(@;m7~|04N) z)Mf+E7_68szl!{}IY5jX4EM8$V2QEdI{AG{rF%|1Mq>IA$^Ta;Hs}e8|f` z84fweE+{_tULc}nsR3Ot~OEF{ZcLUmPyhk@g z|KUk_ujDrsZUg@|3U0A2N!L+d%x&%*GNc4Ll)$DnJ`GAl4Y<##7>80Z7Pe2*8q>v6 zylz^EfjFNNM=bW-G{RUD?A*cPhAcN^rC(6|v-ASJo%A_*bP3`tN~Nb6(_#%YiHb(P zR3T0k;tUbfC!c1C=?@a)%%nKODb9##^mpl%BXG*e4kJ7kbF&-&j~ z)1anU!1YH+9%SN8(8&ayzC2F_g4VHrJzotWTRE<4cgqUAT~SFBkCo@C+R*#$=WTfZ z#%Ee{^^OxLq(ul*RB1#NE5=iCr3p_Zcq*w(!&51qN-NDM0@~iGgV&6oJbP4Ls57a6 z(KSV8l;LezCF^WrNao#@8c?`1nJ>pvd1Z~Qn!B%CYt2L4q;3f@*df9HUZKx<>hejC z$Ig?nMs7{Fjxp`=u07sHo>wYW-}7#~Wx1o>x`vsiCt_ZhtgP5|j~Xx<;YTAp|GUzl zH9232@W%@^=0A6IhgEYCVlG0se<#0C?*8>V`K7FoGj~r6d*GR3TcU3f@XhXBgO?$~ zGVbf{QPFvYHB;Qq?uHtaI34;nCE?$@w+)sT4STfJe9HCg(avH=EIWS%4t`Kfhzy%8 zCUiffaCSh6UAU?@~UYO7GH~&>5T~}GMa#mBdYBI=0Ky) z$OthjFfquhL^ep7WW$q`Np?ITlfv-Fg-0ouxD!3P#8*J03ZAn3;yI;AM2H%l+r+i+ znWTx}CiQHq3FH>`>>eC>idHc;_l&Zv-J~@eoqG((*{~os#N5ld%U3o`zGSIHNM*z9 zOEueBBbSZEvs>mR^QKc8P*Q<3NT3P%^m8;Iq&!%0&W=2ovI#LznUe|%%-WC$y@}6? zg(6v}`WASFk>`{G^4vKW0;BjCJ2ne{nl;LPtGw++Qf9O zogqh&0STg{nos(mNLzKikZXGpYOiqB7J|2D&M1xw6XjHW!Wr+3>=rm#YjinWgOW#+ zlAd(>dnKJUZgJGumYL|CW^~FJ;+Cg#*>|?;QVp5aV#=FEiIno;Gt~&N=@W8YQ-gtD zg4X$`bk2U~9WnYU4Ckx7!ZKg-pNWB&aDUtx74}QIfiGtg_+yB$g$wV~xxWeFO$a~6 z7k<7Ne$*#4x;5}8FxjQ8!9>0SaXv=;3dBEwXAAdipN_$qh@Z(7^og;wfjU>Fu*MkU zO6Pj#0IDo_S5!s0t`nsjpn5M+y7m(TzX2TtEzgJ@LtE4n_; zcSQvoPY3cw&T&`kk+~a53%B!%tzUtGKjpKu5>ii@YwPAl{1s;U`@WgRhV-;V#A^tP zJ?sLm_s|zkq)(?cbr!0*Ra#o2$A@aRA2)%N`YlGjPU&9%HWNbB^gZu9{_Hu!o@I; z26b1^6rO?XGqUWODn)i{QTF8zMcG_b{}#~?Dsjby&LBu^0*Ucl|Nd<))(i%XpVsVh z4l{TK%Wu0soR*PUTN7@Jg)m#F>!wTis7^+T`l(eLo5xGxzPAT8z} zm_$`0nW6Pd+L73X**5+At;pZ$O&%@bk0%+-$caf>tr2rqB+;JZ`$t$7eaJu&v?t1# z7N+8;1>O&U3bREOs77+43Nt^Hgylkbh`g&X7YSw{!QQARl<;DDC+{vy6BC^Wj+`cB z4)(ciMpgAh*kytWivPnH(lUKgHX3kI$uo1%oph~I)@0JEtccO^!#NHE2B+8)L*X9{ zWk*A>zKYgkNZEUToG{t_UuKc5g5ubP7U;nDa&`p-U_X zUV`9X2~;I0_$dKdC^$A45WFjbC-Y4h4exzkjDjxa3}T!?j17X4{of0e{Wi=z%vck^ z7#tyLM8~WYs0dPHzg?(Cm^U_P5ymX%CM~dW=kE=*%uQ#)rm|NHX*ZIAf3wh)Bo!p{ z`m-7kJe8Y-A;b*PA`z28b_m?0VEQv*7PA{-y1Nt*pL~KHyX2Z8=h@gc|bYIP=c~~Dg1!50sH{2 zU|>Rv*bUg1(=fViag^8)?!dsF0S7+f0`40cz2Iz9e!*FnKT{6M*EpP)4+r_$3~6X@?o!o%t5buQSHVEJ^OUGx|EtiK_|TnQ}~ zqlKagi*Jt$C8>*^;><^EW^(dqdVWHb_w)qT$UEqeN6HxDj-HT;9eLW7XY)Gsrh;?N zgidSxJQfa=-*dahVKysHB%2u$P2KQ`oTX|<>ZE{<~_v580A|3niHy;e6WGPpk zY>HB*W2Qki3__GGzwRl~nyoVG-J4bQ`%XK=WtBm z99GiSGP+o7i8D?E-z#uqDgy%toI@LRE}5T*FcZ%Oz%@++SZ6pEWEr7b01Lbi{k5&B z8~eMJw8y(6(;R|#r8ceE;5=+FV2yxXoK&F2fi)Hb@Jz_bL|W^RRx8xQx#uv`#UG(U zBOTwu{4>A^u^$wq@)hZ!ASz9t)f2P=f>t12jx1;u6a@*z8k2aO3-c|F336V99P!Lz zCe_PV>&da7vuJobB94{?l|T?kSf!!!USy|3lLkTKA!q~EjW$dog{IaMR1Ss85zh!Y zV_1WO>RpX(k(QP%W@_lH6VN2n7;4 zYot~lXC=fFo`2Z5*!$bW>|3q48*@P2WIaVOA&Q9`d4I&P?`@3P=DfpT!}e~3z6)RW z@7M|Scg=V@+;d~~Lq<(nGM@p3Gk$Lg1?H``sq#HM&mVR-xB33omX}t$i&S?u2^z@W{L#sWF zmfIihycmM`@u&{vkPZ@hVquF%FNc$J7RFHZvA2)t3m=a(CS zOMpv6T(umBNiDn^47bRrSWbsYtAMLSe0aGYxCXdJ#AVBA=~oAZbr(p%(&coR)BtP{ zamjMEhxV*g#yUZaiO)nRkbKmZYKU~yHa_-!tiGY6qV2Ax%oTgTEwrkL(WJ2EJ<(-b zmy5@5*Im$H#X0=Jj+XL^$e@dUk5xc)g{Z*z<>ax;z?VflYB_m~MR@iiDV(~TJk}n# zy@*ppk0k*oiMXHWvEjhOMciBTm>JkC;x3ZM=7KR-WF(3nTL!#L#Id5s)&Z{*aZAx- zc3``RLq(630+)(7pq9tNd>#u#-y*fV)D$$)qmTd9D@@`84H!qy=1qL|JO-4^YyZ%I zo`ySHuS(@JQPVQ9uHoB)fJbQuM5=ex_$Ko?IFOcuhM3MfBqH7?7}`{#O`#1Bw{r+8 zP!6Qzpc}U8LNT6EPy+8{v>~nasTP?F3KEv)F)(3WjjMdI|7_cP)fq>$H zOh6!@D4;YT5KwcVaX=uTra)#OGxxSAq0r}Dv5e609*x@ZK@NZ~9ys<;EjXEI{U+85(ex1q? zAB6brJK!WW5D2I>P&E(;s1=Z|T0;cX0>}Ua0@4B{0fB%tKxsfApsSYl=so~Jfd2!^ z0RjP?2U-RM0y+(30|Eh^04fFo0UZS@1p)!Nf!shKpzndIfIvXIfi44qfSm0u$$ZeC z8X~|Vyo>|_0euG49tZ^V5zqi25YYQTX+R*Le4q><5Ktb_Tp$q8a-d~EAfT6kY(OBO z1?`h9d?6qR@L9Zc0fB&K104ne0Zj)w0|Wvx16>0G0X+s}xCD1!A~XtUFc1i67?2qV z1T+|E0T2l2ULZ?8APDeoz#P#@Uj|c0T2l2EKoiW2 zAfUrQ6+j@MeL&SfAfWGnf-WPoFBAG2sQqP(0o#kP7;peyg79(+&^RCv(5FDzKp>#? zKudr?Kz1pbVf4iwOTs zM7;+D;pJtZWk4XH3qUp?5ReDR4g>-^2~-LM0xAb82Lb^d0J;nW0{Q`n{RfKvL+BeI zBarbQ3&9e=G(Zs07eLuSAfV5Ia)CfV9|PHeKtMJiHxLMDEl?#82xuixH4q5sH6W%2 z8CpYV36Ks5WC2_V*d7oB^c+wU5D4fgprJq@piH1~Kp>!Wpe!H|(0HIFKp>z;fK~y4 zfQAEY1Ofrw4`c@d87s2m6cWCS`71On;|6m$g@=nA1kpm-nz^K&ya2 zKpTKI0)c?u1u6jo0j&l)33J1yn0s(~rv-v5C~`nkQoRBG#O|C5C~`jP(Ba{Xf#kE z5D4fYAQun_=mDU^H_-nb7U6w>XYdk)mq|d^fIvVr8fCqxPF_MZ8tnuG0;18V2?zv4 zqtVeoARrozW&(kLXf(P22n0l<(R?rZKl}mot#RS_R4PX4p&-nPXJFDbgC_9`XVpwh zG-uKls=}!Rr*bCUg;6+ZPh#@=q+7)a%EC%X7Q4kCW;8gXv(mO${HzUNZOF=11*!q3 zCd;kj44#FvXtP+HVN(*z1t)h_nu>E7oXfLvRh$8{v6eR5t>O%R8giayw_#qR2(p7^ ze>!cOU-Y_XFr#}WSH)W%bvx|@LARquHxCBgY@TEPfHcA z20Tj*m=P-GfE?(W!+IiBJU4i5@S;>a7IQ&%9_wkP;*A4u9C*-eEbsDL-*_yWir9b1g{%-7KP~s(+y^KRlxX{5&31-(?i8u0^Snvda8Jb!8;6| zQN?S&6zd&JSx+w&FB`mU@Ot}s7TyJ>3(PzHOrCuO?s|pw^ilC9f;SPoyHvc5;B5r& zZWXTvyc+QCQSpW@!&TvBtS3pu%Lgxi8S<{LikbE*3eBsmr=N=F2G0#%e-&@|a;(-Y zXFUT{yp7;(1n*uIujVx<^BU_JsNxM@fw(JJ&wa$R$SqyP>sU^Do%NVh0hu>(I_XW; zldR%p}uItm0*^M82147Bh!Z$g!RWRLpCu zP$O2co*^opb~UQlYSuGU#T&i`maJht52|=s`A{&Q^`xqJk!w+n*Rq~rDqaS78EaXK zXSj-~dmF2KZ?m3+>$^_Pea-Q5CNkykhXisCdkK$h!Af&sY_2 z33yAu8>ixxS->m<^Dz}O?R^x&_gT+)6)zvWeDEfyc=0w^Vq-lMRlE%FGQgXp;+3q& z;_G_W^SFxFX#;k|H?SVd6DnpIm}Ov^RlKAR(Gq^hdeT+A9Po0$qXjgj{ip)33cM*Q zUfM@6&a3vO`l`;<8#(COT|mu3`;h%p4lqi z20O+JcGmNhikGR)Jx^Oy%w=FM1M?XbkKKlra2xBH ztKv-rZz6cls(6*)Rf0!1U6m~9R0OXUv7YBuyh88_!OM|(X#cTx4d!Jq=cxkbe1Sav zg7v(h;+1Si-fd?+^Hsd_JK@2dtY?9WSMoK&ea(6ns(6tuv;i*G^P-Bk&c#^xbzrK! z(B6rT!^wKAs(=;XRe-lh#p_dos#wB$7OQwJ@Lb@%q~e`H!e@}i5*4p_7pm+o*7Gu> z8vn7o;p*M2XQ?V+K6v@yy`ti2zd}p+73*21;<>XOEBvOS$RwzvHR(*rg{|)PTUB#;cuL`_3RJ_bm6u45>^QMYt2hR>(u8P;^TX^eR z)|02=EdbB50L+ytCi5Mt(|4?gQ}Kp^Hx#^8Dqb0QW#GM~;zjO39`9j2t5v*w@bbZ1 zqvBP9R|#Iediun@dL@ZMJOjNju%`S+~n9ThJJyd3b>sd$w?B9R|i z&$}v~s|?vx#(LiK@hm3Ze5B%)f>#RO$12|Nqv(2% zvYw49UOssF;C-UvT`ot}E@wTTs(8|MWY)6@Jm2_l!!eZ1W2~o870?8p3B1o#ynM8T z`Dh70SMesIC7g(saI=bc9&yhju3g2;{uSfDUs=xLFYN@H^b;8W6|0!%5%4?$I#j%T z1k69ddUmLI)!4f2_sm z-&R`}fMw(W?B_2~cwXVfKb0d$>&5F+%X4M1zEg8*;aIqwhlR^|DZD!%0EE--b~-q^ z1N&m(Dyfh7q*`)Bu}>&s#T&x3AF7C@t-!%JZ=R$})?cyVBDD5i?9ch_$tlq4B3XaJ zOke=d1okf|M$$Dl;}+?YHaKH4KLRs;MZHc4)rmq4sT1t$`F`6qJ}vJMl?;=W%*160 zEkpM}ulm&F%BQvO=+~q#m_-mg|Np;Wv&wTW9a-D&CnGVZF$U*5Xw<)ng6&Bbr#1frD)q+^<$t6jK~ zunPz59LuzeZ0BMubK+fTAcY@4-{x$M zlcm6xrKl@7Z3cy5W+k>~gTynTxq z-H8aC-Vod`*qv7k)7CPB7+oj5-NEQ0^mP0h2d1I%-oPu+xJMMu>B6mMdczY&3> z_mW*@2vsJAa^PlFQo*0F>qJxWYSp)Ia1YODW$}Ao$wI|DZ!e*1ZFI;@%74AI4=nDt zH&2#!f-glVHG{rJq3kqQzz-GJmGAk2!t)Aq#G75DRt#*_nxES%a^2!)Z=EzVEUv44xnUcn+M}x9H_0( z8vb;c_{boP41&DE-`Bjt`HD&$96aS1#2bPF@v)n~o=h019ZZKC{Z=+@M2)*&qI2$$ z1G9Gj#8tYYlT=@6YAkkhRqUnQ6Z4}@U*1M+&tiYtML)5|02CU|JinFYHARSco>^%m z8_M32#a>}mnG%9djiLana%Gw#Np9tpkPXRN4OzB*2w|4aIn@(pQVDC!Gug0Bx{~TY zt8r$aRFsBuf6R)pv=~J7Rn94~x44yZ14VgWVcow&jFokY-nkSdzv=c{G*g2GTd5{B zWM&K`8J#uUE3;!lUXwNYgZpH5_a?4jjNgK}irE7aj3{PC6tl7aDx#?SS{`mi0S!h0 zoy7Hhs^^SD5BuJ7z9$?Hi)EFz0lNf2*d+*Bna&8AixjR`Sn9j4wn@CNw(_-XG_7Af zWN;2ju%ftUA2T@HITqpLaoIrud^UIBsn+A_H;dS(gY+dqiM)wngl;PNspsiX8#QfD zoktTbjCn1{Kyo|b`z-N3*`<(O8pJ)2ZHV;?SK3x|{dnyT;;h+`mT#Z)>)zCN$E}-q z$1UQumvKCr(HYT7Ec%5md@j;`PE-m!h5@2j* zjK(27PL;;bzbiKruF^?*i@+~`1O_DOLiChW6FnL8#4lQ%4o^wC{vtPt6+d*lB&=QD z#E^>|dK!wnUY_fq^Y6cw8*r^xawS(f=Z>-dQrOX;yda0rR{<4gH!E5R`<2t5p zQs3nj?(^Nf%Mfq64darZj`2Z9vLVTIG07V7dhR1~lH1SaI#UgH z2c6ok#D(FhCPsG;>vrHymhe`J&F4+3eO=iC2O11*M{(FVAry`#Ulyo*Il5^eKf38r z1XCBRkt$zuzFULE;*GcWU&S?b+146d^`frqUhcDJqT~E|r{sjv(a+>gJ`|qInbyFgD6m>A25G&*$N%_srfs$t+~)pG znJC7JT50MjWm73dx84*FG&JOKFYpS+zw4T1Q6$tZW33yQ+SnJMw?H9V!moTW(lWsp zv9USCiUo|&1>Ug28!zmyU#7D6H&muNKJCx&8NM5rZ-_T8pItiMa+`&!y>Gn&$7kd+ zmF?qsg(Tml%}L^=&B05lOwFiNJX-tce;oUWq8-lbsS4Gfs(F43U-tF+ts2ENZmCZg z>VXb7WNNpC+qhjXw3X+*4P{`(d`5U-0DX(bgkBHJk?G3V1$Tw`y3#BIGIT4gStDKiEAzP**R~pT{T``FP50QHMgt>6KvjSHNgYBQOEEIc^^M~&dihIeA>%`^g~55}cQ9!N*ztV{Qoc{F_~DL54d|gVpkyCSo{UHO zE4B5%SP(2)aMygAkW}lLDZQ$0mH}{45Qz@;iZx*+CVaz=}``^w~>TyvX7Lz#d!YE6KqDiCuXFtSq zVH~$eHFVs1x0Lg(;J113+unYR?n&e|T@ZV2JfrJSYl-h0hf-`)_~9V|puHB<1Z8E< z^^{Vxyh6Zfr7!7tn);IFSlNSu5DU6NZzb0;k^1ETw>v$wJ0@&M#1D;mejIM>o>OJ7AB`V{~jljK|M zY^Y6WEylMycZoxG7WtD@kb>;wWS#yIY|i_U)t~gGp}O5c>yjE(PN0&PVOXOYx<97X zwPUwBzH#`MPp^eE;je|zIN!Ks&Xz!9wY{maIp%D<#;PT&OXa;YO>GNX`-nQ)id>c5|_3(@)owns%#x4+G^RIbUXR}=kw&O`uRRx zw*JRcQob)t^5^@rwXAQxuU5Y6(bd(>_biy7C7M4&W&S4d1~64ew|K2}`=YuzJw`PD z7L%kU+@_b>_UPfWxbfNWMx6#(R z3-`p5wmlBtqqx3tMS?^{LSB#+Il=w7B*s#3TZy`#^B44P)za+UBrXF=CcJPP>U>JF zxG673gcxLvmT;DrV+IVlEsdU2X;k?mbr_UD{amJGkjf z+xBzcMhr%k;OCOQ8*d|e`Lq5E7$ZivSZ^b`T@_vTNB#U8e;cxvOR~5RUy140=QiSH zsB}n?JfORc=mS*I?~tNb-SyvdEK(I+FGlZCqKe+wMC1Hi+D(X_+)Jv=-<@mpP z5yoAraZ#wO$n2ADY`Rf~YK;jQ{w24oMoH1fxgTGRu_WAeJ1tDwTzm}Yg1?oL7OlK} z)I*>MET^dT`P5in2b)ojVZohdIj6+&jfr=|5AIN}5Ob2cU;`TFfhTDm)8R!Wk%mSN zL37ng(e~LFeGIs|tjKP0lY#CmWnr!A8Ctg*VJuL2a-!@h*NJTBOIU2O>Yl=wQo1Ti zL%~R(EL{1_$_&p-<+JgWjmw`Jt=7k

      s<&6%&9GanTk&7#|lf-PoF9=z7e-SI;1PDII6j@A6yVJE~oesgdE zUV&FlV_VEJrD3-(ui?Ck?XHK7a2n3?7-q|So)?kly`YaGZfBO?&Mfy~HTbX^_Czpw zqZE}>h$TM65+6~)M^x|;J^qLuk71E9EHdT^y`dk}<5y%z#u<`vHmGqn zsBsD&r`&P!kCT6#Eq{Co>Yx{7NX8kG@fEh@@ihVzG_DqO0+!-8RPY;WiL-@{2SY3~ zj%7Y!!}^2`Yn(A2XN*6wC2o(OuoFLFH~v8_{y_`41KQwyV=jHlT$=3T{s7mVxbDJr zEc+>zom73rlVjZQ;D#qR=;^2QbdrpdWSsKlx<76?dOkzXC+W!~J(E1n%6|!CZKR>-Ai3B;G>2jr3S-4vT%U z5C32gJOCph>AoP{XRV}fr{Yv9PKOP!iR;w!8TA-u>G3Q*o+aTdo5fAmLf*vAcauBx z!8a6yZzx2OH?woz%*J(-KiBtiy@KmiT=(KS>2?ON#|N^77qNwxuvN1ayYUcmtA@4Q zZ{vOk_ba(y&2@XOJFzAIkcxiDp8dlR$X4r%Q_44!U5bYY9}`I5HFh&I;-SRD`Iv_W z+(`qxrrD}z*^=4iZlmGe4s6Lz&=>kcc2aM4(%n33b}vI3wws3e)l*Ir@hajqwA_yZ z{U~tvI2UI4ROK|Esx&APM}x%CAR|ZN7;J!KjAT2F>^9a|n3Zev%nQ9@oEVnR7$*3X zbDD2EufVH(a;f3dOLJ%k9iRvFgnQvW$VlyHr1rC&>}NaKpAB;%i*P@Sa6eOWKT~o) zQ)oX^Xn#K(f>Uq?GDY{V@Z}{_Erh9N2yr0b#05|24Ve-lOo@<47!8wQDr72!FqJ|| zVL3bv8(;_QfF@|V3d><7 zY=BL$3!aA~@FJXp3vi7uF3tGzatE}5F3=77LVp+n!(c3ohv_gA9);?!{-Kows$mms zf#+c_ya>nP0=&W(mu7r%sev}o4!S`P=nwb8Fn9pQ!$g<~vtc1T0jpsxY=LdC7aIBr zj1!oGSKw7XxzzCKr8%^N4$uR7!o6@GJOCqMB20$aFc+SHrLY#BhHbC|_QN4K1!v$@ zxWbp0=IrDTSQ2pH6HF)Q3BBPy7z86>G)#u6Fc%(yrLY{Hh7GU-cEKSy0%zbHT!CwR zX=%xqmOG#mbb;Q`7Y4DDhldb|=0Yq?h3W7JJPONUC2W9AunV4tBk&@eg9~ttFDT9U zl5z*MfiBPu`a*vg0>fY|jECtk6CPzJf3T21C9H-`umzrnz3?I&hYRouUs#&)g{21C zKs)FLJ)l3_3&Y?67!MO+Cd`I~@C2-ewXg-YK|?Qregflg3SNO%`P5Rwr4mv;& z=n412eeeK`go!X2X2V=~0+zyBcpA3B4%iQe;1ryJSK$ilKf;_(EiL)v(g8X_Pv{Nz z!5|n3qhT^kg}LwuEQRIpG;Dw!unP{s5jX?q;0j#h%S%hXyxakupbPYdzO4U;g9wCh zAsWWQRG1Erz@xAnR>B6@1iRpQI07%iIk*7Vcp)?6#cT((fiBPu`a*wRtaxOd=aF@u zhw*tH#_z;);8K6}d#8v%38aE|sGu8*bYqcjKd6ThFp7+MWX$Kyte-c%AxOo&RQw(m zdJhY|mjQVwzqbgNc(bF&ee`(GUS1jZ(U3wKaspPvT6hr}#tAGF;Awm?3?K9XNI?fF z=wJn`;)5y*ilU$>8Wcr?qGDhiubv6KdM3dfm_yJyK!0b{u9Id zPYmf|NcTt->;I7$0zCE~;j#b7Dn4m}Z#oo)!wOghXW=|PYOX)Z^+(GgLlT#dYq|hd z!5X*(mvKqk;gWWMRB(v$4`st#NJkIR(Rl91b3ZLr0hZY2cHMuo;r^NisgU0@rXoGc?HzO>!U% zhD_pQCUJ5Ntb-TfIAl&FGbaxF;EMKx4Dn%x_^^SoIn3A`#&m}wX>L5tjigvhjpT+ifsW;g7? z7fp+wp~cU{!35Y0TX99xuq+yu6%Hd{6|8~ta1oa@4S1FYJevpeAr^dg7?*TDF6jc+ zfA$*7zzkDRfq@DPRA8Wj93e!G0`)L}qht|B$r3mXXE}PZf#fDaCSfj<@cA^3pc!x# z*R#L{jmh&cdEOYDzy%$O3pyM!1ixemjs)O>HUtu&Cr9YX3(okUT_HVqp$3<;79X?) zq-Xi`EWaIg;(F%#uekoJGFXA@S;6(Jg()x%QsGf5{51{#H4XoD9mKM~UV_WGpc(Q4 z%vR7zM+>^~LDQ1o(2(C0z#@FlR`{N+VFZkV6j(@s$7tX&8hFeP>R}GdgA{a(a*Et> zJ?kJ1E23dVqi_rtH02+s{Ns(V8P~Htu4hM>&-y=6K!Ejpg7sV+gU>k*(!yd|SWLmi z6kLqSiZNMXxBd%y?NI5T3&Wq%Gk$j~zxReGPSrtZB#Y@4s zo;I)1e9oA#921svqnsP%w6vU-mM_Cqe9=+3pkrVSti$z;g(|R6MHbA#^-TWX zlK;1%FdWjL-_oE;dRj?OE2|*&RL;VAT+m6lpi`h>fWR<;890YeIvk%gV_lU9lkrW{ zke6vlbq+r1JXiwDa7Fv$irx!pSPc!UNq|Xk5ia4HX3Sq<%xeWMX$2O*B1pq(Y1k>^ zr-&O)O%s^KH=TlSIt{kMc6`(M_@)_}S0~^!zG*5rO$Dc$VJp7rJbcsna12i1nvTOY zod9WYJq><62G?{PB>p<_1}|LFJ`jsFBQAf;0875tpm52JHzo!M?ebbB>!9Fe~bKY(U7-j$Xk7I02eb2?4p5P<**XAz&2b`R{SV$4c%G) zf6@`)#-G$1LvVyQ9$MZ_%e$$tn+iwj@nto_ZrFnlI}9K80mw4^AYPIG%o+Hfr?v7i zN92rLkvq~MFXV&#kRAn~KoqQ%sR3GpOyy!K7gE&=p@_t(Bu=eDIj9WfqdZiAickrv z(8{M`Py$Lp8Hn^x#i1mWhO)FWiwd(SKa29SC_gJ4MW84YW8nYDkVPR`WXhtTXJ^qo zT0~1|8Let%wm=HfA`4`NtWhIsMy;qFb)s(6qm_jfs0!7fI#iEHUr72w(ia-YP)LSC zG8C#A`p^IxMx$s9O`vHsi)dKkB3eQ;tZ-E;j|rq8Euvw^tdKRbMfS)MIU`r(j&#Ti z`Dmr#m>&T>3P6D<7=@y66oH~p42nYuC<&#YG?am|P!7sN`KSODp%PSvDo_=wL3OAe zHKJzJsx=+oW%h5L9fxE*J#jdH0ZTq zG>XR1gjT*z-q*?ddK4o6>v1RnC7~3QhB8nVOX2k#t!yYlC8!Klpen6=gM!|eMzd%h zEutl~j8?U>Q6L3rkp&`6BWW5*(@2^|(wwE@vs8SRiqBHqD#b>GbEcKqvV-lXt zCs2TB#5pdW%R^i{$F+0nH5zt~hMl8f=c-T*szddt84aLe)QUP$51L04Xd2C;ZZwM8 zQ6CyZjcAcc*rG+&$Q?N%XXMJwRcL|ikw6NvLblvnLd#k?NV-At4eF2=BJCh$3{plv z74}b~c|?W%G~_}6q+u8G5ce(|BJ%|@UhqMFNRKG&LJ~?t87K?opcD#@LHVc|QNfUc XC}SuXk!Pp~HKJjyd|x1E6!?Du@Qphu@tpY0MTEmmHEqp_L0bk}Roar2-Va)` zS_qb`KP_W~efZj!HMH6wG$wFFKh52Ksnz{LVQm|b_GPZ21;=UP`EySw}h0 zMEwIoQ7u2AE&i758WfrhZuZfVhC$lwqsc;XEg=>De}cPDsLBchu|cX~rmEU-p{kZI zQ8kG6;jh)QyUHM_>o^e4(u7J#R0brt{8n5;H%{hrMv{@V(6{VUW$Z1$QrAzLIakhn zwWcpGyCe(TOciL|bk6n8ZJQ0ku$dev8NsP2Sl0&5Vc%=xjGXIz&SB$R55FP@#@dDG zMoX3@3rWzDG_$vm!f~#pH&8Q`bJ~xHYF2PgsEG-v$qgA6S}-$2D45B1h9o7Pdf6aU z&Ekk$?KqG9ye$@i59K`Y_07waGKsB_cMYw%zbzxHtrndavxi=0JzHo)Cah*vq&I8U9@zHg9;6mU+5r45RR%b8?Wnh$vjD72L5U>DS zM7(>Q7I;7Kei6UFjt8y-t`qUjb!y&o#`Vzz%-ZFJgO=s5g!+GJ%B zoI%KjpX_X}YmnDqPe$^4T@QH;@Nr=)XVlrX(=!p6Zl2z*wp(v-?{O?@>KB7vKBma(0!Cx2e?Kw4H1m!oHlX5-ziCt$L`IFngq@*znexLH zotzaY<86@{9>{v;cwJYoPz|EY=yTNx$pfrU>k&Oan?uR;&755OLR$fnMyp+g_@GwL zMXjF8mb8wFE83zq7TX;*br#iRi*1G48ELkuP^n&?Q|vP+el91(&t;C*5h3%puy0z& zm@>f0nCo?|y;5%%#9-gPQjee>+(LmrH%F~sm`-2DIbD$=xsc9<^pjWQ=#*aZ!1WGM zI*X*!Ncz4xaye_k6$l(^;iNga532QQ6k4APT4Sz(({ef?q-ABA%IIgK=7Yyd)Llb{ z&S5*%siw3|oKa;=bT9Rea4+*3gko4xJU3ZzAo7m6oa>LmdV8GEbal&=pKPP`(Sn!b zT+53o7OM&+ezLG1vis+b)^n~`na9rSz`wF(%6Z6huCz_EJGFo7;f^?I&UGT0$y1Ue zgc^9RnHwi~;3Zi<0bT^QChU^Q2}7I;LxzfmIGP#q>5F8@{^#Qa;wK9c^Hd-T_V^}` zy_b%XuY3!ym)*5+*NX1B&)=)p&64VJR05Wpn3ou8p8d)>RX2x@`gHngME)%ef{~p{iR9nY7vXs;5GJ z&+Iht!a+?lsCSgVGc58qUozf|A|1-PUJv11Z?!TAr7*A*2HqvchDV)yLX1qS&01(& z+lKz$-=0$YDEmk=rk@k?PRNIf5hD44VuTKtaz>9GZ9d#B^O&w}T&T5HC0J`&M%%gV zjI%xVP~G2VD?%SNo7J=(bbkU^t#ribiZ73xQRwWbwop6Gxt7dwpf+=w;e47?P0aDSF8?iSjTW`;C#^M{%QI80FHe)cYiCOTyNQ=B zeSa}CU}+fir9xk7jyKv>`?p-o{{EYaS(&KNf@oJD$tn)Awe925U!G}!Qx)`~HG|Jw zSn`J7k}v+I_|2EoqM;4+7ecBKQk(qhKN8hXVeE4I-l0C-F?`&#w3%l3eoWMDg)b|7 zP4er0PSo8~){WM$jhN0gkgS1ZvS0r!QGXb#G#ba51LjxpF>+|%@bObTSrl3eF|-Eg zXn>B(P5v|$L)$M89uQin7@B%MhM4mySKWTuHlpmioBRniwS(3q#fvXV)U@JtLhn{i zdrKYu4{^ev;~1SDuXWm}I5wAS*Q#EWYZpSrtsZjqwHTwwk%kclK?f6b^S!RJCONXeexRqAxk?&~bVXB^3AaqRrO#J^ysn3vjP~g^H7fOzCZp{R&eda+8lBFM z-iqEB@<2FWA$)fe^~BUmXEo)*fYzII0;j@IiB0d+iS6lF7SeSCo6^Y~a-fJAJ4G-) zVy!8^h%;u`Q=>0hGhXJ#bf3`!3I2GV*0jCR^g;Pl1Q?=AApzVQ$7DOZLuLAoD8?{Y?{wjcFM~cVk$nPE# zJnw<$#mzkPqURcTu7T%YFBIELM9=(R#qj(=@nF%j6MmiW`)D)2($wQP{2qtjFE7xT zjspJU0+r0o#hr8=YzCnL?hSBfrJZ@xnqoE5pvK?uP|vd)nW0;NGO++v@d6EANXZu$ z98fa9Scku%E7}+x=a_O zxro*IUsQqLHXP$g`(J_g!$`1@|BQ?hQ!n zhFYG@5Z(8~eLvj4^t+#h`&qa@B)U7{?u7ftes>StO&$o05d}^`;1mSj@e4FUpb_pv zMfXOyH^P0J-@OV3R>8nNqI=6HRYJ=rF>&*|Ti|YidncU=sSxob2lBeE{EuoGO$T~k zs5c=Q{_`Sbfm-LW4z~3Me)a`U^Fc>S=7|LvHnpZDPdz!0)<8;;&LwGxH^n^yU%pu4 zi{j&{?SL=I@Q(PBOzea&$(XJsV}+C_LqQ(P;Oa%y%-l6fwU~X}HTv!v*jEGlO8+O1 zcWwWpT$=i#*QLFp*1V^c%Qs)5)-2~~2#B7$1v&wAn~PZwZCBIe>9T2jiPxpSB)L5? zU9Hy%-X>{&q}Ja@oeBIHAT68kb#?Pe->;AsY&wB!kvvI~kA=JxNz$(J$qx<4kHGXx ztsn1G-vQ#jEQI)(i;|Kkh&Ro^G{j5h$mzn)YP&!DyHOJ1d?Fr*I3VK7=aPbPYJI-3 zU|jM%2jh~BW3!X z8^es#?U@)6$p-SQ$^XqJb?<2^g4d$l63nGi8|8jueq%j6^Baq8i5fM^i!|n&P_jgv z?&jLB;a9E0pbO@-RO?q@v{ng?mAMOTE1|QeKOM(3QaZXf6ocFMk_u)SX?SL$g(R^T zH3)~`@epFsQj7(40t3WY9NHk8K;0%y0FOiRI3&;gDVrQ2n*7m*ZfF7}bEyXT3`Yhu zz()goeDkNAv6ucNgTlA_m9wRhgIYB~u8F-D*|l@t2A!~w%N*yiSj~T%M;e!4*6w6K zM0Qh^v;Rd77_420aoj@6UaxDBU+Wf8>qz*W@Avz?aW4G6#KuK+3z_{mn;R9Ao&?WH z3!%2$>l!IWf^zxsKPlZqHmHpj`yw5>Qb=X`r26}VNEd@RSJY%4QO>!(TEZUe85NTL z6w~XpDR)1m)kjk;RaL_95Mv9y2Cewq9L^QBq{%X(S|=df&h*rG%s1wai-x~PAiZxI=Q4^Ct>#1GKkU061LE^wW}eT? zfn?W#4bLyyj(80)*9Sj@~lyL5a4 zfhkR^TP&LPGg|Mv$h4$TH6-4YxF3MqW-)uPSL~EZgjBiER(=tQd*HlWBYr(kHDcp> zwb5*^LgG3h<@8B?a9%D)b?3?I=hiD5$=($;`9zVJpla2V6+f_!WB-^hVEQo(@Fxnd3!JjS^UoW;J^E@``vPtoky z0ug#t^x_YFw{Bu+1f<^=C3K%+1vhCcRU@+KlMLZr@IoCkZV$>vSV> z@<}l#53=&;ZlRw{Mb98=Yc&Vj_A(*5M`#(CBc&kj1@pCMg9KsdJ+jp_$X{lkM)$ZQ z4C2$Dr2vN&OZB=HM#r?!Xe-CeXAx@5BCo5TM^5egJ(SwNv#)!PmuGfyeRT3?MxTE2 z=h8lDp=R{M=7a1|pBR(&DQJ2suqv4Z%}LO_>Ku);sO6|UR}9VfzhE#H*e4^mr$S;X zBo>{Mo9->=%#axQ0tbn)kjRHbJ|w1}lbh(Z=PZyI@PZx^!y!=$iBd>pB%h;pnSy!x zoC6}-7kG%oK*RzO3q*2yQB#)Rx zQGI)=&agZCb~70vZ1g9TETF~UbSN51Nt}kN@qVNO>gz|bKt26P57gCn*qy=FCn~wL@cO00-Y1*Kt`vU_--$cG=KixgjCqGWg&olOp zx~3T(yVWcUNiKZJIK40%W9R7}8!gZVW~(hY&b5-Q>enYcca=df!yNNd%+l{bXbnDV zo?=V;4^f?E@AdCBdfg)hwgDLKtbK%5ZHWvt^u-ru`MLseRWJV$d5&$yTHl38*^T_o zeT4C`{krEoA}zVK&T!Z@I)`oL0X6zcw2Y6ijM$#hBOjqcF*r|Z2vjZ2il(?D8iK9t z#n^6*oJo_% z37R}||Lm-s>yao12Ix6EIWYYQpeQnL8zi$H<&PbkULFppAArmVm zZNs$my^Unk=xb#rXLQ)ErJ*m8|3c4a_^Py=i*EJ6LzT(fy^=157Cww)ovDl)K z;Nh8lP-n^@RR*bUXXS(#b+#T-0;IY@>aWRs7{nY9bL4Fr7}4p=HFBfZic1vN+Z$Q` zfg?<3A#oOpzW!AXuIX0_?$tH4wGi_(7U7=uy7vDn2lLCX6im^Y4se|c*QrladhhyG zPVeu2rSx99rj0*pRx{7MuD89kUm)ASalVMFYFYh2L#Q;(XZ_;ejVy)I(x+*AK`Sby zHsvl+X+1j^-+7J|720}`e_gjb4gb@3@#}j3H(x%!+^~Cm0Ph&T!?=540GAZ_zl+Vq zn7CIVyedTTyED$+N31j-yn4oI#Y!oge_Pj4pFJEW@R<1-tqZLk^nX}*{b+p&cD6nO zKLz|~E3JTD2I7DQi|Bt3V;SISEEqq{_T82=C37_mrp>#}P`YxGT0bIhF%=utCCB+|G>49v1cRk{;v3I$^kmLT$U2^e%v_r17DL3C{u^Ali37B*X5~ zL$Ya&LC`;gJ)dW=#`KFkYk%&SV&rqrRV+^*+sz1PBb*tChI9SGp^(D21HQctayJw6iv_+vU)dT>5$AewO#v1aN!lF3Y5s~d2&drV z6uWzH=Ztq&Vr!_WgPytp?pY3mqTJvw$_-BFd37a?#T!)^MXljn&p^lDom$zt*mSnR zw$ZkSY_o0owiF@p*_I$yF*q(HcO`QUj-6EjeHGC6d;=A3Dj8J`9_Sml5;H{FI}mpb zsVK`UQ*!afxWa;-uNFODt<5|dad>W-M)4>=ZG?Nu z3Klyos(S^TE8sl+G_9YJ_qC^U;XGgkn>MVwNp`;XG%aG0bI$1kIJaMc%>ny1oxv7n zRKw0iJbjgnqi;(8T~NCVY6qT{YeL59V)*;BKnH&-;4fO>)Uvb_(oRT6oTiFF`7z=& zRgB|_qWD~hJ4Qn>kBo(A14O-Uss$t(bJ_yY&kHyxei+Sd6C|40?ZZ2F{x^6IbkPob z1WLA4O`m0t48J2Ob}=W!F7~?YZptLmQtzf>w5ouI7HYJUAdv)#oo=~Qf93W-Vo?D* zG`x36{3_-dJ~A`|QW=YxKB0?lSV4PuTMEWfczaCrriJ2_qPM;UY*xac{&!8N$M7V! z9Zf~e5H&BR7JP^(Y&CmblSSc+%%1S1>M9#}M<3Ik#aJXlA61V9N~tLVSvJOHh}9bs@BOOM31J;h|?V^jt>Aepy^H{R1mt%?(OgV#4VL zcs%i(WKk*09oM%jYza zq*x(GJ3_@!4sunf4A{{p<^NR~p!~q{zh{hq?vm(ot3j|r3gjwLNxS!)>qAurq&`?~ znsZ%T4k7465PleOnQ~2B>YxbZny;eDPQh(b8KLM!iVK39a?_}c#uiox2vhTC6;Uzy ziU-Aodk!7PbDZmL6*U#4JWG`e<PauRWX#sEaxyO??;2x zww<)3YVxD9LeBN=;s^AqjASAAITffQOqj6Pj4`)d<~z_%tr$3ZKe(u~sQDqY>LTNW zB62aou1y%oOkHfY^7`;BiJdIuL1o@^G^m;Pq!{cJpNl>Xyr&lj6t_3=I*LLOq5yK0 zW5P}gc_;&%1yT5H85KCQ6%CwAm69ejp*}QW(HTpfs9`1#&YY;R<0IwYQXQ&}TA4t+ z7Cj_XgIsx7jiI%A954`%4863hH=3kFa0R($a#DYftzq#b(DTbWVesh-4(D3Fy2r8G zVddJYwfKwLU?J4Pm5|EXC3P_c%=+K5xo4#IMa)ZKBehq!t~D`T1R z%*^M{;5-E+K`zsBw9)tmxjOmJ86}G6jE1BCr*fKj>ZhwTN?6kpBLO;bq){9>dWTgf zbqlFlAf7mCxfHAJOT`mMhGm#jEDOx-QebSa%Unz$en34taQL^ypx25>%bzKBy6 zqyiTK7l}A&0i8H91Di!WY(XOMF5q1vj$fb$t^uwQam<2PI&pLyjN>9BY5`3PJis0i zM=a0+w}gQ$myrRQ1w618SS#X|3)H~z!0{r!JYSi5t)G!cOtf8_2Pu&6j22Zx>5Nv$ zGfSCfls4qg=jcS1>JN7JsLr94%Tz+;GBJ5hEk{l*4;c{*;SK?Nu{L(t}SiOIPLeMCh^e1ALC03G~rnJmQl1|=hR_6v}qpIx7?>3!WcTAbGvRYJLLorB(usgs;8ud^Mru zdz@B~BNF15Fij{qLl$egXa$?9t%k415R7VZoR+>4y=rw&?LZxtFf6{HpMXF>e*&!r0s)-`Dg^=o{R~tE1Ohq%v>ylr^evDR z2n6H=It~N^`Y(_N2n4jx1jwzxA+;3*?La&b2xu3O4hRJF4v-!Q1oS3QDi8?hHK3_L zAfT;4xj-PG5}*Pg5YRfHQXmk}su&Yu0SE$I3P&pt23|@>t9_CMBM=DaFQ7ai z5ReC`5C{bH3s40R2kQV&_{neCIMvtfq=#V+5~hN2n4hqNK=RmEfkx})qq++5FD2Q>488%&j6(Wfq#^feL{@KyL$?fj~eNK)ZlIK-++7fIvVm0o4P6fL;V@0s;Y<3IR3iQ54n_ zTmhs50s$=n8U_RcdI~5N2n3V^G!+O0G!rNn2m~|@Xf+TBXfn`NAP`UnP!$je=spvm z0}uo_8mJBk1av2m2M7c-3`kvsBrPIz8;}kN1k?{`7!U}k7f>n?2uKSw6$k{>0Vo#; z1QZ^P{%KtT0C>J2b-1EKGL zbU+}Wqd>!eKtKm|=>JjyL4f<=m<0p^`WPr52n6&YP!SLa=sln^AP`U`P!$jes2s=v z1Oj>ms1^tW#DLBMfq;sDOf5HJ#G~uNF&nzDzzv z1z;6S&mfkM;{?Y!y;#ACc>?p4C!7jSE;zYQ@b3qF?Ez=c6B!Cl%nbONQLNzPfRi)B zDRNBVV$70o(=%ck?vS@kPXnW7yVt zyt{*fmxM!)N%MJkN0WlN8qC#Tc2e;2aab{b0gt_*fI;@y!7UIus> z;6*8Tjo>wc*F(We!ZvWyQ@p#Uf@gk;GhvULclS~-8z9&Ko=(9_&x0{}ygORKD+R9< zyxt046L?MF^-=Iru~nG*H1Cd4@M5qP74r=5?#p4NR*rEVn0a9KQwU~Y<0j)--rZlp zGlORaFIK@@nvXJ`&$|aGcs1bFfETCW>9IzxU(CA)$~+U2Us|Q--SILLyi*W71;N`C zJpB@QUc$QvDR^7K+X~+83SI+v4dCe&yhJQfmsLMPz5g* zD@UKkP!Lx#wq~Jvq;DBoZ@4idH%UXfW{S~}>l%Hq96dOz{ zn0Nb`xHPZ|g=Q7+HYj-fY7SEs-kq%AZ3S;Dc%v1(mTR!CwuX0)QSkD?%Lgw-!8;4y zSreG|D45x6aRPEJ?;fk*)q__L-n|N5#`7qc&-3n71}1;N@efCjUj= zJypSTfad`3F$FKG7%Q2@yn7n)+q zTz~UrXFYiJ;LT9TrEfwjx`}sZDR?F;m{u@nDwr`0%_HO8vlP5y@QT5kt>Eq1jLvp5 z@6J~6E`xU&yg3S9_Dd+#FY)fV3SJ#}buaNI_dEr&;bpX3FZ1pk1uy9pl;Br*_k0D< z44xUh1qxp2tLP72<=syzcun9nftRb`8OpFOU&gx^iacNcUj=3rn2QvG+HF`5-^RP2 zQt-^+nZe6b@XmsF7QCkwyxi>=m~7|W&nS3S@T}lHtKcP>UPJ6&9-m!2skP-u=9Smy1Ah5lEqe7h8#dD|z<|3SI$t1>mhy z@HB6sQi8z0&|l>Fx!HvW8vLQ!Lxv80k2fS8&-{Wp_+GZR`8aBw-mgW6g=*I zq~QC!dy9`Jj{j1@Oa*hRLhulHhroMT!Hf6+P3s4|`xOOmD|lPMdsV@!2d^HyG6gSn z7sA-ZySFKLyLMsxw+qbe3g+1lQJp^I-LENl=8sVAKH}YG1y5r|)>(OXxq_DmULJTm z6uf%y>cM+m!ArHl7#r`dP>%n0fw>FJHxz=p-6)v5dH0(NUNLyZ;QdR%)7p{8cHUj7 z;AMfA1>Rcz-?5B%7EvTEQ#?vk<)Z6}(#TYQg(J!Ao+W z;d1cqT?$?yc!l8oTfxiQi-_#y-5)A=9>{qh_mOh^r`w05-p9MG3c)?_ya%3b3SKtk zvLUxy!P^DiF7WIeU9=@?iHpka;0 zxynsgM&87^mOd`?ysqWv#2cvX(9htJHU4LoX16 z{BpG>f)50xVIhKs-C1r$U`=LyH3dkQ20K392~&L8pka_2b^|HzG=F4obE*7h^%KpS zx1gn`gZ!xux{71uDa``S3`RB4WzdPtaQERk+WofYY*i~>-lW=)ZM1e*-d8o6i55) z#B%AFQx%3WRgBK;4e&VZiRF87;ORk+1Kvt<#NEzpwccu0XJE05VX=!1!RG20xH=wq zaO2WUEPKMu$w>Z{X=Zy5T@${B!lzC+-9kOViL?985jItLYwZf0-#7~8v$H$u=z9~s zr)L+~HreQi-u~GIwi4S8@Y>GeG$%Tl@x@PL@zb=XTG(03{)U~0&dFyB&!5AFscTqH zC!8ykVp9jHI#J4oQ}l`D=MkF|;wk#*9E)wat*5+t|ya{CJekSG|~|=8ru(s18^clf;fcuJx5@GD(h_ zY*EduG$D6cIEXLt*zeWX&-Pewnh??@^Xrd+pq0K~SJVN8L)a_b{p>98= z)}6N*grrjR1En~zc-iZ^a0)kUY(Lq?2&ttlKy1o%-KdFo(v|H%S||@Q+$b$B&TN|T zH&Wxg-Rmm&niV|VWn`QpDR1TdsKR@S=-m+V54`VGcpv*UuMa_4BO6TLj+7IU+IhLv zyHNxRX5y;D5m|y~fpQ;aq<1Ucmo@qN3|aCi(JSoOaLJBuS%<8Fp*fgD=4@u8vyx1iC|{W1uTXxL#L}pA2>bTQa)=mKznUycu+F>H3y&(J-mJgo%&+pop;G$gDO4Q#y~=hG88%^kecM(3wn zd~Nn8FPSlrFSp^Em%4wmVH*`IIc-lNZBK3f7E&}UlC$;C%s|@y?~FLeF(F^Oi;4T# z?0fYFU!3H`RV5bVO0z$4(Y)NM-+A+i8}~aEL#5Px^Nho;L$~8~*^WAKG~IL*Exryb zH@cT_uR^qmj_@BjL*uRpm~?G2TklYGK`=;ni?(wb3@XL|-VCyUazO>?2>8=HF15@z z%`yXopXS=e&@C@bbhGLrCl_|UU&7A!OJ5+L`6pzq*EJEb*^86HUf1F?4j8;=Rtp@} z&25%h_n|T#b@K>iubac)TDQ&~C+xwwYO6U-Z^CKx;nbZKXgcr~7|>FSzpkyb$e5Pm z#j{Pbye`d|`rSM5&`$Dnb=b{J%!G-VFG;P?C({E)hMbXyd;QPUL-$+^GkhbJ5_LRA z`e?i5Q5p)6a*%d#2n`RowtsYbK!->E*uc31I+h``%8*$PH_1V;S#t-Ox*hjx#Wk;q zKNjPx`6l$+l`pjbQ3oJR8!$L-3dHm3%s@PwX5#g!YbsS)LjCS~YoM#|c(dF#`5q!1 zJzcuLh$E%YsbtM$PRky zM@mW))ysCsYU|G#2JwzIbpE-GcAS3tEE@hN4)yaH zatmdE@@(ErGPxxg?wUE%FCo9@$Z;9s+di@bcZ1R8hem4inr1lAUzaQT>s^DTn)xBF zUA>ApNuA*5Yx0IcULzar-ULW*|h z<;=q&mMu8MvgIg_xnEJtyp#P`r)G&4pWezs@6xRNp>jSjJkY93FB-{#+$fD3AE)sU z?pR%DK6DU8`b@tm2ljIy;TpSB#a| zS5I~}_450>)$FMTFF5=@l>5g;V6A_q8z=%tW!`)&4LQU+VN?cw7Vm_`&Y&_dLhz^Z zP3uvh2uzd}Lf=;Lb{FaUSiIfE&5$)QXKokOc6K_qhhjh|S4(-;Yd}0_A)akeVLe}A z8Sg8380>XT`{~+rpEp!4O}DB;5z_**zEP@UH09E#$iBH06}^TQd>--ZW9;yvE-AkZ zk{ZZgf4125I?m-C!YP_VYQ7?QhmCIeAF9RG$y%CderBu1$n6g_cr|G7YPPVLMKOlo zhRAJ+{079W;;`wlKpZaAGRJdW`wo#?kzg@kj)l5}**?4H!0rLCdl~GOEnN>wKf1=! zdRSV&g>`=_Mzx6D{Z!{Dsb{-UP1Qcea-ZsMO7|N>cUXeYVH>AjKUHkJO-fms<+nu{ zocrgs*&R8AR*B>+4{aVs$Lm&5_OZyk$onn~mec6gW^KQLS=)VPnVBiCo9RD;gP3rg z1v#QVbW49+-vgNcfnBMxT@i||I@M=b8XNd@w>zI~X4tLLzY7$~iy%Fj>FKWev3_%M z#pz0-f93T?S^nFjtY>}~)35PTmi^{3+wVc4QVphQip55&p7(t%SA4qZ|NYk(-}}c$ z)O7dZ-?x2c3#{BWZ3z{c@Q$ls(^oI7ZlU*BXziAB9UL#W5qRUxC6BxQaADjP;Tmp~ z%Sd8*2XO}YJ$v$*&i!v*SPLEv#C)_EbBkUsApf73PnKf-urKD5eKDV>55#eF%wK!_+L))@BIakN1Y(ZD{B+mbyZ@t@?`7wo>1z6P zpp@l%f0DBN*zJLcmo$s`)Y@BRc{U=ReS?Uyt6Cpx`@AfJIj40 zB1i)@aSCh7?>T7g?Q%xb_CoLmYS0wsdA`f|cwcM>{p1weq#YhP)vac!yghWgV)^lw z?cPQ9_TpZH;{SmmwU3Y?eU8RS$zCf+hNNC+$lq-6l1`B~FZgEm_>x|Ojt=_&r@<02 z=&*cW&`a3CCEZl7Q82ML4`%Emfl@Y7T3&rd5$3HLrk)D#JtglC{sZq9G6SJMA$jlj z54;~%c>n&WxHf$Cwm^d2%J?@G-fKngrf>d%_vH%j+_`)84op7`;)=gi)GYr%SEi(k z{cmZvLF@j3zag0{X<5%fS^vO`CX*E|>uDPG54^Z12eK*q_v>S-Rp`3a8j}OMaFKxZ zUEZPVC$Um3ah!DEB`Vrnpe5WR?1ANxruARSn+KI!u?Vr1Dzdx?G4FS2vtiFx><4ef z@YiRPyx&4IwvXc#OHH?2`O2Eyd|o|E?K3T#om<}3G|7iDVd$OcICJ7T&27H*y@W3V z9jE^b9cH9r4tr=Tj&*NM!yHdFInY+#b5d?A=bl7c>3ZkU7SR1o$3UAU&3ML{n#JW- z#rnb|uj^e(J*=WMpE?bUR~py}%NEMrrEmIE&Z_m%S%Lk4L;cCeW8wG{`27hQ$>EkX z62A$F?>a%T&|wCl7GrV$qjDfO8i`a+QW{13egd0bAa8Ep$VVZ3&_rj#=sPU!7-B*>GUVW7KB=rz-(B}(NjK+cl zlkDeSJ%=Z`lH;-D@iLY?ULL1c&Bj*930jMz70$d9H2?l+3O%Y31&OGau_Ga-1G&yT zLAhBuB@nVdR7N@cYh1uq2iBMh{pMSM+*81JHMi{ zsolUpQ`q(v{pW`dH_f00R$5=0t{AlL>L(@ihd&nB&3M1eiN)=jI8HMkqsC~#+d>^S zqS>;B;)b&c`;xfX^D=JsysXj}i+5cUfj~fbqzlWHD$r=b@Nx)9s@}9CUUYw;j%@r< zUjO{yM@sVxkLa-{5x7RJ48ztbq#D2DvI%8-FS>ITf1U;=W0XKmMc~lXVksysc2!*H?>= zJ8)=1KxXA5v+_}wHXo;~qL*)W9~TRBCLTpS!@^hh3o>jRJCSy*JEr)wjzy%}>7d~Z z%Uc~A#2-JA#jokvA>8LrbKD~OD`2Nr4+t_q`-Tl%(?9I!50dm)_UM{m(q-(mHMfVA z{!lFHR5{vYX^pB{$LiR5Bbzn84<$=-fGSO9tK-1EJ{^S+mcz6}jbTNo2$ z2x^!R7+vgZU|EGRL896ny1RDJ_K`|XcV8GA*}=lTL1vNe@qr++S=Sfv457Gzexv@z z!6v`Z>vqR?7HoCVZk`jTEI605pR_};+@Z$tk$Rl1!0u&SD{O|**BJK33;ly6V*Yq4 zn(XQe>hS#UoMJAWJv@on{5=VuFODAwRvt!hQ0~ z*{|z@MHNMOePmc&owR_H&c>||CSAc^T;D6KqE5eF`?YQd` zU90m|EWa%rPLy)5;BjleEoq`H8(@ox{jxDw{J(inivJWg^u@kGR*~O-@aDUi@Ai^+ zG4aCg&vFkG7>wTP_|57Eu|xbbI!5;Gi#>u=`z+SJxL0`AH&X4aJH--_Ocu3D!#Q5WRFT z_ms@p;q%so*-L`8)H%#s(knd2CtdGiv73TLIzbGj<1k++2|j;2@na1^{c%!+e&3`H z<9vSdn0M2_AldO>b`R@i`fshy{#�UM6-8U-=Nvwekf*DvI#`B1HiYBtUtjKPXD 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 diff --git a/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer b/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer index 43419dbab2b89a778561ddbd047ddacf68ce4b84..d20b12e58dc8fa378d9df3423522f9bb8b935fdd 100755 GIT binary patch delta 88992 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

      56`)K5y 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ℑ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 LNT9p)y49g77Tr@K>EAU!U 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

      xQXCN+={$L2 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 F`U9y8qn!W% literal 168096 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�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, shm()->controlPort); - auto ret = - client.sendCommandThenRead(fnum, args, args_size, retval, retval_size); + client.sendCommandThenRead(fnum, args, args_size, retval, retval_size); client.close(); - if (ret == FORCE_UPDATE) { - updateCachedDetectorVariables(); - } } template @@ -363,7 +359,6 @@ void Module::setHostname(const std::string &hostname, const bool initialChecks) } LOG(logINFO) << "Detector connecting - updating!"; - updateCachedDetectorVariables(); } std::string Module::getHostname() const { return shm()->hostname; } @@ -703,39 +698,6 @@ void Module::execCommand(const std::string &cmd) { } } -void Module::updateCachedDetectorVariables() { - int fnum = F_UPDATE_CLIENT; - LOG(logDEBUG1) << "Sending update client to detector server"; - auto client = DetectorSocket(shm()->hostname, shm()->controlPort); - if (client.sendCommandThenRead(fnum, nullptr, 0, nullptr, 0) == - FORCE_UPDATE) { - int n = 0, i32 = 0; - sls::IpAddr lastClientIP; - n += client.Receive(&lastClientIP, sizeof(lastClientIP)); - LOG(logDEBUG1) - << "Updating detector last modified by " << lastClientIP; - - // number of channels (depends on #samples, adcmask) - if (shm()->myDetectorType == CHIPTESTBOARD || - shm()->myDetectorType == MOENCH) { - n += client.Receive(&i32, sizeof(i32)); - shm()->nChan.x = i32; - n += client.Receive(&i32, sizeof(i32)); - shm()->nChan.y = i32; - } - - // num udp interfaces - if (shm()->myDetectorType == JUNGFRAU) { - n += client.Receive(&i32, sizeof(i32)); - shm()->numUDPInterfaces = i32; - } - - if (n == 0) { - LOG(logERROR) << "Could not update detector, received 0 bytes"; - } - } -} - std::vector Module::getConfigFileCommands() { std::vector base{"hostname", "port", "stopport", "settingsdir", "fpath", "lock", @@ -1563,8 +1525,6 @@ std::string Module::setReceiverHostname(const std::string &receiverIP) { LOG(logWARNING) << "Acquisition already running, Stopping it."; stopAcquisition(); } - // update detector before receiver - updateCachedDetectorVariables(); // start updating std::string host = receiverIP; @@ -2169,9 +2129,6 @@ std::vector Module::getVetoPhoton(const int chipIndex) { client.Receive(adus, sizeof(adus)); std::vector retvals(adus, adus + nch); LOG(logDEBUG1) << "Getting veto photon [" << chipIndex << "]: " << nch << " channels\n"; - if (ret == FORCE_UPDATE) { - updateCachedDetectorVariables(); - } return retvals; } } @@ -2258,11 +2215,7 @@ void Module::setVetoPhoton(const int chipIndex, const int numPhotons, const int client.Receive(mess, MAX_STR_LENGTH); throw RuntimeError("Detector " + std::to_string(detId) + " returned error: " + std::string(mess)); - } else { - if (ret == FORCE_UPDATE) { - updateCachedDetectorVariables(); - } - } + } } void Module::setVetoReference(const int gainIndex, const int value) { @@ -2830,22 +2783,15 @@ void Module::setModule(sls_detector_module &module, int tb) { } client.Receive(&retval, sizeof(retval)); LOG(logDEBUG1) << "Set Module returned: " << retval; - if (ret == FORCE_UPDATE) { - updateCachedDetectorVariables(); - } } sls_detector_module Module::getModule() { int fnum = F_GET_MODULE; - int ret = FAIL; LOG(logDEBUG1) << "Getting module"; sls_detector_module myMod{shm()->myDetectorType}; auto client = DetectorSocket(shm()->hostname, shm()->controlPort); - ret = client.sendCommandThenRead(fnum, nullptr, 0, nullptr, 0); + client.sendCommandThenRead(fnum, nullptr, 0, nullptr, 0); receiveModule(&myMod, client); - if (ret == FORCE_UPDATE) { - updateCachedDetectorVariables(); - } return myMod; } diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index 115c55c2f..270db3c68 100755 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -271,11 +271,6 @@ class Module : public virtual slsDetectorDefs { */ void execCommand(const std::string &cmd); - /** - * Updates some of the shared memory receiving the data from the detector - */ - void updateCachedDetectorVariables(); - /** * Get detector specific commands to write into config file * @returns vector of strings with commands diff --git a/slsSupportLib/include/sls_detector_defs.h b/slsSupportLib/include/sls_detector_defs.h index 8b9e6d56d..8cdcee9cc 100755 --- a/slsSupportLib/include/sls_detector_defs.h +++ b/slsSupportLib/include/sls_detector_defs.h @@ -87,8 +87,7 @@ class slsDetectorDefs { /** return values */ enum { OK, /**< function succeeded */ - FAIL, /**< function failed */ - FORCE_UPDATE + FAIL /**< function failed */ }; /** staus mask */ diff --git a/slsSupportLib/include/sls_detector_funcs.h b/slsSupportLib/include/sls_detector_funcs.h index 7933b6559..a574099f5 100755 --- a/slsSupportLib/include/sls_detector_funcs.h +++ b/slsSupportLib/include/sls_detector_funcs.h @@ -74,7 +74,6 @@ enum detFuncs{ F_LOCK_SERVER, F_GET_LAST_CLIENT_IP, F_SET_PORT, - F_UPDATE_CLIENT, F_ENABLE_TEN_GIGA, F_SET_ALL_TRIMBITS, F_SET_PATTERN_IO_CONTROL, @@ -365,7 +364,6 @@ static const char* getFunctionNameFromEnum(enum detFuncs func) { case F_LOCK_SERVER: return "F_LOCK_SERVER"; case F_GET_LAST_CLIENT_IP: return "F_GET_LAST_CLIENT_IP"; case F_SET_PORT: return "F_SET_PORT"; - case F_UPDATE_CLIENT: return "F_UPDATE_CLIENT"; case F_ENABLE_TEN_GIGA: return "F_ENABLE_TEN_GIGA"; case F_SET_ALL_TRIMBITS: return "F_SET_ALL_TRIMBITS"; case F_SET_PATTERN_IO_CONTROL: return "F_SET_PATTERN_IO_CONTROL"; diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index fa26ed6d2..81ce079bd 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -1,12 +1,12 @@ /** API versions */ #define GITBRANCH "removeshm" -#define APICTB 0x200402 -#define APIGOTTHARD 0x200402 -#define APIGOTTHARD2 0x200402 -#define APIJUNGFRAU 0x200402 -#define APIMYTHEN3 0x200402 -#define APIMOENCH 0x200331 #define APILIB 0x200402 #define APIRECEIVER 0x200402 #define APIGUI 0x200331 +#define APICTB 0x200407 +#define APIGOTTHARD 0x200407 +#define APIGOTTHARD2 0x200407 +#define APIJUNGFRAU 0x200407 +#define APIMYTHEN3 0x200407 +#define APIMOENCH 0x200407 #define APIEIGER 0x200407 From c4ae876ca70179be9396e5d984a0b1b12d4dee8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Br=C3=BCckner?= Date: Tue, 7 Apr 2020 17:45:53 +0200 Subject: [PATCH 31/33] Add Eiger server Init() modification also to initStopServer() --- .../eigerDetectorServer/slsDetectorFunctionList.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c index 27ce285e6..8b74cc2eb 100755 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c @@ -371,7 +371,14 @@ void initStopServer() { getModuleConfiguration(); Feb_Interface_FebInterface(); Feb_Control_FebControl(); - Feb_Control_Init(master,top,normal,getDetectorNumber()); + // different addresses for top and bottom + if (getFirmwareVersion() < FIRMWARE_VERSION_SAME_TOP_BOT_ADDR) { + Feb_Control_Init(master,top,normal, getDetectorNumber()); + } + // same addresses for top and bottom + else { + Feb_Control_Init(master,1, normal, getDetectorNumber()); + } LOG(logDEBUG1, ("Stop server: FEB Initialization done\n")); // activate (if it gets ip) (later FW will deactivate at startup) // also needed for stop server for status From 738f3412653a9c5d4c2c48c762bd0f67490b23a1 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 8 Apr 2020 08:41:39 +0200 Subject: [PATCH 32/33] eiger server compiled from previous commit --- .../bin/eigerDetectorServer_developer | Bin 346924 -> 347020 bytes slsSupportLib/include/versionAPI.h | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer index 16e384bd67f305f0176ed3456c79d82327e52fb3..01a1a81cf4f25e2fbee0a3390f472a4d4fa4cdb6 100755 GIT binary patch delta 71809 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 O>At+`*8U#Rk^c)23e2Ve delta 71466 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 Vek$|h0&s$~FRU(ctXo3d{{nDN!q5N! diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index 81ce079bd..9484a2c81 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -9,4 +9,4 @@ #define APIJUNGFRAU 0x200407 #define APIMYTHEN3 0x200407 #define APIMOENCH 0x200407 -#define APIEIGER 0x200407 +#define APIEIGER 0x200408 From 71a68c20228cd641487ce209a37003c49c01cd5c Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 8 Apr 2020 11:58:59 +0200 Subject: [PATCH 33/33] eiger transmitting fix in 10g mode (stop servers informed about 10g mode) --- slsDetectorSoftware/src/Module.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index bcf5f89a9..a8a41517e 100755 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -3216,6 +3216,10 @@ bool Module::enableTenGigabitEthernet(int value) { int retval = -1; LOG(logDEBUG1) << "Enabling / Disabling 10Gbe: " << value; sendToDetector(F_ENABLE_TEN_GIGA, value, retval); + if (value != -1) { + int stopRetval = -1; + sendToDetectorStop(F_ENABLE_TEN_GIGA, value, stopRetval); + } LOG(logDEBUG1) << "10Gbe: " << retval; value = retval; if (shm()->useReceiverFlag && value != -1) {

      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 SWmr6SC{1>W=MJ5d&i@B9H4?Z0 delta 82457 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 diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 4196e5c634dd4d76f7dc325fa0d6633363836b23..b68d2349fc21d0264405628cf4550f9a33399055 100755 GIT binary patch delta 36798 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 diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h index b2337d03b..fcc22c2eb 100755 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h @@ -413,7 +413,9 @@ int setCounterBit(int val); int pulsePixel(int n, int x, int y); int pulsePixelNMove(int n, int x, int y); int pulseChip(int n); -int64_t setRateCorrection(int64_t custom_tau_in_nsec); +int updateRateCorrection(char* mess); +int validateAndSetRateCorrection(int64_t tau_ns, char* mess); +int setRateCorrection(int64_t custom_tau_in_nsec); int getRateCorrectionEnable(); int getDefaultSettingsTau_in_nsec(); void setDefaultSettingsTau_in_nsec(int t); diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h index 12c97c534..205c495d3 100755 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h @@ -217,3 +217,5 @@ int set_current_source(int); int get_timing_source(int); int set_timing_source(int); int get_num_channels(int); +int update_rate_correction(int); + diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index d84d0ca2e..03081c483 100755 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -317,6 +317,7 @@ const char* getFunctionName(enum detFuncs func) { case F_GET_TIMING_SOURCE: return "F_GET_TIMING_SOURCE"; case F_SET_TIMING_SOURCE: return "F_SET_TIMING_SOURCE"; case F_GET_NUM_CHANNELS: return "F_GET_NUM_CHANNELS"; + case F_UPDATE_RATE_CORRECTION: return "F_UPDATE_RATE_CORRECTION"; default: return "Unknown Function"; } @@ -510,6 +511,7 @@ void function_table() { flist[F_GET_TIMING_SOURCE] = &get_timing_source; flist[F_SET_TIMING_SOURCE] = &set_timing_source; flist[F_GET_NUM_CHANNELS] = &get_num_channels; + flist[F_UPDATE_RATE_CORRECTION] = &update_rate_correction; // check if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) { @@ -2844,61 +2846,12 @@ int send_update(int file_des) { ret = OK; int n = 0; int i32 = -1; - int64_t i64 = -1; i32 = lastClientIP; i32 = __builtin_bswap32(i32); n = sendData(file_des, &i32,sizeof(i32),INT32); if (n < 0) return printSocketReadError(); - // dr - i32 = setDynamicRange(GET_FLAG); - n = sendData(file_des,&i32,sizeof(i32),INT32); - if (n < 0) return printSocketReadError(); - - // settings -#if defined(EIGERD) || defined(JUNGFRAUD) || defined(GOTTHARDD) || defined(GOTTHARD2D)|| defined(MOENCHD) - i32 = (int)getSettings(); - n = sendData(file_des,&i32,sizeof(i32),INT32); - if (n < 0) return printSocketReadError(); -#endif - - // #frames - i64 = getNumFrames(); - n = sendData(file_des,&i64,sizeof(i64),INT64); - if (n < 0) return printSocketReadError(); - - // #storage cell -#ifdef JUNGFRAUD - i64 = getNumAdditionalStorageCells(); - n = sendData(file_des,&i64,sizeof(i64),INT64); - if (n < 0) return printSocketReadError(); -#endif - - // #triggers - i64 = getNumTriggers(); - n = sendData(file_des,&i64,sizeof(i64),INT64); - if (n < 0) return printSocketReadError(); - - // #bursts -#ifdef GOTTHARD2D - i64 = getNumBursts(); - n = sendData(file_des,&i64,sizeof(i64),INT64); - if (n < 0) return printSocketReadError(); -#endif - - // timing mode - i32 = (int)getTiming(); - n = sendData(file_des,&i32,sizeof(i32),INT32); - if (n < 0) return printSocketReadError(); - - // burst mode -#ifdef GOTTHARD2D - i32 = (int)getBurstMode(); - n = sendData(file_des,&i32,sizeof(i32),INT32); - if (n < 0) return printSocketReadError(); -#endif - // number of channels #if defined(MOENCHD) || defined(CHIPTESTBOARDD) { @@ -3498,35 +3451,13 @@ int set_rate_correct(int file_des) { #else // only set if (Server_VerifyLock() == OK) { - - int dr = setDynamicRange(-1); - - // switching on in wrong bit mode - if ((tau_ns != 0) && (dr != 32) && (dr != 16)) { - ret = FAIL; - strcpy(mess,"Rate correction Deactivated, must be in 32 or 16 bit mode\n"); - LOG(logERROR,(mess)); - } - - // switching on in right mode - else { - if (tau_ns < 0) { - tau_ns = getDefaultSettingsTau_in_nsec(); - if (tau_ns < 0) { - ret = FAIL; - strcpy(mess,"Default settings file not loaded. No default tau yet\n"); - LOG(logERROR,(mess)); - } - } - else if (tau_ns > 0) { - //changing tau to a user defined value changes settings to undefined - setSettings(UNDEFINED); - LOG(logERROR, ("Settings has been changed to undefined (tau changed)\n")); - } - if (ret == OK) { - int64_t retval = setRateCorrection(tau_ns); - validate64(tau_ns, retval, "set rate correction", DEC); - } + ret = validateAndSetRateCorrection(tau_ns, mess); + int64_t retval = getCurrentTau(); // to update eiger_tau_ns (for update rate correction) + if (ret == FAIL) { + strcpy(mess, "Rate correction failed\n"); + LOG(logERROR, (mess)); + } else { + validate64(tau_ns, retval, "set rate correction", DEC); } } #endif @@ -6930,4 +6861,22 @@ int get_num_channels(int file_des) { LOG(logDEBUG1, ("Get number of channels sretval:[%d, %d]\n", retvals[0], retvals[1])); #endif return Server_SendResult(file_des, INT32, UPDATE, retvals, sizeof(retvals)); +} + + + +int update_rate_correction(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + +#ifndef EIGERD + functionNotImplemented(); +#else + LOG(logINFO, ("Update Rate Correction\n")); + // only set + if (Server_VerifyLock() == OK) { + ret = updateRateCorrection(mess); + } +#endif + return Server_SendResult(file_des, INT32, UPDATE, NULL, 0); } \ No newline at end of file diff --git a/slsDetectorSoftware/src/CmdProxy.cpp b/slsDetectorSoftware/src/CmdProxy.cpp index 971d5a954..1c578757e 100644 --- a/slsDetectorSoftware/src/CmdProxy.cpp +++ b/slsDetectorSoftware/src/CmdProxy.cpp @@ -785,6 +785,47 @@ std::vector CmdProxy::DacCommands() { } /* acquisition */ + +std::string CmdProxy::ReceiverStatus(int action) { + std::ostringstream os; + os << cmd << ' '; + if (action == defs::HELP_ACTION) { + os << "running, idle]\n\tReceiver listener status." + << '\n'; + } else if (action == defs::GET_ACTION) { + if (args.size() != 0) { + WrongNumberOfParameters(0); + } + auto t = det->getReceiverStatus({det_id}); + os << OutString(t) << '\n'; + } else if (action == defs::PUT_ACTION) { + throw sls::RuntimeError("Cannot put. Did you mean to use command 'rx_start' or 'rx_stop'?"); + } else { + throw sls::RuntimeError("Unknown action"); + } + return os.str(); +} + +std::string CmdProxy::DetectorStatus(int action) { + std::ostringstream os; + os << cmd << ' '; + if (action == defs::HELP_ACTION) { + os << "[running, error, transmitting, finished, waiting, idle]\n\tDetector status." + << '\n'; + } else if (action == defs::GET_ACTION) { + if (args.size() != 0) { + WrongNumberOfParameters(0); + } + auto t = det->getDetectorStatus({det_id}); + os << OutString(t) << '\n'; + } else if (action == defs::PUT_ACTION) { + throw sls::RuntimeError("Cannot put. Did you mean to use command 'start' or 'stop'?"); + } else { + throw sls::RuntimeError("Unknown action"); + } + return os.str(); +} + /* Network Configuration (Detector<->Receiver) */ std::string CmdProxy::UDPDestinationIP(int action) { diff --git a/slsDetectorSoftware/src/CmdProxy.h b/slsDetectorSoftware/src/CmdProxy.h index fe063e294..bc48de4ba 100644 --- a/slsDetectorSoftware/src/CmdProxy.h +++ b/slsDetectorSoftware/src/CmdProxy.h @@ -691,8 +691,8 @@ class CmdProxy { {"rx_stop", &CmdProxy::rx_stop}, {"start", &CmdProxy::start}, {"stop", &CmdProxy::stop}, - {"rx_status", &CmdProxy::rx_status}, - {"status", &CmdProxy::status}, + {"rx_status", &CmdProxy::ReceiverStatus}, + {"status", &CmdProxy::DetectorStatus}, {"rx_framescaught", &CmdProxy::rx_framescaught}, {"rx_missingpackets", &CmdProxy::rx_missingpackets}, {"startingfnum", &CmdProxy::startingfnum}, @@ -934,6 +934,8 @@ class CmdProxy { std::string DacValues(int action); std::vector DacCommands(); /* acquisition */ + std::string ReceiverStatus(int action); + std::string DetectorStatus(int action); /* Network Configuration (Detector<->Receiver) */ std::string UDPDestinationIP(int action); std::string UDPDestinationIP2(int action); @@ -1363,12 +1365,6 @@ class CmdProxy { EXECUTE_SET_COMMAND_NOID(stop, stopDetector, "\n\tStops detector state machine."); - GET_COMMAND(rx_status, getReceiverStatus, - "running, idle]\n\tReceiver listener status."); - - GET_COMMAND(status, getDetectorStatus, - "[running, error, transmitting, finished, waiting, idle]\n\tDetector status."); - GET_COMMAND(rx_framescaught, getFramesCaught, "\n\tNumber of frames caught by receiver."); diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index 92e58fd05..f5bc47b37 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -234,8 +234,7 @@ Result Detector::getPeriodLeft(Positions pos) const { } Result Detector::getTimingMode(Positions pos) const { - return pimpl->Parallel(&Module::setTimingMode, pos, - defs::GET_TIMING_MODE); + return pimpl->Parallel(&Module::getTimingMode, pos); } void Detector::setTimingMode(defs::timingMode value, Positions pos) { @@ -923,7 +922,7 @@ void Detector::setClientZmqIp(const IpAddr ip, Positions pos) { // Eiger Specific Result Detector::getDynamicRange(Positions pos) const { - return pimpl->Parallel(&Module::setDynamicRange, pos, -1); + return pimpl->Parallel(&Module::getDynamicRange, pos); } void Detector::setDynamicRange(int value) { diff --git a/slsDetectorSoftware/src/DetectorImpl.cpp b/slsDetectorSoftware/src/DetectorImpl.cpp index af32236c0..5867b4f4c 100755 --- a/slsDetectorSoftware/src/DetectorImpl.cpp +++ b/slsDetectorSoftware/src/DetectorImpl.cpp @@ -462,6 +462,7 @@ void DetectorImpl::readFrameFromReceiver() { std::string currentFileName; uint64_t currentAcquisitionIndex = -1, currentFrameIndex = -1, currentFileIndex = -1; + int currentProgress = -1; uint32_t currentSubFrameIndex = -1, coordX = -1, coordY = -1, flippedDataX = -1; @@ -540,6 +541,7 @@ void DetectorImpl::readFrameFromReceiver() { currentFileName = zHeader.fname; currentAcquisitionIndex = zHeader.acqIndex; currentFrameIndex = zHeader.frameIndex; + currentProgress = zHeader.progress; currentFileIndex = zHeader.fileIndex; currentSubFrameIndex = zHeader.expLength; coordY = zHeader.row; @@ -559,6 +561,7 @@ void DetectorImpl::readFrameFromReceiver() { << "\n\tcurrentFrameIndex: " << currentFrameIndex << "\n\tcurrentFileIndex: " << currentFileIndex << "\n\tcurrentSubFrameIndex: " << currentSubFrameIndex + << "\n\tcurrentProgress: " << currentProgress << "\n\tcoordX: " << coordX << "\n\tcoordY: " << coordY << "\n\tflippedDataX: " << flippedDataX << "\n\tcompleteImage: " << completeImage; @@ -613,7 +616,6 @@ void DetectorImpl::readFrameFromReceiver() { // send data to callback if (data) { - setCurrentProgress(currentFrameIndex + 1); char* image = multiframe; int imagesize = multisize; @@ -630,7 +632,7 @@ void DetectorImpl::readFrameFromReceiver() { << "\n\timagesize: " << imagesize << "\n\tdynamicRange: " << dynamicRange; - thisData = new detectorData(getCurrentProgress(), + thisData = new detectorData(currentProgress, currentFileName, nDetPixelsX, nDetPixelsY, image, imagesize, dynamicRange, currentFileIndex, completeImage); @@ -1004,38 +1006,6 @@ void DetectorImpl::registerDataCallback(void (*userCallback)(detectorData *, enableDataStreamingToClient(dataReady == nullptr ? 0 : 1); } -double DetectorImpl::setTotalProgress() { - int64_t tot = Parallel(&Module::getTotalNumFramesToReceive, {}) - .tsquash("Inconsistent number of total frames (#frames x #triggers(or bursts) x #storage cells)"); - if (tot == 0) { - throw RuntimeError("Invalid Total Number of frames (0)"); - } - totalProgress = tot; - LOG(logDEBUG1) << "Set total progress " << totalProgress << std::endl; - return totalProgress; -} - -double DetectorImpl::getCurrentProgress() { - std::lock_guard lock(mp); - return 100. * progressIndex / totalProgress; -} - -void DetectorImpl::incrementProgress() { - std::lock_guard lock(mp); - progressIndex += 1; - std::cout << std::fixed << std::setprecision(2) << std::setw(6) - << 100. * progressIndex / totalProgress << " \%"; - std::cout << '\r' << std::flush; -} - -void DetectorImpl::setCurrentProgress(int64_t i) { - std::lock_guard lock(mp); - progressIndex = (double)i; - std::cout << std::fixed << std::setprecision(2) << std::setw(6) - << 100. * progressIndex / totalProgress << " \%"; - std::cout << '\r' << std::flush; -} - int DetectorImpl::acquire() { // ensure acquire isnt started multiple times by same client if (!isAcquireReady()) { @@ -1056,7 +1026,7 @@ int DetectorImpl::acquire() { bool receiver = Parallel(&Module::getUseReceiverFlag, {}).squash(false); - progressIndex = 0; + setJoinThreadFlag(false); // verify receiver is idle @@ -1066,7 +1036,6 @@ int DetectorImpl::acquire() { Parallel(&Module::stopReceiver, {}); } } - setTotalProgress(); startProcessingThread(); @@ -1106,12 +1075,10 @@ int DetectorImpl::acquire() { dataProcessingThread.join(); if (acquisition_finished != nullptr) { - // same status for all, else error - int status = static_cast(ERROR); - auto t = Parallel(&Module::getRunStatus, {}); - if (t.equal()) - status = t.front(); - acquisition_finished(getCurrentProgress(), status, acqFinished_p); + int status = Parallel(&Module::getRunStatus, {}).squash(ERROR); + auto a = Parallel(&Module::getReceiverProgress, {}); + int progress = (*std::min_element (a.begin(), a.end())); + acquisition_finished((double)progress, status, acqFinished_p); } sem_destroy(&sem_newRTAcquisition); @@ -1130,8 +1097,14 @@ int DetectorImpl::acquire() { return OK; } +void DetectorImpl::printProgress(double progress) { + std::cout << std::fixed << std::setprecision(2) << std::setw(6) + << progress << " \%"; + std::cout << '\r' << std::flush; +} + + void DetectorImpl::startProcessingThread() { - setTotalProgress(); dataProcessingThread = std::thread(&DetectorImpl::processData, this); } @@ -1142,7 +1115,9 @@ void DetectorImpl::processData() { } // only update progress else { - int64_t caught = -1; + double progress = 0; + printProgress(progress); + while (true) { // to exit acquire by typing q if (kbhit() != 0) { @@ -1152,16 +1127,18 @@ void DetectorImpl::processData() { Parallel(&Module::stopAcquisition, {}); } } - // get progress - caught = Parallel(&Module::getFramesCaughtByReceiver, {0}) - .squash(); - - // updating progress - if (caught != -1) { - setCurrentProgress(caught); + // get and print progress + double temp = (double)Parallel(&Module::getReceiverProgress, {0}).squash(); + if (temp != progress) { + printProgress(progress); + progress = temp; } + // exiting loop if (getJoinThreadFlag()) { + // print progress one final time before exiting + progress = (double)Parallel(&Module::getReceiverProgress, {0}).squash(); + printProgress(progress); break; } // otherwise error when connecting to the receiver too fast diff --git a/slsDetectorSoftware/src/DetectorImpl.h b/slsDetectorSoftware/src/DetectorImpl.h index d39e95a34..21424c712 100755 --- a/slsDetectorSoftware/src/DetectorImpl.h +++ b/slsDetectorSoftware/src/DetectorImpl.h @@ -354,13 +354,7 @@ class DetectorImpl : public virtual slsDetectorDefs { int InsertGapPixels(char *image, char *&gpImage, bool quadEnable, int dr, int &nPixelsx, int &nPixelsy); - double setTotalProgress(); - - double getCurrentProgress(); - - void incrementProgress(); - - void setCurrentProgress(int64_t i = 0); + void printProgress(double progress); void startProcessingThread(); @@ -405,12 +399,6 @@ class DetectorImpl : public virtual slsDetectorDefs { * from ext. process) */ sem_t sem_endRTAcquisition; - /** Total number of frames/images for next acquisition */ - double totalProgress{0}; - - /** Current progress or frames/images processed in current acquisition */ - double progressIndex{0}; - /** mutex to synchronize main and data processing threads */ mutable std::mutex mp; diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index a523912d3..f68ae5ee5 100755 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -396,14 +396,6 @@ void Module::initializeDetectorStructure(detectorType type) { shm()->controlPort = DEFAULT_PORTNO; shm()->stopPort = DEFAULT_PORTNO + 1; sls::strcpy_safe(shm()->settingsDir, getenv("HOME")); - shm()->currentSettings = UNINITIALIZED; - shm()->nFrames = 1; - shm()->nTriggers = 1; - shm()->nBursts = 1; - shm()->nAddStorageCells = 0; - shm()->timingMode = AUTO_TIMING; - shm()->burstMode = BURST_INTERNAL; - shm()->deadTime = 0; sls::strcpy_safe(shm()->rxHostname, "none"); shm()->rxTCPPort = DEFAULT_PORTNO + 2; shm()->useReceiverFlag = false; @@ -420,7 +412,6 @@ void Module::initializeDetectorStructure(detectorType type) { shm()->nChip.x = parameters.nChipX; shm()->nChip.y = parameters.nChipY; shm()->nDacs = parameters.nDacs; - shm()->dynamicRange = parameters.dynamicRange; } int Module::sendModule(sls_detector_module *myMod, @@ -719,54 +710,11 @@ void Module::updateCachedDetectorVariables() { if (client.sendCommandThenRead(fnum, nullptr, 0, nullptr, 0) == FORCE_UPDATE) { int n = 0, i32 = 0; - int64_t i64 = 0; sls::IpAddr lastClientIP; n += client.Receive(&lastClientIP, sizeof(lastClientIP)); LOG(logDEBUG1) << "Updating detector last modified by " << lastClientIP; - // dr - n += client.Receive(&i32, sizeof(i32)); - shm()->dynamicRange = i32; - - // settings - 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(i32); - } - - // frame number - n += client.Receive(&i64, sizeof(i64)); - shm()->nFrames = i64; - - // storage cell - if (shm()->myDetectorType == JUNGFRAU) { - n += client.Receive(&i64, sizeof(i64)); - shm()->nAddStorageCells = i64; - } - - // triggers - n += client.Receive(&i64, sizeof(i64)); - shm()->nTriggers = i64; - - // bursts - if (shm()->myDetectorType == GOTTHARD2) { - n += client.Receive(&i64, sizeof(i64)); - shm()->nBursts = i64; - } - - // timing mode - n += client.Receive(&i32, sizeof(i32)); - shm()->timingMode = static_cast(i32); - - // burst mode - if (shm()->myDetectorType == GOTTHARD2) { - n += client.Receive(&i32, sizeof(i32)); - shm()->burstMode = static_cast(i32); - } - // number of channels (depends on #samples, adcmask) if (shm()->myDetectorType == CHIPTESTBOARD || shm()->myDetectorType == MOENCH) { @@ -863,49 +811,21 @@ std::vector Module::getConfigFileCommands() { } slsDetectorDefs::detectorSettings Module::getSettings() { - return sendSettingsOnly(GET_SETTINGS); + int arg = -1; + int retval = -1; + sendToDetector(F_SET_SETTINGS, arg, retval); + LOG(logDEBUG1) << "Settings: " << retval; + return static_cast(retval); } -slsDetectorDefs::detectorSettings -Module::setSettings(detectorSettings isettings) { - LOG(logDEBUG1) << "Module setSettings " << isettings; - - if (isettings == -1) { - return getSettings(); - } - - // eiger: only set shm, setting threshold loads the module data +void Module::setSettings(detectorSettings isettings) { if (shm()->myDetectorType == EIGER) { - switch (isettings) { - case STANDARD: - case HIGHGAIN: - case LOWGAIN: - case VERYHIGHGAIN: - case VERYLOWGAIN: - shm()->currentSettings = isettings; - return shm()->currentSettings; - default: - std::ostringstream ss; - ss << "Unknown settings " << ToString(isettings) - << " for this detector!"; - throw RuntimeError(ss.str()); - } + throw RuntimeError("Cannot set settings for Eiger. Use threshold energy."); } - - // others: send only the settings, detector server will update dac values - // already in server - return sendSettingsOnly(isettings); -} - -slsDetectorDefs::detectorSettings -Module::sendSettingsOnly(detectorSettings isettings) { int arg = static_cast(isettings); int retval = -1; LOG(logDEBUG1) << "Setting settings to " << arg; sendToDetector(F_SET_SETTINGS, arg, retval); - LOG(logDEBUG1) << "Settings: " << retval; - shm()->currentSettings = static_cast(retval); - return shm()->currentSettings; } int Module::getThresholdEnergy() { @@ -944,8 +864,11 @@ void Module::setThresholdEnergy(int e_eV, detectorSettings isettings, else if (shm()->myDetectorType == MOENCH) { setAdditionalJsonParameter("threshold", std::to_string(e_eV)); } - throw RuntimeError( + + else { + throw RuntimeError( "Set threshold energy not implemented for this detector"); + } } void Module::setThresholdEnergyAndSettings(int e_eV, @@ -954,7 +877,7 @@ void Module::setThresholdEnergyAndSettings(int e_eV, // if settings provided, use that, else use the shared memory variable detectorSettings is = - ((isettings != GET_SETTINGS) ? isettings : shm()->currentSettings); + ((isettings != GET_SETTINGS) ? isettings : getSettings()); // verify e_eV exists in trimEneregies[] if (shm()->trimEnergies.empty() || (e_eV < shm()->trimEnergies.front()) || @@ -999,8 +922,7 @@ void Module::setThresholdEnergyAndSettings(int e_eV, linearInterpolation(e_eV, trim1, trim2, myMod1.tau, myMod2.tau); } - shm()->currentSettings = is; - myMod.reg = shm()->currentSettings; + myMod.reg = is; myMod.eV = e_eV; setModule(myMod, tb); if (getSettings() != is) { @@ -1161,101 +1083,64 @@ uint64_t Module::getStartingFrameNumber() { return retval; } -int64_t Module::getTotalNumFramesToReceive() { - int64_t repeats = shm()->nTriggers; - // gotthard2 & auto & burst mode, use nBursts instead of nTriggers - if (shm()->myDetectorType == GOTTHARD2) { - // auto mode (either bursts or no repeats) - if (shm()->timingMode == AUTO_TIMING) { - if (shm()->burstMode != BURST_OFF) { - repeats = shm()->nBursts; - } else { - repeats = 1; - } - } - } - return (shm()->nFrames * repeats * (int64_t)(shm()->nAddStorageCells + 1)); -} - -void Module::sendTotalNumFramestoReceiver() { - if (shm()->useReceiverFlag) { - int64_t arg = getTotalNumFramesToReceive(); - LOG(logDEBUG1) << "Sending total number of frames (#f x #t x #s) to Receiver: " << arg; - sendToReceiver(F_RECEIVER_SET_NUM_FRAMES, arg, nullptr); - } -} - int64_t Module::getNumberOfFrames() { int64_t retval = -1; sendToDetector(F_GET_NUM_FRAMES, nullptr, retval); LOG(logDEBUG1) << "number of frames :" << retval; - if (shm()->nFrames != retval) { - shm()->nFrames = retval; - sendTotalNumFramestoReceiver(); - } - return shm()->nFrames; + return retval; } void Module::setNumberOfFrames(int64_t value) { LOG(logDEBUG1) << "Setting number of frames to " << value; sendToDetector(F_SET_NUM_FRAMES, value, nullptr); - shm()->nFrames = value; - sendTotalNumFramestoReceiver(); + if (shm()->useReceiverFlag) { + LOG(logDEBUG1) << "Sending number of frames to Receiver: " << value; + sendToReceiver(F_RECEIVER_SET_NUM_FRAMES, value, nullptr); + } } int64_t Module::getNumberOfTriggers() { int64_t retval = -1; sendToDetector(F_GET_NUM_TRIGGERS, nullptr, retval); LOG(logDEBUG1) << "number of triggers :" << retval; - if (shm()->nTriggers != retval) { - shm()->nTriggers = retval; - sendTotalNumFramestoReceiver(); - } - return shm()->nTriggers; + return retval; } void Module::setNumberOfTriggers(int64_t value) { LOG(logDEBUG1) << "Setting number of triggers to " << value; sendToDetector(F_SET_NUM_TRIGGERS, value, nullptr); - shm()->nTriggers = value; - sendTotalNumFramestoReceiver(); + if (shm()->useReceiverFlag) { + LOG(logDEBUG1) << "Sending number of triggers to Receiver: " << value; + sendToReceiver(F_SET_RECEIVER_NUM_TRIGGERS, value, nullptr); + } } int64_t Module::getNumberOfBursts() { int64_t retval = -1; sendToDetector(F_GET_NUM_BURSTS, nullptr, retval); LOG(logDEBUG1) << "number of bursts :" << retval; - if (shm()->nBursts != retval) { - shm()->nBursts = retval; - sendTotalNumFramestoReceiver(); - } - return shm()->nBursts; + return retval; } void Module::setNumberOfBursts(int64_t value) { LOG(logDEBUG1) << "Setting number of bursts to " << value; sendToDetector(F_SET_NUM_BURSTS, value, nullptr); - shm()->nBursts = value; - sendTotalNumFramestoReceiver(); + if (shm()->useReceiverFlag) { + LOG(logDEBUG1) << "Sending number of bursts to Receiver: " << value; + sendToReceiver(F_SET_RECEIVER_NUM_BURSTS, value, nullptr); + } } int Module::getNumberOfAdditionalStorageCells() { - int prevVal = shm()->nAddStorageCells; int retval = -1; sendToDetector(F_GET_NUM_ADDITIONAL_STORAGE_CELLS, nullptr, retval); LOG(logDEBUG1) << "number of storage cells :" << retval; - shm()->nAddStorageCells = retval; - if (prevVal != retval) { - sendTotalNumFramestoReceiver(); - } - return shm()->nAddStorageCells; + return retval; } void Module::setNumberOfAdditionalStorageCells(int value) { LOG(logDEBUG1) << "Setting number of storage cells to " << value; sendToDetector(F_SET_NUM_ADDITIONAL_STORAGE_CELLS, value, nullptr); - shm()->nAddStorageCells = value; - sendTotalNumFramestoReceiver(); } int Module::getNumberOfAnalogSamples() { @@ -1305,16 +1190,13 @@ void Module::setExptime(int64_t value) { } LOG(logDEBUG1) << "Setting exptime to " << value << "ns"; sendToDetector(F_SET_EXPTIME, value, nullptr); - if (shm()->myDetectorType == EIGER && prevVal != value && shm()->dynamicRange == 16) { - int r = getRateCorrection(); - if (r != 0) { - setRateCorrection(r); - } - } if (shm()->useReceiverFlag) { LOG(logDEBUG1) << "Sending exptime to Receiver: " << value; sendToReceiver(F_RECEIVER_SET_EXPTIME, value, nullptr); } + if (prevVal != value) { + updateRateCorrection(); + } } int64_t Module::getPeriod() { @@ -1358,17 +1240,14 @@ void Module::setSubExptime(int64_t value) { prevVal = getSubExptime(); } LOG(logDEBUG1) << "Setting sub exptime to " << value << "ns"; - sendToDetector(F_SET_SUB_EXPTIME, value, nullptr); - if (shm()->myDetectorType == EIGER && prevVal != value && shm()->dynamicRange == 32) { - int r = getRateCorrection(); - if (r != 0) { - setRateCorrection(r); - } - } + sendToDetector(F_SET_SUB_EXPTIME, value, nullptr); if (shm()->useReceiverFlag) { LOG(logDEBUG1) << "Sending sub exptime to Receiver: " << value; sendToReceiver(F_RECEIVER_SET_SUB_EXPTIME, value, nullptr); } + if (prevVal != value) { + updateRateCorrection(); + } } int64_t Module::getSubDeadTime() { @@ -1466,48 +1345,68 @@ int64_t Module::getMeasurementTime() const { return retval; } -slsDetectorDefs::timingMode Module::setTimingMode(timingMode value) { - int fnum = F_SET_TIMING_MODE; - //auto arg = static_cast(pol); +slsDetectorDefs::timingMode Module::getTimingMode() { + int arg = -1; timingMode retval = GET_TIMING_MODE; - LOG(logDEBUG1) << "Setting communication to mode " << value; - sendToDetector(fnum, static_cast(value), retval); + sendToDetector(F_SET_TIMING_MODE, arg, retval); LOG(logDEBUG1) << "Timing Mode: " << retval; - shm()->timingMode = retval; return retval; } -int Module::setDynamicRange(int n) { - // TODO! Properly handle fail - int prevDr = shm()->dynamicRange; +void Module::setTimingMode(timingMode value) { + timingMode retval = GET_TIMING_MODE; + LOG(logDEBUG1) << "Setting timing mode to " << value; + sendToDetector(F_SET_TIMING_MODE, static_cast(value), retval); + if (shm()->useReceiverFlag) { + LOG(logDEBUG1) << "Sending timing mode to Receiver: " << value; + sendToReceiver(F_SET_RECEIVER_TIMING_MODE, value, nullptr); + } +} + +int Module::getDynamicRange() { + int arg = -1; + int retval = -1; + sendToDetector(F_SET_DYNAMIC_RANGE, arg, retval); + LOG(logDEBUG1) << "Dynamic Range: " << retval; + return retval; +} + +void Module::setDynamicRange(int n) { + int prev_val = n; + if (shm()->myDetectorType == EIGER) { + prev_val = getDynamicRange(); + } int retval = -1; LOG(logDEBUG1) << "Setting dynamic range to " << n; sendToDetector(F_SET_DYNAMIC_RANGE, n, retval); LOG(logDEBUG1) << "Dynamic Range: " << retval; - shm()->dynamicRange = retval; if (shm()->useReceiverFlag) { - n = shm()->dynamicRange; + int arg = retval; retval = -1; - LOG(logDEBUG1) << "Sending dynamic range to receiver: " << n; - sendToReceiver(F_SET_RECEIVER_DYNAMIC_RANGE, n, retval); + LOG(logDEBUG1) << "Sending dynamic range to receiver: " << arg; + sendToReceiver(F_SET_RECEIVER_DYNAMIC_RANGE, arg, retval); LOG(logDEBUG1) << "Receiver Dynamic range: " << retval; } // changes in dr - int dr = shm()->dynamicRange; - if (prevDr != dr && shm()->myDetectorType == EIGER) { - updateRateCorrection(); + if (n != prev_val) { // update speed for usability - if (dr == 32) { - LOG(logINFO) << "Setting Clock to Quarter Speed to cope with Dynamic Range of 32"; setClockDivider(RUN_CLOCK, 2); - } else { - LOG(logINFO) << "Setting Clock to Full Speed to cope with Dynamic Range of " << dr; setClockDivider(RUN_CLOCK, 0); + switch (n) { + case 32: + LOG(logINFO) << "Setting Clock to Quarter Speed to cope with Dynamic Range of 32"; + setClockDivider(RUN_CLOCK, 2); + break; + case 16: + LOG(logINFO) << "Setting Clock to Full Speed to cope with Dynamic Range of " << n; + setClockDivider(RUN_CLOCK, 0); + break; + default: + break; } + updateRateCorrection(); } - - return shm()->dynamicRange; } int Module::setDAC(int val, dacIndex index, int mV) { @@ -1701,7 +1600,9 @@ std::string Module::setReceiverHostname(const std::string &receiverIP) { LOG(logDEBUG1) << printReceiverConfiguration(); setReceiverUDPSocketBufferSize(0); - sendTotalNumFramestoReceiver(); + setNumberOfFrames(getNumberOfFrames()); + setNumberOfTriggers(getNumberOfTriggers()); + setTimingMode(getTimingMode()); setExptime(getExptime()); setPeriod(getPeriod()); @@ -1711,7 +1612,7 @@ std::string Module::setReceiverHostname(const std::string &receiverIP) { case EIGER: setSubExptime(getSubExptime()); setSubDeadTime(getSubDeadTime()); - setDynamicRange(shm()->dynamicRange); + setDynamicRange(getDynamicRange()); activate(-1); enableTenGigabitEthernet(-1); setQuad(getQuad()); @@ -1739,7 +1640,12 @@ std::string Module::setReceiverHostname(const std::string &receiverIP) { case MYTHEN3: sendNumberofCounterstoReceiver(getCounterMask()); - setDynamicRange(shm()->dynamicRange); + setDynamicRange(getDynamicRange()); + break; + + case GOTTHARD2: + setNumberOfBursts(getNumberOfBursts()); + setBurstMode(getBurstMode()); break; default: @@ -2374,15 +2280,17 @@ slsDetectorDefs::burstMode Module::getBurstMode() { int retval = -1; sendToDetector(F_GET_BURST_MODE, nullptr, retval); LOG(logDEBUG1) << "Burst mode:" << retval; - shm()->burstMode = static_cast(retval); - return shm()->burstMode; + return static_cast(retval); } void Module::setBurstMode(slsDetectorDefs::burstMode value) { int arg = static_cast(value); LOG(logDEBUG1) << "Setting burst mode to " << arg; sendToDetector(F_SET_BURST_MODE, arg, nullptr); - shm()->burstMode = value; + if (shm()->useReceiverFlag) { + LOG(logDEBUG1) << "Sending burst mode to Receiver: " << value; + sendToReceiver(F_SET_RECEIVER_BURST_MODE, value, nullptr); + } } bool Module::getCurrentSource() { @@ -2950,37 +2858,23 @@ void Module::setDefaultRateCorrection() { LOG(logDEBUG1) << "Setting Default Rate Correction"; int64_t arg = -1; sendToDetector(F_SET_RATE_CORRECT, arg, nullptr); - shm()->deadTime = -1; } void Module::setRateCorrection(int64_t t) { LOG(logDEBUG1) << "Setting Rate Correction to " << t; sendToDetector(F_SET_RATE_CORRECT, t, nullptr); - shm()->deadTime = t; } int64_t Module::getRateCorrection() { int64_t retval = -1; - LOG(logDEBUG1) << "Getting rate correction"; sendToDetector(F_GET_RATE_CORRECT, nullptr, retval); - shm()->deadTime = retval; LOG(logDEBUG1) << "Rate correction: " << retval; return retval; } void Module::updateRateCorrection() { - if (shm()->deadTime != 0) { - switch (shm()->dynamicRange) { - case 16: - case 32: - setRateCorrection(shm()->deadTime); - break; - default: - setRateCorrection(0); - throw sls::RuntimeError( - "Rate correction Deactivated, must be in 32 or 16 bit mode"); - } - } + LOG(logDEBUG1) << "Updating rate correction"; + sendToDetector(F_UPDATE_RATE_CORRECTION); } std::string Module::printReceiverConfiguration() { @@ -3281,6 +3175,15 @@ uint64_t Module::getReceiverCurrentFrameIndex() const { return retval; } +int Module::getReceiverProgress() const { + int retval = -1; + if (shm()->useReceiverFlag) { + sendToReceiver(F_GET_RECEIVER_PROGRESS, nullptr, retval); + LOG(logDEBUG1) << "Current Progress of Receiver: " << retval; + } + return retval; +} + void Module::setFileWrite(bool value) { if (!shm()->useReceiverFlag) { throw RuntimeError("Set rx_hostname first to use receiver parameters (file write enable)"); diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index 873f43ebc..115c55c2f 100755 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -14,7 +14,7 @@ class ServerInterface; #define SLS_SHMAPIVERSION 0x190726 -#define SLS_SHMVERSION 0x200324 +#define SLS_SHMVERSION 0x200402 namespace sls{ @@ -62,33 +62,6 @@ struct sharedSlsDetector { /** number of dacs per module*/ int nDacs; - /** dynamic range of the detector data */ - int dynamicRange; - - /** detector settings (standard, fast, etc.) */ - slsDetectorDefs::detectorSettings currentSettings; - - /** number of frames */ - int64_t nFrames; - - /** number of triggers */ - int64_t nTriggers; - - /** number of bursts */ - int64_t nBursts; - - /** number of additional storage cells */ - int nAddStorageCells; - - /** timing mode */ - slsDetectorDefs::timingMode timingMode; - - /** burst mode */ - slsDetectorDefs::burstMode burstMode; - - /** rate correction in ns (needed for default -1) */ - int64_t deadTime; - /** ip address/hostname of the receiver for client control via TCP */ char rxHostname[MAX_STR_LENGTH]; @@ -309,10 +282,6 @@ class Module : public virtual slsDetectorDefs { */ std::vector getConfigFileCommands(); - /** - * Get detector settings - * @returns current settings - */ detectorSettings getSettings(); /** [Jungfrau] Options:DYNAMICGAIN, DYNAMICHG0, FIXGAIN1, FIXGAIN2, FORCESWITCHG1, FORCESWITCHG2 @@ -320,18 +289,8 @@ class Module : public virtual slsDetectorDefs { * [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); - - /** - * Send detector settings only (set only for Jungfrau, Gotthard, Moench, get - * for all) Only the settings enum is sent to the detector, where it will - * initialize al the dacs already hard coded in the detector server - * @param isettings settings - * @returns current settings - */ - detectorSettings sendSettingsOnly(detectorSettings isettings); + void setSettings(detectorSettings isettings); /** * Get threshold energy (Mythen and Eiger) @@ -445,10 +404,6 @@ class Module : public virtual slsDetectorDefs { */ uint64_t getStartingFrameNumber(); - int64_t getTotalNumFramesToReceive(); - - void sendTotalNumFramestoReceiver(); - int64_t getNumberOfFrames(); void setNumberOfFrames(int64_t value); @@ -556,22 +511,17 @@ class Module : public virtual slsDetectorDefs { * [Gotthard2] only in continuous mode */ int64_t getMeasurementTime() const; - /** - * Set/get timing mode - * @param value timing mode (-1 gets) - * @returns current timing mode - */ - timingMode setTimingMode(timingMode value = GET_TIMING_MODE); + timingMode getTimingMode(); + void setTimingMode(timingMode value); + + int getDynamicRange(); /** * Set/get dynamic range * (Eiger: If i is 32, also sets clkdivider to 2, if 16, sets clkdivider to * 1) - * @param i dynamic range (-1 get) - * @returns current dynamic range - * \sa sharedSlsDetector */ - int setDynamicRange(int n = -1); + void setDynamicRange(int n); /** * Set/get dacs value @@ -1467,6 +1417,7 @@ class Module : public virtual slsDetectorDefs { * @returns current frame index of receiver */ uint64_t getReceiverCurrentFrameIndex() const; + int getReceiverProgress() const; void setFileWrite(bool value); diff --git a/slsReceiverSoftware/src/ClientInterface.cpp b/slsReceiverSoftware/src/ClientInterface.cpp index 44e39f99a..2926ed72e 100755 --- a/slsReceiverSoftware/src/ClientInterface.cpp +++ b/slsReceiverSoftware/src/ClientInterface.cpp @@ -118,7 +118,12 @@ int ClientInterface::functionTable(){ flist[F_GET_RECEIVER_TYPE] = &ClientInterface::set_detector_type; flist[F_SEND_RECEIVER_DETHOSTNAME] = &ClientInterface::set_detector_hostname; flist[F_RECEIVER_SET_ROI] = &ClientInterface::set_roi; - flist[F_RECEIVER_SET_NUM_FRAMES] = &ClientInterface::set_num_frames; + flist[F_RECEIVER_SET_NUM_FRAMES] = &ClientInterface::set_num_frames; + flist[F_SET_RECEIVER_NUM_TRIGGERS] = &ClientInterface::set_num_triggers; + flist[F_SET_RECEIVER_NUM_BURSTS] = &ClientInterface::set_num_bursts; + flist[F_SET_RECEIVER_NUM_ADD_STORAGE_CELLS] = &ClientInterface::set_num_add_storage_cells; + flist[F_SET_RECEIVER_TIMING_MODE] = &ClientInterface::set_timing_mode; + flist[F_SET_RECEIVER_BURST_MODE] = &ClientInterface::set_burst_mode; flist[F_RECEIVER_SET_NUM_ANALOG_SAMPLES]= &ClientInterface::set_num_analog_samples; flist[F_RECEIVER_SET_NUM_DIGITAL_SAMPLES]= &ClientInterface::set_num_digital_samples; flist[F_RECEIVER_SET_EXPTIME] = &ClientInterface::set_exptime; @@ -195,7 +200,8 @@ int ClientInterface::functionTable(){ flist[F_INCREMENT_FILE_INDEX] = &ClientInterface::increment_file_index; flist[F_SET_ADDITIONAL_JSON_PARAMETER] = &ClientInterface::set_additional_json_parameter; flist[F_GET_ADDITIONAL_JSON_PARAMETER] = &ClientInterface::get_additional_json_parameter; - + flist[F_GET_RECEIVER_PROGRESS] = &ClientInterface::get_progress; + for (int i = NUM_DET_FUNCTIONS + 1; i < NUM_REC_FUNCTIONS ; i++) { LOG(logDEBUG1) << "function fnum: " << i << " (" << getFunctionNameFromEnum((enum detFuncs)i) << ") located at " << flist[i]; @@ -415,8 +421,85 @@ int ClientInterface::set_roi(Interface &socket) { int ClientInterface::set_num_frames(Interface &socket) { auto value = socket.Receive(); + if (value <= 0) { + throw RuntimeError("Invalid number of frames " + + std::to_string(value)); + } + verifyIdle(socket); LOG(logDEBUG1) << "Setting num frames to " << value; impl()->setNumberOfFrames(value); + int64_t retval = impl()->getNumberOfFrames(); + validate(value, retval, "set number of frames", DEC); + return socket.Send(OK); +} + +int ClientInterface::set_num_triggers(Interface &socket) { + auto value = socket.Receive(); + if (value <= 0) { + throw RuntimeError("Invalid number of triggers " + + std::to_string(value)); + } + verifyIdle(socket); + LOG(logDEBUG1) << "Setting num triggers to " << value; + impl()->setNumberOfTriggers(value); + int64_t retval = impl()->getNumberOfTriggers(); + validate(value, retval, "set number of triggers", DEC); + return socket.Send(OK); +} + +int ClientInterface::set_num_bursts(Interface &socket) { + auto value = socket.Receive(); + if (value <= 0) { + throw RuntimeError("Invalid number of bursts " + + std::to_string(value)); + } + verifyIdle(socket); + LOG(logDEBUG1) << "Setting num bursts to " << value; + impl()->setNumberOfBursts(value); + int64_t retval = impl()->getNumberOfBursts(); + validate(value, retval, "set number of bursts", DEC); + return socket.Send(OK); +} + +int ClientInterface::set_num_add_storage_cells(Interface &socket) { + auto value = socket.Receive(); + if (value < 0) { + throw RuntimeError("Invalid number of additional storage cells " + + std::to_string(value)); + } + verifyIdle(socket); + LOG(logDEBUG1) << "Setting num additional storage cells to " << value; + impl()->setNumberOfAdditionalStorageCells(value); + int retval = impl()->getNumberOfAdditionalStorageCells(); + validate(value, retval, "set number of additional storage cells", DEC); + return socket.Send(OK); +} + +int ClientInterface::set_timing_mode(Interface &socket) { + auto value = socket.Receive(); + if (value < 0 || value >= NUM_TIMING_MODES) { + throw RuntimeError("Invalid timing mode " + + std::to_string(value)); + } + verifyIdle(socket); + LOG(logDEBUG1) << "Setting timing mode to " << value; + impl()->setTimingMode(static_cast(value)); + int retval = impl()->getTimingMode(); + validate(value, retval, "set timing mode", DEC); + return socket.Send(OK); +} + +int ClientInterface::set_burst_mode(Interface &socket) { + auto value = socket.Receive(); + if (value < 0 || value >= NUM_BURST_MODES) { + throw RuntimeError("Invalid burst mode " + + std::to_string(value)); + } + verifyIdle(socket); + LOG(logDEBUG1) << "Setting burst mode to " << value; + impl()->setBurstMode(static_cast(value)); + int retval = impl()->getBurstMode(); + validate(value, retval, "set burst mode", DEC); return socket.Send(OK); } @@ -1425,3 +1508,9 @@ int ClientInterface::get_additional_json_parameter(Interface &socket) { LOG(logDEBUG1) << "additional json parameter (" << arg << "):" << retval; return socket.sendResult(retval); } + +int ClientInterface::get_progress(Interface &socket) { + int retval = impl()->getProgress(); + LOG(logDEBUG1) << "progress retval: " << retval; + return socket.sendResult(retval); +} \ No newline at end of file diff --git a/slsReceiverSoftware/src/ClientInterface.h b/slsReceiverSoftware/src/ClientInterface.h index 47716e9e9..5aaa60ec3 100755 --- a/slsReceiverSoftware/src/ClientInterface.h +++ b/slsReceiverSoftware/src/ClientInterface.h @@ -60,6 +60,11 @@ class ClientInterface : private virtual slsDetectorDefs { int set_detector_hostname(sls::ServerInterface &socket); int set_roi(sls::ServerInterface &socket); int set_num_frames(sls::ServerInterface &socket); + int set_num_triggers(sls::ServerInterface &socket); + int set_num_bursts(sls::ServerInterface &socket); + int set_num_add_storage_cells(sls::ServerInterface &socket); + int set_timing_mode(sls::ServerInterface &socket); + int set_burst_mode(sls::ServerInterface &socket); int set_num_analog_samples(sls::ServerInterface &socket); int set_num_digital_samples(sls::ServerInterface &socket); int set_exptime(sls::ServerInterface &socket); @@ -137,6 +142,8 @@ class ClientInterface : private virtual slsDetectorDefs { int increment_file_index(sls::ServerInterface &socket); int set_additional_json_parameter(sls::ServerInterface &socket); int get_additional_json_parameter(sls::ServerInterface &socket); + int get_progress(sls::ServerInterface &socket); + Implementation *impl() { if (receiver != nullptr) { diff --git a/slsReceiverSoftware/src/DataStreamer.cpp b/slsReceiverSoftware/src/DataStreamer.cpp index fe9ba9176..2b840dab1 100755 --- a/slsReceiverSoftware/src/DataStreamer.cpp +++ b/slsReceiverSoftware/src/DataStreamer.cpp @@ -17,7 +17,7 @@ const std::string DataStreamer::TypeName = "DataStreamer"; DataStreamer::DataStreamer(int ind, Fifo* f, uint32_t* dr, ROI* r, - uint64_t* fi, int fd, int* nd, bool* qe) : + uint64_t* fi, int fd, int* nd, bool* qe, uint64_t* tot) : ThreadObject(ind, TypeName), runningFlag(0), generalData(nullptr), @@ -31,7 +31,8 @@ DataStreamer::DataStreamer(int ind, Fifo* f, uint32_t* dr, ROI* r, startedFlag(false), firstIndex(0), completeBuffer(nullptr), - quadEnable(qe) + quadEnable(qe), + totalNumFrames(tot) { numDet[0] = nd[0]; numDet[1] = nd[1]; @@ -241,6 +242,7 @@ int DataStreamer::SendHeader(sls_receiver_header* rheader, uint32_t size, uint32 zHeader.imageSize = size; zHeader.acqIndex = acquisitionIndex; zHeader.frameIndex = frameIndex; + zHeader.progress = 100 * ((double)(frameIndex + 1) / (double)(*totalNumFrames)); zHeader.fname = fileNametoStream; zHeader.frameNumber = header.frameNumber; zHeader.expLength = header.expLength; diff --git a/slsReceiverSoftware/src/DataStreamer.h b/slsReceiverSoftware/src/DataStreamer.h index c43579e2a..4a31fa550 100755 --- a/slsReceiverSoftware/src/DataStreamer.h +++ b/slsReceiverSoftware/src/DataStreamer.h @@ -31,9 +31,10 @@ class DataStreamer : private virtual slsDetectorDefs, public ThreadObject { * @param fd flipped data enable for x dimension * @param nd pointer to number of detectors in each dimension * @param qe pointer to quad Enable + * @param tot pointer to total number of frames */ DataStreamer(int ind, Fifo* f, uint32_t* dr, ROI* r, - uint64_t* fi, int fd, int* nd, bool* qe); + uint64_t* fi, int fd, int* nd, bool* qe, uint64_t* tot); /** * Destructor @@ -207,5 +208,8 @@ class DataStreamer : private virtual slsDetectorDefs, public ThreadObject { /** Quad Enable */ bool* quadEnable; + /** Total number of frames */ + uint64_t* totalNumFrames; + }; diff --git a/slsReceiverSoftware/src/Implementation.cpp b/slsReceiverSoftware/src/Implementation.cpp index b2bfec79d..21bfa83cc 100755 --- a/slsReceiverSoftware/src/Implementation.cpp +++ b/slsReceiverSoftware/src/Implementation.cpp @@ -95,7 +95,13 @@ void Implementation::InitializeMembers() { streamingSrcIP = sls::IpAddr{}; // detector parameters - numberOfFrames = 0; + numberOfTotalFrames = 0; + numberOfFrames = 1; + numberOfTriggers = 1; + numberOfBursts = 1; + numberOfAdditionalStorageCells = 0; + timingMode = AUTO_TIMING; + burstMode = BURST_OFF; acquisitionPeriod = SAMPLE_TIME_IN_NS; acquisitionTime = 0; subExpTime = 0; @@ -267,7 +273,7 @@ void Implementation::setDetectorType(const detectorType d) { auto fifo_ptr = fifo[i].get(); listener.push_back(sls::make_unique( i, myDetectorType, fifo_ptr, &status, &udpPortNum[i], ð[i], - &numberOfFrames, &dynamicRange, &udpSocketBufferSize, + &numberOfTotalFrames, &dynamicRange, &udpSocketBufferSize, &actualUDPSocketBufferSize, &framesPerFile, &frameDiscardMode, &activated, &deactivatedPaddingEnable, &silentMode)); dataProcessor.push_back(sls::make_unique( @@ -347,7 +353,7 @@ void Implementation::setDetectorPositionId(const int id) { for (unsigned int i = 0; i < dataProcessor.size(); ++i) { dataProcessor[i]->SetupFileWriter( fileWriteEnable, (int *)numDet, &framesPerFile, &fileName, &filePath, - &fileIndex, &overwriteEnable, &detID, &numThreads, &numberOfFrames, + &fileIndex, &overwriteEnable, &detID, &numThreads, &numberOfTotalFrames, &dynamicRange, &udpPortNum[i], generalData); } assert(numDet[1] != 0); @@ -508,7 +514,7 @@ void Implementation::setFileWriteEnable(const bool b) { dataProcessor[i]->SetupFileWriter( fileWriteEnable, (int *)numDet, &framesPerFile, &fileName, &filePath, &fileIndex, &overwriteEnable, &detID, &numThreads, - &numberOfFrames, &dynamicRange, &udpPortNum[i], generalData); + &numberOfTotalFrames, &dynamicRange, &udpPortNum[i], generalData); } } @@ -594,6 +600,24 @@ uint64_t Implementation::getAcquisitionIndex() const { return min; } +int Implementation::getProgress() const { + // get minimum of processed frame indices + uint64_t currentFrameIndex = -1; + uint32_t flagsum = 0; + + for (const auto &it : dataProcessor) { + flagsum += it->GetStartedFlag(); + uint64_t curr = it->GetProcessedIndex(); + currentFrameIndex = curr < currentFrameIndex ? curr : currentFrameIndex; + } + // no data processed + if (flagsum != dataProcessor.size()) { + currentFrameIndex = -1; + } + + return (100.00 * ((double)(currentFrameIndex + 1) / (double)numberOfTotalFrames)); +} + std::vector Implementation::getNumMissingPackets() const { std::vector mp(numThreads); for (int i = 0; i < numThreads; i++) { @@ -603,7 +627,7 @@ std::vector Implementation::getNumMissingPackets() const { if (numLinesReadout != MAX_EIGER_ROWS_PER_READOUT) { totnp = ((numLinesReadout * np) / MAX_EIGER_ROWS_PER_READOUT); } - totnp *= numberOfFrames; + totnp *= numberOfTotalFrames; mp[i] = listener[i]->GetNumMissingPacket(stoppedFlag, totnp); } return mp; @@ -745,7 +769,7 @@ void Implementation::startReadout() { // wait for all packets const int numPacketsToReceive = - numberOfFrames * generalData->packetsPerFrame * listener.size(); + numberOfTotalFrames * generalData->packetsPerFrame * listener.size(); if (totalPacketsReceived != numPacketsToReceive) { while (totalPacketsReceived != previousValue) { LOG(logDEBUG3) @@ -842,7 +866,7 @@ void Implementation::SetupWriter() { attr.nPixelsX = generalData->nPixelsX; attr.nPixelsY = generalData->nPixelsY; attr.maxFramesPerFile = framesPerFile; - attr.totalFrames = numberOfFrames; + attr.totalFrames = numberOfTotalFrames; attr.exptimeNs = acquisitionTime; attr.subExptimeNs = subExpTime; attr.subPeriodNs = subPeriod; @@ -932,7 +956,7 @@ void Implementation::setNumberofUDPInterfaces(const int n) { auto fifo_ptr = fifo[i].get(); listener.push_back(sls::make_unique( i, myDetectorType, fifo_ptr, &status, &udpPortNum[i], - ð[i], &numberOfFrames, &dynamicRange, + ð[i], &numberOfTotalFrames, &dynamicRange, &udpSocketBufferSize, &actualUDPSocketBufferSize, &framesPerFile, &frameDiscardMode, &activated, &deactivatedPaddingEnable, &silentMode)); @@ -963,7 +987,7 @@ void Implementation::setNumberofUDPInterfaces(const int n) { } dataStreamer.push_back(sls::make_unique( i, fifo[i].get(), &dynamicRange, &roi, &fileIndex, - fd, (int*)nd, &quadEnable)); + fd, (int*)nd, &quadEnable, &numberOfTotalFrames)); dataStreamer[i]->SetGeneralData(generalData); dataStreamer[i]->CreateZmqSockets( &numThreads, streamingPort, streamingSrcIP); @@ -1107,7 +1131,7 @@ void Implementation::setDataStreamEnable(const bool enable) { } dataStreamer.push_back(sls::make_unique( i, fifo[i].get(), &dynamicRange, &roi, &fileIndex, - fd, (int*)nd, &quadEnable)); + fd, (int*)nd, &quadEnable, &numberOfTotalFrames)); dataStreamer[i]->SetGeneralData(generalData); dataStreamer[i]->CreateZmqSockets( &numThreads, streamingPort, streamingSrcIP); @@ -1225,6 +1249,26 @@ void Implementation::setAdditionalJsonParameter(const std::string &key, const st * Detector Parameters * * * * ************************************************/ +void Implementation::updateTotalNumberOfFrames() { + int64_t repeats = numberOfTriggers; + // gotthard2: auto mode + // burst mode: (bursts instead of triggers) + // non burst mode: no bursts or triggers + if (myDetectorType == GOTTHARD2 &&timingMode == AUTO_TIMING) { + if (burstMode == BURST_OFF) { + repeats = numberOfBursts; + } else { + repeats = 1; + } + } + numberOfTotalFrames = numberOfFrames * repeats * + (int64_t)(numberOfAdditionalStorageCells + 1); + if (numberOfTotalFrames == 0) { + throw sls::RuntimeError("Invalid total number of frames to receive: 0"); + } + LOG(logINFO) << "Total Number of Frames: " << numberOfTotalFrames; +} + uint64_t Implementation::getNumberOfFrames() const { LOG(logDEBUG3) << __SHORT_AT__ << " called"; return numberOfFrames; @@ -1232,9 +1276,69 @@ uint64_t Implementation::getNumberOfFrames() const { void Implementation::setNumberOfFrames(const uint64_t i) { LOG(logDEBUG3) << __SHORT_AT__ << " called"; - numberOfFrames = i; LOG(logINFO) << "Number of Frames: " << numberOfFrames; + updateTotalNumberOfFrames(); +} + +uint64_t Implementation::getNumberOfTriggers() const { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + return numberOfTriggers; +} + +void Implementation::setNumberOfTriggers(const uint64_t i) { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + numberOfTriggers = i; + LOG(logINFO) << "Number of Triggers: " << numberOfTriggers; + updateTotalNumberOfFrames(); +} + +uint64_t Implementation::getNumberOfBursts() const { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + return numberOfBursts; +} + +void Implementation::setNumberOfBursts(const uint64_t i) { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + numberOfBursts = i; + LOG(logINFO) << "Number of Bursts: " << numberOfBursts; + updateTotalNumberOfFrames(); +} + +int Implementation::getNumberOfAdditionalStorageCells() const { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + return numberOfAdditionalStorageCells; +} + +void Implementation::setNumberOfAdditionalStorageCells(const int i) { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + numberOfAdditionalStorageCells = i; + LOG(logINFO) << "Number of Additional Storage Cells: " << numberOfAdditionalStorageCells; + updateTotalNumberOfFrames(); +} + +slsDetectorDefs::timingMode Implementation::getTimingMode() const { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + return timingMode; +} + +void Implementation::setTimingMode(const slsDetectorDefs::timingMode i) { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + timingMode = i; + LOG(logINFO) << "Timing Mode: " << timingMode; + updateTotalNumberOfFrames(); +} + +slsDetectorDefs::burstMode Implementation::getBurstMode() const { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + return burstMode; +} + +void Implementation::setBurstMode(const slsDetectorDefs::burstMode i) { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + burstMode = i; + LOG(logINFO) << "Burst Mode: " << burstMode; + updateTotalNumberOfFrames(); } uint64_t Implementation::getAcquisitionPeriod() const { diff --git a/slsReceiverSoftware/src/Implementation.h b/slsReceiverSoftware/src/Implementation.h index 76cdc7dd7..a815b14b7 100755 --- a/slsReceiverSoftware/src/Implementation.h +++ b/slsReceiverSoftware/src/Implementation.h @@ -75,6 +75,7 @@ class Implementation : private virtual slsDetectorDefs { runStatus getStatus() const; uint64_t getFramesCaught() const; uint64_t getAcquisitionIndex() const; + int getProgress() const; std::vector getNumMissingPackets() const; void startReceiver(); void setStoppedFlag(bool stopped); @@ -134,8 +135,19 @@ class Implementation : private virtual slsDetectorDefs { * Detector Parameters * * * * ************************************************/ + void updateTotalNumberOfFrames(); uint64_t getNumberOfFrames() const; void setNumberOfFrames(const uint64_t i); + uint64_t getNumberOfTriggers() const; + void setNumberOfTriggers(const uint64_t i); + uint64_t getNumberOfBursts() const; + void setNumberOfBursts(const uint64_t i); + int getNumberOfAdditionalStorageCells() const; + void setNumberOfAdditionalStorageCells(const int i); + timingMode getTimingMode() const; + void setTimingMode(const timingMode i); + burstMode getBurstMode() const; + void setBurstMode(const burstMode i); uint64_t getAcquisitionTime() const; void setAcquisitionTime(const uint64_t i); uint64_t getAcquisitionPeriod() const; @@ -266,7 +278,13 @@ class Implementation : private virtual slsDetectorDefs { std::map additionalJsonHeader; // detector parameters + uint64_t numberOfTotalFrames; uint64_t numberOfFrames; + uint64_t numberOfTriggers; + uint64_t numberOfBursts; + int numberOfAdditionalStorageCells; + timingMode timingMode; + burstMode burstMode; uint64_t acquisitionPeriod; uint64_t acquisitionTime; uint64_t subExpTime; diff --git a/slsSupportLib/include/ZmqSocket.h b/slsSupportLib/include/ZmqSocket.h index dd111c1f3..666c9e7ea 100755 --- a/slsSupportLib/include/ZmqSocket.h +++ b/slsSupportLib/include/ZmqSocket.h @@ -40,6 +40,8 @@ struct zmqHeader { uint64_t acqIndex{0}; /** frame index (starting at 0 for each acquisition) */ uint64_t frameIndex{0}; + /** progress in percentage */ + int progress{0}; /** file name prefix */ std::string fname{""}; /** header from detector */ diff --git a/slsSupportLib/include/sls_detector_defs.h b/slsSupportLib/include/sls_detector_defs.h index d2a8f6198..8b9e6d56d 100755 --- a/slsSupportLib/include/sls_detector_defs.h +++ b/slsSupportLib/include/sls_detector_defs.h @@ -245,7 +245,8 @@ class slsDetectorDefs { AUTO_TIMING, /**< internal timing */ TRIGGER_EXPOSURE, /**< trigger mode i.e. exposure is triggered */ GATED, /**< gated */ - BURST_TRIGGER /**< trigger a burst of frames */ + BURST_TRIGGER, /**< trigger a burst of frames */ + NUM_TIMING_MODES }; /** @@ -448,7 +449,8 @@ class slsDetectorDefs { enum burstMode { BURST_OFF, BURST_INTERNAL, - BURST_EXTERNAL + BURST_EXTERNAL, + NUM_BURST_MODES }; /** @@ -480,7 +482,6 @@ struct detParameters { int nChipX{0}; int nChipY{0}; int nDacs{0}; - int dynamicRange{0}; detParameters() = default; explicit detParameters(slsDetectorDefs::detectorType type) { @@ -491,7 +492,6 @@ struct detParameters { nChipX = 10; nChipY = 1; nDacs = 8; - dynamicRange = 16; break; case slsDetectorDefs::detectorType::JUNGFRAU: nChanX = 256; @@ -499,7 +499,6 @@ struct detParameters { nChipX = 4; nChipY = 2; nDacs = 8; - dynamicRange = 16; break; case slsDetectorDefs::detectorType::CHIPTESTBOARD: nChanX = 36; @@ -507,7 +506,6 @@ struct detParameters { nChipX = 1; nChipY = 1; nDacs = 24; - dynamicRange = 16; break; case slsDetectorDefs::detectorType::MOENCH: nChanX = 32; @@ -515,7 +513,6 @@ struct detParameters { nChipX = 1; nChipY = 1; nDacs = 8; - dynamicRange = 16; break; case slsDetectorDefs::detectorType::EIGER: nChanX = 256; @@ -523,7 +520,6 @@ struct detParameters { nChipX = 4; nChipY = 1; nDacs = 16; - dynamicRange = 16; break; case slsDetectorDefs::detectorType::MYTHEN3: nChanX = 128 * 3; @@ -531,7 +527,6 @@ struct detParameters { nChipX = 10; nChipY = 1; nDacs = 16; - dynamicRange = 32; break; case slsDetectorDefs::detectorType::GOTTHARD2: nChanX = 128; @@ -539,7 +534,6 @@ struct detParameters { nChipX = 10; nChipY = 1; nDacs = 14; - dynamicRange = 16; break; default: throw sls::RuntimeError("Unknown detector type! " + std::to_string(type)); diff --git a/slsSupportLib/include/sls_detector_funcs.h b/slsSupportLib/include/sls_detector_funcs.h index c5f0ee1eb..7933b6559 100755 --- a/slsSupportLib/include/sls_detector_funcs.h +++ b/slsSupportLib/include/sls_detector_funcs.h @@ -197,6 +197,7 @@ enum detFuncs{ F_GET_TIMING_SOURCE, F_SET_TIMING_SOURCE, F_GET_NUM_CHANNELS, + F_UPDATE_RATE_CORRECTION, NUM_DET_FUNCTIONS, RECEIVER_ENUM_START = 256, /**< detector function should not exceed this (detector server should not compile anyway) */ @@ -211,6 +212,11 @@ enum detFuncs{ F_SEND_RECEIVER_DETHOSTNAME, F_RECEIVER_SET_ROI, F_RECEIVER_SET_NUM_FRAMES, + F_SET_RECEIVER_NUM_TRIGGERS, + F_SET_RECEIVER_NUM_BURSTS, + F_SET_RECEIVER_NUM_ADD_STORAGE_CELLS, + F_SET_RECEIVER_TIMING_MODE, + F_SET_RECEIVER_BURST_MODE, F_RECEIVER_SET_NUM_ANALOG_SAMPLES, F_RECEIVER_SET_NUM_DIGITAL_SAMPLES, F_RECEIVER_SET_EXPTIME, @@ -287,6 +293,8 @@ enum detFuncs{ F_INCREMENT_FILE_INDEX, F_SET_ADDITIONAL_JSON_PARAMETER, F_GET_ADDITIONAL_JSON_PARAMETER, + F_GET_RECEIVER_PROGRESS, + NUM_REC_FUNCTIONS }; @@ -480,6 +488,7 @@ static const char* getFunctionNameFromEnum(enum detFuncs func) { case F_GET_TIMING_SOURCE: return "F_GET_TIMING_SOURCE"; case F_SET_TIMING_SOURCE: return "F_SET_TIMING_SOURCE"; case F_GET_NUM_CHANNELS: return "F_GET_NUM_CHANNELS"; + case F_UPDATE_RATE_CORRECTION: return "F_UPDATE_RATE_CORRECTION"; case NUM_DET_FUNCTIONS: return "NUM_DET_FUNCTIONS"; case RECEIVER_ENUM_START: return "RECEIVER_ENUM_START"; @@ -494,6 +503,11 @@ static const char* getFunctionNameFromEnum(enum detFuncs func) { case F_SEND_RECEIVER_DETHOSTNAME: return "F_SEND_RECEIVER_DETHOSTNAME"; case F_RECEIVER_SET_ROI: return "F_RECEIVER_SET_ROI"; case F_RECEIVER_SET_NUM_FRAMES: return "F_RECEIVER_SET_NUM_FRAMES"; + case F_SET_RECEIVER_NUM_TRIGGERS: return "F_SET_RECEIVER_NUM_TRIGGERS"; + case F_SET_RECEIVER_NUM_BURSTS: return "F_SET_RECEIVER_NUM_BURSTS"; + case F_SET_RECEIVER_NUM_ADD_STORAGE_CELLS: return "F_SET_RECEIVER_NUM_ADD_STORAGE_CELLS"; + case F_SET_RECEIVER_TIMING_MODE: return "F_SET_RECEIVER_TIMING_MODE"; + case F_SET_RECEIVER_BURST_MODE: return "F_SET_RECEIVER_BURST_MODE"; case F_RECEIVER_SET_NUM_ANALOG_SAMPLES: return "F_RECEIVER_SET_NUM_ANALOG_SAMPLES"; case F_RECEIVER_SET_NUM_DIGITAL_SAMPLES:return "F_RECEIVER_SET_NUM_DIGITAL_SAMPLES"; case F_RECEIVER_SET_EXPTIME: return "F_RECEIVER_SET_EXPTIME"; @@ -570,6 +584,7 @@ static const char* getFunctionNameFromEnum(enum detFuncs func) { case F_INCREMENT_FILE_INDEX: return "F_INCREMENT_FILE_INDEX"; case F_SET_ADDITIONAL_JSON_PARAMETER: return "F_SET_ADDITIONAL_JSON_PARAMETER"; case F_GET_ADDITIONAL_JSON_PARAMETER: return "F_GET_ADDITIONAL_JSON_PARAMETER"; + case F_GET_RECEIVER_PROGRESS: return "F_GET_RECEIVER_PROGRESS"; case NUM_REC_FUNCTIONS: return "NUM_REC_FUNCTIONS"; default: return "Unknown Function"; diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index bbb5c11f4..905e6d156 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -1,12 +1,12 @@ /** API versions */ -#define GITBRANCH "developer" -#define APILIB 0x200227 -#define APIRECEIVER 0x200227 -#define APIGUI 0x200227 -#define APICTB 0x200331 -#define APIGOTTHARD 0x200331 -#define APIGOTTHARD2 0x200331 -#define APIJUNGFRAU 0x200331 -#define APIMYTHEN3 0x200331 +#define GITBRANCH "removeshm" +#define APICTB 0x200402 +#define APIGOTTHARD 0x200402 +#define APIGOTTHARD2 0x200402 +#define APIJUNGFRAU 0x200402 +#define APIMYTHEN3 0x200402 #define APIMOENCH 0x200331 -#define APIEIGER 0x200331 +#define APIEIGER 0x200402 +#define APILIB 0x200402 +#define APIRECEIVER 0x200402 +#define APIGUI 0x200331 diff --git a/slsSupportLib/src/ZmqSocket.cpp b/slsSupportLib/src/ZmqSocket.cpp index 3874e8b99..2920dd4b2 100644 --- a/slsSupportLib/src/ZmqSocket.cpp +++ b/slsSupportLib/src/ZmqSocket.cpp @@ -158,6 +158,7 @@ int ZmqSocket::SendHeader( "\"size\":%u, " "\"acqIndex\":%lu, " "\"frameIndex\":%lu, " + "\"progress\":%u, " "\"fname\":\"%s\", " "\"data\": %d, " "\"completeImage\": %d, " @@ -193,6 +194,7 @@ int ZmqSocket::SendHeader( header.imageSize, header.acqIndex, header.frameIndex, + header.progress, header.fname.c_str(), header.data ? 1 : 0, header.completeImage ? 1 : 0, @@ -324,6 +326,7 @@ int ZmqSocket::ParseHeader(const int index, int length, char *buff, zHeader.imageSize = document["size"].GetUint(); zHeader.acqIndex = document["acqIndex"].GetUint64(); zHeader.frameIndex = document["frameIndex"].GetUint64(); + zHeader.progress = document["progress"].GetUint(); zHeader.fname = document["fname"].GetString(); zHeader.frameNumber = document["frameNumber"].GetUint64(); From 80e55cd4da24bb6962ffbf5c8907af06ad878952 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 6 Apr 2020 17:28:05 +0200 Subject: [PATCH 23/33] WIP --- .../mythen3DetectorServer/CMakeLists.txt | 2 +- .../slsDetectorFunctionList.c | 77 +++++++++---- .../slsDetectorServer_defs.h | 3 - .../include/communication_funcs.h | 7 ++ .../include/communication_virtual.h | 14 +++ .../src/communication_virtual.c | 107 ++++++++++++++++++ .../slsDetectorServer/src/slsDetectorServer.c | 104 ++++++++--------- 7 files changed, 230 insertions(+), 84 deletions(-) create mode 100755 slsDetectorServers/slsDetectorServer/include/communication_virtual.h create mode 100755 slsDetectorServers/slsDetectorServer/src/communication_virtual.c diff --git a/slsDetectorServers/mythen3DetectorServer/CMakeLists.txt b/slsDetectorServers/mythen3DetectorServer/CMakeLists.txt index cf4269bed..72bb24351 100644 --- a/slsDetectorServers/mythen3DetectorServer/CMakeLists.txt +++ b/slsDetectorServers/mythen3DetectorServer/CMakeLists.txt @@ -10,7 +10,7 @@ add_executable(mythen3DetectorServer_virtual ../slsDetectorServer/src/LTC2620_Driver.c ../slsDetectorServer/src/ALTERA_PLL_CYCLONE10.c ../slsDetectorServer/src/programFpgaNios.c - ../slsDetectorServer/src/clogger.c + ../slsDetectorServer/src/communication_virtual.c ) include_directories( diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 8c4a3b68d..18d111da8 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -8,6 +8,7 @@ #include "ALTERA_PLL_CYCLONE10.h" #ifdef VIRTUAL #include "communication_funcs_UDP.h" +#include "communication_virtual.h" #endif #include @@ -33,7 +34,6 @@ int initCheckDone = 0; char initErrorMessage[MAX_STR_LENGTH]; #ifdef VIRTUAL -//int pipeFDs[2]; pthread_t pthread_virtual_tid; int virtual_status = 0; int virtual_stop = 0; @@ -326,6 +326,12 @@ void initStopServer() { LOG(logERROR, ("Stop Server: Map Fail. Dangerous to continue. Goodbye!\n")); exit(EXIT_FAILURE); } +#ifdef VIRTUAL + virtual_stop = 0; + if (!isControlServer) { + ComVirtual_writeStop(virtual_stop); + } +#endif } @@ -350,6 +356,12 @@ void setupDetector() { dacValues[i] = 0; } } +#ifdef VIRTUAL + virtual_status = 0; + if (isControlServer) { + ComVirtual_writeStatus(virtual_status); + } +#endif // pll defines ALTERA_PLL_C10_SetDefines(REG_OFFSET, BASE_READOUT_PLL, BASE_SYSTEM_PLL, PLL_RESET_REG, PLL_RESET_REG, PLL_RESET_READOUT_MSK, PLL_RESET_SYSTEM_MSK, READOUT_PLL_VCO_FREQ_HZ, SYSTEM_PLL_VCO_FREQ_HZ); @@ -1353,16 +1365,21 @@ int startStateMachine(){ LOG(logINFOBLUE, ("Starting State Machine\n")); // set status to running virtual_status = 1; - /*if (isControlServer) { - //write(pipeFDs[PIPE_WRITE], &virtual_status, sizeof(virtual_status)); - }*/ - virtual_stop = 0; + if (isControlServer) { + ComVirtual_writeStatus(virtual_status); + ComVirtual_readStop(&virtual_stop); + if (virtual_stop != 0) { + LOG(logERROR, ("Cant start acquisition. " + "Stop server has not updated stop status to 0\n")); + return FAIL; + } + } if(pthread_create(&pthread_virtual_tid, NULL, &start_timer, NULL)) { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); virtual_status = 0; - /*if (isControlServer) { - //write(pipeFDs[PIPE_WRITE], &virtual_status, sizeof(virtual_status)); - }*/ + if (isControlServer) { + ComVirtual_writeStatus(virtual_status); + } return FAIL; } LOG(logINFOGREEN, ("Virtual Acquisition started\n")); @@ -1383,6 +1400,10 @@ int startStateMachine(){ #ifdef VIRTUAL void* start_timer(void* arg) { + if (!isControlServer) { + return NULL; + } + int64_t periodNs = getPeriod(); int numFrames = (getNumFrames() * getNumTriggers() ); @@ -1409,6 +1430,8 @@ void* start_timer(void* arg) { // loop over number of frames for (frameNr = 0; frameNr != numFrames; ++frameNr) { + // update the virtual stop from stop server + ComVirtual_readStop(&virtual_stop); //check if virtual_stop is high if(virtual_stop == 1){ break; @@ -1463,9 +1486,9 @@ void* start_timer(void* arg) { closeUDPSocket(0); virtual_status = 0; - /*if (isControlServer) { - //write(pipeFDs[PIPE_WRITE], &virtual_status, sizeof(virtual_status)); - } */ + if (isControlServer) { + ComVirtual_writeStatus(virtual_status); + } LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; } @@ -1475,7 +1498,18 @@ void* start_timer(void* arg) { int stopStateMachine(){ LOG(logINFORED, ("Stopping State Machine\n")); #ifdef VIRTUAL - virtual_stop = 0; + if (!isControlServer) { + virtual_stop = 1; + ComVirtual_writeStop(virtual_stop); + // read till status is idle + int tempStatus = 1; + while(tempStatus == 1) { + ComVirtual_readStatus(&tempStatus); + } + virtual_stop = 0; + ComVirtual_writeStop(virtual_stop); + LOG(logINFO, ("Stopped State Machine\n")); + } return OK; #endif //stop state machine @@ -1486,13 +1520,9 @@ int stopStateMachine(){ enum runStatus getRunStatus(){ #ifdef VIRTUAL - /*if (!isControlServer) { - LOG(logINFORED, ("***** reading\n")); - while (read(pipeFDs[PIPE_READ], &virtual_status, sizeof(virtual_status)) > 0) { - LOG(logINFORED, ("virtual status:%d\n", virtual_status)); - } - LOG(logINFORED, ("***** final %d\n", virtual_status)); - }*/ + if (!isControlServer) { + ComVirtual_readStatus(&virtual_status); + } if(virtual_status == 0){ LOG(logINFOBLUE, ("Status: IDLE\n")); return IDLE; @@ -1568,12 +1598,9 @@ void readFrame(int *ret, char *mess) { u_int32_t runBusy() { #ifdef VIRTUAL - /*if (!isControlServer) { - LOG(logINFORED, ("runbusy \n")); - while (read(pipeFDs[PIPE_READ], &virtual_status, sizeof(virtual_status)) > 0) { - LOG(logINFORED, ("runbusy virtual status:%d\n", virtual_status)); - } - }*/ + if (!isControlServer) { + ComVirtual_readStatus(&virtual_status); + } return virtual_status; #endif u_int32_t s = (bus_r(PAT_STATUS_REG) & PAT_STATUS_RUN_BUSY_MSK); diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h index c41d0ef1d..0486b21af 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h @@ -5,9 +5,6 @@ #define CTRL_SRVR_INIT_TIME_US (300 * 1000) -#define PIPE_WRITE 1 -#define PIPE_READ 0 - /* Hardware Definitions */ #define NCOUNTERS (3) #define MAX_COUNTER_MSK (0x7) diff --git a/slsDetectorServers/slsDetectorServer/include/communication_funcs.h b/slsDetectorServers/slsDetectorServer/include/communication_funcs.h index bfe60c75a..7b465af6a 100755 --- a/slsDetectorServers/slsDetectorServer/include/communication_funcs.h +++ b/slsDetectorServers/slsDetectorServer/include/communication_funcs.h @@ -11,6 +11,13 @@ typedef enum{ OTHER }intType; +// communciate with stop server +#ifdef VIRTUAL +#define FILE_STATUS "/tmp/Sls_virtual_server_status_" +#define FILE_STOP "/tmp/Sls_virtual_server_stop_" +#define FD_STATUS 0 +#define FD_STOP 1 +#endif int bindSocket(unsigned short int port_number); int acceptConnection(int socketDescriptor); diff --git a/slsDetectorServers/slsDetectorServer/include/communication_virtual.h b/slsDetectorServers/slsDetectorServer/include/communication_virtual.h new file mode 100755 index 000000000..1354f5fc7 --- /dev/null +++ b/slsDetectorServers/slsDetectorServer/include/communication_virtual.h @@ -0,0 +1,14 @@ +#pragma once +#ifdef VIRTUAL +// communciate between control and stop server + +int ComVirtual_createFiles(const int port); +void ComVirtual_setFileNames(const int port); +int ComVirtual_writeStatus(int value); +int ComVirtual_readStatus(int* value); +int ComVirtual_writeStop(int value); +int ComVirtual_readStop(int* value); +int ComVirtual_writeToFile(int value, const char* fname, const char* serverName); +int ComVirtual_readFromFile(int* value, const char* fname, const char* serverName); + +#endif diff --git a/slsDetectorServers/slsDetectorServer/src/communication_virtual.c b/slsDetectorServers/slsDetectorServer/src/communication_virtual.c new file mode 100755 index 000000000..686bae70b --- /dev/null +++ b/slsDetectorServers/slsDetectorServer/src/communication_virtual.c @@ -0,0 +1,107 @@ +#ifdef VIRTUAL +#include "communication_virtual.h" +#include "clogger.h" + +#include + +#define FILE_STATUS "/tmp/sls_virtual_server_status_" +#define FILE_STOP "/tmp/sls_virtual_server_stop_" +#define FD_STATUS 0 +#define FD_STOP 1 +#define FILE_NAME_LENGTH 1000 + +FILE* fd[2] = {NULL, NULL}; +char fnameStatus[FILE_NAME_LENGTH]; +char fnameStop[FILE_NAME_LENGTH]; +int portNumber = 0; + +int ComVirtual_createFiles(const int port) { + portNumber = port; + // control server writign status file + memset(fnameStatus, 0, FILE_NAME_LENGTH); + sprintf(fnameStatus, "%s%d", FILE_STATUS, port); + FILE* fd = NULL; + if (NULL == (fd = fopen(fnameStatus, "w"))) { + LOG(logERROR, ("Could not open the file %s for virtual communication\n", + fnameStatus)); + return 0; + } + fclose(fd); + LOG(logINFOBLUE, ("Created status file %s\n", fnameStatus)); + + // stop server writing stop file + memset(fnameStop, 0, FILE_NAME_LENGTH); + sprintf(fnameStop, "%s%d", FILE_STOP, port); + if (NULL == (fd = fopen(fnameStop, "w"))) { + LOG(logERROR, ("Could not open the file %s for virtual communication\n", + fnameStop)); + return 0; + } + fclose(fd); + LOG(logINFOBLUE, ("Created stop file %s\n", fnameStop)); + + return 1; +} + +void ComVirtual_setFileNames(const int port) { + portNumber = port; + memset(fnameStatus, 0, FILE_NAME_LENGTH); + memset(fnameStop, 0, FILE_NAME_LENGTH); + sprintf(fnameStatus, "%s%d", FILE_STATUS, port); + sprintf(fnameStatus, "%s%d", FILE_STOP, port); +} + +int ComVirtual_writeStatus(int value) { + return ComVirtual_writeToFile(value, FILE_STATUS, "Control"); +} + +int ComVirtual_readStatus(int* value) { + return ComVirtual_readFromFile(value, FILE_STATUS, "Control"); +} + +int ComVirtual_writeStop(int value) { + return ComVirtual_writeToFile(value, FILE_STOP, "Stop"); +} + +int ComVirtual_readStop(int* value) { + return ComVirtual_readFromFile(value, FILE_STOP, "Stop"); +} + +int ComVirtual_writeToFile(int value, const char* fname, const char* serverName) { + FILE* fd = NULL; + if (NULL == (fd = fopen(fname, "w"))) { + LOG(logERROR, ("Vritual %s Server [%d] could not open " + "the file %s for writing\n", + serverName, portNumber, fname)); + return 0; + } + while (fwrite(&value, sizeof(value), 1, fd) < 1) { + LOG(logERROR, ("Vritual %s Server [%d] could not write " + "to file %s\n", + serverName, portNumber, fname)); + return 0; + } + fclose(fd); + return 1; +} + +int ComVirtual_readFromFile(int* value, const char* fname, const char* serverName) { + FILE* fd = NULL; + if (NULL == (fd = fopen(fname, "r"))) { + LOG(logERROR, ("Vritual %s Server [%d] could not open " + "the file %s for reading\n", + serverName, portNumber, fname)); + return 0; + } + while (fread(value, sizeof(int), 1, fd) < 1) { + LOG(logERROR, ("Vritual %s Server [%d] could not read " + "from file %s\n", + serverName, portNumber, fname)); + return 0; + } + fclose(fd); + return 1; +} + + +#endif \ No newline at end of file diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c index d7b163324..b1c137129 100755 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c @@ -7,11 +7,13 @@ #include "slsDetectorServer_funcs.h" #include "slsDetectorServer_defs.h" #include "versionAPI.h" +#ifdef VIRTUAL +#include "communication_virtual.h" +#endif #include #include #include -#include // Global variables from communication_funcs extern int isControlServer; @@ -24,9 +26,6 @@ extern int checkModuleFlag; // Global variables from slsDetectorFunctionList -#ifdef VIRTUAL -//extern int pipeFDs[2]; -#endif #ifdef GOTTHARDD extern int phaseShift; #endif @@ -55,8 +54,9 @@ int main(int argc, char *argv[]) { } int portno = DEFAULT_PORTNO; - int retval = OK; - int fd = 0; + isControlServer = 1; + debugflag = 0; + checkModuleFlag = 1; // if socket crash, ignores SISPIPE, prevents global signal handler // subsequent read/write to socket gives error - must handle locally @@ -66,7 +66,11 @@ int main(int argc, char *argv[]) { { int i; for (i = 1; i < argc; ++i) { - if(!strcasecmp(argv[i],"-devel")){ + if(!strcasecmp(argv[i],"-stopserver")) { + LOG(logINFO, ("Detected stop server\n")); + isControlServer = 0; + } + else if(!strcasecmp(argv[i],"-devel")){ LOG(logINFO, ("Detected developer mode\n")); debugflag = 1; } @@ -83,7 +87,7 @@ int main(int argc, char *argv[]) { LOG(logERROR, ("cannot decode port value %s. Exiting.\n", argv[i + 1])); return -1; } - LOG(logINFO, ("Detected control port: %d\n", portno)); + LOG(logINFO, ("Detected port: %d\n", portno)); } #ifdef GOTTHARDD else if(!strcasecmp(argv[i],"-phaseshift")){ @@ -101,62 +105,51 @@ int main(int argc, char *argv[]) { } } - - // stop server + // control server + if (isControlServer) { #ifdef STOP_SERVER - - // create pipes to communicate with stop server + // start stop server process + char cmd[MAX_STR_LENGTH]; + memset(cmd, 0, MAX_STR_LENGTH); + { + int i; + for (i = 0; i < argc; ++i) { + if (i > 0) { + strcat(cmd, " "); + } + strcat(cmd, argv[i]); + } + char temp[50]; + memset(temp, 0, sizeof(temp)); + sprintf(temp, " -stopserver -port %d &", portno + 1); + strcat(cmd, temp); + + LOG(logDEBUG1, ("Command to start stop server:%s\n", cmd)); + system(cmd); + } + LOG(logINFOBLUE, ("Control Server [%d]\n", portno)); #ifdef VIRTUAL - /*if (pipe(pipeFDs) < 0) { - LOG(logERROR, ("Could not create pipes to communicate with stop server\n")); - return -1; - }*/ + // creating files for virtual servers to communicate with each other + if (!ComVirtual_createFiles(portno)) { + return -1; + } #endif - - // fork stop server - pid_t cpid = fork(); - if (cpid < 0) { - LOG(logERROR, ("Could not create fork a stop server\n")); - return -1; - } - //fcntl(pipeFDs[PIPE_READ], F_SETFL, O_NONBLOCK); - //fcntl(pipeFDs[PIPE_WRITE], F_SETFL, O_NONBLOCK); - - // stop server (child process) - if (cpid == 0) { - isControlServer = 0; - ++portno; - LOG(logINFOBLUE, ("Stop server [%d]\n", portno)); - // change name of stop server to distinguish - char stopServerSuffix[30]; - memset(stopServerSuffix, 0, sizeof(stopServerSuffix)); - sprintf(stopServerSuffix, " Stop_Server %d", portno); - //strcat(argv[0], stopServerSuffix); -#ifdef VIRTUAL - //close(pipeFDs[PIPE_WRITE]); - //fcntl(pipeFDs[PIPE_READ], F_SETFL, O_NONBLOCK); #endif - } else { - isControlServer = 1; - LOG(logINFOBLUE, ("Control server [%d]\n", portno)); + } + // stop server + else { + LOG(logINFOBLUE, ("Stop Server [%d]\n", portno)); #ifdef VIRTUAL - //close(pipeFDs[PIPE_READ]); + ComVirtual_setFileNames(portno); #endif } -#endif - - - init_detector(); - - { // bind socket - sockfd = bindSocket(portno); - if (ret == FAIL) - return -1; - } - + // bind socket + sockfd = bindSocket(portno); + if (ret == FAIL) + return -1; // assign function table function_table(); @@ -167,8 +160,9 @@ int main(int argc, char *argv[]) { } // waits for connection + int retval = OK; while(retval != GOODBYE && retval != REBOOT) { - fd = acceptConnection(sockfd); + int fd = acceptConnection(sockfd); if (fd > 0) { retval = decode_function(fd); closeConnection(fd); From 456b96446faa73e42635d3788220a7a3352d94b6 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 6 Apr 2020 17:59:06 +0200 Subject: [PATCH 24/33] WIP --- .../mythen3DetectorServer/slsDetectorFunctionList.c | 2 +- slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 18d111da8..c1f79f889 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -1526,7 +1526,7 @@ enum runStatus getRunStatus(){ if(virtual_status == 0){ LOG(logINFOBLUE, ("Status: IDLE\n")); return IDLE; - }else{ + } else{ LOG(logINFOBLUE, ("Status: RUNNING\n")); return RUNNING; } diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c index b1c137129..07441cbae 100755 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c @@ -114,6 +114,10 @@ int main(int argc, char *argv[]) { { int i; for (i = 0; i < argc; ++i) { + if (!strcasecmp(argv[i], "-port")) { + i +=2; + continue; + } if (i > 0) { strcat(cmd, " "); } From 83283b672acdeb7b6f9e8eceacf5488c605516f3 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 6 Apr 2020 19:38:35 +0200 Subject: [PATCH 25/33] WIP --- .../slsDetectorFunctionList.c | 24 +++++++------- .../include/communication_virtual.h | 8 ++--- .../src/communication_virtual.c | 31 +++++++++++++------ .../slsDetectorServer/src/slsDetectorServer.c | 2 +- 4 files changed, 39 insertions(+), 26 deletions(-) diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index c1f79f889..649645e7c 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -329,7 +329,7 @@ void initStopServer() { #ifdef VIRTUAL virtual_stop = 0; if (!isControlServer) { - ComVirtual_writeStop(virtual_stop); + ComVirtual_setStop(virtual_stop); } #endif } @@ -359,7 +359,7 @@ void setupDetector() { #ifdef VIRTUAL virtual_status = 0; if (isControlServer) { - ComVirtual_writeStatus(virtual_status); + ComVirtual_setStatus(virtual_status); } #endif @@ -1366,8 +1366,8 @@ int startStateMachine(){ // set status to running virtual_status = 1; if (isControlServer) { - ComVirtual_writeStatus(virtual_status); - ComVirtual_readStop(&virtual_stop); + ComVirtual_setStatus(virtual_status); + virtual_stop = ComVirtual_getStop(); if (virtual_stop != 0) { LOG(logERROR, ("Cant start acquisition. " "Stop server has not updated stop status to 0\n")); @@ -1378,7 +1378,7 @@ int startStateMachine(){ LOG(logERROR, ("Could not start Virtual acquisition thread\n")); virtual_status = 0; if (isControlServer) { - ComVirtual_writeStatus(virtual_status); + ComVirtual_setStatus(virtual_status); } return FAIL; } @@ -1431,7 +1431,7 @@ void* start_timer(void* arg) { for (frameNr = 0; frameNr != numFrames; ++frameNr) { // update the virtual stop from stop server - ComVirtual_readStop(&virtual_stop); + virtual_stop = ComVirtual_getStop(); //check if virtual_stop is high if(virtual_stop == 1){ break; @@ -1487,7 +1487,7 @@ void* start_timer(void* arg) { virtual_status = 0; if (isControlServer) { - ComVirtual_writeStatus(virtual_status); + ComVirtual_setStatus(virtual_status); } LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; @@ -1500,14 +1500,14 @@ int stopStateMachine(){ #ifdef VIRTUAL if (!isControlServer) { virtual_stop = 1; - ComVirtual_writeStop(virtual_stop); + ComVirtual_setStop(virtual_stop); // read till status is idle int tempStatus = 1; while(tempStatus == 1) { - ComVirtual_readStatus(&tempStatus); + tempStatus = ComVirtual_getStatus(); } virtual_stop = 0; - ComVirtual_writeStop(virtual_stop); + ComVirtual_setStop(virtual_stop); LOG(logINFO, ("Stopped State Machine\n")); } return OK; @@ -1521,7 +1521,7 @@ int stopStateMachine(){ enum runStatus getRunStatus(){ #ifdef VIRTUAL if (!isControlServer) { - ComVirtual_readStatus(&virtual_status); + virtual_status = ComVirtual_getStatus(); } if(virtual_status == 0){ LOG(logINFOBLUE, ("Status: IDLE\n")); @@ -1599,7 +1599,7 @@ void readFrame(int *ret, char *mess) { u_int32_t runBusy() { #ifdef VIRTUAL if (!isControlServer) { - ComVirtual_readStatus(&virtual_status); + virtual_status = ComVirtual_getStatus(); } return virtual_status; #endif diff --git a/slsDetectorServers/slsDetectorServer/include/communication_virtual.h b/slsDetectorServers/slsDetectorServer/include/communication_virtual.h index 1354f5fc7..06c6558d4 100755 --- a/slsDetectorServers/slsDetectorServer/include/communication_virtual.h +++ b/slsDetectorServers/slsDetectorServer/include/communication_virtual.h @@ -4,10 +4,10 @@ int ComVirtual_createFiles(const int port); void ComVirtual_setFileNames(const int port); -int ComVirtual_writeStatus(int value); -int ComVirtual_readStatus(int* value); -int ComVirtual_writeStop(int value); -int ComVirtual_readStop(int* value); +void ComVirtual_setStatus(int value); +int ComVirtual_getStatus(); +void ComVirtual_setStop(int value); +int ComVirtual_getStop(); int ComVirtual_writeToFile(int value, const char* fname, const char* serverName); int ComVirtual_readFromFile(int* value, const char* fname, const char* serverName); diff --git a/slsDetectorServers/slsDetectorServer/src/communication_virtual.c b/slsDetectorServers/slsDetectorServer/src/communication_virtual.c index 686bae70b..cb1cdf5d9 100755 --- a/slsDetectorServers/slsDetectorServer/src/communication_virtual.c +++ b/slsDetectorServers/slsDetectorServer/src/communication_virtual.c @@ -3,6 +3,7 @@ #include "clogger.h" #include +#include // usleep #define FILE_STATUS "/tmp/sls_virtual_server_status_" #define FILE_STOP "/tmp/sls_virtual_server_stop_" @@ -48,23 +49,35 @@ void ComVirtual_setFileNames(const int port) { memset(fnameStatus, 0, FILE_NAME_LENGTH); memset(fnameStop, 0, FILE_NAME_LENGTH); sprintf(fnameStatus, "%s%d", FILE_STATUS, port); - sprintf(fnameStatus, "%s%d", FILE_STOP, port); + sprintf(fnameStop, "%s%d", FILE_STOP, port); } -int ComVirtual_writeStatus(int value) { - return ComVirtual_writeToFile(value, FILE_STATUS, "Control"); +void ComVirtual_setStatus(int value) { + while (!ComVirtual_writeToFile(value, fnameStatus, "Control")) { + usleep(100); + } } -int ComVirtual_readStatus(int* value) { - return ComVirtual_readFromFile(value, FILE_STATUS, "Control"); +int ComVirtual_getStatus() { + int retval = 0; + while (!ComVirtual_readFromFile(&retval, fnameStatus, "Stop")) { + usleep(100); + } + return retval; } -int ComVirtual_writeStop(int value) { - return ComVirtual_writeToFile(value, FILE_STOP, "Stop"); +void ComVirtual_setStop(int value) { + while (!ComVirtual_writeToFile(value, fnameStop, "Stop")) { + usleep(100); + } } -int ComVirtual_readStop(int* value) { - return ComVirtual_readFromFile(value, FILE_STOP, "Stop"); +int ComVirtual_getStop() { + int retval = 0; + while (!ComVirtual_readFromFile(&retval, fnameStop, "Control")) { + usleep(100); + } + return retval; } int ComVirtual_writeToFile(int value, const char* fname, const char* serverName) { diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c index 07441cbae..c324a9f2b 100755 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c @@ -144,7 +144,7 @@ int main(int argc, char *argv[]) { else { LOG(logINFOBLUE, ("Stop Server [%d]\n", portno)); #ifdef VIRTUAL - ComVirtual_setFileNames(portno); + ComVirtual_setFileNames(portno - 1); #endif } From fad10273edac39c1fa2ea8294d9806a283f265d1 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 7 Apr 2020 09:57:22 +0200 Subject: [PATCH 26/33] fix for server crashing when sending udp packets if no udp server present to listen to it (receiver): cannot use connect and write --- .../slsDetectorServer/src/communication_funcs_UDP.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/slsDetectorServers/slsDetectorServer/src/communication_funcs_UDP.c b/slsDetectorServers/slsDetectorServer/src/communication_funcs_UDP.c index edc9c7eab..6ebfcac02 100755 --- a/slsDetectorServers/slsDetectorServer/src/communication_funcs_UDP.c +++ b/slsDetectorServers/slsDetectorServer/src/communication_funcs_UDP.c @@ -37,7 +37,7 @@ int setUDPDestinationDetails(int index, const char* ip, unsigned short int port) // convert ip to internet address struct addrinfo hints; memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_UNSPEC; + hints.ai_family = AF_INET; hints.ai_socktype = SOCK_DGRAM; hints.ai_flags = 0; hints.ai_protocol = 0; @@ -83,19 +83,16 @@ int createUDPSocket(int index) { LOG(logINFO, ("Udp client socket created for server (port %d, ip:%s)\n", udpDestinationPort[index], udpDestinationIp[index])); + // Using connect expects that the receiver (udp server) exists to listen to these packets // connecting allows to use "send/write" instead of "sendto", avoiding checking for server address for each packet - // using write without a connect will end in segv - if (connect(udpSockfd[index],udpServerAddrInfo[index]->ai_addr, udpServerAddrInfo[index]->ai_addrlen)==-1) { - LOG(logERROR, ("Could not connect to UDP server at ip:%s, port:%d. (Error code:%d, %s)\n", - udpDestinationIp[index], udpDestinationPort[index], errno, gai_strerror(errno))); - } + // using write without a connect will end in segv LOG(logINFO, ("Udp client socket connected\n", udpDestinationPort[index], udpDestinationIp[index])); return OK; } int sendUDPPacket(int index, const char* buf, int length) { - int n = write(udpSockfd[index], buf, length); + int n = sendto(udpSockfd[index], buf, length, 0, udpServerAddrInfo[index]->ai_addr, udpServerAddrInfo[index]->ai_addrlen); // udp sends atomically, no need to handle partial data if (n == -1) { LOG(logERROR, ("Could not send udp packet for socket %d. (Error code:%d, %s)\n", From bdf0f9e2b9697ea55a017fc866b675396ad484c8 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 7 Apr 2020 10:39:50 +0200 Subject: [PATCH 27/33] fixed start stop tests --- slsDetectorServers/CMakeLists.txt | 12 ++-- .../ctbDetectorServer/CMakeLists.txt | 1 + .../slsDetectorFunctionList.c | 60 ++++++++++++++-- .../eigerDetectorServer/CMakeLists.txt | 1 + .../slsDetectorFunctionList.c | 70 +++++++++++++++---- .../gotthard2DetectorServer/CMakeLists.txt | 1 + .../slsDetectorFunctionList.c | 58 +++++++++++++-- .../gotthardDetectorServer/CMakeLists.txt | 1 + .../slsDetectorFunctionList.c | 58 ++++++++++++++- .../jungfrauDetectorServer/CMakeLists.txt | 1 + .../slsDetectorFunctionList.c | 58 ++++++++++++++- .../moenchDetectorServer/CMakeLists.txt | 1 + .../slsDetectorFunctionList.c | 59 +++++++++++++++- .../slsDetectorFunctionList.c | 2 +- slsDetectorSoftware/tests/test-CmdProxy.cpp | 10 +-- 15 files changed, 352 insertions(+), 41 deletions(-) diff --git a/slsDetectorServers/CMakeLists.txt b/slsDetectorServers/CMakeLists.txt index 44abc709d..f185b732a 100644 --- a/slsDetectorServers/CMakeLists.txt +++ b/slsDetectorServers/CMakeLists.txt @@ -19,10 +19,10 @@ install(TARGETS slsProjectCWarnings ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) -#add_subdirectory(ctbDetectorServer) -#add_subdirectory(eigerDetectorServer) -#add_subdirectory(gotthardDetectorServer) -#add_subdirectory(jungfrauDetectorServer) +add_subdirectory(ctbDetectorServer) +add_subdirectory(eigerDetectorServer) +add_subdirectory(gotthardDetectorServer) +add_subdirectory(jungfrauDetectorServer) add_subdirectory(mythen3DetectorServer) -#add_subdirectory(gotthard2DetectorServer) -#add_subdirectory(moenchDetectorServer) +add_subdirectory(gotthard2DetectorServer) +add_subdirectory(moenchDetectorServer) diff --git a/slsDetectorServers/ctbDetectorServer/CMakeLists.txt b/slsDetectorServers/ctbDetectorServer/CMakeLists.txt index e2075eae6..0eeec6b6f 100644 --- a/slsDetectorServers/ctbDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/ctbDetectorServer/CMakeLists.txt @@ -16,6 +16,7 @@ add_executable(ctbDetectorServer_virtual ../slsDetectorServer/src/LTC2620.c ../slsDetectorServer/src/MAX1932.c ../slsDetectorServer/src/programFpgaBlackfin.c + ../slsDetectorServer/src/communication_virtual.c ) include_directories( diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c index e7228fd26..4e87de588 100755 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c @@ -10,6 +10,9 @@ #include "MAX1932.h" // hv #include "INA226.h" // i2c #include "ALTERA_PLL.h" // pll +#ifdef VIRTUAL +#include "communication_virtual.h" +#endif #include #include // usleep @@ -30,6 +33,7 @@ extern uint64_t udpFrameNumber; extern uint32_t udpPacketNumber; // Global variable from communication_funcs.c +extern int isControlServer; extern void getMacAddressinString(char* cmac, int size, uint64_t mac); extern void getIpAddressinString(char* cip, uint32_t ip); @@ -427,6 +431,12 @@ void initStopServer() { LOG(logERROR, ("Stop Server: Map Fail. Dangerous to continue. Goodbye!\n")); exit(EXIT_FAILURE); } +#ifdef VIRTUAL + virtual_stop = 0; + if (!isControlServer) { + ComVirtual_setStop(virtual_stop); + } +#endif } @@ -469,7 +479,12 @@ void setupDetector() { digitalEnable = 0; naSamples = 1; ndSamples = 1; - +#ifdef VIRTUAL + virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } +#endif ALTERA_PLL_ResetPLLAndReconfiguration(); resetCore(); @@ -2153,10 +2168,21 @@ int startStateMachine(){ } LOG(logINFOBLUE, ("Starting State Machine\n")); virtual_status = 1; - virtual_stop = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + virtual_stop = ComVirtual_getStop(); + if (virtual_stop != 0) { + LOG(logERROR, ("Cant start acquisition. " + "Stop server has not updated stop status to 0\n")); + return FAIL; + } + } if(pthread_create(&pthread_virtual_tid, NULL, &start_timer, NULL)) { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } return FAIL; } LOG(logINFOGREEN, ("Virtual Acquisition started\n")); @@ -2190,6 +2216,10 @@ int startStateMachine(){ #ifdef VIRTUAL void* start_timer(void* arg) { + if (!isControlServer) { + return NULL; + } + int64_t periodNs = getPeriod(); int numFrames = (getNumFrames() * getNumTriggers() ); @@ -2216,6 +2246,8 @@ void* start_timer(void* arg) { // loop over number of frames for(frameNr = 0; frameNr != numFrames; ++frameNr ) { + // update the virtual stop from stop server + virtual_stop = ComVirtual_getStop(); //check if virtual_stop is high if(virtual_stop == 1){ break; @@ -2268,6 +2300,9 @@ void* start_timer(void* arg) { closeUDPSocket(0); virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; } @@ -2276,7 +2311,18 @@ void* start_timer(void* arg) { int stopStateMachine(){ LOG(logINFORED, ("Stopping State Machine\n")); #ifdef VIRTUAL - virtual_stop = 0; + if (!isControlServer) { + virtual_stop = 1; + ComVirtual_setStop(virtual_stop); + // read till status is idle + int tempStatus = 1; + while(tempStatus == 1) { + tempStatus = ComVirtual_getStatus(); + } + virtual_stop = 0; + ComVirtual_setStop(virtual_stop); + LOG(logINFO, ("Stopped State Machine\n")); + } return OK; #endif //stop state machine @@ -2295,7 +2341,10 @@ int stopStateMachine(){ enum runStatus getRunStatus(){ #ifdef VIRTUAL - if(virtual_status == 0){ + if (!isControlServer) { + virtual_status = ComVirtual_getStatus(); + } + if(virtual_status == 0) { LOG(logINFOBLUE, ("Status: IDLE\n")); return IDLE; }else{ @@ -2567,6 +2616,9 @@ int readFrameFromFifo() { uint32_t runBusy() { #ifdef VIRTUAL + if (!isControlServer) { + virtual_status = ComVirtual_getStatus(); + } return virtual_status; #endif uint32_t s = (bus_r(STATUS_REG) & STATUS_RN_BSY_MSK); diff --git a/slsDetectorServers/eigerDetectorServer/CMakeLists.txt b/slsDetectorServers/eigerDetectorServer/CMakeLists.txt index 912f21bbf..b068ef4c4 100644 --- a/slsDetectorServers/eigerDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/eigerDetectorServer/CMakeLists.txt @@ -5,6 +5,7 @@ set(src ../slsDetectorServer/src/communication_funcs.c ../slsDetectorServer/src/communication_funcs_UDP.c ../slsDetectorServer/src/common.c + ../slsDetectorServer/src/communication_virtual.c ) include_directories( diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c index 1b28e1efb..52a9ca195 100755 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c @@ -6,6 +6,8 @@ #ifndef VIRTUAL #include "FebControl.h" #include "Beb.h" +#else +#include "communication_virtual.h" #endif #include //to gethostname @@ -71,6 +73,9 @@ int eiger_tau_ns = 0; #ifdef VIRTUAL +pthread_t virtual_tid; +int virtual_status=0; +int virtual_stop = 0; //values for virtual server int64_t eiger_virtual_exptime = 0; int64_t eiger_virtual_subexptime = 0; @@ -84,10 +89,7 @@ int eiger_virtual_transmission_delay_left=0; int eiger_virtual_transmission_delay_right=0; int eiger_virtual_transmission_delay_frame=0; int eiger_virtual_transmission_flowcontrol_10g=0; -int eiger_virtual_status=0; int eiger_virtual_activate=1; -pthread_t eiger_virtual_tid; -int eiger_virtual_stop = 0; uint64_t eiger_virtual_startingframenumber = 0; int eiger_virtual_detPos[2] = {0, 0}; int eiger_virtual_test_mode = 0; @@ -353,6 +355,10 @@ void initControlServer() { void initStopServer() { #ifdef VIRTUAL getModuleConfiguration(); + virtual_stop = 0; + if (!isControlServer) { + ComVirtual_setStop(virtual_stop); + } return; #else getModuleConfiguration(); @@ -469,6 +475,12 @@ void setupDetector() { } } } +#ifdef VIRTUAL + virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } +#endif LOG(logINFOBLUE, ("Setting Default Parameters\n")); //setting default measurement parameters @@ -1803,11 +1815,22 @@ int startStateMachine() { return FAIL; } LOG(logINFOBLUE, ("Starting State Machine\n")); - eiger_virtual_status = 1; - eiger_virtual_stop = 0; - if (pthread_create(&eiger_virtual_tid, NULL, &start_timer, NULL)) { + virtual_status = 1; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + virtual_stop = ComVirtual_getStop(); + if (virtual_stop != 0) { + LOG(logERROR, ("Cant start acquisition. " + "Stop server has not updated stop status to 0\n")); + return FAIL; + } + } + if (pthread_create(&virtual_tid, NULL, &start_timer, NULL)) { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); - eiger_virtual_status = 0; + virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } return FAIL; } LOG(logINFO ,("Virtual Acquisition started\n")); @@ -1841,6 +1864,10 @@ int startStateMachine() { #ifdef VIRTUAL void* start_timer(void* arg) { + if (!isControlServer) { + return NULL; + } + int64_t periodNs = eiger_virtual_period; int numFrames = nimages_per_request; int64_t expUs = eiger_virtual_exptime / 1000; @@ -1900,8 +1927,10 @@ void* start_timer(void* arg) { usleep(eiger_virtual_transmission_delay_frame); + // update the virtual stop from stop server + virtual_stop = ComVirtual_getStop(); //check if virtual_stop is high - if(eiger_virtual_stop == 1){ + if(virtual_stop == 1){ break; } @@ -1997,7 +2026,10 @@ void* start_timer(void* arg) { closeUDPSocket(0); closeUDPSocket(1); - eiger_virtual_status = 0; + virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; } @@ -2009,7 +2041,18 @@ void* start_timer(void* arg) { int stopStateMachine() { LOG(logINFORED, ("Going to stop acquisition\n")); #ifdef VIRTUAL - eiger_virtual_stop = 0; + if (!isControlServer) { + virtual_stop = 1; + ComVirtual_setStop(virtual_stop); + // read till status is idle + int tempStatus = 1; + while(tempStatus == 1) { + tempStatus = ComVirtual_getStatus(); + } + virtual_stop = 0; + ComVirtual_setStop(virtual_stop); + LOG(logINFO, ("Stopped State Machine\n")); + } return OK; #else if ((Feb_Control_StopAcquisition() != STATUS_IDLE) || (!Beb_StopAcquisition()) ) { @@ -2069,7 +2112,10 @@ int startReadOut() { enum runStatus getRunStatus() { #ifdef VIRTUAL - if (eiger_virtual_status == 0) { + if (!isControlServer) { + virtual_status = ComVirtual_getStatus(); + } + if (virtual_status == 0) { LOG(logINFO, ("Status: IDLE\n")); return IDLE; } else { @@ -2100,7 +2146,7 @@ enum runStatus getRunStatus() { void readFrame(int *ret, char *mess) { #ifdef VIRTUAL // wait for status to be done - while(eiger_virtual_status == 1){ + while(virtual_status == 1){ usleep(500); } LOG(logINFOGREEN, ("acquisition successfully finished\n")); diff --git a/slsDetectorServers/gotthard2DetectorServer/CMakeLists.txt b/slsDetectorServers/gotthard2DetectorServer/CMakeLists.txt index 7d2d6ed01..6b5cdbf5e 100644 --- a/slsDetectorServers/gotthard2DetectorServer/CMakeLists.txt +++ b/slsDetectorServers/gotthard2DetectorServer/CMakeLists.txt @@ -11,6 +11,7 @@ add_executable(gotthard2DetectorServer_virtual ../slsDetectorServer/src/ALTERA_PLL_CYCLONE10.c ../slsDetectorServer/src/ASIC_Driver.c ../slsDetectorServer/src/programFpgaNios.c + ../slsDetectorServer/src/communication_virtual.c ) include_directories( diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c index 7ccae09df..bf9eff71f 100644 --- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c @@ -9,6 +9,7 @@ #include "ASIC_Driver.h" #ifdef VIRTUAL #include "communication_funcs_UDP.h" +#include "communication_virtual.h" #endif #include @@ -27,6 +28,7 @@ extern udpStruct udpDetails; extern const enum detectorType myDetectorType; // Global variable from communication_funcs.c +extern int isControlServer; extern void getMacAddressinString(char* cmac, int size, uint64_t mac); extern void getIpAddressinString(char* cip, uint32_t ip); @@ -337,6 +339,12 @@ void initStopServer() { LOG(logERROR, ("Stop Server: Map Fail. Dangerous to continue. Goodbye!\n")); exit(EXIT_FAILURE); } +#ifdef VIRTUAL + virtual_stop = 0; + if (!isControlServer) { + ComVirtual_setStop(virtual_stop); + } +#endif } @@ -386,7 +394,12 @@ void setupDetector() { } } } - +#ifdef VIRTUAL + virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } +#endif // pll defines ALTERA_PLL_C10_SetDefines(REG_OFFSET, BASE_READOUT_PLL, BASE_SYSTEM_PLL, PLL_RESET_REG, PLL_RESET_REG, PLL_RESET_READOUT_MSK, PLL_RESET_SYSTEM_MSK, READOUT_PLL_VCO_FREQ_HZ, SYSTEM_PLL_VCO_FREQ_HZ); @@ -2006,10 +2019,21 @@ int startStateMachine(){ LOG(logINFOBLUE, ("Starting State Machine\n")); // set status to running virtual_status = 1; - virtual_stop = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + virtual_stop = ComVirtual_getStop(); + if (virtual_stop != 0) { + LOG(logERROR, ("Cant start acquisition. " + "Stop server has not updated stop status to 0\n")); + return FAIL; + } + } if(pthread_create(&pthread_virtual_tid, NULL, &start_timer, NULL)) { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } return FAIL; } LOG(logINFOGREEN, ("Virtual Acquisition started\n")); @@ -2028,6 +2052,10 @@ int startStateMachine(){ #ifdef VIRTUAL void* start_timer(void* arg) { + if (!isControlServer) { + return NULL; + } + int numRepeats = getNumTriggers(); if (getTiming() == AUTO_TIMING) { if (burstMode == BURST_OFF) { @@ -2067,6 +2095,8 @@ void* start_timer(void* arg) { // loop over number of frames for(frameNr = 0; frameNr != numFrames; ++frameNr ) { + // update the virtual stop from stop server + virtual_stop = ComVirtual_getStop(); //check if virtual_stop is high if(virtual_stop == 1){ break; @@ -2125,6 +2155,9 @@ void* start_timer(void* arg) { closeUDPSocket(0); virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; } @@ -2134,7 +2167,18 @@ void* start_timer(void* arg) { int stopStateMachine(){ LOG(logINFORED, ("Stopping State Machine\n")); #ifdef VIRTUAL - virtual_stop = 0; + if (!isControlServer) { + virtual_stop = 1; + ComVirtual_setStop(virtual_stop); + // read till status is idle + int tempStatus = 1; + while(tempStatus == 1) { + tempStatus = ComVirtual_getStatus(); + } + virtual_stop = 0; + ComVirtual_setStop(virtual_stop); + LOG(logINFO, ("Stopped State Machine\n")); + } return OK; #endif //stop state machine @@ -2145,7 +2189,10 @@ int stopStateMachine(){ enum runStatus getRunStatus(){ #ifdef VIRTUAL - if(virtual_status == 0){ + if (!isControlServer) { + virtual_status = ComVirtual_getStatus(); + } + if(virtual_status == 0) { LOG(logINFOBLUE, ("Status: IDLE\n")); return IDLE; }else{ @@ -2219,6 +2266,9 @@ void readFrame(int *ret, char *mess) { u_int32_t runBusy() { #ifdef VIRTUAL + if (!isControlServer) { + virtual_status = ComVirtual_getStatus(); + } return virtual_status; #endif u_int32_t s = (bus_r(FLOW_STATUS_REG) & FLOW_STATUS_RUN_BUSY_MSK); diff --git a/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt b/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt index 8d38278af..eb2c60299 100644 --- a/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt @@ -10,6 +10,7 @@ add_executable(gotthardDetectorServer_virtual ../slsDetectorServer/src/common.c ../slsDetectorServer/src/commonServerFunctions.c ../slsDetectorServer/src/communication_funcs_UDP.c + ../slsDetectorServer/src/communication_virtual.c ) include_directories( diff --git a/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c index 959dd1c53..9a267e246 100755 --- a/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c @@ -6,6 +6,7 @@ #include "LTC2620.h" // dacs #ifdef VIRTUAL #include "communication_funcs_UDP.h" +#include "communication_virtual.h" #endif #include "string.h" @@ -23,6 +24,7 @@ extern const enum detectorType myDetectorType; int phaseShift = DEFAULT_PHASE_SHIFT; // Global variable from communication_funcs.c +extern int isControlServer; extern void getMacAddressinString(char* cmac, int size, uint64_t mac); extern void getIpAddressinString(char* cip, uint32_t ip); @@ -354,6 +356,12 @@ void initStopServer() { LOG(logERROR, ("Stop Server: Map Fail. Dangerous to continue. Goodbye!\n")); exit(EXIT_FAILURE); } +#ifdef VIRTUAL + virtual_stop = 0; + if (!isControlServer) { + ComVirtual_setStop(virtual_stop); + } +#endif } @@ -362,6 +370,13 @@ void initStopServer() { void setupDetector() { LOG(logINFO, ("This Server is for 1 Gotthard module (1280 channels)\n")); +#ifdef VIRTUAL + virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } +#endif + // Initialization setPhaseShiftOnce(); @@ -1496,10 +1511,21 @@ int startStateMachine(){ } LOG(logINFOBLUE, ("Starting State Machine\n")); virtual_status = 1; - virtual_stop = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + virtual_stop = ComVirtual_getStop(); + if (virtual_stop != 0) { + LOG(logERROR, ("Cant start acquisition. " + "Stop server has not updated stop status to 0\n")); + return FAIL; + } + } if(pthread_create(&pthread_virtual_tid, NULL, &start_timer, NULL)) { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } return FAIL; } LOG(logINFOGREEN, ("Virtual Acquisition started\n")); @@ -1519,6 +1545,10 @@ int startStateMachine(){ #ifdef VIRTUAL void* start_timer(void* arg) { + if (!isControlServer) { + return NULL; + } + int64_t periodNs = getPeriod(); int numFrames = (getNumFrames() * getNumTriggers() ); @@ -1549,6 +1579,8 @@ void* start_timer(void* arg) { // loop over number of frames for(frameNr = 0; frameNr != numFrames; ++frameNr ) { + // update the virtual stop from stop server + virtual_stop = ComVirtual_getStop(); //check if virtual_stop is high if(virtual_stop == 1){ break; @@ -1595,6 +1627,9 @@ void* start_timer(void* arg) { closeUDPSocket(0); virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; } @@ -1603,7 +1638,18 @@ void* start_timer(void* arg) { int stopStateMachine(){ LOG(logINFORED, ("Stopping State Machine\n")); #ifdef VIRTUAL - virtual_stop = 0; + if (!isControlServer) { + virtual_stop = 1; + ComVirtual_setStop(virtual_stop); + // read till status is idle + int tempStatus = 1; + while(tempStatus == 1) { + tempStatus = ComVirtual_getStatus(); + } + virtual_stop = 0; + ComVirtual_setStop(virtual_stop); + LOG(logINFO, ("Stopped State Machine\n")); + } return OK; #endif //stop state machine @@ -1625,7 +1671,10 @@ int stopStateMachine(){ enum runStatus getRunStatus(){ #ifdef VIRTUAL - if(virtual_status == 0){ + if (!isControlServer) { + virtual_status = ComVirtual_getStatus(); + } + if(virtual_status == 0) { LOG(logINFOBLUE, ("Status: IDLE\n")); return IDLE; }else{ @@ -1727,6 +1776,9 @@ void readFrame(int *ret, char *mess){ u_int32_t runBusy() { #ifdef VIRTUAL + if (!isControlServer) { + virtual_status = ComVirtual_getStatus(); + } return virtual_status; #endif return runState(logDEBUG1) & STATUS_RN_BSY_MSK; diff --git a/slsDetectorServers/jungfrauDetectorServer/CMakeLists.txt b/slsDetectorServers/jungfrauDetectorServer/CMakeLists.txt index 0215225ee..b3aac94aa 100644 --- a/slsDetectorServers/jungfrauDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/jungfrauDetectorServer/CMakeLists.txt @@ -12,6 +12,7 @@ add_executable(jungfrauDetectorServer_virtual ../slsDetectorServer/src/MAX1932.c ../slsDetectorServer/src/programFpgaBlackfin.c ../slsDetectorServer/src/communication_funcs_UDP.c + ../slsDetectorServer/src/communication_virtual.c ) target_include_directories(jungfrauDetectorServer_virtual diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index 0d5237c6f..be97d17a2 100755 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -8,6 +8,7 @@ #include "common.h" #ifdef VIRTUAL #include "communication_funcs_UDP.h" +#include "communication_virtual.h" #endif #include @@ -25,6 +26,7 @@ extern udpStruct udpDetails; extern const enum detectorType myDetectorType; // Global variable from communication_funcs.c +extern int isControlServer; extern void getMacAddressinString(char* cmac, int size, uint64_t mac); extern void getIpAddressinString(char* cip, uint32_t ip); @@ -373,6 +375,12 @@ void initStopServer() { LOG(logERROR, ("Stop Server: Map Fail. Dangerous to continue. Goodbye!\n")); exit(EXIT_FAILURE); } +#ifdef VIRTUAL + virtual_stop = 0; + if (!isControlServer) { + ComVirtual_setStop(virtual_stop); + } +#endif } @@ -394,6 +402,13 @@ void setupDetector() { clkPhase[i] = 0; } } +#ifdef VIRTUAL + virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } +#endif + ALTERA_PLL_ResetPLL(); resetCore(); resetPeripheral(); @@ -1625,10 +1640,21 @@ int startStateMachine(){ } LOG(logINFOBLUE, ("starting state machine\n")); virtual_status = 1; - virtual_stop = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + virtual_stop = ComVirtual_getStop(); + if (virtual_stop != 0) { + LOG(logERROR, ("Cant start acquisition. " + "Stop server has not updated stop status to 0\n")); + return FAIL; + } + } if(pthread_create(&pthread_virtual_tid, NULL, &start_timer, NULL)) { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } return FAIL; } LOG(logINFOGREEN, ("Virtual Acquisition started\n")); @@ -1649,6 +1675,10 @@ int startStateMachine(){ #ifdef VIRTUAL void* start_timer(void* arg) { + if (!isControlServer) { + return NULL; + } + int numInterfaces = getNumberofUDPInterfaces(); int64_t periodNs = getPeriod(); int numFrames = (getNumFrames() * @@ -1680,6 +1710,8 @@ void* start_timer(void* arg) { usleep(transmissionDelayUs); + // update the virtual stop from stop server + virtual_stop = ComVirtual_getStop(); //check if virtual_stop is high if(virtual_stop == 1){ break; @@ -1757,6 +1789,9 @@ void* start_timer(void* arg) { } virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; } @@ -1765,7 +1800,18 @@ void* start_timer(void* arg) { int stopStateMachine(){ LOG(logINFORED, ("Stopping State Machine\n")); #ifdef VIRTUAL - virtual_stop = 0; + if (!isControlServer) { + virtual_stop = 1; + ComVirtual_setStop(virtual_stop); + // read till status is idle + int tempStatus = 1; + while(tempStatus == 1) { + tempStatus = ComVirtual_getStatus(); + } + virtual_stop = 0; + ComVirtual_setStop(virtual_stop); + LOG(logINFO, ("Stopped State Machine\n")); + } return OK; #endif //stop state machine @@ -1783,7 +1829,10 @@ int stopStateMachine(){ enum runStatus getRunStatus(){ #ifdef VIRTUAL - if(virtual_status == 0){ + if (!isControlServer) { + virtual_status = ComVirtual_getStatus(); + } + if(virtual_status == 0) { LOG(logINFOBLUE, ("Status: IDLE\n")); return IDLE; }else{ @@ -1857,6 +1906,9 @@ void readFrame(int *ret, char *mess){ u_int32_t runBusy() { #ifdef VIRTUAL + if (!isControlServer) { + virtual_status = ComVirtual_getStatus(); + } return virtual_status; #endif u_int32_t s = (bus_r(STATUS_REG) & RUN_BUSY_MSK); diff --git a/slsDetectorServers/moenchDetectorServer/CMakeLists.txt b/slsDetectorServers/moenchDetectorServer/CMakeLists.txt index b1acba756..ff6dd94a0 100644 --- a/slsDetectorServers/moenchDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/moenchDetectorServer/CMakeLists.txt @@ -14,6 +14,7 @@ add_executable(moenchDetectorServer_virtual ../slsDetectorServer/src/MAX1932.c ../slsDetectorServer/src/programFpgaBlackfin.c ../slsDetectorServer/src/readDefaultPattern.c + ../slsDetectorServer/src/communication_virtual.c ) include_directories( diff --git a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c index 59f0763ee..9562adec2 100755 --- a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c @@ -8,6 +8,9 @@ #include "MAX1932.h" // hv #include "ALTERA_PLL.h" // pll #include "common.h" +#ifdef VIRTUAL +#include "communication_virtual.h" +#endif #include #include // usleep @@ -28,6 +31,7 @@ extern uint64_t udpFrameNumber; extern uint32_t udpPacketNumber; // Global variable from communication_funcs.c +extern int isControlServer; extern void getMacAddressinString(char* cmac, int size, uint64_t mac); extern void getIpAddressinString(char* cip, uint32_t ip); @@ -422,6 +426,12 @@ void initStopServer() { LOG(logERROR, ("Stop Server: Map Fail. Dangerous to continue. Goodbye!\n")); exit(EXIT_FAILURE); } +#ifdef VIRTUAL + virtual_stop = 0; + if (!isControlServer) { + ComVirtual_setStop(virtual_stop); + } +#endif } @@ -474,6 +484,12 @@ void setupDetector() { adcEnableMask_1g = 0; adcEnableMask_10g = 0; nSamples = 1; +#ifdef VIRTUAL + virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } +#endif ALTERA_PLL_ResetPLLAndReconfiguration(); resetCore(); @@ -1815,10 +1831,21 @@ int startStateMachine(){ } LOG(logINFOBLUE, ("Starting State Machine\n")); virtual_status = 1; - virtual_stop = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + virtual_stop = ComVirtual_getStop(); + if (virtual_stop != 0) { + LOG(logERROR, ("Cant start acquisition. " + "Stop server has not updated stop status to 0\n")); + return FAIL; + } + } if(pthread_create(&pthread_virtual_tid, NULL, &start_timer, NULL)) { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } return FAIL; } LOG(logINFOGREEN, ("Virtual Acquisition started\n")); @@ -1852,6 +1879,10 @@ int startStateMachine(){ #ifdef VIRTUAL void* start_timer(void* arg) { + if (!isControlServer) { + return NULL; + } + int64_t periodNs = getPeriod(); int numFrames = (getNumFrames() * getNumTriggers() ); @@ -1878,6 +1909,8 @@ void* start_timer(void* arg) { // loop over number of frames for(frameNr = 0; frameNr != numFrames; ++frameNr ) { + // update the virtual stop from stop server + virtual_stop = ComVirtual_getStop(); //check if virtual_stop is high if(virtual_stop == 1){ break; @@ -1929,6 +1962,9 @@ void* start_timer(void* arg) { closeUDPSocket(0); virtual_status = 0; + if (isControlServer) { + ComVirtual_setStatus(virtual_status); + } LOG(logINFOBLUE, ("Finished Acquiring\n")); return NULL; } @@ -1937,7 +1973,18 @@ void* start_timer(void* arg) { int stopStateMachine(){ LOG(logINFORED, ("Stopping State Machine\n")); #ifdef VIRTUAL - virtual_stop = 0; + if (!isControlServer) { + virtual_stop = 1; + ComVirtual_setStop(virtual_stop); + // read till status is idle + int tempStatus = 1; + while(tempStatus == 1) { + tempStatus = ComVirtual_getStatus(); + } + virtual_stop = 0; + ComVirtual_setStop(virtual_stop); + LOG(logINFO, ("Stopped State Machine\n")); + } return OK; #endif //stop state machine @@ -1956,7 +2003,10 @@ int stopStateMachine(){ enum runStatus getRunStatus(){ #ifdef VIRTUAL - if(virtual_status == 0){ + if (!isControlServer) { + virtual_status = ComVirtual_getStatus(); + } + if(virtual_status == 0) { LOG(logINFOBLUE, ("Status: IDLE\n")); return IDLE; }else{ @@ -2191,6 +2241,9 @@ int readFrameFromFifo() { uint32_t runBusy() { #ifdef VIRTUAL + if (!isControlServer) { + virtual_status = ComVirtual_getStatus(); + } return virtual_status; #endif uint32_t s = (bus_r(STATUS_REG) & STATUS_RN_BSY_MSK); diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 649645e7c..f34f6c124 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -1523,7 +1523,7 @@ enum runStatus getRunStatus(){ if (!isControlServer) { virtual_status = ComVirtual_getStatus(); } - if(virtual_status == 0){ + if(virtual_status == 0) { LOG(logINFOBLUE, ("Status: IDLE\n")); return IDLE; } else{ diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index c74922719..a69cb6870 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -868,7 +868,7 @@ TEST_CASE("start", "[.cmd][.rx][.new]") { // PUT only command REQUIRE_THROWS(proxy.Call("start", {}, -1, GET)); auto prev_val = det.getExptime(); - det.setExptime(std::chrono::seconds(10)); + det.setExptime(std::chrono::seconds(2)); { std::ostringstream oss; proxy.Call("start", {}, -1, PUT, oss); @@ -891,7 +891,7 @@ TEST_CASE("stop", "[.cmd][.rx][.new]") { // PUT only command REQUIRE_THROWS(proxy.Call("stop", {}, -1, GET)); auto prev_val = det.getExptime(); - det.setExptime(std::chrono::seconds(10)); + det.setExptime(std::chrono::seconds(2)); det.startDetector(); { std::ostringstream oss; @@ -917,14 +917,14 @@ TEST_CASE("status", "[.cmd][.rx][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getExptime(); - det.setExptime(std::chrono::seconds(10)); - det.startReceiver(); + det.setExptime(std::chrono::seconds(2)); + det.startDetector(); { std::ostringstream oss; proxy.Call("status", {}, -1, GET, oss); REQUIRE(oss.str() == "status running\n"); } - det.stopReceiver(); + det.stopDetector(); { std::ostringstream oss; proxy.Call("status", {}, -1, GET, oss); From a86ae0cb4745f3f6240a09bff0ff35be5a6c8e85 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 7 Apr 2020 12:14:22 +0200 Subject: [PATCH 28/33] WIP --- .../slsDetectorFunctionList.c | 18 ++++++---- .../slsDetectorFunctionList.c | 22 +++++++++--- slsDetectorSoftware/tests/test-CmdProxy.cpp | 36 ++++++++++++++++--- 3 files changed, 60 insertions(+), 16 deletions(-) diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c index 52a9ca195..f657011a7 100755 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c @@ -90,7 +90,7 @@ int eiger_virtual_transmission_delay_right=0; int eiger_virtual_transmission_delay_frame=0; int eiger_virtual_transmission_flowcontrol_10g=0; int eiger_virtual_activate=1; -uint64_t eiger_virtual_startingframenumber = 0; +uint64_t eiger_virtual_startingframenumber = 1; int eiger_virtual_detPos[2] = {0, 0}; int eiger_virtual_test_mode = 0; int eiger_virtual_quad_mode = 0; @@ -1921,9 +1921,11 @@ void* start_timer(void* arg) { // Send data { - int frameNr = 1; + uint64_t frameNr = 0; + getStartingFrameNumber(&frameNr); // loop over number of frames - for(frameNr = 1; frameNr <= numFrames; ++frameNr ) { + int iframes = 0; + for(iframes = 0; iframes != numFrames; ++iframes ) { usleep(eiger_virtual_transmission_delay_frame); @@ -1931,6 +1933,7 @@ void* start_timer(void* arg) { virtual_stop = ComVirtual_getStop(); //check if virtual_stop is high if(virtual_stop == 1){ + setStartingFrameNumber(frameNr + iframes + 1); break; } @@ -1952,7 +1955,7 @@ void* start_timer(void* arg) { sls_detector_header* header = (sls_detector_header*)(packetData); header->detType = 3;//(uint16_t)myDetectorType; updated when firmware updates header->version = SLS_DETECTOR_HEADER_VERSION - 1; - header->frameNumber = frameNr; + header->frameNumber = frameNr + iframes; header->packetNumber = i; header->row = row; header->column = colLeft; @@ -1962,7 +1965,7 @@ void* start_timer(void* arg) { header = (sls_detector_header*)(packetData2); header->detType = 3;//(uint16_t)myDetectorType; updated when firmware updates header->version = SLS_DETECTOR_HEADER_VERSION - 1; - header->frameNumber = frameNr; + header->frameNumber = frameNr + iframes; header->packetNumber = i; header->row = row; header->column = colRight; @@ -2008,18 +2011,19 @@ void* start_timer(void* arg) { sendUDPPacket(1, packetData2, packetsize); } } - LOG(logINFO, ("Sent frame: %d\n", frameNr)); + LOG(logINFO, ("Sent frame: %d\n", iframes)); clock_gettime(CLOCK_REALTIME, &end); int64_t timeNs = ((end.tv_sec - begin.tv_sec) * 1E9 + (end.tv_nsec - begin.tv_nsec)); // sleep for (period - exptime) - if (frameNr < numFrames) { // if there is a next frame + if (iframes < numFrames) { // if there is a next frame if (periodNs > timeNs) { usleep((periodNs - timeNs)/ 1000); } } } + setStartingFrameNumber(frameNr + numFrames); } diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index be97d17a2..42a30b2b0 100755 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -560,16 +560,24 @@ int selectStoragecellStart(int pos) { int setStartingFrameNumber(uint64_t value) { LOG(logINFO, ("Setting starting frame number: %llu\n",(long long unsigned int)value)); +#ifdef VIRTUAL + setU64BitReg(value, FRAME_NUMBER_LSB_REG, FRAME_NUMBER_MSB_REG); +#else // decrement is for firmware setU64BitReg(value - 1, FRAME_NUMBER_LSB_REG, FRAME_NUMBER_MSB_REG); // need to set it twice for the firmware to catch setU64BitReg(value - 1, FRAME_NUMBER_LSB_REG, FRAME_NUMBER_MSB_REG); +#endif return OK; } int getStartingFrameNumber(uint64_t* retval) { +#ifdef VIRTUAL + *retval = getU64BitReg(FRAME_NUMBER_LSB_REG, FRAME_NUMBER_MSB_REG); +#else // increment is for firmware *retval = (getU64BitReg(GET_FRAME_NUMBER_LSB_REG, GET_FRAME_NUMBER_MSB_REG) + 1); +#endif return OK; } @@ -1705,8 +1713,10 @@ void* start_timer(void* arg) { // Send data { - int frameNr = 0; - for(frameNr = 0; frameNr != numFrames; ++frameNr ) { + uint64_t frameNr = 0; + getStartingFrameNumber(&frameNr); + int iframes = 0; + for(iframes = 0; iframes != numFrames; ++iframes ) { usleep(transmissionDelayUs); @@ -1714,6 +1724,7 @@ void* start_timer(void* arg) { virtual_stop = ComVirtual_getStop(); //check if virtual_stop is high if(virtual_stop == 1){ + setStartingFrameNumber(frameNr + iframes + 1); break; } @@ -1734,7 +1745,7 @@ void* start_timer(void* arg) { sls_detector_header* header = (sls_detector_header*)(packetData); header->detType = (uint16_t)myDetectorType; header->version = SLS_DETECTOR_HEADER_VERSION - 1; - header->frameNumber = frameNr; + header->frameNumber = frameNr + iframes; header->packetNumber = i; header->modId = 0; header->row = detPos[2]; @@ -1769,18 +1780,19 @@ void* start_timer(void* arg) { } } } - LOG(logINFO, ("Sent frame: %d\n", frameNr)); + LOG(logINFO, ("Sent frame: %d\n", iframes)); clock_gettime(CLOCK_REALTIME, &end); int64_t timeNs = ((end.tv_sec - begin.tv_sec) * 1E9 + (end.tv_nsec - begin.tv_nsec)); // sleep for (period - exptime) - if (frameNr < numFrames) { // if there is a next frame + if (iframes < numFrames) { // if there is a next frame if (periodNs > timeNs) { usleep((periodNs - timeNs)/ 1000); } } } + setStartingFrameNumber(frameNr + numFrames); } closeUDPSocket(0); diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index a69cb6870..d4785705d 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -862,7 +862,7 @@ TEST_CASE("clearbusy", "[.cmd][.new]") { REQUIRE_THROWS(proxy.Call("clearbusy", {}, -1, GET)); } -TEST_CASE("start", "[.cmd][.rx][.new]") { +TEST_CASE("start", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); // PUT only command @@ -885,7 +885,7 @@ TEST_CASE("start", "[.cmd][.rx][.new]") { } } -TEST_CASE("stop", "[.cmd][.rx][.new]") { +TEST_CASE("stop", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); // PUT only command @@ -913,7 +913,7 @@ TEST_CASE("stop", "[.cmd][.rx][.new]") { } } -TEST_CASE("status", "[.cmd][.rx][.new]") { +TEST_CASE("status", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getExptime(); @@ -935,7 +935,35 @@ TEST_CASE("status", "[.cmd][.rx][.new]") { } } - +TEST_CASE("startingfnum", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER || det_type == defs::JUNGFRAU) { + auto prev_sfnum = det.getStartingFrameNumber(); + REQUIRE_THROWS(proxy.Call("startingfnum", {"0"}, -1, PUT)); + { + std::ostringstream oss; + proxy.Call("startingfnum", {"3"}, -1, PUT, oss); + REQUIRE(oss.str() == "startingfnum 3\n"); + } + { + std::ostringstream oss; + proxy.Call("startingfnum", {}, -1, GET, oss); + REQUIRE(oss.str() == "startingfnum 3\n"); + } + { + std::ostringstream oss; + proxy.Call("startingfnum", {"1"}, -1, PUT, oss); + REQUIRE(oss.str() == "startingfnum 1\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setStartingFrameNumber(prev_sfnum[i], {i}); + } + } else { + REQUIRE_THROWS(proxy.Call("startingfnum", {}, -1, GET)); + } +} From 9f3ad4e2f4390cb38b93730d69e27ed07ad00bad Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 7 Apr 2020 15:14:27 +0200 Subject: [PATCH 29/33] merge from 4.2.0 --- slsDetectorServers/eigerDetectorServer/Beb.c | 176 ++++++++---------- slsDetectorServers/eigerDetectorServer/Beb.h | 2 +- .../bin/eigerDetectorServer_developer | Bin 346990 -> 347438 bytes .../slsDetectorFunctionList.c | 33 +++- .../slsDetectorServer_defs.h | 4 +- .../slsDetectorFunctionList.c | 6 +- slsDetectorSoftware/src/Module.cpp | 11 +- slsReceiverSoftware/src/GeneralData.h | 3 +- slsReceiverSoftware/src/Implementation.cpp | 5 +- slsSupportLib/include/versionAPI.h | 2 +- slsSupportLib/src/ToString.cpp | 2 +- 11 files changed, 119 insertions(+), 125 deletions(-) diff --git a/slsDetectorServers/eigerDetectorServer/Beb.c b/slsDetectorServers/eigerDetectorServer/Beb.c index 3676057a7..da6dcac56 100755 --- a/slsDetectorServers/eigerDetectorServer/Beb.c +++ b/slsDetectorServers/eigerDetectorServer/Beb.c @@ -178,120 +178,100 @@ void Beb_GetModuleConfiguration(int* master, int* top, int* normal) { -void Beb_EndofDataSend(int tengiga) { +int Beb_IsTransmitting(int* retval, int tengiga, int waitForDelay) { //mapping new memory - u_int32_t* csp0base=0; - int l_framepktLsbcounter, l_framepktMsbcounter, l_txndelaycounter, l_framedelaycounter; - int r_framepktLsbcounter, r_framepktMsbcounter, r_txndelaycounter, r_framedelaycounter; - int l_framepktLsbcounter_new, l_framepktMsbcounter_new, l_txndelaycounter_new, l_framedelaycounter_new; - int r_framepktLsbcounter_new, r_framepktMsbcounter_new, r_txndelaycounter_new, r_framedelaycounter_new; - int addr_l_framepktLsbcounter, addr_l_framepktMsbcounter, addr_l_txndelaycounter, addr_l_framedelaycounter; - int addr_r_framepktLsbcounter, addr_r_framepktMsbcounter, addr_r_txndelaycounter, addr_r_framedelaycounter; - - switch(tengiga) { - case 0: - addr_l_framepktLsbcounter = ONE_GIGA_LEFT_INDEX_LSB_COUNTER; - addr_l_framepktMsbcounter = ONE_GIGA_LEFT_INDEX_MSB_COUNTER; - addr_l_txndelaycounter = ONE_GIGA_LEFT_TXN_DELAY_COUNTER; - addr_l_framedelaycounter = ONE_GIGA_LEFT_FRAME_DELAY_COUNTER; - addr_r_framepktLsbcounter = ONE_GIGA_RIGHT_INDEX_LSB_COUNTER; - addr_r_framepktMsbcounter = ONE_GIGA_RIGHT_INDEX_MSB_COUNTER; - addr_r_txndelaycounter = ONE_GIGA_RIGHT_TXN_DELAY_COUNTER; - addr_r_framedelaycounter = ONE_GIGA_RIGHT_FRAME_DELAY_COUNTER; - break; - case 1: - addr_l_framepktLsbcounter = TEN_GIGA_LEFT_INDEX_LSB_COUNTER; - addr_l_framepktMsbcounter = TEN_GIGA_LEFT_INDEX_MSB_COUNTER; + u_int32_t* csp0base = 0; + int addr_l_txndelaycounter = 0, addr_l_framedelaycounter = 0; + int addr_r_txndelaycounter = 0, addr_r_framedelaycounter = 0; + int addr_l_framepktLsbcounter = 0, addr_l_framepktMsbcounter = 0; + int addr_r_framepktLsbcounter = 0, addr_r_framepktMsbcounter = 0; + if (tengiga) { addr_l_txndelaycounter = TEN_GIGA_LEFT_TXN_DELAY_COUNTER; addr_l_framedelaycounter = TEN_GIGA_LEFT_FRAME_DELAY_COUNTER; - addr_r_framepktLsbcounter = TEN_GIGA_RIGHT_INDEX_LSB_COUNTER; - addr_r_framepktMsbcounter = TEN_GIGA_RIGHT_INDEX_MSB_COUNTER; addr_r_txndelaycounter = TEN_GIGA_RIGHT_TXN_DELAY_COUNTER; addr_r_framedelaycounter = TEN_GIGA_RIGHT_FRAME_DELAY_COUNTER; - break; + addr_l_framepktLsbcounter = TEN_GIGA_LEFT_INDEX_LSB_COUNTER; + addr_l_framepktMsbcounter = TEN_GIGA_LEFT_INDEX_MSB_COUNTER; + addr_r_framepktLsbcounter = TEN_GIGA_RIGHT_INDEX_LSB_COUNTER; + addr_r_framepktMsbcounter = TEN_GIGA_RIGHT_INDEX_MSB_COUNTER; + } else { + addr_l_txndelaycounter = ONE_GIGA_LEFT_TXN_DELAY_COUNTER; + addr_l_framedelaycounter = ONE_GIGA_LEFT_FRAME_DELAY_COUNTER; + addr_r_txndelaycounter = ONE_GIGA_RIGHT_TXN_DELAY_COUNTER; + addr_r_framedelaycounter = ONE_GIGA_RIGHT_FRAME_DELAY_COUNTER; + addr_l_framepktLsbcounter = ONE_GIGA_LEFT_INDEX_LSB_COUNTER; + addr_l_framepktMsbcounter = ONE_GIGA_LEFT_INDEX_MSB_COUNTER; + addr_r_framepktLsbcounter = ONE_GIGA_RIGHT_INDEX_LSB_COUNTER; + addr_r_framepktMsbcounter = ONE_GIGA_RIGHT_INDEX_MSB_COUNTER; } - //open file pointer int fd = Beb_open(&csp0base,XPAR_COUNTER_BASEADDR); - if (fd < 0) { - LOG(logERROR, ("Delay read counter fail\n")); - return; + if(fd < 0){ + cprintf(BG_RED,"Could not read Beb Delay read counter\n"); + return FAIL; } else { //read data first time - l_framepktLsbcounter = Beb_Read32(csp0base, addr_l_framepktLsbcounter); - l_framepktMsbcounter = Beb_Read32(csp0base, addr_l_framepktMsbcounter); - l_txndelaycounter = Beb_Read32(csp0base, addr_l_txndelaycounter); - l_framedelaycounter = Beb_Read32(csp0base, addr_l_framedelaycounter); - r_framepktLsbcounter = Beb_Read32(csp0base, addr_r_framepktLsbcounter); - r_framepktMsbcounter = Beb_Read32(csp0base, addr_r_framepktMsbcounter); - r_txndelaycounter = Beb_Read32(csp0base, addr_r_txndelaycounter); - r_framedelaycounter = Beb_Read32(csp0base, addr_r_framedelaycounter); - LOG(logDEBUG1, ("\nLeft\n" - "FramepacketLsbcounter: %d\n" - "FramepacketMsbcounter: %d\n" - "Txndelaycounter:%d\n" - "Framedelaycounter:%d\n" - "\nRight\n" - "FramepacketLsbcounter: %d\n" - "FramepacketMsbcounter: %d\n" - "Txndelaycounter:%d\n" - "Framedelaycounter:%d\n\n", - l_framepktLsbcounter,l_framepktMsbcounter,l_txndelaycounter,l_framedelaycounter, - r_framepktLsbcounter,r_framepktMsbcounter,r_txndelaycounter,r_framedelaycounter)); - - //keep comparing with previous values - int maxtimer; - while(1) { - maxtimer = MAX(MAX(l_txndelaycounter,l_framedelaycounter),MAX(r_txndelaycounter,r_framedelaycounter)); - maxtimer /= 100; - LOG(logDEBUG1, ("Will wait for %d us\n",maxtimer)); - usleep(maxtimer); - - //read new values - l_framepktLsbcounter_new = Beb_Read32(csp0base, addr_l_framepktLsbcounter); - l_framepktMsbcounter_new = Beb_Read32(csp0base, addr_l_framepktMsbcounter); - l_txndelaycounter_new = Beb_Read32(csp0base, addr_l_txndelaycounter); - l_framedelaycounter_new = Beb_Read32(csp0base, addr_l_framedelaycounter); - r_framepktLsbcounter_new = Beb_Read32(csp0base, addr_r_framepktLsbcounter); - r_framepktMsbcounter_new = Beb_Read32(csp0base, addr_r_framepktMsbcounter); - r_txndelaycounter_new = Beb_Read32(csp0base, addr_r_txndelaycounter); - r_framedelaycounter_new = Beb_Read32(csp0base, addr_r_framedelaycounter); - LOG(logDEBUG1, ("\nLeft\n" - "FramepacketLsbcounter: %d\n" - "FramepacketMsbcounter: %d\n" - "Txndelaycounter:%d\n" - "Framedelaycounter:%d\n" - "\nRight\n" - "FramepacketLsbcounter: %d\n" - "FramepacketMsbcounter: %d\n" - "Txndelaycounter:%d\n" - "Framedelaycounter:%d\n\n", - l_framepktLsbcounter_new,l_framepktMsbcounter_new,l_txndelaycounter_new,l_framedelaycounter_new, - r_framepktLsbcounter_new,r_framepktMsbcounter_new,r_txndelaycounter_new,r_framedelaycounter_new)); - - if ((l_framepktLsbcounter == l_framepktLsbcounter_new) && - (l_framepktMsbcounter == l_framepktMsbcounter_new) && - (r_framepktLsbcounter == r_framepktLsbcounter_new) && - (r_framepktMsbcounter == r_framepktMsbcounter_new)) - break; - - //update old values - l_framepktLsbcounter = l_framepktLsbcounter_new; - l_framepktMsbcounter = l_framepktMsbcounter_new; - l_txndelaycounter = l_txndelaycounter_new; - l_framedelaycounter = l_framedelaycounter_new; - r_framepktLsbcounter = r_framepktLsbcounter_new; - r_framepktMsbcounter = r_framepktMsbcounter_new; - r_txndelaycounter = r_txndelaycounter_new; - r_framedelaycounter = r_framedelaycounter_new; - + int l_txndelaycounter = Beb_Read32(csp0base, addr_l_txndelaycounter); + int l_framedelaycounter = Beb_Read32(csp0base, addr_l_framedelaycounter); + int r_txndelaycounter = Beb_Read32(csp0base, addr_r_txndelaycounter); + int r_framedelaycounter = Beb_Read32(csp0base, addr_r_framedelaycounter); + int l_framepktLsbcounter = Beb_Read32(csp0base, addr_l_framepktLsbcounter); + int l_framepktMsbcounter = Beb_Read32(csp0base, addr_l_framepktMsbcounter); + int r_framepktLsbcounter = Beb_Read32(csp0base, addr_r_framepktLsbcounter); + int r_framepktMsbcounter = Beb_Read32(csp0base, addr_r_framepktMsbcounter); +#ifdef VERBOSE + printf("\nFirst Read:\n" + "\tLeft [Txndelaycounter:%d, Framedelaycounter:%d]\n" + "\tRight [Txndelaycounter:%d, Framedelaycounter:%d]\n", + "\tLeft [FramepacketLsbcounter:%d, FramepacketMsbcounter:%d]\n" + "\tRight [FramepacketLsbcounter:%d, FramepacketMsbcounter:%d]\n", + l_txndelaycounter,l_framedelaycounter, r_txndelaycounter,r_framedelaycounter, + l_framepktLsbcounter, l_framepktMsbcounter, r_framepktLsbcounter, r_framepktMsbcounter); +#endif + // wait for max counter delay + if (waitForDelay) { + int maxtimer = (MAX(MAX(l_txndelaycounter,l_framedelaycounter),MAX(r_txndelaycounter,r_framedelaycounter))) / 100; // counter values in 10 ns + printf("Will wait for %d us\n", maxtimer); + usleep (maxtimer); + } + // wait for 1 ms + else { + printf("Will wait for 1 ms\n"); + usleep (1 * 1000); } - LOG(logINFO, ("Detector has sent all data\n")); + // read values again + int l_txndelaycounter2 = Beb_Read32(csp0base, addr_l_txndelaycounter); + int l_framedelaycounter2 = Beb_Read32(csp0base, addr_l_framedelaycounter); + int r_txndelaycounter2 = Beb_Read32(csp0base, addr_r_txndelaycounter); + int r_framedelaycounter2 = Beb_Read32(csp0base, addr_r_framedelaycounter); + int l_framepktLsbcounter2 = Beb_Read32(csp0base, addr_l_framepktLsbcounter); + int l_framepktMsbcounter2 = Beb_Read32(csp0base, addr_l_framepktMsbcounter); + int r_framepktLsbcounter2 = Beb_Read32(csp0base, addr_r_framepktLsbcounter); + int r_framepktMsbcounter2 = Beb_Read32(csp0base, addr_r_framepktMsbcounter); +#ifdef VERBOSE + printf("\nSecond Read:\n" + "\tLeft [Txndelaycounter:%d, Framedelaycounter:%d]\n" + "\tRight [Txndelaycounter:%d, Framedelaycounter:%d]\n", + "\tLeft [FramepacketLsbcounter:%d, FramepacketMsbcounter:%d]\n" + "\tRight [FramepacketLsbcounter:%d, FramepacketMsbcounter:%d]\n", + l_txndelaycounter2,l_framedelaycounter2, r_txndelaycounter2,r_framedelaycounter2, + l_framepktLsbcounter2, l_framepktMsbcounter2, r_framepktLsbcounter2, r_framepktMsbcounter2); +#endif + // any change in values, it is still transmitting + if (l_txndelaycounter != l_txndelaycounter2 || l_framedelaycounter != l_framedelaycounter2 || + r_txndelaycounter != r_txndelaycounter2 || r_framedelaycounter != r_framedelaycounter2 || + l_framepktLsbcounter != l_framepktLsbcounter2 || l_framepktMsbcounter != l_framepktMsbcounter2 || + r_framepktLsbcounter != r_framepktLsbcounter2 || r_framepktMsbcounter != r_framepktMsbcounter2) { + *retval = 1; + } else { + *retval = 0; + } //close file pointer Beb_close(fd,csp0base); } + return OK; } diff --git a/slsDetectorServers/eigerDetectorServer/Beb.h b/slsDetectorServers/eigerDetectorServer/Beb.h index e661873a2..594ff7f1a 100755 --- a/slsDetectorServers/eigerDetectorServer/Beb.h +++ b/slsDetectorServers/eigerDetectorServer/Beb.h @@ -34,7 +34,7 @@ unsigned int Beb_GetBebInfoIndex(unsigned int beb_numb); void Beb_GetModuleConfiguration(int* master, int* top, int* normal); -void Beb_EndofDataSend(int tengiga); +int Beb_IsTransmitting(int* retval, int tengiga, int waitForDelay); int Beb_SetMasterViaSoftware(); int Beb_SetSlaveViaSoftware(); diff --git a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer index 4422adcc19417d7baaed5fae4e9cf6bf66e1789d..699ef958ca4ac3c538eddb0fac9214e13ac03c85 100755 GIT binary patch delta 88191 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 delta 86762 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�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%0DA$~z)J6jbOF_RMu`=0rG#SuFOYC1;4%rj0T)Xc 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 T>o?XfT+!6fojW(@sfYgqQAJm| diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c index f657011a7..4634e941c 100755 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c @@ -2129,19 +2129,23 @@ enum runStatus getRunStatus() { #else int i = Feb_Control_AcquisitionInProgress(); - switch (i) { - case STATUS_ERROR: + if (i == STATUS_ERROR) { LOG(logERROR, ("Status: ERROR reading status register\n")); return ERROR; - case STATUS_IDLE: + } else if (i == STATUS_IDLE) { + int isTransmitting = 0; + if (Beb_IsTransmitting(&isTransmitting, send_to_ten_gig, 0) == FAIL) { + return ERROR; + } + if (isTransmitting) { + printf("Status: TRANSMITTING\n"); + return TRANSMITTING; + } LOG(logINFOBLUE, ("Status: IDLE\n")); return IDLE; - default: - LOG(logINFOBLUE, ("Status: RUNNING...\n")); - return RUNNING; } - - return IDLE; + LOG(logINFOBLUE, ("Status: RUNNING...\n")); + return RUNNING; #endif } @@ -2175,7 +2179,18 @@ void readFrame(int *ret, char *mess) { } //wait for detector to send - Beb_EndofDataSend(send_to_ten_gig); + int isTransmitting = 1; + while (isTransmitting) { + if (Beb_IsTransmitting(&isTransmitting, send_to_ten_gig, 1) == FAIL) { + strcpy(mess,"Could not read delay counters\n"); + *ret = (int)FAIL; + return; + } + if (isTransmitting) { + printf("Transmitting...\n"); + } + } + printf("Detector has sent all data\n"); LOG(logINFOGREEN, ("Acquisition successfully finished\n")); #endif } diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/eigerDetectorServer/slsDetectorServer_defs.h index a885456ee..d5c3b5baa 100755 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorServer_defs.h @@ -63,10 +63,10 @@ enum CLKINDEX {RUN_CLK, NUM_CLOCKS}; #define DEFAULT_SUBFRAME_DEADTIME (0) #define DEFAULT_DYNAMIC_RANGE (16) -#define DEFAULT_PARALLEL_MODE (0) +#define DEFAULT_PARALLEL_MODE (1) #define DEFAULT_READOUT_STOREINRAM_MODE (0) #define DEFAULT_READOUT_OVERFLOW32_MODE (0) -#define DEFAULT_CLK_SPEED (HALF_SPEED) +#define DEFAULT_CLK_SPEED (FULL_SPEED) #define DEFAULT_IO_DELAY (650) #define DEFAULT_TIMING_MODE (AUTO_TIMING) #define DEFAULT_PHOTON_ENERGY (-1) diff --git a/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c index 9a267e246..9f5349b4b 100755 --- a/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c @@ -1567,15 +1567,15 @@ void* start_timer(void* arg) { if (adcConfigured == -1) { *((uint32_t*)(imageData)) = 0xCACACACA; } - for (i = 4; i < imageSize; i += sizeof(uint16_t)) { - *((uint16_t*)(imageData + i)) = i; + for (i = sizeof(uint32_t); i < imageSize; i += sizeof(uint16_t)) { + *((uint16_t*)(imageData + i)) = (uint16_t)i; } } // Send data { int frameNr = 0; - int frameHeaderNr = 2; + uint16_t frameHeaderNr = 2; // loop over number of frames for(frameNr = 0; frameNr != numFrames; ++frameNr ) { diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index f68ae5ee5..e31a0d90a 100755 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -1393,17 +1393,12 @@ void Module::setDynamicRange(int n) { // changes in dr if (n != prev_val) { // update speed for usability - switch (n) { - case 32: + if (n == 32) { LOG(logINFO) << "Setting Clock to Quarter Speed to cope with Dynamic Range of 32"; setClockDivider(RUN_CLOCK, 2); - break; - case 16: - LOG(logINFO) << "Setting Clock to Full Speed to cope with Dynamic Range of " << n; + } else if (prev_val == 32) { + LOG(logINFO) << "Setting Clock to Full Speed for Dynamic Range of " << n; setClockDivider(RUN_CLOCK, 0); - break; - default: - break; } updateRateCorrection(); } diff --git a/slsReceiverSoftware/src/GeneralData.h b/slsReceiverSoftware/src/GeneralData.h index ba6778094..4aec7f4ff 100755 --- a/slsReceiverSoftware/src/GeneralData.h +++ b/slsReceiverSoftware/src/GeneralData.h @@ -414,7 +414,7 @@ class EigerData : public GeneralData { imageSize = dataSize*packetsPerFrame; maxFramesPerFile = EIGER_MAX_FRAMES_PER_FILE; fifoBufferHeaderSize= FIFO_HEADER_NUMBYTES + sizeof(slsDetectorDefs::sls_receiver_header); - defaultFifoDepth = 100; + defaultFifoDepth = 1000; threadsPerReceiver = 2; headerPacketSize = 40; standardheader = true; @@ -428,6 +428,7 @@ class EigerData : public GeneralData { void SetDynamicRange(int dr, bool tgEnable) { packetsPerFrame = (tgEnable ? 4 : 16) * dr; imageSize = dataSize*packetsPerFrame; + defaultFifoDepth = (dr == 32 ? 100 : 1000); } /** diff --git a/slsReceiverSoftware/src/Implementation.cpp b/slsReceiverSoftware/src/Implementation.cpp index 21bfa83cc..73dad4599 100755 --- a/slsReceiverSoftware/src/Implementation.cpp +++ b/slsReceiverSoftware/src/Implementation.cpp @@ -187,7 +187,9 @@ void Implementation::SetupFifoStructure() { fifoDepth)); } catch (...) { fifo.clear(); - throw sls::RuntimeError("Could not allocate memory for fifo structure " + std::to_string(i)); + fifoDepth = 0; + throw sls::RuntimeError("Could not allocate memory for fifo structure " + + std::to_string(i) + ". FifoDepth is now 0."); } // set the listener & dataprocessor threads to point to the right fifo if (listener.size()) @@ -1475,6 +1477,7 @@ void Implementation::setDynamicRange(const uint32_t i) { // to update npixelsx, npixelsy in file writer for (const auto &it : dataProcessor) it->SetPixelDimension(); + fifoDepth = generalData->defaultFifoDepth; SetupFifoStructure(); } } diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index 905e6d156..fa26ed6d2 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -6,7 +6,7 @@ #define APIJUNGFRAU 0x200402 #define APIMYTHEN3 0x200402 #define APIMOENCH 0x200331 -#define APIEIGER 0x200402 #define APILIB 0x200402 #define APIRECEIVER 0x200402 #define APIGUI 0x200331 +#define APIEIGER 0x200407 diff --git a/slsSupportLib/src/ToString.cpp b/slsSupportLib/src/ToString.cpp index deb336d16..e119a7422 100644 --- a/slsSupportLib/src/ToString.cpp +++ b/slsSupportLib/src/ToString.cpp @@ -11,7 +11,7 @@ std::string ToString(const defs::runStatus s) { case defs::RUNNING: return std::string("running"); case defs::TRANSMITTING: - return std::string("data"); + return std::string("transmitting"); case defs::RUN_FINISHED: return std::string("finished"); case defs::STOPPED: From 07cd71f0c77c9d91725585f7771afa61cf8c2631 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 7 Apr 2020 17:19:47 +0200 Subject: [PATCH 30/33] removed update shared memory from detector, check if eiger firmware >=26: have same top and bottom addresses --- .../bin/ctbDetectorServer_developer | Bin 189532 -> 188872 bytes .../bin/eigerDetectorServer_developer | Bin 347438 -> 346924 bytes .../slsDetectorFunctionList.c | 9 ++- .../slsDetectorServer_defs.h | 1 + .../bin/gotthard2DetectorServer_developer | Bin 166572 -> 166512 bytes .../bin/gotthardDetectorServer_developer | Bin 140528 -> 140140 bytes .../bin/jungfrauDetectorServer_developer | Bin 156804 -> 156344 bytes .../bin/moenchDetectorServer_developer | Bin 184488 -> 183796 bytes .../bin/mythen3DetectorServer_developer | Bin 168096 -> 163944 bytes .../include/slsDetectorServer_funcs.h | 2 - .../src/communication_funcs.c | 4 -- .../src/slsDetectorServer_funcs.c | 56 ---------------- slsDetectorSoftware/src/Module.cpp | 60 +----------------- slsDetectorSoftware/src/Module.h | 5 -- slsSupportLib/include/sls_detector_defs.h | 3 +- slsSupportLib/include/sls_detector_funcs.h | 2 - slsSupportLib/include/versionAPI.h | 12 ++-- 17 files changed, 19 insertions(+), 135 deletions(-) diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer index 731af3d6d5ea799d126b48510da3a985a2c4eb7e..fbf0f9ed732a3170bb642a9f70307b3b8d3c1a2b 100755 GIT binary patch delta 92455 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�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 rJ%zuQLGpgDn%YQ%-1 delta 93482 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 Sye~6;BzkdIX3vS}?!13IcWc)ATe>_{w+CNDe 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�EU^k@Q`hy2{w-VWS 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%0DOpJ&GRIdr*36+@pmD2gtXA3XhJE<0}`+ljXhv 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 LWvCAQ>E!NZ|T?J_B%G$`e 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 z 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