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;

Poll Interface

use Net::GPSD3;
use Data::Dumper qw{Dumper};
my $gpsd=Net::GPSD3->new;
my $poll=$gpsd->poll;
print Dumper($poll);

The Perl one liner

perl -MNet::GPSD3 -e 'Net::GPSD3->new->watch'

Which Protocol is my gpsd using

perl -MNet::GPSD3 -e '$gpsd=Net::GPSD3->new; $gpsd->poll; printf "Protocol: %s\n", $gpsd->cache->VERSION->protocol;'
Protocol: 3.4

DESCRIPTION

Net::GPSD3 provides an object client interface to the gpsd server daemon utilizing the version 3 protocol. gpsd is an open source GPS deamon from http://gpsd.berlios.de/. Support for Version 3 of the protocol (JSON) was adding 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

Send a Poll request to the gpsd server and returns a POLL object. The method also populates the cache object with the VERISON and DEVICES objects.

my $poll=$gpsd->poll; #isa Net::GPSD3::Return::POLL object

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 to GPS devices tat ar a like and each GPS device has a differenet GPSD signature. If your GPS device does not work out of the box with this package please send me a log of your device.

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, GPS::Point, JSON::XS, IO::Socket::INET6, DateTime