Take me over?
NAME
Net::GPSD - Provides a perl interface to the gpsd daemon.
SYNOPSIS
use Net::GPSD;
$gps=new Net::GPSD;
my $point=$gps->get;
print $point->latlon. "\n";
or
use Net::GPSD;
$gps=new Net::GPSD;
$gps->subscribe;
DESCRIPTION
Net::GPSD provides a perl interface to gpsd daemon. gpsd is an open source gps deamon from http://gpsd.berlios.de/.
For example the method get() returns a hash reference like
{S=>[?|0|1|2],
P=>[lat,lon]}
Fortunately, there are various methods that hide this hash from the user.
METHODS
- new
-
Returns a new gps object.
- subscribe(handler=>\&sub, config=>{})
-
Subscribes subroutine to call when a valid fix is obtained. When the GPS receiver has a good fix this subroutine will be called every second. The return (in v0.5 must be a ref) from this sub will be sent back as the first argument to the subroutine on the next call.
- get
-
Returns a current point object regardless if there is a fix or not. Application should test if $point->fix is true.
- getsatellitelist
-
Returns a list of Net::GPSD::Satellite objects. (maps to gpsd Y command)
- port
-
Get or set the current gpsd TCP port.
- host
-
Get or set the current gpsd host.
- time(p1, p2)
-
Returns the time difference between two points in seconds.
- distance(p1, p2)
-
Returns the distance difference between two points in meters. (plainer calculation)
- track(p1, time)
-
Returns a point object at the predicted location of p1 in time seconds. (plainer calculation based on speed and heading)
- baud
-
Returns the baud rate of the connect GPS receiver. (maps to gpsd B command first data element)
- rate
-
Returns the sampling rate of the GPS receiver. (maps to gpsd C command first data element)
- device
-
Returns the GPS device name. (maps to gpsd F command first data element)
- identification (aka id)
-
Returns a text string identifying the GPS. (maps to gpsd I command first data element)
- protocol
-
Returns the GPSD protocol revision number. (maps to gpsd L command first data element)
- daemon
-
Returns the gpsd daemon version. (maps to gpsd L command second data element)
- commands
-
Returns a string of accepted request letters. (maps to gpsd L command third data element)
GETTING STARTED
KNOWN LIMITATIONS
BUGS
No known bugs.
EXAMPLES
use Net::GPSD;
$gps=new Net::GPSD;
my $point=$gps->get;
if ($point->fix) {
print $point->latlon. "\n";
} else {
print "No fix.\n";
}
or
use Net::GPSD;
$gps=new Net::GPSD;
$gps->subscribe(handler=>\&point_handler,
config=>{key=>"value"});
sub point_handler {
my $last_return=shift(); #the return from the last call or undef if first
my $point=shift(); #current point $point->fix is true!
my $config=shift();
print $last_return, " ", $point->latlon. "\n";
return $last_return + 1; #Return a true scalar type e.g. $a, {}, []
#try the interesting return of $point
}
AUTHOR
Michael R. Davis, qw/gpsd michaelrdavis com/
SEE ALSO
gpsd http tracker http://twiki.davisnetworks.com/bin/view/Main/GpsApplications
gpsd home http://gpsd.berlios.de/