diff options
author | Andrew Cady <d@jerkface.net> | 2017-01-25 13:09:27 -0500 |
---|---|---|
committer | Andrew Cady <d@jerkface.net> | 2017-01-25 13:09:27 -0500 |
commit | afb78e8933997db2d9fc257c1466d04d1f6e93d4 (patch) | |
tree | 2c14067d6352319b24102432769ee311ba58cfe2 | |
parent | ffbfee060e96104c3e9164316bb6a2e74040ab63 (diff) |
dexcom_dumper: JSON output
-rw-r--r-- | dexcom_reader/dexcom_dumper.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/dexcom_reader/dexcom_dumper.py b/dexcom_reader/dexcom_dumper.py index b579818..bba4d17 100644 --- a/dexcom_reader/dexcom_dumper.py +++ b/dexcom_reader/dexcom_dumper.py | |||
@@ -1,6 +1,7 @@ | |||
1 | import constants | 1 | import constants |
2 | import readdata | 2 | import readdata |
3 | import sys | 3 | import sys |
4 | import json | ||
4 | from sys import stdout, stderr | 5 | from sys import stdout, stderr |
5 | from datetime import timedelta, datetime | 6 | from datetime import timedelta, datetime |
6 | from time import sleep | 7 | from time import sleep |
@@ -20,12 +21,14 @@ parser.add_option("-p", "--poll", action="store_const", dest="command", const="p | |||
20 | parser.add_option("-n", type="int", dest="num_records", default=DEFAULT_PAGE_COUNT, help="number of pages of CGM records to display") | 21 | parser.add_option("-n", type="int", dest="num_records", default=DEFAULT_PAGE_COUNT, help="number of pages of CGM records to display") |
21 | parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="verbosity (currently for debugging)") | 22 | parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="verbosity (currently for debugging)") |
22 | parser.add_option("-H", "--human", action="store_true", dest="human", help="print human-readable times") | 23 | parser.add_option("-H", "--human", action="store_true", dest="human", help="print human-readable times") |
24 | parser.add_option("-j", "--json", action="store_true", dest="json", help="print JSON output") | ||
23 | 25 | ||
24 | (options, args) = parser.parse_args() | 26 | (options, args) = parser.parse_args() |
25 | 27 | ||
26 | command = options.command or "dump_cgm" | 28 | command = options.command or "dump_cgm" |
27 | VERBOSE = options.verbose | 29 | VERBOSE = options.verbose |
28 | HUMAN = options.human | 30 | HUMAN = options.human |
31 | JSON = options.json | ||
29 | 32 | ||
30 | def get_dexcom_reader(): | 33 | def get_dexcom_reader(): |
31 | if options.g5: | 34 | if options.g5: |
@@ -108,6 +111,19 @@ def sleep_verbose(n): | |||
108 | print_verbose('sleep(%d)' % n) | 111 | print_verbose('sleep(%d)' % n) |
109 | sleep(n) | 112 | sleep(n) |
110 | 113 | ||
114 | def print_cgm_bg(now, r): | ||
115 | if JSON: | ||
116 | print json.dumps({ | ||
117 | 'current_time': now.strftime('%s'), | ||
118 | 'event_time': r.system_time.strftime('%s'), | ||
119 | 'glucose': r.glucose, | ||
120 | 'trend_arrow': r.trend_arrow, | ||
121 | 'display_only': r.display_only | ||
122 | }) | ||
123 | else: | ||
124 | print '%s: %s %s' % (format_times(now, r.system_time), r.glucose, r.trend_arrow) | ||
125 | stdout.flush() | ||
126 | |||
111 | def poll(): | 127 | def poll(): |
112 | print_localtime('dexcom_dumper started') | 128 | print_localtime('dexcom_dumper started') |
113 | while True: | 129 | while True: |
@@ -120,8 +136,7 @@ def poll(): | |||
120 | sleep_verbose(10) | 136 | sleep_verbose(10) |
121 | else: | 137 | else: |
122 | now = dr.ReadSystemTime() | 138 | now = dr.ReadSystemTime() |
123 | print '%s: %s %s' % (format_times(now, r.system_time), r.glucose, r.trend_arrow) | 139 | print_cgm_bg(now, r) |
124 | stdout.flush() | ||
125 | next_reading = (r.system_time - now + timedelta(minutes=5, seconds=2)).total_seconds() | 140 | next_reading = (r.system_time - now + timedelta(minutes=5, seconds=2)).total_seconds() |
126 | if (next_reading > 0): | 141 | if (next_reading > 0): |
127 | sleep_verbose(next_reading) | 142 | sleep_verbose(next_reading) |