fix src/dest order; parse dfm ids; be more tolerant in lat/lon/alt text

pull/18/head
Hansi Reiser 2020-01-20 20:44:07 +01:00
rodzic 90175ff2ab
commit b97af4b7b9
1 zmienionych plików z 6 dodań i 5 usunięć

Wyświetl plik

@ -65,7 +65,7 @@ sub encodecall{
return $encoded; return $encoded;
} }
# kissmkhead: input: list of callsigns (src, dest, repeater list); output: raw kiss frame header data # kissmkhead: input: list of callsigns (dest, src, repeater list); output: raw kiss frame header data
sub kissmkhead { sub kissmkhead {
my @calllist = @_; my @calllist = @_;
my $last = pop @calllist; my $last = pop @calllist;
@ -98,8 +98,8 @@ if($udp) {
my ($udpserver,$udpport)=split ':',$udp; my ($udpserver,$udpport)=split ':',$udp;
$udpserver = "127.0.0.1" unless $udpserver; $udpserver = "127.0.0.1" unless $udpserver;
$sock = new IO::Socket::INET(PeerAddr => $udpserver, PeerPort => $udpport, Proto => "udp", Timeout => 1) or die "Error creating socket"; $sock = new IO::Socket::INET(PeerAddr => $udpserver, PeerPort => $udpport, Proto => "udp", Timeout => 1) or die "Error creating socket";
# $kissheader = kissmkhead(uc($mycallsign),"APRS","TCPIP*"); # $kissheader = kissmkhead("APRS",uc($mycallsign),"TCPIP*");
$kissheader = kissmkhead(uc($mycallsign),"APRS"); $kissheader = kissmkhead("APRS",uc($mycallsign));
} }
print $fpo "user $mycallsign pass $passcode vers \"RS decoder\"\n"; print $fpo "user $mycallsign pass $passcode vers \"RS decoder\"\n";
@ -108,7 +108,7 @@ while ($line = <$fpi>) {
print STDERR $line; ## entweder: alle Zeilen ausgeben print STDERR $line; ## entweder: alle Zeilen ausgeben
if ($line =~ /(\d\d):(\d\d):(\d\d\.?\d?\d?\d?).*\ +lat:\ *(-?\d*)(\.\d*)\ +lon:\ *(-?\d*)(\.\d*)\ +alt:\ *(-?\d*\.\d*).*/) { if ($line =~ /(\d\d):(\d\d):(\d\d\.?\d?\d?\d?).*\ +lat:\ *(-?\d*)(\.\d*).*\ +lon:\ *(-?\d*)(\.\d*).*\ +alt:\ *(-?\d*\.\d*).*/) {
#print STDERR $line; ## oder: nur Zeile mit Koordinaten ausgeben #print STDERR $line; ## oder: nur Zeile mit Koordinaten ausgeben
@ -135,7 +135,8 @@ while ($line = <$fpi>) {
$course = $2; $course = $2;
} }
if ($line =~ /\(([\w]+)\)/) { # match either (id) or (type:id) and return id
if ($line =~ /\(.*?([\w]+)\)/) {
$callsign = $1; $callsign = $1;
} }