Net::GPSD3::Return::SKY - Net::GPSD3 Return SKY Object


Net-GPSD3 documentation Contained in the Net-GPSD3 distribution.

Index


Code Index:

NAME

Top

Net::GPSD3::Return::SKY - Net::GPSD3 Return SKY Object

SYNOPSIS

Top

DESCRIPTION

Top

Provides a Perl object interface to the SKY object returned by the GPSD daemon.

An example JSON object:

Protcol 3.1 versions

  {
    "class":"SKY",
    "tag":"MID4",
    "device":"/dev/ttyUSB0",
    "time":1253593665.430,
    "hdop":23.60,
    "reported":9,
    "satellites":
      [
        {"PRN":15,"el":77,"az":123,"ss":0, "used":false},
        {"PRN":18,"el":25,"az":268,"ss":0, "used":false},
        {"PRN":27,"el":13,"az":150,"ss":0, "used":false},
        {"PRN":29,"el":47,"az":228,"ss":0, "used":false},
        {"PRN":5, "el":39,"az":58, "ss":46,"used":true },
        {"PRN":21,"el":41,"az":309,"ss":33,"used":true },
        {"PRN":10,"el":32,"az":61, "ss":40,"used":true },
        {"PRN":8, "el":12,"az":48, "ss":40,"used":true },
        {"PRN":2, "el":9, "az":124,"ss":0, "used":false}
      ]
  }

Protcol 3.4 versions

  {
    "class":"SKY",
    "tag":"0x0120",
    "device":"/dev/cuaU0",
    "xdop":0.58,
    "ydop":0.96,
    "vdop":1.92,
    "tdop":1.14,
    "hdop":1.90,
    "gdop":2.93,
    "pdop":2.70,
    "satellites":[
      {"PRN":17,"el":76,"az":174,"ss":34,"used":true},
      {"PRN":28,"el":57,"az":38,"ss":30,"used":false},
      {"PRN":27,"el":22,"az":314,"ss":18,"used":true},
      {"PRN":7,"el":15,"az":127,"ss":29,"used":true},
      {"PRN":15,"el":31,"az":297,"ss":27,"used":true},
      {"PRN":11,"el":18,"az":54,"ss":28,"used":false},
      {"PRN":24,"el":18,"az":63,"ss":29,"used":false},
      {"PRN":9,"el":4,"az":313,"ss":18,"used":false},
      {"PRN":8,"el":45,"az":117,"ss":33,"used":true},
      {"PRN":26,"el":49,"az":245,"ss":37,"used":true},
      {"PRN":4,"el":5,"az":170,"ss":17,"used":false},
      {"PRN":138,"el":44,"az":157,"ss":40,"used":true}
    ]
  }

METHODS PROPERTIES

Top

class

Returns the object class

string

Returns the JSON string

parent

Return the parent Net::GPSD object

device

tag

time

timestamp

datetime

reported

Count of satellites in view

used

Count of satellites used in calculation

satellites

Returns a list of satellite data structures.

  my $satellites=$sky->satellites(); #[{},...]
  my @satellites=$sky->satellites(); #({},...)

Satellites

Returns a list of Net::GPSD3::Return::Satellite objects.

  my @satellites=$sky->Satellites; #(bless{},...)
  my $satellites=$sky->Satellites; #[bless{},...]

BUGS

Top

Log on RT and Send to gpsd-dev email list

SUPPORT

Top

DavisNetworks.com supports all Perl applications including this package.

Try gpsd-dev email list

AUTHOR

Top

  Michael R. Davis
  CPAN ID: MRDVT
  STOP, LLC
  domain=>michaelrdavis,tld=>com,account=>perl
  http://www.stopllc.com/

COPYRIGHT

Top

SEE ALSO

Top

Net::GPSD3, DateTime, Net::GPSD3::Return::Unknown


Net-GPSD3 documentation Contained in the Net-GPSD3 distribution.
package Net::GPSD3::Return::SKY;
use strict;
use warnings;
use base qw{Net::GPSD3::Return::Unknown::Timestamp};
use DateTime;

our $VERSION='0.12';

sub device {shift->{"device"}};

sub tag {shift->{"tag"}};

sub reported {
  my $self=shift;
  $self->{"reported"}=scalar(@{$self->satellites})
    unless defined $self->{"reported"};
  return $self->{"reported"};
}

sub used {
  my $self=shift;
  $self->{"used"}=scalar(@{[grep {$_->{"used"}} $self->satellites]})
    unless defined $self->{"used"};
  return $self->{"used"};
}

sub satellites {
  my $self=shift;
  unless (ref($self->{"satellites"}) eq "ARRAY") {
    $self->{"satellites"}=[];
  }
  return wantarray ? @{$self->{"satellites"}} : $self->{"satellites"};
}

sub Satellites {
  my $self=shift;
  unless (defined($self->{"Satellites"})) {
    $self->{"Satellites"}=[
      map {$self->parent->constructor(%$_,
                                      class=>"Satellite",
                                      string=>$self->parent->encode($_))} 
        grep {ref($_) eq "HASH"} $self->satellites];
  }
  return wantarray ? @{$self->{"Satellites"}} : $self->{"Satellites"};
}

1;