Finish buffer reader

This commit is contained in:
2020-11-11 15:45:30 +01:00
parent f5fedf4867
commit 5438ae5f7a
+18 -5
View File
@@ -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