Bug fix in image assembly code

This commit is contained in:
2020-11-17 10:51:46 +01:00
parent 18a97bac6e
commit 18252bdc50
2 changed files with 18 additions and 1 deletions
+1 -1
View File
@@ -42,7 +42,7 @@ class RamBuffer(object):
# Pulse_id slot offset + data buffer offset
data_offset_start = pulse_id_offset + META_FRAME_BYTES * self.n_modules
data_offset_end = data_offset_start + DATA_FRAME_BYTES
data_offset_end = data_offset_start + DATA_FRAME_BYTES * self.n_modules
meta_buffer = memoryview(self.raw_buffer)[meta_offset_start:meta_offset_end]
data_buffer = memoryview(self.raw_buffer)[data_offset_start:data_offset_end]
+17
View File
@@ -1,5 +1,7 @@
import unittest
import numpy
from sf_daq_broker.detector.buffer_reader import FrameMetadata, META_FRAME_BYTES
from sf_daq_broker.detector.image_assembler import JF_N_PACKETS_PER_FRAME
from sf_daq_broker.detector.ram_buffer import RamBuffer
@@ -29,9 +31,14 @@ class TestRamBuffer(unittest.TestCase):
metadata.daq_rec = pulse_id + 10000
metadata.n_recv_packets = JF_N_PACKETS_PER_FRAME
data = numpy.frombuffer(image_buffer, dtype="uint16")
data += module_id
for pulse_id in pulse_ids:
image_meta, image_buffer = ram_buffer.get_image_buffers(pulse_id)
image = numpy.frombuffer(image_buffer, dtype="uint16").reshape(1024 * n_modules, 512)
for module_id in range(n_modules):
metadata = FrameMetadata.from_buffer(image_meta, module_id * META_FRAME_BYTES)
self.assertEqual(pulse_id, metadata.pulse_id)
@@ -40,3 +47,13 @@ class TestRamBuffer(unittest.TestCase):
self.assertEqual(pulse_id+10000, metadata.daq_rec)
self.assertEqual(JF_N_PACKETS_PER_FRAME, metadata.n_recv_packets)
start_offset = module_id * 1024
end_offset = start_offset + 1024
frame_data = image[start_offset:end_offset, :]
# We test only first and last line. Improves speed and we can still test modules boundary.
first_line = frame_data[0, :]
last_line = frame_data[-1, :]
self.assertTrue(all((x == module_id for x in first_line)))
self.assertTrue(all((x == module_id for x in last_line)))