From: javiplx Date: Sat, 9 Oct 2010 00:04:17 +0000 (+0000) Subject: First implementation of database storage X-Git-Url: http://vcs.maemo.org/git/?a=commitdiff_plain;h=edb34400d7c7861abec0f8ddba5c6a42e3b4b49b;p=wifihood First implementation of database storage git-svn-id: file:///svnroot/wifihood/trunk/wifiscanner@32 c51dfc6a-5949-4919-9c8e-f207a149c383 --- diff --git a/wifimap/__init__.py b/wifimap/__init__.py index 477296b..aa7a6b8 100644 --- a/wifimap/__init__.py +++ b/wifimap/__init__.py @@ -3,3 +3,5 @@ from gps import * from wifiscan import * +from db import * + diff --git a/wifimap/wifiscan.py b/wifimap/wifiscan.py index e5295fc..f6e8ff6 100644 --- a/wifimap/wifiscan.py +++ b/wifimap/wifiscan.py @@ -3,7 +3,7 @@ import osso import time -import gps +import gps , db import gobject @@ -22,16 +22,20 @@ class Scanner ( gps.GPSObject ) : self.nfp = 0 self.scanlist = None self.aplist = {} + self.db = db.database( os.path.join( home_dir , "wifiscanner.db" ) ) def start ( self ) : osso_rpc = osso.Rpc(self.osso_context) scan_out = osso_rpc.rpc_run("org.javiplx.wifiscan", "/org/javiplx/wifiscan", "org.javiplx.wifiscan", "start") + self.db.open() def stop ( self ) : osso_rpc = osso.Rpc(self.osso_context) scan_out = osso_rpc.rpc_run("org.javiplx.wifiscan", "/org/javiplx/wifiscan", "org.javiplx.wifiscan", "stop") + self.db.close() def scan ( self ) : + timestamp = time.time() osso_rpc = osso.Rpc(self.osso_context) try : scan_out = osso_rpc.rpc_run("org.javiplx.wifiscan", "/org/javiplx/wifiscan", "org.javiplx.wifiscan", "scan", wait_reply = True) @@ -49,6 +53,14 @@ class Scanner ( gps.GPSObject ) : out_str += " %s %s" % ( items[0] , items[1] ) if self.scanlist : self.scanlist.insert_at_cursor( "%s %5d\n" % ( items[0] , int(items[1]) ) ) + stored = self.db.get( items[0] ) + if stored : + max_rss = int(items[1]) + if stored[0] > max_rss : + max_rss = stored[0] + self.db.update( items[0] , max_rss , timestamp ) + else : + self.db.add( items[0] , int(items[1]) , timestamp ) self.aplist[ items[0] ] = 1 self.refresh_infowin() if self._debug : @@ -57,7 +69,7 @@ class Scanner ( gps.GPSObject ) : # hildon.hildon_banner_show_information( self._parent , "icon_path" , "Found %d APs" % len(scan_out) ) else : fd = open( os.path.join( home_dir , "wiscan_gui.info" ) , 'a' ) - fd.write( "%s %s%s\n" % ( time.time() , self.gps_info , out_str ) ) + fd.write( "%s %s%s\n" % ( timestamp , self.gps_info , out_str ) ) fd.close() if self.satellites : loclist = open( os.path.join( home_dir , "location.info" ) , 'a' ) @@ -76,7 +88,7 @@ class Scanner ( gps.GPSObject ) : def refresh_infowin ( self ) : if self.status : - self.status.set_text( "%d gps\t%d scan\t%d fp\t%d ap" % ( self.ngps , self.nscan , self.nfp , len(self.aplist.keys()) ) ) + self.status.set_text( "%d gps\t%d scan\t%d fp\t%d ap\t%d total ap" % ( self.ngps , self.nscan , self.nfp , len(self.aplist.keys()) , self.db.nrows() ) ) gobject.type_register(Scanner)