X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXUtil.pm;h=7d9e63a97b89dde5c9e7cf4e90d36eda0a1cd169;hb=44d90466304eae7d7aab0f375ac4c07a3f37b586;hp=d23cb92ea7daa952d57c1deacaa843aa6b329f19;hpb=bf3eac0fc8e37e0dcd9631051c838d0dbb1d33e6;p=spider.git diff --git a/perl/DXUtil.pm b/perl/DXUtil.pm index d23cb92e..7d9e63a9 100644 --- a/perl/DXUtil.pm +++ b/perl/DXUtil.pm @@ -27,7 +27,7 @@ require Exporter; print_all_fields cltounix unpad is_callsign is_latlong is_qra is_freq is_digits is_pctext is_pcflag insertitem deleteitem is_prefix dd is_ipaddr $pi $d2r $r2d localdata localdata_mv - diffms _diffms difft parraydifft is_ztime + diffms _diffms _diffus difft parraydifft is_ztime ); @@ -385,7 +385,7 @@ sub is_callsign return $_[0] =~ m!^ (?:\d?[A-Z]{1,2}\d{0,2}/)? # out of area prefix / (?:\d?[A-Z]{1,2}\d{1,5}) # main prefix one (required) - lengthened for special calls - [A-Z]{1,5} # callsign letters (required) + [A-Z]{1,8} # callsign letters (required) (?:-(?:\d{1,2}))? # - nn possibly (eg G8BPQ-8) (?:/[0-9A-Z]{1,7})? # / another prefix, callsign or special label (including /MM, /P as well as /EURO or /LGT) possibly $!x; @@ -514,6 +514,16 @@ sub _diffms return $b - $a; } +# and in microseconds +sub _diffus +{ + my $ta = shift; + my $tb = shift || [gettimeofday]; + my $a = int($ta->[0] * 1000000) + int($ta->[1]); + my $b = int($tb->[0] * 1000000) + int($tb->[1]); + return $b - $a; +} + sub diffms { my $call = shift; @@ -539,7 +549,7 @@ sub difft if (ref $b eq 'ARRAY') { $t = $b->[1] - $b->[0]; } else { - if ($adds >= $b) { + if ($adds && $adds >= $b) { $t = $adds - $b; $adds = shift; } else {