#!/usr/bin/perl
#
#  Simple XML-RPC client for Ant system
#
#  Sends stats to remote XML-RPC server
#
#  Arguments - url to XML-RPC server
#
#  Template for logging: any, you like as long as third parameter is Unix time
#
#

use Frontier::Client;
#use lib "/home/power/tmpperl/lib/perl5/site_perl/5.6.1";
use Date::Format;

my $server_url = shift @ARGV;
#'http://localhost:8080/ant2/Main';
$server = Frontier::Client->new(url => $server_url);
#print "STARTED\n";

$|=1;

fcntl(STDIN,F_SETFL,fcntl(STDIN,F_GETFL,0)|O_NONBLOCK);

for(;;){
INNER_LOOP:
  for(;;){
    while(read(STDIN,$p,1)>0){
      $req .= $p;
      last INNER_LOOP if $p eq "\n"; 
    }
    select(undef,undef,undef,0.1);
  }
  #print "From STDIN: ".$req;
  #my ($out_name, $time, $num_state, $value, $addr) = split (/,/, $req);
  my @args = split (/,/, $req);

  #print "args[2] : ".$args[2]."\n"; #debug

  $date_time = $server->date_time(time2str("%Y%m%dT%X",$args[2]));
  #print "date_time : ".$date_time->value."\n"; #debug
  $args[2] = $date_time;

  #print "args : ".join(';',@args)."\n";#debug
  
  $req='';
  undef $@;
  eval{
    unless ($result = $server->call('ant.logSensor', @args)) {print "Result from server: ".$result; next;}
  };
  if($@){
    print "Error: $@\n";
  }
  #print "Result from server: ".$result;
 
}


