#!/usr/bin/perl
use Net::GPSD3;
my $g = Net::GPSD3->new or die $!;
$g->addHandler(\&tpv);
$g->watch;
sub tpv{
$t = shift;
return unless $t->class eq 'TPV';
print join ' ', $t->timestamp, $t->lat, $t->lon, $t->alt;
exit
}
perl -MNet::GPSD3 -le '$g=Net::GPSD3->new;$g->addHandler(\&tpv);sub tp
+v{$t=shift;return unless$t->class eq"TPV";print join" ",$t->timestamp
+,$t->lat,$t->lon,$t->alt;exit}$g->watch'
and then restarts gpsd if it goes too long without reporting anything. Maybe also add a software-controlled electrical disconnect on the USB port so that you can power-cycle the device
Those are cool ideas but I have to trust the GPS, and GPSD seems very robust, to prevent me from creating a race condition that bricks the device :-) |