mirror of
https://github.com/paulscherrerinstitute/sf_daq_broker.git
synced 2026-08-04 23:02:25 +02:00
Split buffer reader and ram buffer
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user