3 open(FILE,"<$ARGV[0]");
6 ($magic,$version)=unpack("a8l",$header);
8 #print "magic=$magic version=$version\n";
10 select STDOUT; $| = 1;
14 read(FILE,$record,64);
18 while (read(FILE,$record,64))
20 ($flags,$status,$mode,$hdop,$vdop,$pdop,$sats,$timestampl,$timestamph,$latitude,$longitude,$altitude,$speed,$direction)=unpack("SCCCCCCLLddddd",$record);
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);
30 $logitude=-$longitude;
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);