nmea/aprs: bugfix multi-line output; negative aprs-temperature

pull/4/head
Zilog80 2017-11-29 19:56:51 +01:00
rodzic 9ef53fa831
commit 12564c4cbc
2 zmienionych plików z 33 dodań i 25 usunięć

Wyświetl plik

@ -1,4 +1,5 @@
#!/usr/bin/env perl
## aprs-output provided by daniestevez
use strict;
use warnings;
@ -55,12 +56,15 @@ while ($line = <$fpi>) {
#print STDERR $line; ## oder: nur Zeile mit Koordinaten ausgeben
$hms = $1*10000+$2*100+$3;
if ($4 < 0) { $NS="S"; $sign *= -1; }
else { $NS="N"; $sign = 1}
$lat = $sign*$4*100+$5*60;
$lat = $sign*$4*100+$5*60;
if ($6 < 0) { $EW="W"; $sign = -1; }
else { $EW="E"; $sign = 1; }
$lon = $sign*$6*100+$7*60;
$lon = $sign*$6*100+$7*60;
$alt = $8*3.28084; ## m -> feet
if ($line =~ /(\d\d\d\d)-(\d\d)-(\d\d).*/) {
@ -72,26 +76,26 @@ while ($line = <$fpi>) {
$course = $2;
}
if ($line =~ /\(([\w]+)\)/) {
$callsign = $1;
}
if ($line =~ /\(([\w]+)\)/) {
$callsign = $1;
}
if ($line =~ /T=([\d.]+)C/) {
$temp = " T=$1C";
}
else {
$temp = "";
}
if ($line =~ /T=(-?[\d.]+)C/) {
$temp = " T=$1C";
}
else {
$temp = "";
}
$str = sprintf("$mycallsign>APRS,TCPIP*:;%-9s*%06dh%07.2f$NS/%08.2f${EW}O%03d/%03d/A=%06d$comment$temp", $callsign, $hms, $lat, $lon, $course, $speed, $alt);
print $fpo "$str\n";
$str = sprintf("$mycallsign>APRS,TCPIP*:;%-9s*%06dh%07.2f$NS/%08.2f${EW}O%03d/%03d/A=%06d$comment$temp", $callsign, $hms, $lat, $lon, $course, $speed, $alt);
print $fpo "$str\n";
}
elsif ($line =~ / # xdata = (.*)/) {
if ($1) {
print STDERR $line;
}
}
#elsif ($line =~ / # xdata = (.*)/) { ## nicht, wenn (oben) alle Zeilen ausgeben werden
# if ($1) {
# print STDERR $line;
# }
#}
}
close $fpi;

Wyświetl plik

@ -60,12 +60,15 @@ while ($line = <$fpi>) {
#print STDERR $line; ## oder: nur Zeile mit Koordinaten ausgeben
$hms = $1*10000+$2*100+$3;
if ($4 < 0) { $NS="S"; $sign *= -1; }
else { $NS="N"; $sign = 1}
$lat = $sign*$4*100+$5*60;
$lat = $sign*$4*100+$5*60;
if ($6 < 0) { $EW="W"; $sign = -1; }
else { $EW="E"; $sign = 1; }
$lon = $sign*$6*100+$7*60;
$lon = $sign*$6*100+$7*60;
$alt = $8;
if ($line =~ /(\d\d\d\d)-(\d\d)-(\d\d).*/) {
@ -88,11 +91,12 @@ while ($line = <$fpi>) {
printf $fpo "\$$str*%02X\n", $cs;
}
elsif ($line =~ / # xdata = (.*)/) {
if ($1) {
print STDERR $line;
}
}
#elsif ($line =~ / # xdata = (.*)/) { ## nicht, wenn (oben) alle Zeilen ausgeben werden
# if ($1) {
# print STDERR $line;
# }
#}
}
close $fpi;