1 | package GPS; |
1 | package GPS; |
2 | |
2 | |
3 | use 5.007003; |
|
|
4 | use strict; |
3 | use strict; |
5 | use warnings; |
4 | use warnings; |
6 | use POSIX (); |
5 | use POSIX (); |
7 | use Coro::Socket; |
6 | use Coro::Socket; |
8 | |
7 | |
… | |
… | |
31 | |
30 | |
32 | print {$self->{fh}} "dpva\n"; |
31 | print {$self->{fh}} "dpva\n"; |
33 | |
32 | |
34 | if ($self->{fh}->readline =~ m%GPSD,D=(\d\d)/(\d\d)/(\d\d\d\d) (\d\d):(\d\d):(\d\d),P=([\-0-9.]+) ([\-0-9.]+),V=([0-9.]+),A=([\-0-9.]+)%) { |
33 | if ($self->{fh}->readline =~ m%GPSD,D=(\d\d)/(\d\d)/(\d\d\d\d) (\d\d):(\d\d):(\d\d),P=([\-0-9.]+) ([\-0-9.]+),V=([0-9.]+),A=([\-0-9.]+)%) { |
35 | local $ENV{TZ} = "+0000"; |
34 | local $ENV{TZ} = "+0000"; |
36 | warn "$6,$5,$4,$1,$2,$3,0,0\n"; |
|
|
37 | $self->{data} = { |
35 | $self->{data} = { |
38 | time => (POSIX::mktime $6,$5,$4,$2,$1-1,$3-1900,0,0), |
36 | time => (POSIX::mktime $6,$5,$4,$2,$1-1,$3-1900,0,0), |
39 | lat => $7, |
37 | lat => $7, |
40 | long => $8, |
38 | long => $8, |
41 | v => $9, |
39 | v => $9, |