X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fset%2Fqra.pl;h=60c6dc1603fcad5b40463f86e559e6041e844d03;hb=78cf2dcb9be8128af7f8dc5ae37540c9c53c6057;hp=484666ca953efa3e638fdd077417f459823676b5;hpb=cc75f4ffe229e8ff381828f88a68c89cec818788;p=spider.git diff --git a/cmd/set/qra.pl b/cmd/set/qra.pl index 484666ca..60c6dc16 100644 --- a/cmd/set/qra.pl +++ b/cmd/set/qra.pl @@ -15,20 +15,28 @@ $line =~ s/^\s+//; $line =~ s/\s+$//; return (1, $self->msg('qrae1')) if !$line; -return (1, $self->msg('qrae2', $line)) unless DXBearing::is_qra($line); +return (1, $self->msg('qrae2', $line)) unless is_qra($line); $user = DXUser->get_current($call); if ($user) { - $line = uc $line; - $user->qra($line); - if (!$user->lat && !$user->long) { - my ($lat, $long) = DXBearing::qratoll($line); + my $qra = uc $line; + my $oldqra = $user->qra || ""; + if ($oldqra ne $qra) { + $user->qra($qra); + my $s = DXProt::pc41($call, 5, $qra); + DXProt::eph_dup($s); + DXProt::broadcast_all_ak1a($s, $DXProt::me); + } + my ($lat, $long) = DXBearing::qratoll($qra); + my $oldlat = $user->lat || 0; + my $oldlong = $user->long || 0; + if ($oldlat != $lat || $oldlong != $long) { $user->lat($lat); $user->long($long); - my $s = DXBearing::lltos($lat, $long); - my $l = DXProt::pc41($call, 3, $s); - DXProt::eph_dup($l); - DXProt::broadcast_all_ak1a($l, $DXProt::me) ; + my $l = DXBearing::lltos($lat, $long); + my $s = DXProt::pc41($call, 3, $l); + DXProt::eph_dup($s); + DXProt::broadcast_all_ak1a($s, $DXProt::me) ; } $user->put();