summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2017-01-26 08:31:33 +0000
committerAndrew Cady <d@jerkface.net>2017-01-26 13:04:13 +0000
commite67c8d619d062c61a86f6b2014e9218c6ee5d923 (patch)
tree8a13c315293e39743ef42df4caa0f8db01bee7d0
parent1f3de244a446b3bde7232d265da30971d1992455 (diff)
readdata.py: handle empty page ranges correctly
-rw-r--r--dexcom_reader/readdata.py12
1 files 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):
241 self.WriteCommand(constants.READ_DATABASE_PAGE_RANGE, 241 self.WriteCommand(constants.READ_DATABASE_PAGE_RANGE,
242 chr(record_type_index)) 242 chr(record_type_index))
243 packet = self.readpacket() 243 packet = self.readpacket()
244 return struct.unpack('II', packet.data) 244 (a, b) = struct.unpack('II', packet.data)
245 if a == 2**32-1 or b == 2**32-1:
246 return None
247 return (a, b)
245 248
246 def ReadDatabasePage(self, record_type, page): 249 def ReadDatabasePage(self, record_type, page):
247 record_type_index = constants.RECORD_TYPES.index(record_type) 250 record_type_index = constants.RECORD_TYPES.index(record_type)
@@ -294,6 +297,8 @@ class Dexcom(object):
294 def iter_records (self, record_type): 297 def iter_records (self, record_type):
295 assert record_type in constants.RECORD_TYPES 298 assert record_type in constants.RECORD_TYPES
296 page_range = self.ReadDatabasePageRange(record_type) 299 page_range = self.ReadDatabasePageRange(record_type)
300 if page_range is None:
301 return
297 start, end = page_range 302 start, end = page_range
298 if start != end or not end: 303 if start != end or not end:
299 end += 1 304 end += 1
@@ -302,11 +307,14 @@ class Dexcom(object):
302 records.reverse( ) 307 records.reverse( )
303 for record in records: 308 for record in records:
304 yield record 309 yield record
305 310
306 def ReadRecords(self, record_type, n=0): 311 def ReadRecords(self, record_type, n=0):
307 records = [] 312 records = []
308 assert record_type in constants.RECORD_TYPES 313 assert record_type in constants.RECORD_TYPES
309 page_range = self.ReadDatabasePageRange(record_type) 314 page_range = self.ReadDatabasePageRange(record_type)
315 if page_range is None:
316 return records
317
310 start, end = page_range 318 start, end = page_range
311 if start != end or not end: 319 if start != end or not end:
312 end += 1 320 end += 1