my @out;
my $nowt = time;
-push @out, " Ave Obs Ping Next Filters";
-push @out, " Callsign Type Started RTT Count Int. Ping Iso? In Out PC92? Address";
+push @out, " Ave Obs Ping Next Filters";
+push @out, " Callsign Type Started Uptime RTT Count Int. Ping Iso? In Out PC92? Address";
foreach $dxchan ( sort {$a->call cmp $b->call} DXChannel::get_all_nodes ) {
my $call = $dxchan->call();
my $obscount = $dxchan->nopings;
my $pingint = $dxchan->pingint;
my $lastt = $dxchan->lastping ? ($dxchan->pingint - ($nowt - $dxchan->lastping)) : $pingint;
- my $ping = $dxchan->is_node && $dxchan != $main::me ? sprintf("%8.2f",$dxchan->pingave) : "";
+ my $ping = $dxchan->is_node && $dxchan != $main::me ? sprintf("%7.2f",$dxchan->pingave) : "";
my $iso = $dxchan->isolate ? 'Y' :' ';
+ my $uptime = difft($dxchan->startt, 1);
my ($fin, $fout, $pc92) = (' ', ' ', ' ');
if ($dxchan->do_pc9x) {
$pc92 = 'Y';
}
$ipaddr = 'ax25' if $dxchan->conn->ax25;
- push @out, sprintf "%10s $sort $t$ping $obscount %5d %5d $iso $fin $fout $pc92 $ipaddr", $call, $pingint, $lastt;
+ push @out, sprintf "%10s $sort $t%13s$ping $obscount %5d %5d $iso $fin $fout $pc92 $ipaddr", $call, $uptime ,$pingint, $lastt;
}
return (1, @out)
sub difft
{
my $b = shift;
+ my $adds = shift;
+
my $t;
if (ref $b eq 'ARRAY') {
$t = $b->[1] - $b->[0];
} else {
- $t = shift() - $b;
+ if ($adds >= $b) {
+ $t = $adds - $b;
+ $adds = shift;
+ } else {
+ $t = $main::systime - $b;
+ }
}
return '-(ve)' if $t < 0;
my ($d,$h,$m,$s);
my $out = '';
$d = int $t / 86400;
- $out .= "${d}d" if $d;
+ $out .= sprintf ("%s${d}d", $adds?' ':'') if $d;
$t -= $d * 86400;
$h = int $t / 3600;
- $out .= "${h}h" if $h || $d;
+ $out .= sprintf ("%s${h}h", $adds?' ':'') if $h;
+# $out .= "${h}h" if $h || $d;
$t -= $h * 3600;
$m = int $t / 60;
- $out .= "${m}m" if $m || $h || $d;
+ $out .= sprintf ("%s${m}m", $adds?' ':'') if $m;
+# $out .= "${m}m" if $m || $h || $d;
$s = int $t % 60;
- $out .= "${s}s";
+ $out .= sprintf ("%s${s}s", $adds?' ':'') if $s;
+ # $out .= "${s}s";
+ $out ||= sprintf ("%s0s", $adds?' ':'');
return $out;
}