diff options
Diffstat (limited to 'dexcom_reader')
-rw-r--r-- | dexcom_reader/database_records.py | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/dexcom_reader/database_records.py b/dexcom_reader/database_records.py index 58ec2a8..dd911f6 100644 --- a/dexcom_reader/database_records.py +++ b/dexcom_reader/database_records.py | |||
@@ -61,6 +61,8 @@ class BaseDatabaseRecord(object): | |||
61 | 61 | ||
62 | 62 | ||
63 | class GenericTimestampedRecord(BaseDatabaseRecord): | 63 | class GenericTimestampedRecord(BaseDatabaseRecord): |
64 | FIELDS = [ ] | ||
65 | BASE_FIELDS = [ 'system_time', 'display_time' ] | ||
64 | @property | 66 | @property |
65 | def system_time(self): | 67 | def system_time(self): |
66 | return util.ReceiverTimeToTime(self.data[0]) | 68 | return util.ReceiverTimeToTime(self.data[0]) |
@@ -70,6 +72,14 @@ class GenericTimestampedRecord(BaseDatabaseRecord): | |||
70 | return util.ReceiverTimeToTime(self.data[1]) | 72 | return util.ReceiverTimeToTime(self.data[1]) |
71 | 73 | ||
72 | 74 | ||
75 | def to_dict (self): | ||
76 | d = dict( ) | ||
77 | for k in self.BASE_FIELDS + self.FIELDS: | ||
78 | d[k] = getattr(self, k) | ||
79 | if callable(getattr(d[k], 'isoformat', None)): | ||
80 | d[k] = d[k].isoformat( ) | ||
81 | return d | ||
82 | |||
73 | class GenericXMLRecord(GenericTimestampedRecord): | 83 | class GenericXMLRecord(GenericTimestampedRecord): |
74 | FORMAT = '<II490sH' | 84 | FORMAT = '<II490sH' |
75 | 85 | ||
@@ -159,6 +169,7 @@ class SensorRecord(GenericTimestampedRecord): | |||
159 | # (system_seconds, display_seconds, unfiltered, filtered, rssi, crc) | 169 | # (system_seconds, display_seconds, unfiltered, filtered, rssi, crc) |
160 | FORMAT = '<2IIIHH' | 170 | FORMAT = '<2IIIHH' |
161 | # (unfiltered, filtered, rssi) | 171 | # (unfiltered, filtered, rssi) |
172 | FIELDS = ['unfiltered', 'filtered', 'rssi'] | ||
162 | @property | 173 | @property |
163 | def unfiltered(self): | 174 | def unfiltered(self): |
164 | return self.data[2] | 175 | return self.data[2] |
@@ -171,18 +182,21 @@ class SensorRecord(GenericTimestampedRecord): | |||
171 | def rssi(self): | 182 | def rssi(self): |
172 | return self.data[3] | 183 | return self.data[3] |
173 | 184 | ||
185 | """ | ||
174 | def to_dict (self): | 186 | def to_dict (self): |
175 | return dict(display_time=self.display_time | 187 | return dict(display_time=self.display_time.isoformat( ) |
176 | , system_time=self.system_time | 188 | , system_time=self.system_time.isoformat( ) |
177 | , unfiltered=self.unfiltered | 189 | , unfiltered=self.unfiltered |
178 | , filtered=self.filtered | 190 | , filtered=self.filtered |
179 | , rssi=self.rssi | 191 | , rssi=self.rssi |
180 | ) | 192 | ) |
193 | """ | ||
181 | 194 | ||
182 | 195 | ||
183 | class EGVRecord(GenericTimestampedRecord): | 196 | class EGVRecord(GenericTimestampedRecord): |
184 | # uint, uint, ushort, byte, ushort | 197 | # uint, uint, ushort, byte, ushort |
185 | # (system_seconds, display_seconds, glucose, trend_arrow, crc) | 198 | # (system_seconds, display_seconds, glucose, trend_arrow, crc) |
199 | FIELDS = ['glucose', 'trend_arrow'] | ||
186 | FORMAT = '<2IHcH' | 200 | FORMAT = '<2IHcH' |
187 | 201 | ||
188 | @property | 202 | @property |