From afb78e8933997db2d9fc257c1466d04d1f6e93d4 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Wed, 25 Jan 2017 13:09:27 -0500 Subject: dexcom_dumper: JSON output --- dexcom_reader/dexcom_dumper.py | 19 +++++++++++++++++-- 1 file 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 @@ import constants import readdata import sys +import json from sys import stdout, stderr from datetime import timedelta, datetime from time import sleep @@ -20,12 +21,14 @@ parser.add_option("-p", "--poll", action="store_const", dest="command", const="p parser.add_option("-n", type="int", dest="num_records", default=DEFAULT_PAGE_COUNT, help="number of pages of CGM records to display") parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="verbosity (currently for debugging)") parser.add_option("-H", "--human", action="store_true", dest="human", help="print human-readable times") +parser.add_option("-j", "--json", action="store_true", dest="json", help="print JSON output") (options, args) = parser.parse_args() command = options.command or "dump_cgm" VERBOSE = options.verbose HUMAN = options.human +JSON = options.json def get_dexcom_reader(): if options.g5: @@ -108,6 +111,19 @@ def sleep_verbose(n): print_verbose('sleep(%d)' % n) sleep(n) +def print_cgm_bg(now, r): + if JSON: + print json.dumps({ + 'current_time': now.strftime('%s'), + 'event_time': r.system_time.strftime('%s'), + 'glucose': r.glucose, + 'trend_arrow': r.trend_arrow, + 'display_only': r.display_only + }) + else: + print '%s: %s %s' % (format_times(now, r.system_time), r.glucose, r.trend_arrow) + stdout.flush() + def poll(): print_localtime('dexcom_dumper started') while True: @@ -120,8 +136,7 @@ def poll(): sleep_verbose(10) else: now = dr.ReadSystemTime() - print '%s: %s %s' % (format_times(now, r.system_time), r.glucose, r.trend_arrow) - stdout.flush() + print_cgm_bg(now, r) next_reading = (r.system_time - now + timedelta(minutes=5, seconds=2)).total_seconds() if (next_reading > 0): sleep_verbose(next_reading) -- cgit v1.2.3