From e67c8d619d062c61a86f6b2014e9218c6ee5d923 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Thu, 26 Jan 2017 08:31:33 +0000 Subject: readdata.py: handle empty page ranges correctly --- dexcom_reader/readdata.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dexcom_reader/readdata.py b/dexcom_reader/readdata.py index 5e2436b..e589b1a 100644 --- a/dexcom_reader/readdata.py +++ b/dexcom_reader/readdata.py @@ -241,7 +241,10 @@ class Dexcom(object): self.WriteCommand(constants.READ_DATABASE_PAGE_RANGE, chr(record_type_index)) packet = self.readpacket() - return struct.unpack('II', packet.data) + (a, b) = struct.unpack('II', packet.data) + if a == 2**32-1 or b == 2**32-1: + return None + return (a, b) def ReadDatabasePage(self, record_type, page): record_type_index = constants.RECORD_TYPES.index(record_type) @@ -294,6 +297,8 @@ class Dexcom(object): def iter_records (self, record_type): assert record_type in constants.RECORD_TYPES page_range = self.ReadDatabasePageRange(record_type) + if page_range is None: + return start, end = page_range if start != end or not end: end += 1 @@ -302,11 +307,14 @@ class Dexcom(object): records.reverse( ) for record in records: yield record - + def ReadRecords(self, record_type, n=0): records = [] assert record_type in constants.RECORD_TYPES page_range = self.ReadDatabasePageRange(record_type) + if page_range is None: + return records + start, end = page_range if start != end or not end: end += 1 -- cgit v1.2.3