From c13b8d7bc6c4d362c7da37482dd3a9dfe207424c Mon Sep 17 00:00:00 2001 From: Ben Date: Tue, 16 Apr 2019 10:40:04 +0200 Subject: add internal device id to glucose measurements (and other entries) to prepare for better sorting --- glucometerutils/common.py | 3 +++ glucometerutils/drivers/fslibre.py | 11 ++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/glucometerutils/common.py b/glucometerutils/common.py index 4af2001..4c7694c 100644 --- a/glucometerutils/common.py +++ b/glucometerutils/common.py @@ -66,6 +66,7 @@ class GlucoseReading: default=MeasurementMethod.BLOOD_SAMPLE, validator=attr.validators.in_( MeasurementMethod)) # type: MeasurementMethod + device_id = attr.ib(default=None) # type: int def get_value_as(self, to_unit): # type: (Unit) -> float @@ -89,6 +90,7 @@ class KetoneReading: timestamp = attr.ib() # type: datetime.datetime value = attr.ib() # type: float comment = attr.ib(default='') # type: Text + device_id = attr.ib(default=None) # type: int def as_csv(self, unit): """Returns the reading as a formatted comma-separated value string.""" @@ -106,6 +108,7 @@ class TimeAdjustment: default=MeasurementMethod.TIME, validator=attr.validators.in_( MeasurementMethod)) # type: MeasurementMethod + device_id = attr.ib(default=None) # type: int def as_csv(self, unit): del unit diff --git a/glucometerutils/drivers/fslibre.py b/glucometerutils/drivers/fslibre.py index 2823a2b..0e62aa6 100644 --- a/glucometerutils/drivers/fslibre.py +++ b/glucometerutils/drivers/fslibre.py @@ -26,6 +26,7 @@ from glucometerutils.support import freestyle # Fields of the records returned by both $history and $arresult? # Tuple of pairs of idx and field name _BASE_ENTRY_MAP = ( + (0, 'device_id'), (1, 'type'), (2, 'month'), (3, 'day'), @@ -116,7 +117,8 @@ def _parse_arresult(record): parsed_record.update(_parse_record(record, _ARRESULT_TIME_ADJUSTMENT_ENTRY_MAP)) return common.TimeAdjustment( _extract_timestamp(parsed_record), - _extract_timestamp(parsed_record, 'old_')) + _extract_timestamp(parsed_record, 'old_'), + device_id=parsed_record['device_id']) else: return None @@ -195,7 +197,8 @@ def _parse_arresult(record): _extract_timestamp(parsed_record), value, comment='; '.join(comment_parts), - measure_method=measure_method) + measure_method=measure_method, + device_id=parsed_record['device_id']) class Device(freestyle.FreeStyleHidDevice): """Glucometer driver for FreeStyle Libre devices.""" @@ -237,7 +240,9 @@ class Device(freestyle.FreeStyleHidDevice): _extract_timestamp(parsed_record), parsed_record['value'], comment='(Sensor)', - measure_method=common.MeasurementMethod.CGM) + measure_method=common.MeasurementMethod.CGM, + device_id=parsed_record['device_id'] + ) # Then get the results of explicit scans and blood tests (and other # events). -- cgit v1.2.3