X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fshow%2Fvhfstats.pl;h=22001a639ee8f85434112ae71cc64cefe0a59055;hb=681ed7b3c6d79228a68054489058b619f62974bf;hp=2a9a6dd3cb4e67d6f318bbda4e780a35b80d8b44;hpb=e61ab5eeea22241ea8d8f1f6d072f5249901d788;p=spider.git diff --git a/cmd/show/vhfstats.pl b/cmd/show/vhfstats.pl index 2a9a6dd3..22001a63 100644 --- a/cmd/show/vhfstats.pl +++ b/cmd/show/vhfstats.pl @@ -1,20 +1,39 @@ # -# Show total VHF DX Spot Stats per day +# Show total HF DX Spot Stats per day # # Copyright (c) 2001 Dirk Koopman G1TLH # # # +# Modified on 2002/10/29 by K1XX for his own use +# Valid inputs: +# +# sh/hfstats +# +# sh/hfstats +# +# Known good data formats +# dd-mmm-yy +# 24-Nov-02 (using - . or / as separator) +# +# mm-dd-yy +# 11/24/02 (using - . or / as separator) +# +# yymmdd +# 021124 +# -my $days = 31; -my $now; -my $date = cldate($main::systime); -my $utime = $main::systime; +use Date::Parse; + +sub handle +{ -sub handle { my ($self, $line) = @_; my @f = split /\s+/, $line; my @out; + my $days = 31; + + my $utime = $main::systime; while (@f) { my $f = shift @f; @@ -22,8 +41,7 @@ sub handle { if ($f =~ /^\d+$/ && $f < 366) { # no of days $days = $f; next; - } - if (my $ut = Date::Parse::str2time($f)) { # is it a parseable date? + } elsif (my $ut = Date::Parse::str2time($f)) { # is it a parseable date? $utime = $ut+3600; next; } @@ -32,26 +50,30 @@ sub handle { return (1, @out) if @out; - $now = Julian::Day->new($utime); + my $now = Julian::Day->new($utime); $now = $now->sub($days); - $date = cldate($utime); + my $today = cldate($utime); + +# @out = $self->spawn_cmd("show/vhfstats $line", sub { +# }); if ($self->{_nospawn}) { - return (1, generate($self)); + return (1, generate($self, $days, $now, $today)); } else { - return (1, $self->spawn_cmd("show/vhfstats $line", sub { return (generate($self)); })) + return (1, $self->spawn_cmd("show/vhfstats $line", sub { (generate($self, $days, $now, $today )); })); } } + sub generate { - my $self = shift; + my ($self, $days, $now, $today) = @_; + my %list; my @out; my @in; my $i; - # generate the spot list for ($i = 0; $i < $days; $i++) { my $fh = $Spot::statp->open($now); # get the next file @@ -70,20 +92,25 @@ sub generate } $now = $now->add(1); } - + my @tot; - - push @out, $self->msg('statvhf', $date, $days); - push @out, sprintf "%11s|%6s|%5s|%5s|%5s|%5s|%5s|%5s|%5s|%5s|%5s|", qw(Date Total 6m 4m 2m 70cm 23cm 13cm 9cm 6cm 3cm); + + push @out, $self->msg('statvhf', $today, $days); + push @out, sprintf "%6s|%6s|%5s|%5s|%5s|%5s|%5s|%5s|%5s|%5s|%5s|%5s|", qw(Date Total 6m 4m 2m 70cm 23cm 13cm 9cm 6cm 3cm 12mm); foreach my $ref (@in) { my $linetot = 0; - foreach my $j (14..16,18..23) { + # leaving out 220Mhz + my @bands = (14..16,18..24); + foreach my $j (14..16,18..24) { $tot[$j] += $ref->[$j]; $tot[0] += $ref->[$j]; $linetot += $ref->[$j]; } - push @out, join('|', sprintf("%11s|%6d", $ref->[0]->as_string, $linetot), map {$_ ? sprintf("%5d", $_) : ' '} @$ref[14..16,18..23]) . '|'; + my $today = $ref->[0]->as_string; + $today =~ s/-\d+$//; + push @out, join '|', sprintf("%6s|%6d", $today, $linetot), map {$_ ? sprintf("%5d", $_) : ' '} @$ref[14..16,18..24], ""; } - push @out, join('|', sprintf("%11s|%6d", 'Total', $tot[0]), map {$_ ? sprintf("%5d", $_) : ' '} @tot[14..16,18..23]) . '|'; - return @out; + push @out, join '|', sprintf("%6s|%6d", 'Total', $tot[0]), map {$_ ? sprintf("%5d", $_) : ' '} @tot[14..16,18..24], ""; + return @out + }