ProcessJFPacket: Enable conversion (no storage cells at the moment)

This commit is contained in:
2023-06-03 20:49:43 +02:00
parent d6d827fd9d
commit 38b59de045
3 changed files with 70 additions and 2 deletions

View File

@@ -91,4 +91,42 @@ TEST_CASE("ProcessRawPacketTest") {
CHECK(array_0[4096*36] == 6789);
CHECK(array_1[4096*(36+64)] == 6345);
CHECK(array_2[4096*(16+64)] == 6346);
}
TEST_CASE("ProcessRawPacketTest_Conversion") {
ThreadSafeFIFO<Completion> c_fifo;
ThreadSafeFIFO<WorkRequest> wr_fifo;
std::vector<uint16_t> array_0(RAW_MODULE_SIZE);
wr_fifo.Put(WorkRequest{.ptr = array_0.data(), .handle = 0});
DiffractionExperiment experiment(DetectorGeometry(8));
experiment.DataStreams(2).PhotonEnergy_keV(2);
JFCalibration calibration(experiment);
calibration.Pedestal(6, 0, 0).GetPedestal()[4096*36] = 300;
calibration.Pedestal(6, 1, 0).GetPedestal()[4096*36+1] = 15000;
calibration.Pedestal(6, 2, 0).GetPedestal()[4096*36+2] = 14000;
{
ProcessJFPacket process(c_fifo, wr_fifo, 4);
REQUIRE_NOTHROW(process.RegisterConversion(experiment, calibration, 1));
jf_udp_payload datagram;
datagram.packetnum = 36;
datagram.framenum = 2;
datagram.bunchid = 84;
datagram.data[0] = 600;
datagram.data[1] = 16384 | 4000;
datagram.data[2] = 32768 | 16384 | 9000;
datagram.xCoord = 4;
process.ProcessPacket(&datagram);
REQUIRE(process.GetCounter() == 1);
}
CHECK(array_0[4096*36] == std::round((600 - 300) / (DEFAULT_G0_FACTOR*2)));
CHECK(array_0[4096*36+1] == std::round((4000 - 15000) / (DEFAULT_G1_FACTOR*2)));
CHECK(array_0[4096*36+2] == std::round((9000 - 14000) / (DEFAULT_G2_FACTOR*2)));
}