Source code for sensors.Utilities.numpy_ringbuffer

import numpy as np


[docs]class RingBuffer: """Creates a 1D ring buffer object using numpy arrays. :param length: length of ring buffer :type length: int """ def __init__(self, length): self.data = np.zeros(length, dtype='f') self.index = 0
[docs] def extend(self, array): """Writes the array into the ring buffer. :param array: added array :type array: 1D float array """ x_index = (self.index + np.arange(array.size)) % self.data.size self.data[x_index] = array self.index = x_index[-1] + 1
[docs] def get(self): """Returns the ring buffer. :return: ring buffer :rtype: 1D float array """ idx = (self.index + np.arange(self.data.size)) % self.data.size return self.data[idx]