/[zanavi_public1]/navit/navit/script/gps_emu2
ZANavi

Contents of /navit/navit/script/gps_emu2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (show annotations) (download)
Fri Oct 28 21:19:04 2011 UTC (12 years, 5 months ago) by zoff99
File size: 1402 byte(s)
import files
1 #! /usr/bin/perl
2
3 open(FILE,"<$ARGV[0]");
4 read(FILE,$header,64);
5
6 ($magic,$version)=unpack("a8l",$header);
7
8 #print "magic=$magic version=$version\n";
9
10 select STDOUT; $| = 1;
11
12 $count=$ARGV[1];
13 while ($count) {
14 read(FILE,$record,64);
15 $count--;
16 }
17
18 while (read(FILE,$record,64))
19 {
20 ($flags,$status,$mode,$hdop,$vdop,$pdop,$sats,$timestampl,$timestamph,$latitude,$longitude,$altitude,$speed,$direction)=unpack("SCCCCCCLLddddd",$record);
21
22
23 if ($mode == 3) {
24 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($timestampl);
25 $datestring=sprintf("%02d.%02d.%d %02d:%02d:%02d",$mday,$mon+1,$year+1900,$hour,$min,$sec);
26 $long_dir="E";
27 $lat_dir="N";
28 if ($longitude < 0) {
29 $long_dir="W";
30 $logitude=-$longitude;
31 }
32 if ($latitude < 0) {
33 $lat_dir="S";
34 $latitude=-$latitude;
35 }
36 $long_deg=int($longitude);
37 $lat_deg=int($latitude);
38 $long_gps=$long_deg*100+($longitude-$long_deg)*60;
39 $lat_gps=$lat_deg*100+($latitude-$lat_deg)*60;
40 $lastpos="$lat_gps $lat_dir $long_gps $long_dir";
41 printf("\$GPGGA,%02d%02d%02d,%s,%s,%s,%s,1,%d,%s,%s,M,,,,0000*0C\n",$hour,$min,$sec,$lat_gps,$lat_dir,$long_gps,$long_dir,$sats,$hdop,$altitude);
42 printf("\$GPVTG,%s,T,,M,,N,%s,K,*6A\n",$direction,$speed*1.852);
43 printf(STDERR "\$GPGGA,%02d%02d%02d,%s,%s,%s,%s,1,%d,%s,%s,M,,,,0000*0C\n",$hour,$min,$sec,$lat_gps,$lat_dir,$long_gps,$long_dir,$sats,$hdop,$altitude);
44 sleep(1);
45 }
46 }

Properties

Name Value
svn:executable *

   
Visit the ZANavi Wiki