summaryrefslogtreecommitdiff
path: root/dexcom_reader/database_records.py
diff options
context:
space:
mode:
authorBen West <bewest@gmail.com>2014-11-24 17:59:47 -0800
committerBen West <bewest@gmail.com>2014-11-24 17:59:47 -0800
commit66f1115c8ef3dfb8cb7605d6cf60bb5f468ff37d (patch)
tree44efc0111104f3b5cf137fe14355e8769676d3ef /dexcom_reader/database_records.py
parent233f3e5ed307df775f53ccc66e5823dd0d46b75f (diff)
export sensor records
Diffstat (limited to 'dexcom_reader/database_records.py')
-rw-r--r--dexcom_reader/database_records.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/dexcom_reader/database_records.py b/dexcom_reader/database_records.py
index bde0c67..58ec2a8 100644
--- a/dexcom_reader/database_records.py
+++ b/dexcom_reader/database_records.py
@@ -2,6 +2,7 @@ import crc16
2import constants 2import constants
3import struct 3import struct
4import util 4import util
5import binascii
5 6
6 7
7class BaseDatabaseRecord(object): 8class BaseDatabaseRecord(object):
@@ -96,6 +97,14 @@ class InsertionRecord(GenericTimestampedRecord):
96 return '%s: state=%s' % (self.display_time, self.session_state) 97 return '%s: state=%s' % (self.display_time, self.session_state)
97 98
98 99
100class Calibration(GenericTimestampedRecord):
101 @property
102 def raw(self):
103 return binascii.hexlify(bytearray(self.data))
104
105 def __repr__(self):
106 return '%s: CAL SET:%s' % (self.display_time, self.raw)
107
99class MeterRecord(GenericTimestampedRecord): 108class MeterRecord(GenericTimestampedRecord):
100 FORMAT = '<2IHIH' 109 FORMAT = '<2IHIH'
101 110
@@ -145,6 +154,31 @@ class EventRecord(GenericTimestampedRecord):
145 return '%s: event_type=%s sub_type=%s value=%s' % (self.display_time, self.event_type, 154 return '%s: event_type=%s sub_type=%s value=%s' % (self.display_time, self.event_type,
146 self.event_sub_type, self.event_value) 155 self.event_sub_type, self.event_value)
147 156
157class SensorRecord(GenericTimestampedRecord):
158 # uint, uint, uint, uint, ushort
159 # (system_seconds, display_seconds, unfiltered, filtered, rssi, crc)
160 FORMAT = '<2IIIHH'
161 # (unfiltered, filtered, rssi)
162 @property
163 def unfiltered(self):
164 return self.data[2]
165
166 @property
167 def filtered(self):
168 return self.data[3]
169
170 @property
171 def rssi(self):
172 return self.data[3]
173
174 def to_dict (self):
175 return dict(display_time=self.display_time
176 , system_time=self.system_time
177 , unfiltered=self.unfiltered
178 , filtered=self.filtered
179 , rssi=self.rssi
180 )
181
148 182
149class EGVRecord(GenericTimestampedRecord): 183class EGVRecord(GenericTimestampedRecord):
150 # uint, uint, ushort, byte, ushort 184 # uint, uint, ushort, byte, ushort