paparazzi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paparazzi-commits] [5906] Added : fill in missing seconds of data (TODO


From: Paul Cox
Subject: [paparazzi-commits] [5906] Added : fill in missing seconds of data (TODO: interpolate data)
Date: Mon, 20 Sep 2010 18:16:22 +0000

Revision: 5906
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=5906
Author:   paulcox
Date:     2010-09-20 18:16:21 +0000 (Mon, 20 Sep 2010)
Log Message:
-----------
Added : fill in missing seconds of data (TODO: interpolate data)

Modified Paths:
--------------
    paparazzi3/trunk/sw/in_progress/log_parser/log2nmea.pl
    paparazzi3/trunk/sw/in_progress/log_parser/nmea2kml.sh

Modified: paparazzi3/trunk/sw/in_progress/log_parser/log2nmea.pl
===================================================================
--- paparazzi3/trunk/sw/in_progress/log_parser/log2nmea.pl      2010-09-20 
17:40:51 UTC (rev 5905)
+++ paparazzi3/trunk/sw/in_progress/log_parser/log2nmea.pl      2010-09-20 
18:16:21 UTC (rev 5906)
@@ -2,7 +2,7 @@
 #Author: Paul Cox
 #This script reads a paparazzi log file and extracts the GPS messages
 #It outputs Time/Lat/Long/Alt
-#TODO: waypoints and remove intermediate file creation
+#TODO: waypoints and interpolation when delta is > 2 sec
 #Notes:
 #mode 
 #utm_east ALT_UNIT="m" UNIT="cm"
@@ -52,7 +52,7 @@
     #ensure proper leading zero for single digits
     $utw_m = sprintf("%02d",$utw_m);
     #calculate remaining seconds
-    my $utw_s = 
sprintf("%06.3f",$utw/1000-$utw_m*60-$utw_h*60*60-$utw_d*60*60*24);
+    my $utw_s = 
sprintf("%06.3f",$utw/1000-$utw_m*60-$utw_h*60*60-$utw_d*60*60*24-$_[0]);
     my $time = $utw_h . $utw_m . $utw_s; #Time UTC HHMMSS.mmm  
303318000/60000=5055.3/60=84.255/24=3.510625
     return $time;
 } 
@@ -67,6 +67,11 @@
 #open OUTFILE, ">GPS_data_$date.txt" or die $!;
 open NMEAFILE, ">NMEA_$date.log" or die $!;
 
+my $sacc =0;
+my $pacc =0;
+my $pdop =0;
+my $numSV =0;
+
 while (my $line = <DATAFILE>) {
   chomp($line); 
   my @fields = split(/ /,$line);
@@ -77,10 +82,10 @@
       $solstart = $fields[0];
       printf "GPS SOL start time: $solstart\n";
     }
-    my $pacc = $fields[3];
-    my $sacc = $fields[4];
-    my $pdop = $fields[5];
-    my $numSV = $fields[6];
+    $pacc = $fields[3];
+    $sacc = $fields[4];
+    $pdop = $fields[5];
+    $numSV = $fields[6];
   }
   
   #We are going to look for GPS messages, in mode 3 (3D fix)
@@ -144,16 +149,10 @@
     
     #Begin NMEA output
     #RMC,GGA/GSA/VTG/GSV
-    printf NMEAFILE "\$GPRMC,";
 
-    $time = getnmeatime($utw);
-
-    printf NMEAFILE $time . ",A,";    #Active
-
     $degrees = abs(int($latitude));
     $minutes = (abs($latitude) - $degrees) * 60;
     $nmealat = sprintf("%02d%.4f",$degrees,$minutes). "," ."N";                
               
-    printf NMEAFILE $nmealat . ","; #LAT
 
     $degrees = abs(int($longitude));
     $minutes = (abs($longitude) - $degrees) * 60;
@@ -163,20 +162,24 @@
     } else {
       $nmealon .= ",W" ; #LON
     }
-    printf NMEAFILE $nmealon . ",";
 
-    printf NMEAFILE '%.2f,',$fields[8]*.019438444; #gnd spd in knts from cm/s 
-    printf NMEAFILE '%.2f,',$fields[6]/10; #trk angle in deg from decideg
+    $gprmc = sprintf '%.2f,',$fields[8]*.019438444; #gnd spd in knts from cm/s 
+    $gprmc .= sprintf '%.2f,',$fields[6]/10; #trk angle in deg from decideg
 
     # ($year,$month,$day) = Monday_of_Week($week,"2010"); TODO:use week and 
day to calculate date?
-    printf NMEAFILE "$date,,\n"; #date and mag var 
+    $gprmc .= sprintf "$date,,\n"; #date and mag var 
 
-    
     #$GPRMC,121518.000,A,4452.767,N,00049.573,W,0.45,0.00,150910,,*1F
-    #$GPGGA,121518.000,4452.767,N,00049.573,W,1,00,0.0,0.000,M,0.0,M,,*7D
+       #$GPGGA,121518.000,4452.767,N,00049.573,W,1,00,0.0,0.000,M,0.0,M,,*7D
+    #$GPGGA,121828.500,4452.7696,N,00049.5712,W,1,8,184,52.65,M,52.65,M,,*55
     #$GPVTG,0.000,T,0,M,0.450,N,0.833,K*59
-    printf NMEAFILE 
"\$GPGGA,$time,$nmealat,$nmealon,1,$numSV,$pdop,%.2f,M,%.2f,M,,\n",$fields[7]/100,$fields[7]/100;
-    printf NMEAFILE 
"\$GPVTG,0.000,T,0,M,%.2f,N,%.2f,K\n",$fields[8]*.019438444,$fields[8]*.03598272;
  
+    for (my $i = int($delta-0.25); $i >= 0 ; $i-- ) {
+      $time= getnmeatime($i);
+      #if ($i>0) {printf NMEAFILE "-----\n";}
+      printf NMEAFILE "\$GPRMC,$time,A,$nmealat,$nmealon,". $gprmc;
+      printf NMEAFILE 
"\$GPGGA,$time,$nmealat,$nmealon,1,$numSV,$pdop,%.2f,M,%.2f,M,,\n",$fields[7]/100,$fields[7]/100;
+      printf NMEAFILE 
"\$GPVTG,0.000,T,0,M,%.2f,N,%.2f,K\n",$fields[8]*.019438444,$fields[8]*.03598272;
  
+    } 
   }
   
 }
@@ -189,6 +192,7 @@
 
 close DATAFILE;
 #close OUTFILE;
+close NMEAFILE;
 
 open NMEAFILE, "<NMEA_$date.log" or die $!;
 $time = substr($time,0,6);

Modified: paparazzi3/trunk/sw/in_progress/log_parser/nmea2kml.sh
===================================================================
--- paparazzi3/trunk/sw/in_progress/log_parser/nmea2kml.sh      2010-09-20 
17:40:51 UTC (rev 5905)
+++ paparazzi3/trunk/sw/in_progress/log_parser/nmea2kml.sh      2010-09-20 
18:16:21 UTC (rev 5906)
@@ -13,4 +13,4 @@
 #        labels                (0/1) Display labels on track and routepoints  
(default  
 #        max_position_point    Retain at most this number of position points  
(0  
 
-gpsbabel -i nmea -f "$@" -o kml,deficon=funjet,line_width=1,floating=1 -F 
ppzout.kml
+gpsbabel -i nmea -f "$@" -o 
kml,deficon=funjet,line_width=1,floating=1,labels=0 -F ppzout.kml




reply via email to

[Prev in Thread] Current Thread [Next in Thread]