From d10d99fb529e359db9dfa4979e826bae9350b375 Mon Sep 17 00:00:00 2001 From: Arist <aristkojevnikov@gmail.com> Date: Sun, 9 Feb 2020 21:23:31 +0100 Subject: [PATCH] feat(max86150): MAX86150 Pycardium API: use namedtuple --- preload/apps/spo2/__init__.py | 2 +- pycardium/modules/py/max86150.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/preload/apps/spo2/__init__.py b/preload/apps/spo2/__init__.py index 152cf1513..6775f040b 100644 --- a/preload/apps/spo2/__init__.py +++ b/preload/apps/spo2/__init__.py @@ -38,7 +38,7 @@ class SPO2: def update_history(self, datasets): for val in datasets: # get red value (first in tuple) - self.avg[self.avg_pos] = val[0] + self.avg[self.avg_pos] = val.red if self.avg_pos < 9: self.avg_pos += 1 else: diff --git a/pycardium/modules/py/max86150.py b/pycardium/modules/py/max86150.py index 08fdecc15..7a799c1ca 100644 --- a/pycardium/modules/py/max86150.py +++ b/pycardium/modules/py/max86150.py @@ -1,6 +1,9 @@ import sys_max86150 import uerrno import interrupt +import ucollections + +Max86150Data = ucollections.namedtuple("Max86150Data", ["red", "infrared", "ecg"]) class MAX86150: @@ -68,7 +71,13 @@ class MAX86150: Read as many samples (signed integer) as currently available. """ assert self.active, "Sensor is inactive" - return sys_max86150.read_sensor(self.stream_id) + result = [] + for sample in sys_max86150.read_sensor(self.stream_id): + result.append(self._convert(sample)) + return result + + def _convert(self, sample): + return Max86150Data(sample[0], sample[1], sample[2]) def _interrupt(self, _): if self.active: -- GitLab