Implement honouring the logwritting configuration flag
[wifihood] / wifiscanner / wifimap / replay.py
index c581a18..2db65cf 100644 (file)
@@ -34,8 +34,10 @@ class ReplayScanner ( gobject.GObject ) :
 
         # Values from the Scanner object
         self.newap = 0
+        self.newaps = False
+        self.aps = {}
 
-    def start ( self , timeout=5000 ) :
+    def start ( self , timeout=5000 , writelog=False ) :
         self.scan_timeout = timeout
         self.db.open()
         self._fd = open( self._file )
@@ -69,20 +71,32 @@ class ReplayScanner ( gobject.GObject ) :
             self.nfp += 1
             self.scanlist[ self._current[n] ] = int(self._current[n+1])
 
+        newap = 0
+        self.newaps = False
         for mac,max_rss in self.scanlist.iteritems() :
-            stored = self.db.get( mac )
+            stored = self.db.db.execute( "SELECT rss, n, lat, lon FROM ap WHERE mac='%s'" % mac ).fetchone()
             if stored :
+                if not self.aps.has_key( mac ) :
+                    self.aps[ mac ] = stored[1:]
                 if stored[0] > max_rss :
                     max_rss = stored[0]
                 self.db.update( mac , max_rss , self.tstamp , self.info[4:] )
             else :
-                self.newap += 1
+                newap += 1
+                if not self.aps.has_key( mac ) :
+                    self.aps[ mac ] = [ 0 , 0 , 0 ]
                 self.db.add( mac , max_rss , self.tstamp , self.info[4:] )
+            self.aps[0] += 1
+            self.aps[1] += self.info[4]
+            self.aps[2] += self.info[5]
+        if newap :
+            self.newap += newap
+            self.newaps = True
 
         self._current = next
 
     def report ( self ) :
-        return "%d gps\t%d scan\t%d fp\t%d ap\t%d total ap" % ( self.ngps , self.nscan , self.nfp , self.newap , -1 )
+        return "%d gps\t%d scan\t%d fp\t%d ap\t%d total ap" % ( self.ngps , self.nscan , self.nfp , self.newap , self.db.nrows() )
 
 
 gobject.type_register(ReplayScanner)