rc = self.db.execute( query )
return rc.fetchone()
- def add ( self , mac , rss , timestamp , gps=None ) :
+ def __extend_query ( self , gps ) :
+ query = []
+ lat , lon , alt = gps
+ if lat and lon :
+ query.append( "lat=lat+%f , lat2=lat2+%f , lon=lon+%f , lon2=lon2+%f" % ( lat , lat*lat , lon , lon*lon ) )
+ if alt :
+ query.append( "alt=alt+%f , alt2=alt2+%f" % ( alt , alt*alt ) )
+ return " , ".join( query )
+
+ def add ( self , mac , rss , timestamp , gps ) :
query = "INSERT INTO ap ( mac , rss , last_seen ) VALUES ( '%s' , %d , %f )" % ( mac , rss , timestamp )
rc = self.db.execute( query )
if rc.rowcount :
- if gps :
- lat , lon , alt = gps
- 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 )
+ extra = self.__extend_query(gps)
+ if extra :
+ query = "UPDATE ap SET n=1 , %s WHERE mac='%s'" % ( extra , mac )
rc = self.db.execute( query )
self.db.commit()
- def update ( self , mac , rss , timestamp , gps=None ) :
+ def update ( self , mac , rss , timestamp , gps ) :
query = "UPDATE ap set rss=%d , last_seen=%f" % ( rss , timestamp )
- if gps :
- lat , lon , alt = gps
- 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 )
+ extra = self.__extend_query(gps)
+ if extra :
+ query += " , n=n+1 , %s" % extra
query += " WHERE mac='%s'" % mac
rc = self.db.execute( query )
if rc.rowcount :