Skip to content
Snippets Groups Projects
Commit 134c9069 authored by Adam Abed Abud's avatar Adam Abed Abud
Browse files

Adding alarms to backend and monitoring

parent 908035fd
Branches
No related merge requests found
......@@ -8,4 +8,4 @@ List of missing features and/or improvements
-- UI: sideabar reduce and show only icons; test on 16 inch display; insert alarms (flashing lights and text)
-- Check if alarms are just one string in the list or multiple entries in a list
......@@ -25,7 +25,7 @@ def hello_worlds():
@WEBAPP.route('/live-data', methods=['GET'])
def live_data():
"""
Query the sqlite3 table
Query the sqlite3 table for variables
Output in json format
"""
......@@ -66,6 +66,30 @@ def live_data():
#return Response(json.dumps(data), mimetype='application/json')
return response
@WEBAPP.route('/live-alarms', methods=['GET'])
def live_alarms():
"""
Query the sqlite3 table for alarms
Output in json format
"""
data = {'alarms' : None}
sqlite_file = 'database/HEC_monitoringDB.sqlite'
with sqlite3.connect(sqlite_file) as conn:
cursor = conn.cursor()
cursor.execute("SELECT alarms "
"FROM hec_monitor ORDER BY ROWID DESC LIMIT 1")
fetched = cursor.fetchone()
data['alarms'] = fetched[0]
response = make_response(json.dumps(data).encode('utf-8') )
response.content_type = 'application/json'
return response
if __name__ == '__main__':
WEBAPP.run(debug=True, host='127.0.0.1', port=5000)
......
......@@ -43,6 +43,7 @@ def database_setup():
conn = sqlite3.connect(SQLITE_FILE)
conn.execute('''CREATE TABLE IF NOT EXISTS ''' + TABLE_NAME + ''' (
created_at INTEGER NOT NULL,
alarms STRING NOT NULL,
temperature FLOAT NOT NULL,
pressure FLOAT NOT NULL,
variable3 FLOAT NOT NULL,
......@@ -65,6 +66,7 @@ def monitoring(source_address):
# Instantiating the client
hevclient = HEVClient()
hevclient.set_thresholds([12.3, 45.6, 78.9])
epoch = datetime(1970, 1, 1)
......@@ -78,9 +80,11 @@ def monitoring(source_address):
if hevclient.get_values() != []:
data_receiver = hevclient.get_values()
data_alarms = hevclient.get_alarms()
random_data = {
'time' : timestamp,
'alarms' : data_alarms[0],
'temperature': data_receiver[0],
'pressure': data_receiver[1],
'variable3': data_receiver[2],
......@@ -93,9 +97,7 @@ def monitoring(source_address):
try:
cursor.execute(
'INSERT INTO {tn} VALUES '
'(:time, :temperature, :pressure, :variable3, :variable4, :variable5, :variable6)'
.format(tn=TABLE_NAME),
random_data
'(:time, :alarms, :temperature, :pressure, :variable3, :variable4, :variable5, :variable6)'.format(tn=TABLE_NAME), random_data
)
conn.commit()
except sqlite3.Error as err:
......
......@@ -14,6 +14,7 @@
<body class="sb-nav-fixed">
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
<a class="navbar-brand" href=""> <img src="{{ url_for('static', filename='img/cern-hev-logo.png') }}" id="logo">
<a class="navbar-nav ml-auto mr-0 mr-md-3 my-2 my-md-0" style="color:#FF0000" id='alarms'> Alarms </a>
</a><!--<button class="btn btn-link btn-sm order-1 order-lg-0" id="sidebarToggle" href="#"><i class="fas fa-bars"></i></button> !-->
<!--
......@@ -239,6 +240,17 @@ setInterval('update_variables()', 2000);
</script>
<script type=text/javascript>
function update_alarms() {
$.getJSON("live-alarms",
function (data) {
document.getElementById("alarms").innerHTML = data.alarms;
}
);
}
setInterval('update_alarms()', 1000);
</script>
</body>
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment