From: minima Date: Mon, 14 Feb 2005 10:33:12 +0000 (+0000) Subject: remove all old dx stuff and check that it all now works solely from the X-Git-Tag: R_1_52~202 X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=commitdiff_plain;h=56acf117e704090501056412d10b62664ed94825;p=spider.git remove all old dx stuff and check that it all now works solely from the Thingy dispatcher loop. --- diff --git a/Changes b/Changes index 8c601160..cadaa7cd 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,8 @@ +14Feb05======================================================================= +1. Move version no to 2.01 +2. Add more of the new Thingy infrastructure. +3. allow authenticated HELLO commands +4. port DX broadcasts for all flavours of interface. 08Feb05======================================================================= 1. possibly fixed the multiple condition problems on sh/dx 2. added some FAQs. diff --git a/cmd/show/dx.pl b/cmd/show/dx.pl index ddc29bba..1203cb3b 100644 --- a/cmd/show/dx.pl +++ b/cmd/show/dx.pl @@ -365,7 +365,7 @@ foreach $ref (@res) { push @out, VE7CC::dx_spot($self, @$ref); } else { if ($real) { - push @out, $self->format_dx_spot(@$ref); + push @out, $self->format_dx_spot($ref); } else { push @out, Spot::formatl(@$ref); } diff --git a/perl/DXCommandmode.pm b/perl/DXCommandmode.pm index 276b346b..e207b0df 100644 --- a/perl/DXCommandmode.pm +++ b/perl/DXCommandmode.pm @@ -846,66 +846,6 @@ sub chat $self->local_send('C', $buf); } -sub format_dx_spot -{ - my $self = shift; - my $spot = ref $_[0] ? shift : \@_; - - my $t = ztime($spot->[2]); - my $loc = ''; - my $clth = $self->{consort} eq 'local' ? 29 : 30; - my $comment = substr $spot->[3], 0, $clth; - $comment .= ' ' x ($clth - length($comment)); - if ($self->{user}->wantgrid) { - my $ref = DXUser->get_current($spot->[4]); - if ($ref) { - $loc = $ref->qra || ''; - $loc = ' ' . substr($loc, 0, 4) if $loc; - } - } - - if ($self->{user}->wantdxitu) { - $loc = ' ' . sprintf("%2d", $spot->[10]) if defined $spot->[10]; - $comment = substr($comment, 0, $self->{consort} eq 'local' ? 26 : 27) . ' ' . sprintf("%2d", $spot->[8]) if defined $spot->[8]; - } elsif ($self->{user}->wantdxcq) { - $loc = ' ' . sprintf("%2d", $spot->[11]) if defined $spot->[11]; - $comment = substr($comment, 0, $self->{consort} eq 'local' ? 26 : 27) . ' ' . sprintf("%2d", $spot->[9]) if defined $spot->[9]; - } elsif ($self->{user}->wantusstate) { - $loc = ' ' . $spot->[13] if $spot->[13]; - $comment = substr($comment, 0, $self->{consort} eq 'local' ? 26 : 27) . ' ' . $spot->[12] if $spot->[12]; - } - - return sprintf "DX de %-7.7s%11.1f %-12.12s %-s $t$loc", "$spot->[4]:", $spot->[0], $spot->[1], $comment; -} - -# send a dx spot -sub dx_spot -{ - my $self = shift; - my $line = shift; - my $isolate = shift; - return unless $self->{dx}; - - my ($filter, $hops); - - if ($self->{spotsfilter}) { - ($filter, $hops) = $self->{spotsfilter}->it(@_ ); - return unless $filter; - } - - dbg('spot: "' . join('","', @_) . '"') if isdbg('dxspot'); - - my $buf; - if ($self->{ve7cc}) { - $buf = VE7CC::dx_spot($self, @_); - } else { - $buf = $self->format_dx_spot(@_); - $buf .= "\a\a" if $self->{beep}; - $buf =~ s/\%5E/^/g; - } - - $self->local_send('X', $buf); -} sub wwv { diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 5580a2be..1ae1823b 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -1738,36 +1738,6 @@ sub process # -sub send_dx_spot -{ - my $self = shift; - my $line = shift; - my @dxchan = DXChannel->get_all(); - my $dxchan; - - # send it if it isn't the except list and isn't isolated and still has a hop count - # taking into account filtering and so on - foreach $dxchan (@dxchan) { - next if $dxchan == $main::me; - next if $dxchan == $self && $self->is_node; - $dxchan->dx_spot($line, $self->{isolate}, @_, $self->{call}); - } -} - -sub dx_spot -{ - my $self = shift; - my $line = shift; - my $isolate = shift; - my ($filter, $hops); - - if ($self->{spotsfilter}) { - ($filter, $hops) = $self->{spotsfilter}->it(@_); - return unless $filter; - } - send_prot_line($self, $filter, $hops, $isolate, $line); -} - sub send_prot_line { my ($self, $filter, $hops, $isolate, $line) = @_; diff --git a/perl/Spot.pm b/perl/Spot.pm index e918c0c6..66652795 100644 --- a/perl/Spot.pm +++ b/perl/Spot.pm @@ -292,9 +292,44 @@ sub ftor # format a spot for user output in list mode sub formatl { - my $t = ztime($_[2]); - my $d = cldate($_[2]); - return sprintf "%8.1f %-11s %s %s %-28.28s%7s>", $_[0], $_[1], $d, $t, $_[3], "<$_[4]" ; + my $spot = ref $_[0] ? shift : \@_; + + my $t = ztime($spot->[2]); + my $d = cldate($spot->[2]); + return sprintf "%8.1f %-11s %s %s %-28.28s%7s>", $spot->[0], $spot->[1], $d, $t, $spot->[3], "<$spot->[4]" ; +} + +# format a spot for normal output +sub format_dx_spot +{ + my $dxchan = shift; + my $spot = ref $_[0] ? shift : \@_; + + my $t = ztime($spot->[2]); + my $loc = ''; + my $clth = $dxchan->{consort} eq 'local' ? 29 : 30; + my $comment = substr $spot->[3], 0, $clth; + $comment .= ' ' x ($clth - length($comment)); + if ($dxchan->{user}->wantgrid) { + my $ref = DXUser->get_current($spot->[4]); + if ($ref) { + $loc = $ref->qra || ''; + $loc = ' ' . substr($loc, 0, 4) if $loc; + } + } + + if ($dxchan->{user}->wantdxitu) { + $loc = ' ' . sprintf("%2d", $spot->[10]) if defined $spot->[10]; + $comment = substr($comment, 0, $dxchan->{consort} eq 'local' ? 26 : 27) . ' ' . sprintf("%2d", $spot->[8]) if defined $spot->[8]; + } elsif ($dxchan->{user}->wantdxcq) { + $loc = ' ' . sprintf("%2d", $spot->[11]) if defined $spot->[11]; + $comment = substr($comment, 0, $dxchan->{consort} eq 'local' ? 26 : 27) . ' ' . sprintf("%2d", $spot->[9]) if defined $spot->[9]; + } elsif ($dxchan->{user}->wantusstate) { + $loc = ' ' . $spot->[13] if $spot->[13]; + $comment = substr($comment, 0, $dxchan->{consort} eq 'local' ? 26 : 27) . ' ' . $spot->[12] if $spot->[12]; + } + + return sprintf "DX de %-7.7s%11.1f %-12.12s %-s $t$loc", "$spot->[4]:", $spot->[0], $spot->[1], $comment; } # diff --git a/perl/Thingy/Dx.pm b/perl/Thingy/Dx.pm index 9b7a181b..10eee308 100644 --- a/perl/Thingy/Dx.pm +++ b/perl/Thingy/Dx.pm @@ -86,7 +86,7 @@ sub gen_DXCommandmode if ($dxchan->{ve7cc}) { $buf = VE7CC::dx_spot($dxchan, $thing->{spotdata}); } else { - $buf = $dxchan->format_dx_spot($thing->{spotdata}); + $buf = Spot::format_dx_spot($dxchan, $thing->{spotdata}); $buf .= "\a\a" if $dxchan->{beep}; $buf =~ s/\%5E/^/g; } diff --git a/perl/VE7CC.pm b/perl/VE7CC.pm index 58964c5a..14ef2131 100644 --- a/perl/VE7CC.pm +++ b/perl/VE7CC.pm @@ -28,9 +28,10 @@ $main::branch += $BRANCH; sub dx_spot { my $self = shift; # this may be useful some day - my $freq = shift; - my $spotted = shift; - my $t = shift; + my $spot = ref $_[0] ? shift : \@_; + my $freq = $spot->[0]; + my $spotted = $spot->[1]; + my $t = $spot->[2]; my $loc_spotted = ''; my $loc_spotter = ''; my $ref = DXUser->get_current($spotted); @@ -40,21 +41,21 @@ sub dx_spot } # remove any items above the top of the max spot data - pop while @_ > 11; + pop while @_ > 14; # make sure both US states are defined - $_[9] ||= ''; - $_[10] ||= ''; + $_[12] ||= ''; + $_[13] ||= ''; my $spotted_cc = (Prefix::cty_data($spotted))[5]; - my $spotter_cc = (Prefix::cty_data($_[1]))[5]; - $ref = DXUser->get_current($_[1]); + my $spotter_cc = (Prefix::cty_data($_[4]))[5]; + $ref = DXUser->get_current($_[4]); if ($ref) { my $loc = $ref->qra || ''; $loc_spotter = substr($loc, 0, 4) if $loc; } - return sprintf("CC11^%0.1f^%s^", $freq, $spotted) . join('^', cldate($t), ztime($t), @_, $spotted_cc, $spotter_cc, $loc_spotted, $loc_spotter); + return sprintf("CC11^%0.1f^%s^", $freq, $spotted) . join('^', cldate($t), ztime($t), @$spot[3..-1], $spotted_cc, $spotter_cc, $loc_spotted, $loc_spotter); } 1;