Skip to content
Snippets Groups Projects
Commit 0e2f0dcd authored by Tamas Gal's avatar Tamas Gal :speech_balloon:
Browse files

First Flask prototype

parent 60d41753
No related branches found
No related tags found
No related merge requests found
Showing with 513 additions and 1 deletion
......@@ -30,7 +30,7 @@ start:
@echo Starting the web server on 0.0.0.0:${WEBSERVER_PORT}
@#
@tmux send-keys -t ${SESSION_NAME}:main.3 \
"cd www && python3 -m http.server ${WEBSERVER_PORT}" Enter
"FLASK_APP=km3mon.py flask run --host=0.0.0.0 --port=${WEBSERVER_PORT}" Enter
@tmux select-layout even-vertical
@echo Starting the monitoring scripts
......
from flask import Flask
from flask_bootstrap import Bootstrap
app = Flask(__name__)
from app import routes
bootstrap = Bootstrap(app)
from os.path import join
from flask import render_template, send_from_directory
from app import app
app.config['PLOTS_PATH'] = "plots"
@app.route('/')
def index():
return render_template('index.html')
@app.route('/plots/<path:filename>')
def custom_static(filename):
return send_from_directory(join(app.root_path, "../plots"), filename)
This diff is collapsed.
/* Move down content because we have a fixed navbar that is 50px tall */
body {
padding-top: 50px;
padding-bottom: 20px;
}
img.plot {
width: 100%;
}
.plot-container {
text-align: center;
}
.ruler {
background-color: steelblue;
position: absolute;
}
#horizontal{
margin-top: 50px;
width:98%;
height:4px;
opacity: 0.5;
display: none;
}
#vertical{
width:1px;
height:100%;
display: none;
}
File added
This diff is collapsed.
File added
File added
File added
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>KM3Mon Detector Monitor</title>
<link href="static/css/bootstrap.min.css" rel="stylesheet">
<link href="static/css/main.css" rel="stylesheet">
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">KM3Mon</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="index.html">Overview</a></li>
</ul>
<ul class="nav navbar-nav">
<li class="active"><a href="intradom.html">Intra DOM Calibration</a></li>
</ul>
<ul class="nav navbar-nav">
<li class="active"><a href="k40rate_dist.html">K40 Rate Dist</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<h4 style="padding-top: 4px; padding-right: 10px; text-align: center">
<span id="divUTC" class="label label-info"></span>
</h4>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container-fluid" id="plots">
<div class="row">
<div class="col-md-6 plot-container">
<img id="dom_activity" class="plot img-responsive" src="plots/dom_activity.png" />
</div>
<div class="col-md-6 plot-container">
<img id="dom_rates" class="plot img-responsive" src="plots/dom_rates.png" />
</div>
</div>
<div class="row">
<div class="col-md-6 plot-container">
<img id="pmtrates" class="plot img-responsive" src="plots/pmtrates.png" />
</div>
<div class="col-md-6 plot-container">
<img id="hrv" class="plot img-responsive" src="plots/hrv.png" />
</div>
</div>
<div class="row">
<div class="col-md-12 col-sm-12 plot-container">
<img id="trigger_rates" class="plot img-responsive" src="plots/trigger_rates.png" />
</div>
</div>
<div class="row">
<div class="col-md-12 col-sm-12 plot-container">
<img id="trigger_rates_test" class="plot img-responsive" src="plots/trigger_rates_test.png" />
</div>
</div>
<div class="row">
<div class="col-md-6 plot-container">
<!-- <img id="dom_pings" class="plot img-responsive" src="plots/dom_pings.png" /> //-->
<!-- <img id="k40" class="plot img-responsive" src="plots/k40.png" /> //-->
<img id="single_rates" class="plot img-responsive" src="plots/single_rates.png" />
</div>
<div class="col-md-6 plot-container">
<img id="ztplot" class="plot img-responsive" src="plots/ztplot.png" />
</div>
</div>
<div class="row">
<div class="col-md-6 plot-container">
<img id="hits_on_doms" class="plot img-responsive" src="plots/hits_on_doms.png" style="alpha: 0.2" />
</div>
<div class="col-md-6 plot-container">
<img id="triggered_hits_on_doms" class="plot img-responsive" src="plots/triggered_hits_on_doms.png" style="alpha: 0.2" />
</div>
</div>
<div class="row">
<div class="col-md-12 plot-container">
<img id="yaw" class="plot img-responsive" src="plots/yaw_calib.png" />
</div>
</div>
<div class="row">
<div class="col-md-12 plot-container">
<img id="pitch" class="plot img-responsive" src="plots/pitch_calib.png" />
</div>
</div>
<div class="row">
<div class="col-md-12 plot-container">
<img id="roll" class="plot img-responsive" src="plots/roll_calib.png" />
</div>
</div>
<div id="horizontal" class="ruler"></div>
<div id="vertical" class="ruler"></div>
</div><!-- /.container -->
<script src="static/js/jquery-3.3.1.slim.min.js"></script>
<script src="static/js/bootstrap.min.js"></script>
<script type = "text/javascript">
$(document).ready(function(){
setInterval(function(){
//$("#dom_pings").attr("src", "plots/dom_pings.png?"+new Date().getTime());
$("#dom_activity").attr("src", "plots/dom_activity.png?"+new Date().getTime());
$("#dom_rates").attr("src", "plots/dom_rates.png?"+new Date().getTime());
$("#pmtrates").attr("src", "plots/pmtrates.png?"+new Date().getTime());
$("#hrv").attr("src", "plots/hrv.png?"+new Date().getTime());
$("#yaw").attr("src", "plots/yaw_calib.png?"+new Date().getTime());
$("#pitch").attr("src", "plots/pitch_calib.png?"+new Date().getTime());
$("#roll").attr("src", "plots/roll_calib.png?"+new Date().getTime());
//$("#dom_pings").attr("src", "plots/dom_pings.png?"+new Date().getTime());
$("#k40").attr("src", "plots/k40.png?"+new Date().getTime());
$("#trigger_rates").attr("src", "plots/trigger_rates.png?"+new Date().getTime());
$("#trigger_rates_test").attr("src", "plots/trigger_rates_test.png?"+new Date().getTime());
$("#hits_on_doms").attr("src", "plots/hits_on_doms.png?"+new Date().getTime());
$("#triggered_hits_on_doms").attr("src", "plots/triggered_hits_on_doms.png?"+new Date().getTime());
$("#ztplot").attr("src", "plots/ztplot.png?"+new Date().getTime());
$("#single_rates").attr("src", "plots/single_rates.png?"+new Date().getTime());
}, 45000);
//$('#plots').on('mousemove', null, [$('#horizontal'), $('#vertical')],function(e){
// e.data[1].css('left', e.offsetX==undefined?e.originalEvent.layerX:e.offsetX);
// e.data[0].css('top', e.offsetY==undefined?e.originalEvent.layerY:e.offsetY);
//});
$(function(){
setInterval(function(){
var divUtc = $('#divUTC');
var d1 = new Date();
var utc_string = d1.toUTCString().replace("GMT", "UTC");
divUtc.text(utc_string);
},1000);
});
});
</script>
</body>
</html>
from app import app
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment