-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
78 lines (71 loc) · 2.67 KB
/
app.py
File metadata and controls
78 lines (71 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
from flask import Flask, jsonify, redirect, render_template, request
from flask_cors import CORS
import json
import random
import numpy as np
def loadCsvSkipCommentAndRows(filename, skipRows):
with open(filename) as f:
lines = (line for line in f if not line.startswith('#'))
return np.loadtxt(lines, delimiter=',', skiprows=skipRows)
app = Flask(__name__)
CORS(app)
@app.route('/', methods =["GET", "POST"])
def process():
if request.method == "POST":
with open('sensor.csv', 'a') as csv_file:
json = request.get_json()
Sweat = json['sweat']
Temperature = json['temperature']
Movement = json['movement']
exercising = False
Overload = False
NormalSweat = 100
Compared = 0
if Movement >= 30:
exercising = True
if exercising == True:
NormalSweat = 300
if sweat <= 100:
Overload = True
Compared = abs((sweat - NormalSweat) * (temperature ** (-.455)))
if Overload == True:
Compared += 50
if Compared <= 8:
print("green")
elif Compared <= 35:
print("yellow")
else:
print("red")
Index = Compared
row = ", ".join([str(Sweat), str(Temperature), str(Movement)]) + '\n'
csv_file.write(row)
return "Success"
else:
g=loadCsvSkipCommentAndRows("sensor.csv", 0)[-10:].swapaxes(0, 1).tolist()
return jsonify(sweat=g[0], temperature=g[1], movement=g[2], hydration=g[3])
@app.route('/hour', methods =["GET"])
def hi():
csv = loadCsvSkipCommentAndRows("sensor.csv", 0)
g=[[np.average(csv[-(i+1)*60:-i*60,j]) for i in range(60)] for j in range(4)]
g[0][0] = np.average(csv[-60:,0])
g[1][0] = np.average(csv[-60:,1])
g[2] = [np.sum(csv[-(i+1)*60:-i*60,2]) for i in range(60)]
g[2][0] = np.sum(csv[-60:,2])
g[3][0] = np.average(csv[-60:,3])
return jsonify(sweat=g[0], temperature=g[1], movement=g[2], hydration=g[3])
@app.route('/onehour', methods =["GET"])
def hi2():
csv = loadCsvSkipCommentAndRows("sensor.csv", 0)
g = [0, 0, 0, 0]
g[0] = np.average(csv[-60:,0])
g[1] = np.average(csv[-60:,1])
g[2] = np.sum(csv[-60:,2])
g[3] = np.average(csv[-60:,3])
return jsonify(sweat=g[0], temperature=g[1], movement=g[2], hydration=g[3])
@app.route('/oneminutehydration', methods=["GET"])
def hi3():
csv = loadCsvSkipCommentAndRows("sensor.csv", 0)
g = np.average(csv[-60:,3])
return jsonify(hydration=g)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=20003)