#!/usr/bin/env python3

import argparse, re, time, logging
from legacyserver import LegacyServer
from BAT import *

server = 'bigrock.atnf.csiro.au'
port = 2334

parser = argparse.ArgumentParser()

parser.add_argument('-fake', '--fake', help="Fake connection", action="store_true")
parser.add_argument('-debug', '--debug', help="Enable debug messages", action="store_true")
parser.add_argument('-hz', '--hz', help='PhaseCal in Hz', type=float)
parser.add_argument('-pulse', '--pulse', help='Pulsecal period (on+off) in sec', type=float)
parser.add_argument('-integration', '--integration', help='Integration period in sec', type=float, default=2.048)
parser.add_argument('-continuous', '--continuous', help="Don't reset cal at end of integration", action="store_true")

args = parser.parse_args()

if args.debug:
    logging.basicConfig(level=logging.DEBUG)
else:
    logging.basicConfig(level=logging.INFO)

pulsecal = None # usec

if args.hz is not None:
    pulsecal = int(1.0/args.hz*1e6)
    print("Using a pulscal of {} usec".format(pulsecal))
elif args.pulse is not None:
    pulsecal = int(args.pulse*1e6)
    print("Using a pulscal of {} usec".format(pulsecal))
else:
    pulsecal = 128000
    print("Restoring default cycle time")

bat = currentBAT()
# Round to nearest 10 sec
bat = int(bat//(10000000)+1)*10000000

# Connect to antenna

s = LegacyServer((server,port), fake=args.fake)
s.connect()
s.allocate()
s.cycle(bat, args.integration, pulsecal, continuous=args.continuous)

