X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=4fce82985ecb0a57c656f63ccf6c9b86e7adb757;hb=337f38bfac57a5e5df34c63094fb869b0e2f6bee;hp=ec49fedd3e61069b5921ab3b4e26c37603182b91;hpb=4d3067793942b3f4518615906dde50db5b76464a;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index ec49fedd..4fce8298 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -38,6 +38,7 @@ sub init { my $user = DXUser->get($main::mycall); $me = DXProt->new($main::mycall, undef, $user); + $me->{here} = 1; # $me->{sort} = 'M'; # M for me } @@ -79,6 +80,7 @@ sub start } $self->state('init'); $self->pc50_t(time); + Log('DXProt', "$call connected"); } @@ -218,6 +220,7 @@ sub normal my $user = DXUser->get_current($call); $user = DXUser->new($call) if !$user; $user->node($node->call); + $user->lastin($main::systime); $user->homenode($node->call) if !$user->homenode; $user->put; } @@ -268,6 +271,7 @@ sub normal $user->sort('A'); $user->node($call); $user->homenode($call); + $user->lastin($main::systime); $user->put; } } @@ -387,13 +391,9 @@ sub normal } elsif ($field[2] == 2) { $user->qth($field[3]); } elsif ($field[2] == 3) { - my ($latd, $latm, $latl, $longd, $longm, $longl) = split /\s+/, $field[3]; - $longd += ($longm/60); - $longd = 0-$longd if (uc $longl) eq 'W'; - $user->long($longd); - $latd += ($latm/60); - $latd = 0-$latd if (uc $latl) eq 'S'; - $user->lat($latd); + my ($lat, $long) = DXBearing::stoll($field[3]); + $user->lat($lat); + $user->long($long); } elsif ($field[2] == 4) { $user->homenode($field[3]); } @@ -531,6 +531,7 @@ sub finish # now broadcast to all other ak1a nodes that I have gone broadcast_ak1a(pc21($call, 'Gone.'), $self); + Log('DXProt', $call . " Disconnected"); $ref->del() if $ref; } @@ -606,6 +607,7 @@ sub broadcast_users foreach $chan (@chan) { next if grep $chan == $_, @except; + $s =~ s/\a//og if !$chan->{beep}; $chan->send($s); # send it if it isn't the except list } }