diff --git a/dexcom_reader/constants.py b/dexcom_reader/constants.py index 421c190..628d325 100644 --- a/dexcom_reader/constants.py +++ b/dexcom_reader/constants.py @@ -63,6 +63,7 @@ class CrcError(Error): EGV_VALUE_MASK = 1023 EGV_DISPLAY_ONLY_MASK = 32768 EGV_TREND_ARROW_MASK = 15 +EGV_NOISE_MASK = 112 BATTERY_STATES = [None, 'CHARGING', 'NOT_CHARGING', 'NTC_FAULT', 'BAD_BATTERY'] diff --git a/dexcom_reader/database_records.py b/dexcom_reader/database_records.py index 9274d24..22ba279 100644 --- a/dexcom_reader/database_records.py +++ b/dexcom_reader/database_records.py @@ -289,7 +289,7 @@ def rssi(self): class EGVRecord(GenericTimestampedRecord): # uint, uint, ushort, byte, ushort # (system_seconds, display_seconds, glucose, trend_arrow, crc) - FIELDS = ['glucose', 'trend_arrow'] + FIELDS = ['glucose', 'trend_arrow', 'noise'] FORMAT = '<2IHcH' @property @@ -322,6 +322,9 @@ def trend_arrow(self): arrow_value = ord(self.full_trend) & constants.EGV_TREND_ARROW_MASK return constants.TREND_ARROW_VALUES[arrow_value] + @property + def noise (self): + return (ord(self.data[3]) & constants.EGV_NOISE_MASK) >> 4 def __repr__(self): if self.is_special: return '%s: %s' % (self.display_time, self.glucose_special_meaning) diff --git a/setup.py b/setup.py index ccd42b5..4f46734 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ def readme(): return f.read() setup(name='dexcom_reader', - version='0.1.10', # http://semver.org/ + version='0.1.11-dev', # http://semver.org/ description='Audit, and inspect data from Dexcom G4.', long_description=readme(), author="Will Nowak",