diff options
author | Andrew Cady <d@jerkface.net> | 2017-01-26 08:31:33 +0000 |
---|---|---|
committer | Andrew Cady <d@jerkface.net> | 2017-01-26 13:04:13 +0000 |
commit | e67c8d619d062c61a86f6b2014e9218c6ee5d923 (patch) | |
tree | 8a13c315293e39743ef42df4caa0f8db01bee7d0 | |
parent | 1f3de244a446b3bde7232d265da30971d1992455 (diff) |
readdata.py: handle empty page ranges correctly
-rw-r--r-- | dexcom_reader/readdata.py | 12 |
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 |