#!/usr/local/bin/perl ## ## report_lla_current - report on the current flowing in an lla ## ## ## Usage: report_lla_current ## Example report_lla_current eac1 0 ## ## Returned Data = ## ## bhimebau 9/9/04 - script creation use Socket; if (@ARGV != 2) { print "\nUSAGE: report_lla_current eac_name lla\n"; print "EXAMPLE: report_lla_current eac1 2\n"; print "Returns the input and output current in mA from lla 2 on eac1.\n\n"; exit; } $eac=shift; $lla_number=shift; if (($number_lla<0)||($lla_number>5)){ print "lla number must be between 0 and 5\n"; exit; } if ($lla_number==0) { $count_base=40; } elsif ($lla_number==1) { $count_base=42; } elsif ($lla_number==2) { $count_base=44; } elsif ($lla_number==3) { $count_base=46; } elsif ($lla_number==4) { $count_base=48; } elsif ($lla_number==5) { $count_base=50 } else { print "unknown lla number -> $lla_number\n"; exit; } # Socket setup $iaddr = inet_aton("$eac") || die "no host: $eac"; $paddr = sockaddr_in("17000",$iaddr); $proto = getprotobyname("tcp"); socket(S,PF_INET,SOCK_STREAM,$proto) || die "socket: $!"; connect(S, $paddr) || die "connect: $!"; select(S); $|=1; select("stdout"); $count=0; while ($count<2) { $ad_string=sprintf("A%02x000Z",$count_base); print S "$ad_string\n"; $result = ; $result =~ s/A.{2}//; $result =~ s/Z//; $number = hex($result); $current= ($number-455) *.005405; # if ($current<0) { # $current=0; # } printf "%4.3f ",$current; $count_base++; $count++; } print "\n"; close (S);