mirror of
https://github.com/paulscherrerinstitute/sf_daq_broker.git
synced 2026-08-05 05:02:26 +02:00
Finish buffer reader
This commit is contained in:
@@ -34,7 +34,7 @@ class BufferReader(object):
|
||||
self._file = None
|
||||
self._filename = None
|
||||
|
||||
def read_frame(self, pulse_id):
|
||||
def load_frame(self, pulse_id):
|
||||
pulse_filename, pulse_index = self._get_pulse_id_location(pulse_id)
|
||||
|
||||
if pulse_filename != self._filename:
|
||||
@@ -89,8 +89,21 @@ class RamBuffer(object):
|
||||
|
||||
self.raw_buffer = bytearray(self.n_modules * self.n_slots * BUFFER_FRAME_BYTES)
|
||||
|
||||
def get_raw_buffer(self, module_id, pulse_id):
|
||||
buffer_index_start = pulse_id % self.n_slots
|
||||
buffer_index_end = buffer_index_start + 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
|
||||
|
||||
return memoryview(self.raw_buffer)[buffer_index_start:buffer_index_end]
|
||||
# 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