diff options
author | Ben West <bewest@gmail.com> | 2014-11-24 17:59:47 -0800 |
---|---|---|
committer | Ben West <bewest@gmail.com> | 2014-11-24 17:59:47 -0800 |
commit | 66f1115c8ef3dfb8cb7605d6cf60bb5f468ff37d (patch) | |
tree | 44efc0111104f3b5cf137fe14355e8769676d3ef | |
parent | 233f3e5ed307df775f53ccc66e5823dd0d46b75f (diff) |
export sensor records
-rw-r--r-- | dexcom_reader/database_records.py | 34 | ||||
-rw-r--r-- | dexcom_reader/readdata.py | 1 |
2 files changed, 35 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 | |||
2 | import constants | 2 | import constants |
3 | import struct | 3 | import struct |
4 | import util | 4 | import util |
5 | import binascii | ||
5 | 6 | ||
6 | 7 | ||
7 | class BaseDatabaseRecord(object): | 8 | class 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 | ||
100 | class 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 | |||
99 | class MeterRecord(GenericTimestampedRecord): | 108 | class 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 | ||
157 | class 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 | ||
149 | class EGVRecord(GenericTimestampedRecord): | 183 | class EGVRecord(GenericTimestampedRecord): |
150 | # uint, uint, ushort, byte, ushort | 184 | # uint, uint, ushort, byte, ushort |
diff --git a/dexcom_reader/readdata.py b/dexcom_reader/readdata.py index f398407..b08e5fa 100644 --- a/dexcom_reader/readdata.py +++ b/dexcom_reader/readdata.py | |||
@@ -235,6 +235,7 @@ class Dexcom(object): | |||
235 | 'METER_DATA': database_records.MeterRecord, | 235 | 'METER_DATA': database_records.MeterRecord, |
236 | 'INSERTION_TIME': database_records.InsertionRecord, | 236 | 'INSERTION_TIME': database_records.InsertionRecord, |
237 | 'EGV_DATA': database_records.EGVRecord, | 237 | 'EGV_DATA': database_records.EGVRecord, |
238 | 'SENSOR_DATA': database_records.SensorRecord, | ||
238 | } | 239 | } |
239 | xml_parsed = ['PC_SOFTWARE_PARAMETER', 'MANUFACTURING_DATA'] | 240 | xml_parsed = ['PC_SOFTWARE_PARAMETER', 'MANUFACTURING_DATA'] |
240 | if record_type in generic_parser_map: | 241 | if record_type in generic_parser_map: |