- sample = (timestamp, value)
- traces = item.data(MeasurementDataModel.tracesRole)
- traces[unit].append(sample)
+ if not math.isinf(value) and not math.isnan(value):
+ sample = (timestamp, value)
+ traces = item.data(MeasurementDataModel.tracesRole)
+
+ # It's not possible to use 'collections.defaultdict' here, because
+ # PySide doesn't return the original type that was passed in.
+ if not (unit in traces):
+ traces[unit] = Trace()
+ traces[unit].append(sample)
+
+ item.setData(traces, MeasurementDataModel.tracesRole)
+
+ def clear_samples(self):
+ '''Removes all old samples from the model.'''
+ for row in range(self.rowCount()):
+ idx = self.index(row, 0)
+ self.setData(idx, {},
+ MeasurementDataModel.tracesRole)