Improvements before MAX IV test
This commit is contained in:
@@ -912,77 +912,6 @@ TEST_CASE("HLS_C_Simulation_internal_packet_generator_convert_full_range_adu_his
|
||||
REQUIRE(err == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("HLS_C_Simulation_internal_packet_generator_apply_pixel_mask", "[FPGA][Full]") {
|
||||
double energy = 6.0;
|
||||
|
||||
const uint16_t nmodules = 1;
|
||||
DiffractionExperiment x((DetectorGeometry(nmodules)));
|
||||
|
||||
JFModulePedestal pedestal_g0, pedestal_g1, pedestal_g2;
|
||||
std::vector<double> gain(3 * RAW_MODULE_SIZE);
|
||||
|
||||
std::vector<uint16_t> test_frame(RAW_MODULE_SIZE);
|
||||
|
||||
for (int i = 0; i < RAW_MODULE_SIZE; i++) {
|
||||
test_frame[i] = 5000 | ((i > 128*1024) ? 16384:0) | ((i > 256*1024) ? 32768 : 0);
|
||||
}
|
||||
|
||||
for (int i = 0; i < RAW_MODULE_SIZE; i++) {
|
||||
pedestal_g0.GetPedestal()[i] = 3000;
|
||||
pedestal_g1.GetPedestal()[i] = 14000;
|
||||
pedestal_g2.GetPedestal()[i] = 15000;
|
||||
}
|
||||
pedestal_g0.GetPedestalMask()[0] = 1;
|
||||
pedestal_g1.GetPedestalMask()[1] = 1;
|
||||
pedestal_g2.GetPedestalMask()[2] = 1;
|
||||
|
||||
pedestal_g0.GetPedestalMask()[128*1024+1] = 1;
|
||||
pedestal_g1.GetPedestalMask()[128*1024+2] = 1;
|
||||
pedestal_g2.GetPedestalMask()[128*1024+3] = 1;
|
||||
|
||||
pedestal_g0.GetPedestalMask()[256*1024+1] = 1;
|
||||
pedestal_g1.GetPedestalMask()[256*1024+2] = 1;
|
||||
pedestal_g2.GetPedestalMask()[256*1024+3] = 1;
|
||||
|
||||
x.Mode(DetectorMode::Conversion);
|
||||
x.PedestalG0Frames(0).NumTriggers(1).ImagesPerTrigger(1).UseInternalPacketGenerator(true).PhotonEnergy_keV(energy)
|
||||
.ApplyPixelMaskInFPGA(true);
|
||||
REQUIRE(x.GetPhotonEnergy_keV() == Approx(energy));
|
||||
|
||||
JFCalibration c(x);
|
||||
c.Pedestal(0,0) = pedestal_g0;
|
||||
c.Pedestal(0,1) = pedestal_g1;
|
||||
c.Pedestal(0,2) = pedestal_g2;
|
||||
c.Mask(3) = UINT32_MAX;
|
||||
c.Mask(128*1024+3) = UINT32_MAX;
|
||||
c.Mask(256*1024+3) = UINT32_MAX;
|
||||
|
||||
HLSSimulatedDevice test(0, 64);
|
||||
|
||||
for (int m = 0; m < x.GetModulesNum(); m++)
|
||||
test.SetInternalGeneratorFrame(test_frame.data(), m);
|
||||
|
||||
REQUIRE_NOTHROW(test.InitializeCalibration(x, c));
|
||||
REQUIRE_NOTHROW(test.StartAction(x));
|
||||
REQUIRE_NOTHROW(test.WaitForActionComplete());
|
||||
|
||||
REQUIRE_NOTHROW(test.OutputStream().read());
|
||||
REQUIRE(test.OutputStream().size() == 0);
|
||||
|
||||
REQUIRE(test.GetBytesReceived() == 128 * JUNGFRAU_PACKET_SIZE_BYTES);
|
||||
|
||||
size_t err = 0;
|
||||
auto frame = test.GetDeviceOutput(0,0)->pixels;
|
||||
auto mask = c.CalculateMask(x);
|
||||
for (int i = 0; i < RAW_MODULE_SIZE; i++) {
|
||||
if (mask[i] && (frame[i] != INT16_MIN))
|
||||
err++;
|
||||
if (!mask[i] && (frame[i] == INT16_MIN))
|
||||
err++;
|
||||
}
|
||||
REQUIRE(err == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("HLS_C_Simulation_check_2_trigger_convert", "[FPGA][Full]") {
|
||||
std::vector<float> pedestal_g0(RAW_MODULE_SIZE), pedestal_g1(RAW_MODULE_SIZE), pedestal_g2(RAW_MODULE_SIZE);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user