table of contents
Net::GPSD3(3pm) | User Contributed Perl Documentation | Net::GPSD3(3pm) |
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::POEDESCRIPTION¶
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 objectmy $socket=$gpsd->socket; #try to reconnect on failure
json¶
Returns the cached JSON::XS objectdecode¶
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 structureconstructor¶
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 listThere 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, DateTime2011-12-30 | perl v5.14.2 |