Split buffer reader and ram buffer

This commit is contained in:
2020-11-11 15:48:45 +01:00
parent 5438ae5f7a
commit 92f1fd6fc9
2 changed files with 28 additions and 27 deletions
-27
View File
@@ -80,30 +80,3 @@ class BufferReader(object):
def close_file(self):
if self._file:
self._file.close()
class RamBuffer(object):
def __init__(self, n_modules, n_slots):
self.n_modules = n_modules
self.n_slots = n_slots
self.raw_buffer = bytearray(self.n_modules * self.n_slots * BUFFER_FRAME_BYTES)
def get_buffers(self, module_id, pulse_id):
# pulse_id index in RAM buffer
buffer_index = pulse_id % self.n_slots
# pulse_id index bytes offset in RAM buffer
pulse_id_offset = buffer_index * self.n_modules * BUFFER_FRAME_BYTES
# Pulse_id slot offset + module_id offset in meta buffer.
meta_offset_start = pulse_id_offset + (module_id * META_FRAME_BYTES)
meta_offset_end = meta_offset_start + META_FRAME_BYTES
# Pulse_id slot offset + metadata buffer offset + module_id offset in data buffer.
data_offset_start = pulse_id_offset + (self.n_modules * META_FRAME_BYTES) + (module_id * DATA_FRAME_BYTES)
data_offset_end = data_offset_start + DATA_FRAME_BYTES
meta_buffer = memoryview(self.raw_buffer)[meta_offset_start:meta_offset_end]
data_buffer = memoryview(self.raw_buffer)[data_offset_start:data_offset_end]
return meta_buffer, data_buffer
+28
View File
@@ -0,0 +1,28 @@
from sf_daq_broker.detector.buffer_reader import BUFFER_FRAME_BYTES, META_FRAME_BYTES, DATA_FRAME_BYTES
class RamBuffer(object):
def __init__(self, n_modules, n_slots):
self.n_modules = n_modules
self.n_slots = n_slots
self.raw_buffer = bytearray(self.n_modules * self.n_slots * BUFFER_FRAME_BYTES)
def get_buffers(self, module_id, pulse_id):
# pulse_id index in RAM buffer
buffer_index = pulse_id % self.n_slots
# pulse_id index bytes offset in RAM buffer
pulse_id_offset = buffer_index * self.n_modules * BUFFER_FRAME_BYTES
# Pulse_id slot offset + module_id offset in meta buffer.
meta_offset_start = pulse_id_offset + (module_id * META_FRAME_BYTES)
meta_offset_end = meta_offset_start + META_FRAME_BYTES
# Pulse_id slot offset + metadata buffer offset + module_id offset in data buffer.
data_offset_start = pulse_id_offset + (self.n_modules * META_FRAME_BYTES) + (module_id * DATA_FRAME_BYTES)
data_offset_end = data_offset_start + DATA_FRAME_BYTES
meta_buffer = memoryview(self.raw_buffer)[meta_offset_start:meta_offset_end]
data_buffer = memoryview(self.raw_buffer)[data_offset_start:data_offset_end]
return meta_buffer, data_buffer