#!/usr/bin/perl -w

use strict;

use Getopt::Long;

use Astro::Time;
use ATNF::MoniCA;

$Astro::Time::StrZero = 2;
$Astro::Time::StrSep = ':';

my $server = 'monhost-nar.atnf.csiro.au';
my $names = 0;
my $since = undef;
my $year = undef;

GetOptions('server'=>\$server, 'names'=>\$names, 'since=s'=>\$since);

die("Must pass points") if (!@ARGV);


#my $pDUT;
#$pDUT = 'pkclock.misc.clock.dUTC';

my $mon = monconnect($server);
die("Could not connect to monitor host ($server)\n") if (!defined $mon);

# Get the dUT
#my $dUT;
#if (defined $pDUT) {
#  $dUT = monpoll($mon, $pDUT)->val;
#} else {
#  $dUT = 35;
#}

#$mjd1+= $dUT/60/60/24;
#$mjd2+= $dUT/60/60/24;


if ($names) {
  my @pointnames = monnames($mon);
  foreach (@pointnames) {print "$_\n"};
} elsif (defined $since) {
  my $mjd = now2mjd();
  my ($now_dayno, $now_year, $ut) = mjd2dayno($mjd);
  $year = $now_year if (!defined $year);

  my $dayno;
  if ($since =~ /^(\d+)\/(\S+)$/) {
    $dayno = $1;
    $ut = str2turn($2, 'H');
  } else {
    $dayno = $now_dayno;
    $ut = str2turn($since, 'H');
  }
  $mjd = dayno2mjd($dayno, $year, $ut);

  foreach (@ARGV) {
    my @since = monsince($mon, $mjd, $_);
    print "**$_**\n";
    foreach (@since)  {
      printf("  %s:  %s\n", mjd2time(bat2mjd($_->bat)), $_->val);
    }
  }
  
} else {

  my @vals = monpoll($mon, @ARGV);

  foreach (@vals) {
    printf("%s:  %s = %s\n", mjd2time(bat2mjd($_->bat)),  $_->point,  $_->val);
  }
}
