8 mac TEXT PRIMARY KEY UNIQUE NOT NULL,
10 last_seen TIMESTAMP NOT NULL,
23 def __init__ ( self , dbname=None ) :
24 self.setfilename( dbname )
27 def setfilename ( self , dbname ) :
35 self.db = sqlite3.connect( self.dbname )
37 rc = self.db.execute( "SELECT * FROM sqlite_master" )
38 tables = map( lambda x : "%s-%s" % ( x[0] , x[1] ) , rc.fetchall() )
41 self.db.executescript( create_db )
48 def is_open ( self ) :
53 def __get ( self , query ) :
54 rc = self.db.execute( query )
57 def add ( self , mac , rss , timestamp , gps=None ) :
59 query = "INSERT INTO ap ( mac , rss , last_seen ) VALUES ( '%s' , %d , %f )" % ( mac , rss , timestamp )
60 rc = self.db.execute( query )
64 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 )
65 rc = self.db.execute( query )
68 def update ( self , mac , rss , timestamp , gps=None ) :
70 query = "UPDATE ap set rss=%d , last_seen=%f" % ( rss , timestamp )
73 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 )
74 query += " WHERE mac='%s'" % mac
75 rc = self.db.execute( query )
79 def delete ( self , mac ) :
80 rc = self.db.execute( "DELETE FROM ap WHERE mac='%s'" % mac )
84 def get ( self , mac ) :
85 query = "SELECT rss FROM ap WHERE mac='%s'" % mac
86 return self.__get( query )
89 query = "SELECT COUNT(*) FROM ap"
90 values = self.__get( query )
91 return int( values[0] )