mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-21 11:20:04 +02:00
more tests
This commit is contained in:
parent
5c0e1643f2
commit
5192be6784
@ -4,6 +4,8 @@
|
|||||||
#include "tests/globals.h"
|
#include "tests/globals.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace Catch::literals;
|
||||||
|
|
||||||
TEST_CASE("Initialize a multi detector", "[.integration][.multi]") {
|
TEST_CASE("Initialize a multi detector", "[.integration][.multi]") {
|
||||||
auto hostnames = sls::split(hostname, '+');
|
auto hostnames = sls::split(hostname, '+');
|
||||||
|
|
||||||
@ -83,7 +85,6 @@ TEST_CASE("Set and get dacs", "[.integration][.multi]") {
|
|||||||
CHECK(d.setDAC(-1, di::THRESHOLD, 0) == -1);
|
CHECK(d.setDAC(-1, di::THRESHOLD, 0) == -1);
|
||||||
CHECK(d.setDAC(-1, di::THRESHOLD, 0, 0) == -1);
|
CHECK(d.setDAC(-1, di::THRESHOLD, 0, 0) == -1);
|
||||||
CHECK(d.setDAC(-1, di::THRESHOLD, 0, 1) == -1);
|
CHECK(d.setDAC(-1, di::THRESHOLD, 0, 1) == -1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -110,17 +111,84 @@ TEST_CASE("Set and get dacs", "[.integration][.multi]") {
|
|||||||
d.freeSharedMemory();
|
d.freeSharedMemory();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("Timers", "[.integration][.multi]") {
|
TEST_CASE("Set and read timers", "[.integration][.multi]") {
|
||||||
|
|
||||||
multiSlsDetector d(0, true, true);
|
multiSlsDetector d(0, true, true);
|
||||||
d.setHostname(hostname.c_str());
|
d.setHostname(hostname.c_str());
|
||||||
|
|
||||||
|
// FRAME_NUMBER
|
||||||
int n_frames = 3;
|
int n_frames = 3;
|
||||||
d.setNumberOfFrames(n_frames);
|
d.setNumberOfFrames(n_frames);
|
||||||
CHECK(d.setNumberOfFrames() == n_frames);
|
CHECK(d.setNumberOfFrames() == n_frames);
|
||||||
|
|
||||||
double exptime = 1;
|
// ACQUISITION_TIME
|
||||||
|
double exptime = 0.3;
|
||||||
d.setExposureTime(exptime, true);
|
d.setExposureTime(exptime, true);
|
||||||
CHECK(d.setExposureTime(-1, true) == exptime);
|
CHECK(d.setExposureTime(-1, true) == Approx(exptime));
|
||||||
|
CHECK(d.setExposureTime(-1) == Approx(exptime * 1E9));
|
||||||
|
|
||||||
|
// FRAME_PERIOD,
|
||||||
|
double period = 0.5;
|
||||||
|
d.setExposurePeriod(period, true);
|
||||||
|
CHECK(d.setExposurePeriod(-1, true) == Approx(period));
|
||||||
|
CHECK(d.setExposurePeriod(-1) == Approx(period * 1E9));
|
||||||
|
|
||||||
|
// DELAY_AFTER_TRIGGER,
|
||||||
|
// GATES_NUMBER,
|
||||||
|
// CYCLES_NUMBER,
|
||||||
|
// ACTUAL_TIME
|
||||||
|
// MEASUREMENT_TIME
|
||||||
|
|
||||||
|
// PROGRESS, /**< fraction of measurement elapsed - only get! */
|
||||||
|
// MEASUREMENTS_NUMBER,
|
||||||
|
|
||||||
|
int measurements = 2;
|
||||||
|
d.setTimer(ti::MEASUREMENTS_NUMBER, measurements);
|
||||||
|
CHECK(d.setTimer(ti::MEASUREMENTS_NUMBER, -1) == measurements);
|
||||||
|
|
||||||
|
// FRAMES_FROM_START,
|
||||||
|
// FRAMES_FROM_START_PG,
|
||||||
|
// SAMPLES,
|
||||||
|
|
||||||
|
// SUBFRAME_ACQUISITION_TIME, /**< subframe exposure time */
|
||||||
|
double subframe_exposure = 2000000; // ns
|
||||||
|
if (type == dt::EIGER) {
|
||||||
|
d.setSubFrameExposureTime(subframe_exposure);
|
||||||
|
CHECK(d.setSubFrameExposureTime(-1) == Approx(subframe_exposure));
|
||||||
|
}
|
||||||
|
|
||||||
|
// STORAGE_CELL_NUMBER, /**<number of storage cells */
|
||||||
|
|
||||||
|
// SUBFRAME_DEADTIME, /**< subframe deadtime */
|
||||||
|
double subframe_deadtime = 4000; // ns
|
||||||
|
if (type == dt::EIGER) {
|
||||||
|
d.setSubFrameExposureDeadTime(subframe_deadtime);
|
||||||
|
CHECK(d.setSubFrameExposureDeadTime(-1) == Approx(subframe_deadtime));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (type == dt::EIGER) {
|
||||||
|
// 32bit is needed for subframe exposure
|
||||||
|
d.setDynamicRange(32);
|
||||||
|
CHECK(d.setDynamicRange(-1) == 32);
|
||||||
|
d.setReadOutFlags(ro::PARALLEL);
|
||||||
|
|
||||||
|
// Needed to have measured values
|
||||||
|
d.acquire();
|
||||||
|
|
||||||
|
// MEASURED_PERIOD, /**< measured period */
|
||||||
|
for (int i = 0; i != d.getNumberOfDetectors(); ++i) {
|
||||||
|
CHECK(d.getMeasuredPeriod(true, i) == Approx(period));
|
||||||
|
}
|
||||||
|
|
||||||
|
// MEASURED_SUBPERIOD, /**< measured subperiod */
|
||||||
|
for (int i = 0; i != d.getNumberOfDetectors(); ++i) {
|
||||||
|
CHECK(d.getMeasuredSubFramePeriod(false, i) ==
|
||||||
|
Approx(subframe_deadtime + subframe_exposure));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MAX_TIMERS
|
||||||
|
|
||||||
d.freeSharedMemory();
|
d.freeSharedMemory();
|
||||||
}
|
}
|
@ -1,6 +1,8 @@
|
|||||||
#include "sls_detector_defs.h"
|
#include "sls_detector_defs.h"
|
||||||
using dt = slsDetectorDefs::detectorType;
|
using dt = slsDetectorDefs::detectorType;
|
||||||
using di = slsDetectorDefs::dacIndex;
|
using di = slsDetectorDefs::dacIndex;
|
||||||
|
using ti = slsDetectorDefs::timerIndex;
|
||||||
|
using ro = slsDetectorDefs::readOutFlags;
|
||||||
extern std::string hostname;
|
extern std::string hostname;
|
||||||
extern std::string detector_type;
|
extern std::string detector_type;
|
||||||
extern dt type;
|
extern dt type;
|
Loading…
x
Reference in New Issue
Block a user