class Scanner ( gps.GPSObject ) :
- def __init__ ( self , widget=None , ifname="wlan0" ) :
+ def __init__ ( self , ifname="wlan0" ) :
gps.GPSObject.__init__( self )
- self.osso_context = None
- if widget :
- self.osso_context = osso.Context("wifi_scanner", "2.0", False)
- osso_rpc = osso.Rpc(self.osso_context)
- osso_rpc.rpc_run("org.javiplx.wifiscan", "/org/javiplx/wifiscan", "org.javiplx.wifiscan", "wakeup", wait_reply = True)
- self._timer = None
+ self.osso_context = osso.Context("wifi_scanner", "2.0", False)
+ osso_rpc = osso.Rpc(self.osso_context)
+ osso_rpc.rpc_run("org.javiplx.wifiscan", "/org/javiplx/wifiscan", "org.javiplx.wifiscan", "wakeup", wait_reply = True)
+ self.db = db.database( os.path.join( conf.homedir , conf.dbname ) )
+
+ # Values to be set by wireless scans
self.nscan = 0
self.nfp = 0
- self.scanlist = None
self.newap = 0
- self.db = db.database( os.path.join( conf.homedir , conf.dbname ) )
+ self.scanlist = []
def start ( self ) :
- if self.osso_context :
- osso_rpc = osso.Rpc(self.osso_context)
- scan_out = osso_rpc.rpc_run("org.javiplx.wifiscan", "/org/javiplx/wifiscan", "org.javiplx.wifiscan", "start")
+ osso_rpc = osso.Rpc(self.osso_context)
+ 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")
+ osso_rpc.rpc_run("org.javiplx.wifiscan", "/org/javiplx/wifiscan", "org.javiplx.wifiscan", "stop")
self.db.close()
def scan ( self ) :
except Exception , ex :
osso.SystemNote(self.osso_context).system_note_infoprint("Exception scanning %s" % ex )
return True
- if self.scanlist :
- start, end = self.scanlist.get_bounds()
- self.scanlist.delete( start , end )
+ del self.scanlist[:]
tstamp = time.time()
latlon = None
if self.gps_state == "FIX" :
latlon = ( self.device.fix[4] , self.device.fix[5] , self.device.fix[7] )
self.store_scan( tstamp , scan_out , latlon )
- self.refresh_infowin()
if self._debug :
osso.SystemNote(self.osso_context).system_note_infoprint("Found %d APs" % len(scan_out) )
else :
for net in scan_out.split() :
self.nfp += 1
items = net.rsplit(":", 1)
- if self.scanlist :
- self.scanlist.insert_at_cursor( "%s %5d\n" % ( items[0] , int(items[1]) ) )
+ self.scanlist.append( "%s %5d\n" % ( items[0] , int(items[1]) ) )
stored = self.db.get( items[0] )
if stored :
max_rss = int(items[1])
while nets :
self.nfp += 1
items = ( nets.pop(0) , nets.pop(0) )
- if self.scanlist :
- self.scanlist.insert_at_cursor( "%s %5d\n" % ( items[0] , int(items[1]) ) )
+ self.scanlist.append( "%s %5d\n" % ( items[0] , int(items[1]) ) )
stored = self.db.get( items[0] )
if stored :
max_rss = int(items[1])
celllist.write ( "%s\n" % ( self.cell_info ,) )
celllist.close()
- def set_infowin ( self , listwin ) :
- self.scanlist = listwin
-
def report ( self ) :
return "%s\t%d scan\t%d fp\t%d ap\t%d total ap" % ( gps.GPSObject.report(self) , self.nscan , self.nfp , self.newap , self.db.nrows() )