NAME¶
Net::GPSD3 - Interface to the gpsd server daemon protocol versions 3 (JSON).
SYNOPSIS¶
Watch Interface¶
use Net::GPSD3;
my $gpsd=Net::GPSD3->new;
$gpsd->watch;
One Liner
perl -MNet::GPSD3 -e 'Net::GPSD3->new->watch'
Poll Interface¶
use Net::GPSD3;
use Data::Dumper qw{Dumper};
my $gpsd=Net::GPSD3->new;
my $poll=$gpsd->poll;
print Dumper($poll);
One Liner
perl -MNet::GPSD3 -e 'printf "Protocol: %s\n", Net::GPSD3->new->poll->parent->cache->VERSION->protocol;'
Protocol: 3.4
POE Interface¶
See Net::GPSD3::POE
DESCRIPTION¶
Net::GPSD3 provides an object client interface to the gpsd server daemon
utilizing the version 3 protocol. gpsd is an open source GPS daemon from
http://www.catb.org/gpsd/ Support for Version 3 of the protocol (JSON) was
added to the daemon in version 2.90. If your daemon is before 2.90 (protocol
2.X), please use the Net::GPSD package.
CONSTRUCTOR¶
new¶
Returns a new Net::GPSD3 object.
my $gpsd=Net::GPSD3->new;
my $gpsd=Net::GPSD3->new(host=>"127.0.0.1", port=>2947); #defaults
METHODS¶
host¶
Sets or returns the current gpsd host.
my $host=$obj->host;
port¶
Sets or returns the current gpsd TCP port.
my $port=$obj->port;
poll¶
Sends a Poll request to the gpsd server and returns a Net::GPSD3::Return::POLL
object. The method also populates the cache object with the
Net::GPSD3::Return::VERISON and Net::GPSD3::Return::DEVICES objects.
my $poll=$gpsd->poll; #isa Net::GPSD3::Return::POLL object
Note: In order to use the poll method consistently you should run the GPSD
daemon as a service. You may also need to run the daemon with the
"-n" option.
watch¶
Calls all handlers that are registered in the handler method.
$gpsd->watch; #will not return unless something goes wrong.
addHandler¶
Adds handlers to the handler list.
$gpsd->addHandler(\&myHandler);
$gpsd->addHandler(\&myHandler1, \&myHandler2);
A handler is a sub reference where the first argument is a Net::GPSD3::Return::*
object.
handlers¶
List of handlers that are called in order to process objects from the gpsd
wathcer stream.
my @handler=$gpsd->handlers; #()
my $handler=$gpsd->handlers; #[]
cache¶
Returns the Net::GPSD3::Cache caching object.
METHODS Internal¶
default_handler¶
socket¶
Returns the cached IO::Socket::INET6 object
my $socket=$gpsd->socket; #try to reconnect on failure
json¶
Returns the cached JSON::XS object
decode¶
Returns a perl data structure given a JSON formated string.
my %data=$gpsd->decode($string); #()
my $data=$gpsd->decode($string); #{}
encode¶
Returns a JSON string from a perl data structure
constructor¶
Constructs a class object by lazy loading the classes.
my $obj=$gpsd->constructor(%$data);
my $obj=$gpsd->constructor(class=>"DEVICE",
string=>'{...}',
...);
Returns and object in the Net::GPSD3::Return::* namespace.
BUGS¶
Log on RT and Send to gpsd-dev email list
There are no two GPS devices that are alike. Each GPS device has a different
GPSD signature as well. If your GPS device does not work out of the box with
this package, please send me a log of your devices JSON sentences.
echo '?POLL;' | nc 127.0.0.1 2947
echo '?WATCH={"enable":true,"json":true};' | socat -t10 stdin stdout | nc 127.0.0.1 2947
SUPPORT¶
DavisNetworks.com supports all Perl applications including this package.
Try gpsd-dev email list
AUTHOR¶
Michael R. Davis
CPAN ID: MRDVT
STOP, LLC
domain=>michaelrdavis,tld=>com,account=>perl
http://www.stopllc.com/
COPYRIGHT¶
This program is free software licensed under the...
The BSD License
The full text of the license can be found in the LICENSE file included with this
module.
SEE ALSO¶
Net::GPSD, Net::GPSD3::POE, GPS::Point, JSON::XS, IO::Socket::INET6,
DateTime