remove all old dx stuff and check that it all now works solely from the
authorminima <minima>
Mon, 14 Feb 2005 10:33:12 +0000 (10:33 +0000)
committerminima <minima>
Mon, 14 Feb 2005 10:33:12 +0000 (10:33 +0000)
Thingy dispatcher loop.

Changes
cmd/show/dx.pl
perl/DXCommandmode.pm
perl/DXProt.pm
perl/Spot.pm
perl/Thingy/Dx.pm
perl/VE7CC.pm

diff --git a/Changes b/Changes
index 8c60116095872d0de8056abd7f7f1df248839a37..cadaa7cdec09a8a7fcf7e3bfbfcf75dd01fed4b0 100644 (file)
--- 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.
index ddc29bbab419a1f513c3b84f8f40cf9e52214a26..1203cb3b2abc99de6659339d2d871faa73c9bca6 100644 (file)
@@ -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);
                }
index 276b346b64447a4d6efe2abf293b56439d1f5f21..e207b0df6da8515666e2e34720c9dbcbe72d3cc3 100644 (file)
@@ -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
 {
index 5580a2bee408fb954168a7ef6d4dc410683c0a30..1ae1823bfb3d4747c5572b06e84d4f1e3204d97f 100644 (file)
@@ -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) = @_;
index e918c0c6c711b7a09522ae023bf75bb043552d2c..66652795f49e82a777959ad49ae66a66d0c436a2 100644 (file)
@@ -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;
 }
 
 #
index 9b7a181becf7da0cfceece21e28600f1c0935ee9..10eee308fd035c6fdf33170b9df1c84695bab41d 100644 (file)
@@ -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;
        }
index 58964c5a67304d5ccbd46c38b32a4717083f913c..14ef213105541600bb806abcd3e380b7c899a879 100644 (file)
@@ -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;