From: Dirk Koopman Date: Tue, 26 May 2020 08:18:01 +0000 (+0100) Subject: add connect time/uptime for links cmd X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?p=spider.git;a=commitdiff_plain;h=59bc57a3789ea433e1edb6e41c47ecf0aba95705 add connect time/uptime for links cmd --- diff --git a/cmd/links.pl b/cmd/links.pl index e53917b4..f3554557 100644 --- a/cmd/links.pl +++ b/cmd/links.pl @@ -15,8 +15,8 @@ my $dxchan; 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(); @@ -27,8 +27,9 @@ foreach $dxchan ( sort {$a->call cmp $b->call} DXChannel::get_all_nodes ) { 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'; @@ -60,7 +61,7 @@ foreach $dxchan ( sort {$a->call cmp $b->call} DXChannel::get_all_nodes ) { } $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) diff --git a/perl/DXUtil.pm b/perl/DXUtil.pm index b7c45519..91c63691 100644 --- a/perl/DXUtil.pm +++ b/perl/DXUtil.pm @@ -527,25 +527,36 @@ sub diffms 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; }