From 902ade82c31c2fc3caaecac5d8efd2881ae7206b Mon Sep 17 00:00:00 2001 From: schneider <schneider@blinkenlichts.net> Date: Sat, 11 Apr 2020 04:19:29 +0200 Subject: [PATCH] fix(spo2): Use averaging from TomoStrap --- preload/apps/spo2/__init__.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/preload/apps/spo2/__init__.py b/preload/apps/spo2/__init__.py index 120666228..10b25ff65 100644 --- a/preload/apps/spo2/__init__.py +++ b/preload/apps/spo2/__init__.py @@ -24,6 +24,7 @@ class SPO2: self.filtered_value = 0.0 self.source = "Red" self.average = 0 + self.prev_w = 0 def open(self): def callback(datasets): @@ -46,13 +47,19 @@ class SPO2: while buttons.read(buttons.BOTTOM_RIGHT): pass def update_history(self, datasets): - alpha = 0.995 + alpha = 0.9975 for val in datasets: - """ + print("%d,%d" % (val.red, val.infrared)) if self.source == "Red": - self.avg[self.avg_pos] = val.red + d = val.red else: - self.avg[self.avg_pos] = val.infrared + d = val.infrared + + w = d + self.prev_w * 0.95 + self.history.append(w - self.prev_w) + self.prev_w = w + """ + self.avg[self.avg_pos] = d if self.avg_pos < 9: self.avg_pos += 1 @@ -68,15 +75,11 @@ class SPO2: self.history.append(self.filtered_value) """ - #print("%d,%d" % (val.red, val.infrared)) - if self.source == "Red": - d = val.red - else: - d = val.infrared - + """ self.average = alpha * self.average + (1 - alpha) * d d -= self.average self.history.append(d) + """ # trim old elements self.history = self.history[-self.HISTORY_MAX :] -- GitLab