use Spot;
use DXProtout;
use DXDebug;
+use Local;
+
use Carp;
use strict;
sub normal
{
my ($self, $line) = @_;
- my @field = split /[\^\~]/, $line;
+ my @field = split /\^/, $line;
+ pop @field if $field[-1] eq '~';
+# print join(',', @field), "\n";
+
# ignore any lines that don't start with PC
return if !$field[0] =~ /^PC/;
return unless $pcno;
return if $pcno < 10 || $pcno > 51;
+ # local processing 1
+ my $pcr;
+ eval {
+ $pcr = Local::pcprot($self, $pcno, @field);
+ };
+ dbg('local', "Local::pcprot error $@") if $@;
+ return if $pcr;
+
SWITCH: {
if ($pcno == 10) { # incoming talk
my $spot = Spot::add($freq, $field[2], $d, $text, $spotter, $field[7]);
+ # local processing
+ my $r;
+ eval {
+ $r = Local::spot1($self, $freq, $field[2], $d, $text, $spotter, $field[7]);
+ };
+ dbg('local', "Local::spot1 error $@") if $@;
+ return if $r;
+
# send orf to the users
if ($spot && $pcno == 11) {
my $buf = Spot::formatb($field[1], $field[2], $d, $text, $spotter);
$wwvdup{$dupkey} = $d;
Geomag::update($field[1], $field[2], $sfi, $k, $i, @field[6..$#field]);
+ my $r;
+ eval {
+ $r = Local::wwv2($self, $field[1], $field[2], $sfi, $k, $i, @field[6..$#field]);
+ };
+ dbg('local', "Local::wwv2 error $@") if $@;
+ return if $r;
+
# DON'T be silly and send on PC27s!
return if $pcno == 27;