6 mac TEXT PRIMARY KEY UNIQUE NOT NULL,
8 last_seen TIMESTAMP NOT NULL,
21 def __init__ ( self , dbname ) :
30 self.db = sqlite3.connect( self.dbname )
32 rc = self.db.execute( "SELECT * FROM sqlite_master" )
33 tables = map( lambda x : "%s-%s" % ( x[0] , x[1] ) , rc.fetchall() )
36 self.db.executescript( create_db )
43 def is_open ( self ) :
48 def __get ( self , query ) :
49 rc = self.db.execute( query )
52 def add ( self , mac , rss , timestamp , gps=None ) :
54 query = "INSERT INTO ap ( mac , rss , last_seen ) VALUES ( '%s' , %d , %f )" % ( mac , rss , timestamp )
55 rc = self.db.execute( query )
59 query = "UPDATE ap SET n=1 , lat=%f , lat2=%f , lon=%f , lon2=%f , alt=%f , alt2=%f WHERE mac='%s'" % ( lat , lat*lat , lon , lon*lon , alt , alt*alt , mac )
60 rc = self.db.execute( query )
63 def update ( self , mac , rss , timestamp , gps=None ) :
65 query = "UPDATE ap set rss=%d , last_seen=%f" % ( rss , timestamp )
68 query += " , n=n+1 , lat=lat+%f , lat2=lat2+%f , lon=lon+%f , lon2=lon2+%f , alt=alt+%f , alt2=alt2+%f" % ( lat , lat*lat , lon , lon*lon , alt , alt*alt )
69 query += " WHERE mac='%s'" % mac
70 rc = self.db.execute( query )
74 def delete ( self , mac ) :
75 rc = self.db.execute( "DELETE FROM ap WHERE mac='%s'" % mac )
79 def get ( self , mac ) :
80 query = "SELECT rss FROM ap WHERE mac='%s'" % mac
81 return self.__get( query )
84 query = "SELECT COUNT(*) FROM ap"
85 values = self.__get( query )
86 return int( values[0] )