summaryrefslogtreecommitdiffstats
path: root/glucometerutils/drivers/fsprecisionneo.py
diff options
context:
space:
mode:
Diffstat (limited to 'glucometerutils/drivers/fsprecisionneo.py')
-rw-r--r--glucometerutils/drivers/fsprecisionneo.py61
1 files changed, 35 insertions, 26 deletions
diff --git a/glucometerutils/drivers/fsprecisionneo.py b/glucometerutils/drivers/fsprecisionneo.py
index 58564e5..909fed8 100644
--- a/glucometerutils/drivers/fsprecisionneo.py
+++ b/glucometerutils/drivers/fsprecisionneo.py
@@ -27,25 +27,30 @@ import datetime
from glucometerutils import common
from glucometerutils.support import freestyle
-
# The type is a string because it precedes the parsing of the object.
-_TYPE_GLUCOSE_READING = '7'
-_TYPE_KETONE_READING = '9'
-
-_NeoReading = collections.namedtuple('_NeoReading', (
- 'type', # 7 = blood glucose, 9 = blood ketone
- 'id',
- 'month', 'day', 'year', # year is two-digits
- 'hour', 'minute',
- 'unknown2',
- 'value',
- # Extra trailing and so-far-unused fields; so discard them:
- # * for blood glucose: 10 unknown trailing fields
- #'unknown3', 'unknown4', 'unknown5', 'unknown6', 'unknown7',
- #'unknown8', 'unknown9', 'unknown10', 'unknown11', 'unknown12',
- # * for blood ketone: 2 unknown trailing fields
- #'unknown3', 'unknown4',
-))
+_TYPE_GLUCOSE_READING = "7"
+_TYPE_KETONE_READING = "9"
+
+_NeoReading = collections.namedtuple(
+ "_NeoReading",
+ (
+ "type", # 7 = blood glucose, 9 = blood ketone
+ "id",
+ "month",
+ "day",
+ "year", # year is two-digits
+ "hour",
+ "minute",
+ "unknown2",
+ "value",
+ # Extra trailing and so-far-unused fields; so discard them:
+ # * for blood glucose: 10 unknown trailing fields
+ #'unknown3', 'unknown4', 'unknown5', 'unknown6', 'unknown7',
+ #'unknown8', 'unknown9', 'unknown10', 'unknown11', 'unknown12',
+ # * for blood ketone: 2 unknown trailing fields
+ #'unknown3', 'unknown4',
+ ),
+)
class Device(freestyle.FreeStyleHidDevice):
@@ -56,12 +61,12 @@ class Device(freestyle.FreeStyleHidDevice):
def get_meter_info(self):
"""Return the device information in structured form."""
return common.MeterInfo(
- 'FreeStyle Precision Neo',
+ "FreeStyle Precision Neo",
serial_number=self.get_serial_number(),
- version_info=(
- 'Software version: ' + self._get_version(),),
+ version_info=("Software version: " + self._get_version(),),
native_unit=self.get_glucose_unit(),
- patient_name=self.get_patient_name())
+ patient_name=self.get_patient_name(),
+ )
def get_glucose_unit(self): # pylint: disable=no-self-use
"""Returns the glucose unit of the device."""
@@ -69,7 +74,7 @@ class Device(freestyle.FreeStyleHidDevice):
def get_readings(self):
"""Iterate through the reading records in the device."""
- for record in self._get_multirecord(b'$result?'):
+ for record in self._get_multirecord(b"$result?"):
cls = None
if record and record[0] == _TYPE_GLUCOSE_READING:
cls = common.GlucoseReading
@@ -85,11 +90,15 @@ class Device(freestyle.FreeStyleHidDevice):
if value == "HI":
value = float("inf")
values.append(int(value))
- raw_reading = _NeoReading._make(values[:len(_NeoReading._fields)])
+ raw_reading = _NeoReading._make(values[: len(_NeoReading._fields)])
timestamp = datetime.datetime(
- raw_reading.year + 2000, raw_reading.month, raw_reading.day,
- raw_reading.hour, raw_reading.minute)
+ raw_reading.year + 2000,
+ raw_reading.month,
+ raw_reading.day,
+ raw_reading.hour,
+ raw_reading.minute,
+ )
if record and record[0] == _TYPE_KETONE_READING:
value = freestyle.convert_ketone_unit(raw_reading.value)