#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""package vacuum
author  Benoit Dubois
version 0.1
date    2014-11-18
brief   A basic monitoring program for CENTER ONE vacuum gauge.
details Return pressure from CENTER ONE vacuum gauge with a definable sampling
        period (minimum = 1 s).
"""
# Ctrl-c closes the application
import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)

import sys
import logging
import time
import argparse
from utilsben import mjd
from centerone import CenterOne


DEFAULT_SERIAL_PORT = 0    # Default serial port number
DEFAULT_MONI_PERIOD = 30.0 # Sampling period of monitored data (in s)
DEFAULT_BAUD_RATE = 9600

parser = argparse.ArgumentParser(description='Center One Monitoring')
parser.add_argument('-m', '--period', dest='period', type=float,
                    default=DEFAULT_MONI_PERIOD, help='--period <float>')
parser.add_argument('-p', '--port', dest='port', type=int,
                    default=DEFAULT_SERIAL_PORT, help='--port <int>')
parser.add_argument('-br', '--baudrate', dest='baudrate', type=int,
                    default=DEFAULT_BAUD_RATE, help='--baudrate <int>')

# Parse command line
args = parser.parse_args()
period = args.period
port = args.port
baudrate = args.baudrate

# Instantiate CenterOne class
co = CenterOne(port, baudrate, 2.0)

with open(FILENAME, 'a') as fd:
    try:
        while loop is True:
            now = mjd.datetime_to_mjd(datetime.utcnow())
            fd.write("{:.12f}\t{}\n".format(now, co.pressure())))
            fd.flush()
            time.sleep(period)
    except KeyboardInterrupt:
        sys.exit(app.exec_())