X-Git-Url: http://git.maemo.org/git/?p=wifihood;a=blobdiff_plain;f=wifiscanner%2Fwifimap%2Fscanner.py;h=574a99a22c305b9344d976cbd6c060fdf34a0132;hp=c6488c1cf0940d72117739fb719197758d36ddb7;hb=6651932f3f30e561377b96263fe16b0e65468c40;hpb=e6ca94ea735b8d6733b3faf982985af37554bf7b diff --git a/wifiscanner/wifimap/scanner.py b/wifiscanner/wifimap/scanner.py index c6488c1..574a99a 100644 --- a/wifiscanner/wifimap/scanner.py +++ b/wifiscanner/wifimap/scanner.py @@ -2,11 +2,11 @@ try : import osso except : - import osso_wrapper as osso + import hildongtk.osso as osso import time -import config , db +import db import gps , wifiscan import gobject @@ -15,46 +15,59 @@ import os class Scanner ( gps.GPSObject , wifiscan.WifiScanner ) : - def __init__ ( self , ifname="wlan0" ) : + def __init__ ( self , conf , ifname="wlan0" ) : gps.GPSObject.__init__( self ) wifiscan.WifiScanner.__init__( self , ifname ) - conf = config.Configuration( 'scanner' ) + self.db = db.database( os.path.join( conf.homedir , conf.dbname ) ) self.homedir = conf.homedir - self.db = db.database( os.path.join( self.homedir , conf.dbname ) ) + + self.write = False # Values to be set by wireless scans self.newap = 0 self.newaps = False - self.aps = [] + self.aps = {} + self.oldpos = {} - def start ( self , timeout=5000 ) : + def start ( self , timeout=5000 , writelog=False ) : gps.GPSObject.start( self ) wifiscan.WifiScanner.start( self , timeout ) self.db.open() + self.write = writelog def stop ( self ) : gps.GPSObject.stop( self ) wifiscan.WifiScanner.stop( self ) self.db.close() + self.write = False def scan ( self ) : wifiscan.WifiScanner.scan( self ) newap = 0 self.newaps = False for mac,max_rss in self.scanlist.iteritems() : - stored = self.db.db.execute( "SELECT rss, lat/n, lon/n FROM ap WHERE mac='%s'" % mac ).fetchone() + stored = self.db.db.execute( "SELECT rss, n, lat, lon FROM ap WHERE mac='%s'" % mac ).fetchone() if stored : - self.aps.append( stored[1:] ) + if not self.aps.has_key( mac ) : + self.aps[ mac ] = list(stored[1:]) if stored[0] > max_rss : max_rss = stored[0] self.db.update( mac , max_rss , self.tstamp , self.info[4:] ) else : 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:] ) + if self.aps[mac][0] != 0 : + self.oldpos[mac] = self.aps[mac][1] / self.aps[mac][0] , self.aps[mac][2] / self.aps[mac][0] + self.aps[mac][0] += 1 + self.aps[mac][1] += self.info[4] + self.aps[mac][2] += self.info[5] if newap : self.newap += newap self.newaps = True - self.write_logs() + if self.write : + self.write_logs() def write_logs ( self ) : fd = open( os.path.join( self.homedir , "wiscan_gui.info" ) , 'a' )