summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen West <bewest@gmail.com>2014-11-25 14:43:22 -0800
committerBen West <bewest@gmail.com>2014-11-25 14:43:22 -0800
commit3b3643367d6a4b2b92df099b790dd6874413ab51 (patch)
treec213628a3d5049857b98dd31577d5cc0331eecf1
parent66f1115c8ef3dfb8cb7605d6cf60bb5f468ff37d (diff)
make easy way to export data
-rw-r--r--dexcom_reader/database_records.py18
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
63class GenericTimestampedRecord(BaseDatabaseRecord): 63class 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
73class GenericXMLRecord(GenericTimestampedRecord): 83class 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
183class EGVRecord(GenericTimestampedRecord): 196class 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