oxycardio/oxyapp/utils_link.py
2020-12-22 11:10:20 +01:00

152 lines
5.3 KiB
Python

import time
from freesms import FreeClient
from flask import json
from datetime import datetime
from .database import messageSendToID, getDataUser
from .bdd_login import bdd_login
def messageAPI(userID):
result = messageSendToID(userID)
# Ici nous utilisons free donc uniquement le même numéro où l'on peut envoyer le message
# A continuer en fonction du numéro ..
if result:
free = FreeClient(user="48224273", passwd="GzpMGIm0qcHnUj")
resp = free.send_sms("Votre grand-parent a chuté")
# getDataUser est inutilisable car Multithread obligatoire - REGARDER POUR FUSIONNER LES DEUX JSON
def generate_charts(id):
# Fonction SQL qui va être demandé
var = "SELECT users.prenom, users.nom, data.bpm, data.oxy, data.chute FROM data, users WHERE users.ID = '" + \
str(id) + "' AND data.User = '" + str(id) + "' ORDER BY data.ID DESC LIMIT 1"
row = []
# Tentative de connexion à la bdd
cur = bdd_login()
result = cur.execute(var)
# On ferme la connexion avec la bdd
for row in cur:
print(row)
cur.close()
if result:
value_bpm = row[2]
value_oxy = row[3]
value_chute = row[4]
# On transforme les données en json pour les récupérer sur le html
json_data = json.dumps(
{'time': datetime.now().strftime('%H:%M:%S'), 'value_bpm': value_bpm, 'value_oxy': value_oxy})
yield f"data:{json_data}\n\n"
# Message envoyé si
if value_chute == 1:
messageAPI(id)
time.sleep(1)
# getDataUser est inutilisable car Multithread obligatoire
def generate_data_health(id):
# Fonction SQL qui va être demandé
var = "SELECT users.prenom, users.nom, data.bpm, data.oxy, data.chute FROM data, users WHERE users.ID = '" + \
str(id) + "' AND data.User = '" + str(id) + "' ORDER BY data.ID DESC LIMIT 1"
row = []
# Tentative de connexion à la bdd
cur = bdd_login()
result = cur.execute(var)
# On ferme la connexion avec la bdd
for row in cur:
print(row)
cur.close()
if result:
value_bpm = row[2]
value_oxy = row[3]
value_chute = row[4]
if value_bpm < 40 or value_bpm > 100:
if value_oxy < 80:
if value_chute == 0:
state_bpm = 0
state_oxy = 0
state_chute = 0
else:
state_bpm = 0
state_oxy = 0
state_chute = 1
elif 95 <= value_oxy <= 100:
if value_chute == 0:
state_bpm = 0
state_oxy = 1
state_chute = 0
else:
state_bpm = 0
state_oxy = 1
state_chute = 1
elif 80 <= value_oxy < 95:
if value_chute == 0:
state_bpm = 0
state_oxy = 2
state_chute = 0
else:
state_bpm = 0
state_oxy = 2
state_chute = 1
elif 60 <= value_bpm <= 80:
if value_oxy < 80:
if value_chute == 0:
state_bpm = 1
state_oxy = 0
state_chute = 0
else:
state_bpm = 1
state_oxy = 0
state_chute = 1
elif 95 <= value_oxy <= 100:
if value_chute == 0:
state_bpm = 1
state_oxy = 1
state_chute = 0
else:
state_bpm = 1
state_oxy = 1
state_chute = 1
elif 80 <= value_oxy < 95:
if value_chute == 0:
state_bpm = 1
state_oxy = 2
state_chute = 0
else:
state_bpm = 1
state_oxy = 2
state_chute = 1
elif 40 <= value_bpm < 60 or 80 < value_bpm <= 100:
if value_oxy < 80:
if value_chute == 0:
state_bpm = 2
state_oxy = 0
state_chute = 0
else:
state_bpm = 2
state_oxy = 0
state_chute = 1
elif 95 <= value_oxy <= 100:
if value_chute == 0:
state_bpm = 2
state_oxy = 1
state_chute = 0
else:
state_bpm = 2
state_oxy = 1
state_chute = 1
elif 80 <= value_oxy < 95:
if value_chute == 0:
state_bpm = 2
state_oxy = 2
state_chute = 0
else:
state_bpm = 2
state_oxy = 2
state_chute = 1
# On transforme les données en json pour les récupérer sur le html
json_data = json.dumps(
{'time': datetime.now().strftime('%H:%M:%S'), 'bpm': value_bpm, 'oxy': value_oxy, 'chute': value_chute,
'state_bpm': state_bpm, 'state_oxy': state_oxy, 'state_chute': state_chute})
yield f"{json_data}\n\n"
time.sleep(1)