add stimulus activation report
This commit is contained in:
parent
6b826d8e0f
commit
f2cad65626
|
@ -26,10 +26,12 @@ class DataPoint(db.Model):
|
|||
|
||||
class StimulusActivation(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
collar_id = db.Column(db.Integer, db.ForeignKey('collar.id'))
|
||||
longitude = db.Column(db.Float(precision=10))
|
||||
latitude = db.Column(db.Float(precision=10))
|
||||
volume_level = db.Column(db.Integer)
|
||||
voltage_level = db.Column(db.Integer)
|
||||
datetime = db.Column(db.DateTime)
|
||||
|
||||
class User(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
|
|
13
fgs/views.py
13
fgs/views.py
|
@ -4,6 +4,7 @@ from .model import *
|
|||
from flask import g, jsonify, request, abort
|
||||
from sqlalchemy import func
|
||||
import geopy.distance
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
@app.route('/')
|
||||
def index():
|
||||
|
@ -49,7 +50,7 @@ def collars_distance():
|
|||
distance_kilometers = 0
|
||||
coords_pairs = list(map(lambda e : (e.longitude, e.latitude), coords))
|
||||
|
||||
coord_last = coords_pairs.pop()
|
||||
coord_last = coords_pairs.pop(0)
|
||||
for coord in coords_pairs:
|
||||
distance_kilometers += geopy.distance.VincentyDistance(coord_last,coord).km
|
||||
coord_last = coord
|
||||
|
@ -79,4 +80,12 @@ def collar_detail(id):
|
|||
collar = Collar.query.filter_by(id=id).first()
|
||||
if collar is None: abort(404)
|
||||
|
||||
return jsonify({'id': collar.id, 'name': collar.name })
|
||||
# get stimulus activation reports from within last 24 hours
|
||||
since = datetime.now() - timedelta(hours=24)
|
||||
stimulus_points = StimulusActivation.query.\
|
||||
filter_by(collar_id=id).\
|
||||
filter(StimulusActivation.datetime < since).\
|
||||
order_by(StimulusActivation.datetime.desc())
|
||||
n_stimulus = stimulus_points.count()
|
||||
|
||||
return jsonify({'id': collar.id, 'name': collar.name, 'stimilus': n_stimulus })
|
||||
|
|
Loading…
Reference in New Issue
Block a user