Increased robustness, with ability to handle multiformat log files
authorjaviplx <javiplx@gmail.com>
Mon, 11 Oct 2010 20:45:48 +0000 (20:45 +0000)
committerjaviplx <javiplx@gmail.com>
Mon, 11 Oct 2010 20:45:48 +0000 (20:45 +0000)
git-svn-id: file:///svnroot/wifihood/trunk@54 c51dfc6a-5949-4919-9c8e-f207a149c383

wifiscanner/logscanner

index d66d989..6e8e107 100755 (executable)
@@ -4,20 +4,40 @@ import wifimap
 
 import sys
 
+verbose = False
+
 def main ( scanner , filename ) :
     scanner.start()
     fd = open( filename )
+    nline = 0
     for line in fd.readlines() :
+        nline += 1
         gps_info = line[:-1].split(None,11)
         tstamp = float(gps_info.pop(0))
         scan_out = gps_info.pop()
+        if len(gps_info) != 10 :
+            if verbose :
+                print "Unparseable scan at line %d" % nline
+            continue
+        if gps_info[0] == "None" :
+            if verbose :
+                print "Broken scan at line %d" % nline
+            continue
+        if gps_info[3] == "nan" :
+            if verbose :
+                print "Broken scan at line %d" % nline
+            continue
         latlon = None
         if gps_info[0] == "FIX" :
                 scanner.ngps += 1
                 latlon = ( float(gps_info[4]) , float(gps_info[5]) , float(gps_info[6]) )
         scanner.nscan +=1
-        scanner.store_logscan( tstamp , scan_out , latlon )
-        print "%d gps\t%d scan\t%d fp\t%d ap\t%d total ap" % ( scanner.ngps , scanner.nscan , scanner.nfp , scanner.newap , scanner.db.nrows() )
+        if scan_out.find(" ") == 17 :
+            scanner.store_legacy( tstamp , scan_out , latlon )
+        else :
+            scanner.store_scan( tstamp , scan_out , latlon )
+        if verbose : 
+            print "%5d gps\t%5d scan\t%6d fp\t%5d ap\t%6d total ap" % ( scanner.ngps , scanner.nscan , scanner.nfp , scanner.newap , scanner.db.nrows() )
     fd.close()
 
 if __name__ == "__main__" :