#
# Copyright (c) 1998 - Dirk Koopman
#
-# $Id$
+#
#
my ($self, $line) = @_;
$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);
+ DXChannel::broadcast_all_nodes($s, $main::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);
+ DXChannel::broadcast_all_nodes($s, $main::me) ;
}
$user->put();