use strict;
use vars qw($VERSION $BRANCH);
-$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
-$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0));
-$main::build += $VERSION;
-$main::branch += $BRANCH;
+($VERSION, $BRANCH) = dxver(q$Revision$);
use vars qw($sentencelth);
# Request init string
sub pc18
{
- my $flags = " pc";
+ my $flags = " pc9[2]";
$flags .= " xml" if DXXml::available();
return "PC18^DXSpider Version: $main::version Build: $main::build$flags^$DXProt::myprot_version^";
}
# spider route broadcasts
#
-my $_last_time;
-my $_last_occurs;
-sub _gen_time
+sub _gen_pc92
{
- if (!$_last_time || $_last_time != $main::systime) {
- $_last_time = $main::systime;
- $_last_occurs = 0;
- return $_last_time;
- } else {
- $_last_occurs++;
- return "$_last_time:$_last_occurs";
+ my $sort = shift;
+ my $ext = shift;
+ my $s = "PC92^$main::mycall^" . gen_pc9x_t() . "^$sort";
+ for (@_) {
+ $s .= "^" . _encode_pc92_call($_, $ext);
}
+ return $s . '^H99^';
}
-sub _gen_pc92
+sub gen_pc92_with_time
{
+ my $call = shift;
my $sort = shift;
- my $s = "PC92^$sort^" . _gen_time;
+ my $t = shift;
+ my $ext = 1;
+ my $s = "PC92^$call^$t^$sort";
for (@_) {
- my $flag = 0;
- my $call = $_->call;
- my $extra = '';
- if ($_->isa('Route::Node')) {
- $flag = 4;
- if ($call ne $main::mycall && DXChannel::get($call)) {
- $flag += 2;
- }
- if ($sort eq 'C') {
- $extra .= ':' . ($_->version || '') if $_->build;
- $extra .= ':' . $_->build if $_->build;
- }
- }
- $flag += $_->here ? 1 : 0;
- $s .= "^$flag$call$extra";
+ $s .= "^" . _encode_pc92_call($_, $ext);
}
- return $s . '^H99';
+ return $s . '^H99^';
}
# add a local one
sub pc92a
{
- return _gen_pc92('A', @_);
+ return _gen_pc92('A', 0, @_);
}
# delete a local one
sub pc92d
{
- return _gen_pc92('D', @_);
+ return _gen_pc92('D', 0, @_);
}
# send a config
sub pc92c
{
- return _gen_pc92('C', @_);
+ return _gen_pc92('C', 1, @_);
}
1;