kopia lustrzana https://github.com/rs1729/RS
rs92,rs41,imet1ab,dfm,m10: output -> nmea, viking-gpsd
rodzic
8fe395642b
commit
a6aebc6dd7
|
@ -13,8 +13,6 @@ else {
|
||||||
$fpi = *STDIN;
|
$fpi = *STDIN;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $fplog;
|
|
||||||
my $nmeafile = "nmea.log";
|
|
||||||
|
|
||||||
my $fpo = *STDOUT;
|
my $fpo = *STDOUT;
|
||||||
|
|
||||||
|
@ -27,15 +25,14 @@ my $NS; my $EW;
|
||||||
my $cs;
|
my $cs;
|
||||||
my $str;
|
my $str;
|
||||||
|
|
||||||
my $date = 11116; # (d)dmmyy ohne fuehrende 0 (wenn log kein Datum enthaelt)
|
my $date = 271016; ## (d)dmmyy ohne fuehrende 0 (wenn log kein Datum enthaelt)
|
||||||
my $speed = 0.00;
|
my $speed = 0.00;
|
||||||
my $course = 0.00;
|
my $course = 0.00;
|
||||||
|
|
||||||
while ($line = <$fpi>) {
|
while ($line = <$fpi>) {
|
||||||
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*).*/) {
|
||||||
|
|
||||||
## einzelne RMC/GGA Datensaetze fuer gpsfake
|
print STDERR $line;
|
||||||
open ($fplog, '>', $nmeafile) or die "Could not open file '$nmeafile' $!";
|
|
||||||
|
|
||||||
$hms = $1*10000+$2*100+$3;
|
$hms = $1*10000+$2*100+$3;
|
||||||
$lat = $4*100+$5*60;
|
$lat = $4*100+$5*60;
|
||||||
|
@ -51,7 +48,7 @@ open ($fplog, '>', $nmeafile) or die "Could not open file '$nmeafile' $!";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($line =~ /vH:\ *(\d+\.\d+)\ +D:\ *(\d+\.\d+).*/) {
|
if ($line =~ /vH:\ *(\d+\.\d+)\ +D:\ *(\d+\.\d+).*/) {
|
||||||
$speed = $1*3.6/1.852; # m/s -> knots
|
$speed = $1*3.6/1.852; ## m/s -> knots
|
||||||
$course = $2;
|
$course = $2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,16 +56,12 @@ open ($fplog, '>', $nmeafile) or die "Could not open file '$nmeafile' $!";
|
||||||
$cs = 0;
|
$cs = 0;
|
||||||
$cs ^= $_ for unpack 'C*', $str;
|
$cs ^= $_ for unpack 'C*', $str;
|
||||||
printf $fpo "\$$str*%02X\n", $cs;
|
printf $fpo "\$$str*%02X\n", $cs;
|
||||||
printf $fplog "\$$str*%02X\n", $cs;
|
|
||||||
|
|
||||||
## GPS ueber Ellipsoid; Geoid-Hoehe nicht beruecksichtigt
|
## GPS ueber Ellipsoid; Geoid-Hoehe nicht beruecksichtigt
|
||||||
$str = sprintf ("GPGGA,%010.3f,%08.3f,$NS,%09.3f,$EW,1,04,0.0,%.3f,M,0.0,M,,", $hms, $lat, $lon, $alt);
|
$str = sprintf ("GPGGA,%010.3f,%08.3f,$NS,%09.3f,$EW,1,04,0.0,%.3f,M,0.0,M,,", $hms, $lat, $lon, $alt);
|
||||||
$cs = 0;
|
$cs = 0;
|
||||||
$cs ^= $_ for unpack 'C*', $str;
|
$cs ^= $_ for unpack 'C*', $str;
|
||||||
printf $fpo "\$$str*%02X\n", $cs;
|
printf $fpo "\$$str*%02X\n", $cs;
|
||||||
printf $fplog "\$$str*%02X\n", $cs;
|
|
||||||
|
|
||||||
close $fplog;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -76,3 +69,20 @@ close $fplog;
|
||||||
close $fpi;
|
close $fpi;
|
||||||
close $fpo;
|
close $fpo;
|
||||||
|
|
||||||
|
|
||||||
|
#############################################################################################################################################
|
||||||
|
##
|
||||||
|
## term-1$ socat -d -d pty,raw,echo=0 pty,raw,b4800,echo=0 #[default baudrate 38400]
|
||||||
|
## N PTY is /dev/pts/12
|
||||||
|
## N PTY is /dev/pts/15
|
||||||
|
##
|
||||||
|
## term-2$ sox -t oss /dev/dsp -t wav - lowpass 3600 2>/dev/null | ./rs92ecc --ecc --crc --vel2 -e brdc3010.16n | ./pos2nmea.pl > /dev/pts/12
|
||||||
|
##
|
||||||
|
## term-3$ gpsd -D2 -b -n -N /dev/pts/15
|
||||||
|
##
|
||||||
|
## term-4$ gpspipe -R localhost:2947
|
||||||
|
##
|
||||||
|
## Viking: GPS-layer, Realtime Tracking Mode, gpsd-port: 2947
|
||||||
|
##
|
||||||
|
#############################################################################################################################################
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue