diff --git a/src/DataBuffer.py b/src/DataBuffer.py index 21b533196010f433a49e4c95e7a3b4eda53d211c..4aafe89c862c475bc028953afa0b10be0222112d 100644 --- a/src/DataBuffer.py +++ b/src/DataBuffer.py @@ -112,14 +112,18 @@ class donkiBuffer(threading.Thread): self.trg_range[data_name] = [1,1] idx = 0 for dd in data_in: - if sys.getsizeof(self.dbuffers[data_name]) > self.max_size: + if hasattr(dd, "nbytes"): + # numpy ndarray case + buffersize = len(self.dbuffers[data_name]) * dd.nbytes + else: + buffersize = len(self.dbuffers[data_name]) * sys.getsizeof(dd) + if buffersize > self.max_size: try: if (self.trg_range[data_name][0]) in (self.dbuffers[data_name]).keys(): - del self.dbuffers[data_name][self.trg_range[data_name][0]] + del self.dbuffers[data_name][self.trg_range[data_name][0]] self.trg_range[data_name][0] = self.trg_range[data_name][0] + 1 except: traceback.print_exc() - self.dbuffers[data_name][trg_in+idx] = dd self._last_trigger = max(self._last_trigger,trg_f) self.lock.release()