Fix:Core:Corretly set moved flag
[navit-package] / navit / script / gps_emu2
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 }