add more code gradually
[spider.git] / perl / Thingy / Hi.pm
1 #
2 # Generate Hi (Hello) Thingies
3 #
4 # $Id$
5 #
6 # Copyright (c) 2004 Dirk Koopman G1TLH
7 #
8
9 package Thingy::Hi;
10
11 use strict;
12
13 use vars qw($VERSION $BRANCH);
14 $VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
15 $BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/,(0,0));
16 $main::build += $VERSION;
17 $main::branch += $BRANCH;
18
19 use vars qw(@ISA);
20
21 @ISA = qw(Thingy);
22
23 # this is my version of a PC18
24 sub new
25 {
26         my $pkg = shift;
27         my $tonode = shift;
28         my $t = $pkg->SUPER::new( _tonode=>$tonode,
29                                                          id=>'DXSpider', v=>$main::version, b=>$main::build);
30         return $t;
31 }
32
33 sub normal
34 {
35         my $t = shift;
36         my $dxchan = DXChannel->get($t->{_fromnode});
37         my $r = Route::Node::get($t->{_fromnode}) || Route::Node->new($t->{_fromnode});
38         $r->version($t->{v});
39         $r->build($t->{b});
40         $r->software($t->{id});
41         $r->np(1);
42         $r->lid($t->{_msgid});
43         $r->lastupdate($main::systime);
44
45         if ($dxchan->state eq 'init') {
46                 my $ot = Thingy::Hi->new($t->{_fromnode});
47                 $dxchan->t_send($ot);
48                 $dxchan->state('normal');
49         }
50 }
51
52 1;
53