Provided by: libnet-gpsd3-perl_0.19-1_all bug

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