ProcessJFPacket: Enable conversion (no storage cells at the moment)
This commit is contained in:
@@ -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)));
|
||||
}
|
||||
Reference in New Issue
Block a user