# Values from the Scanner object
self.newap = 0
self.newaps = False
- self.aps = []
+ self.aps = {}
def start ( self , timeout=5000 ) :
self.scan_timeout = timeout
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 ] = 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:] )
+ self.aps[0] += 1
+ self.aps[1] += self.info[4]
+ self.aps[2] += self.info[5]
if newap :
self.newap += newap
self.newaps = True
if self.newaps :
pointsize += 2
self.map.plot( pixmap , ( float(self.info[4]) , float(self.info[5]) ) , "red" , pointsize )
- while self.aps :
- self.map.plot( pixmap , self.aps.pop() , "green" , 1 )
+ for ap in self.aps.values() :
+ self.map.plot( pixmap , ( ap[1]/ap[0] , ap[2]/ap[0] ) , "green" , 1 )
self.map.get_pixbuf().get_from_drawable( pixmap , pixmap.get_colormap() , 0, 0 , 0 , 0 , self.map.win_x, self.map.win_y )
self.map.show()