From d50ca49bb9dcf5640487df2044b62d63432b6764 Mon Sep 17 00:00:00 2001 From: Marc Lasch Date: Sun, 16 Apr 2017 17:08:31 +0200 Subject: Minor changes --- usv_scheduler.py | 66 +++++++++++++++++++++----------------------------------- 1 file changed, 24 insertions(+), 42 deletions(-) (limited to 'usv_scheduler.py') diff --git a/usv_scheduler.py b/usv_scheduler.py index 09bcf2b..95accaf 100755 --- a/usv_scheduler.py +++ b/usv_scheduler.py @@ -1,70 +1,52 @@ #!/usr/bin/env python3 - -from time import sleep - from apscheduler.schedulers.background import BlockingScheduler from usv_driver import Usv -from influxdb import InfluxDBClient +from urllib.request import urlopen +from pyinflux.client import Line import sys import argparse import logging +from time import sleep -INTERVAL=14 # execution takes about 6s - +INTERVAL=24 # execution takes about 6s parser = argparse.ArgumentParser() -parser.add_argument('--host', help='Database host', default='localhost') -parser.add_argument('--port', help='Database port', default='8086') -parser.add_argument('--db', help='Database name', default='test') +parser.add_argument('--url', help='URL') parser.add_argument('--serial', help='Serial port', default='/dev/ttyU0') parser.add_argument('--baud', help='Serial baudrate', default='600') parser.add_argument('--param', help='Parameter JSON file', default='./usv_param.json') args = parser.parse_args(sys.argv[1:]) -#scheduler = BlockingScheduler(timezone="Europe/Berlin") - -db_client = InfluxDBClient(host=args.host, - port=args.port, - database=args.db) - -logging.basicConfig(level=logging.ERROR, filename='log/usv_scheduler.log') +logging.basicConfig(level=logging.DEBUG, + filename='log/usv_scheduler.log', + format='%(asctime)s %(message)s', + datefmt='%Y-%m-%d %H:%M:%S') usv = Usv(args.serial, int(args.baud), args.param) -usv_lock = False - -#@scheduler.scheduled_job('interval', seconds=INTERVAL) def timed_job(): - global usv_lock - - if usv_lock: - logging.info("JOB CURRENTLY LOCKED") - return - - usv_lock = True parameters = usv.get_parameters() data = [] for name in parameters: - data.append({ - 'measurement': 'usv_parameters', - 'tags': { - 'name': name, - 'id': 'LI????VA', - }, - 'fields': {'value': parameters[name]} - }); - print("insert: %s" % ",".join("%s=%s" % \ - (name,parameters[name]) for name in parameters)) + + line = Line('usv_parameters', + {'name': name, 'id': 'LI????VA' }, + {'value': parameters[name]}) + data.append(line) + logging.info("insert: {}".format(",".join( + "{}={}".format(name,parameters[name]) for name in parameters))) try: - db_client.write_points(data) - except Exception as e: - logging.error("%s" % e) + post_data = '\n'.join(map(str, data)) + logging.info("urlopen begin: {}".format(post_data)) + with urlopen(args.url, post_data.encode('utf-8')) as fh: + logging.info(fh.read().decode('utf-8')) + logging.info("urlopen done") - usv_lock = False + except Exception as e: + logging.error("Errr while trying to insert", e) while True: timed_job() - sleep(24) + sleep(INTERVAL) -#scheduler.start() -- cgit v1.2.1