}
# local processing
- if (defined *Local::spot) {
+ if (defined &Local::spot) {
my $r;
eval {
$r = Local::spot($self, @spot);
}
# local processing
- if (defined *Local::ann) {
+ if (defined &Local::ann) {
my $r;
eval {
$r = Local::ann($self, $line, @_[1..6]);
# note this only takes the first one it gets
Geomag::update($d, $_[2], $sfi, $k, $i, @_[6..8], $r);
- if (defined *Local::wwv) {
+ if (defined &Local::wwv) {
my $rep;
eval {
$rep = Local::wwv($self, $_[1], $_[2], $sfi, $k, $i, @_[6..8], $r);
my $wcy = WCY::update($d, @_[2..12]);
- if (defined *Local::wcy) {
+ if (defined &Local::wcy) {
my $rep;
eval {
$rep = Local::wcy($self, @_[1..12]);
} elsif ($t == $lastid) {
dbg("PCPROT: dup id on $t == lastid $lastid, ignored") if isdbg('chanerr') || isdbg('pc92dedupe');
return undef;
+ } else {
+ # check that if we have a low number in lastid that yesterday's numbers
+ # (likely in the 85000+ area) don't override them, thus causing flip flopping
+ if ($lastid+86400-$t < $pc9x_past_age) {
+ dbg("PCPROT: dup id on $t in yesterday, lastid $lastid, ignored") if isdbg('chanerr') || isdbg('pc92dedupe');
+ return undef;
+ }
}
}
}