YACWC
This commit is contained in:
81
track.py
Executable file
81
track.py
Executable file
@@ -0,0 +1,81 @@
|
||||
from datetime import datetime, timedelta
|
||||
import redis
|
||||
r = redis.StrictRedis(host='192.168.1.242', port=6379, db=1)
|
||||
class BaseSensorPost(object):
|
||||
def __init__(self, sq, sensor_type, table,**kwargs):
|
||||
self.last_values = [None,None]
|
||||
self.last_measurement = None
|
||||
self.last_insert = datetime.utcnow()
|
||||
self.sq = sq
|
||||
self.heartbeat_interval = 15*60
|
||||
self.sensor = sensor_type
|
||||
self.table = table;
|
||||
self.kwargs = kwargs
|
||||
|
||||
def insert_heartbeat(self, time_init):
|
||||
return True
|
||||
# ins = self.sq['t'][self.table].insert().values(
|
||||
# when_timestamp = time_init, what = self.sensor)
|
||||
# self.sq['s'].execute(ins)
|
||||
|
||||
|
||||
class Temperature(BaseSensorPost):
|
||||
|
||||
def insert_temperature(self, time_init, temperature):
|
||||
if time_init is not None and temperature is not None:
|
||||
self.sq.executemany('INSERT INTO nuggets.temperature (when, temperature, where) values ',[{'when':time_init, 'temperature':temperature, 'where':self.kwargs['where']}])
|
||||
|
||||
# ins = self.sq['t'][self.table].insert().values(temperature = temperature, when_timestamp = time_init, where_id=self.kwargs['where'])
|
||||
# self.sq['s'].execute(ins)
|
||||
|
||||
|
||||
|
||||
def parse(self, time_init,string):
|
||||
string = string.strip(',');
|
||||
string = string.split(':')[1];
|
||||
curr_temp = float(string)
|
||||
self.insert_temperature(time_init, curr_temp)
|
||||
# self.insert_temperature(time_init,string)
|
||||
|
||||
# if (time_init - self.last_insert).seconds > self.heartbeat_interval:
|
||||
# self.insert_heartbeat(time_init)
|
||||
# self.last_insert = time_init
|
||||
|
||||
|
||||
|
||||
|
||||
class Odometer(BaseSensorPost):
|
||||
|
||||
def insert_speeds(self, time_init, transittime = None, heartbeat = False):
|
||||
|
||||
if transittime is None or transittime < 0:
|
||||
isclockwise = 0
|
||||
else:
|
||||
isclockwise = 1
|
||||
if time_init is not None:
|
||||
self.sq.executemany('INSERT INTO nuggets.odometer (when, who, speed, clockwise) values ',[{'when':time_init, 'who':self.kwargs['who'], 'speed':abs(transittime), 'clockwise':isclockwise}])
|
||||
|
||||
# ins = self.sq['t'][self.table].insert().values(
|
||||
# when_timestamp = time_init, speed = abs(transittime), who_id = self.kwargs['who'],
|
||||
# clockwise = isclockwise )
|
||||
# self.sq['s'].execute(ins)
|
||||
|
||||
|
||||
def parse(self, time_init,string):
|
||||
string = string.strip(',');
|
||||
string = string.split(':')[1];
|
||||
string = string.split(',')
|
||||
for speed, offset in zip(string[0::2],string[1::2]):
|
||||
speed = int(speed)
|
||||
if speed != 0:
|
||||
time_actual = time_init + timedelta(milliseconds = int(offset))
|
||||
self.insert_speeds(time_actual, transittime = speed)
|
||||
r.incr('nugget_run_counts')
|
||||
|
||||
if (time_init - self.last_insert).seconds > self.heartbeat_interval:
|
||||
self.insert_heartbeat(time_init )
|
||||
self.last_insert = time_init
|
||||
|
||||
self.last_measurement = time_init
|
||||
|
||||
# %%
|
||||
Reference in New Issue
Block a user