Compare commits

..

7 Commits

Author SHA1 Message Date
d9ae5f8c2b fix deploy 2025-04-12 22:00:12 +02:00
116458feda Merge branch 'main' of https://nas.vincent-bouquet.fr/gitea/Vincent/reap-simulator-vincent 2025-04-12 21:51:38 +02:00
238dec4050 move to src for deploy 2025-04-12 21:50:58 +02:00
Kwimbee
0b8f06099a fix DMX sniff on T1 2025-01-23 17:11:48 +01:00
Kwimbee
ea5680b473 indent fix + typo + dmx sniff fix 2025-01-23 13:26:14 +01:00
Vincent BOUQUET
c7fbc0f50c fix pressure test failing
pressure should not be raising if test fails
2023-12-16 15:48:40 +01:00
Kwimbee
4f427eda4e no return 2023-12-14 11:19:24 +01:00
25 changed files with 198 additions and 143 deletions

18
deploy.ps1 Normal file
View File

@@ -0,0 +1,18 @@
# Define variables
$localFolder = "./src/."
$remoteUser = "debian"
$remoteHost = "robe.vincent-bouquet.fr"
$remotePath = "/var/www/html/public/reap"
$port = 22 # Change this if your SSH server uses a different port
# Build the SCP commands
$sshCommand = "ssh -p ${port} ${remoteUser}@${remoteHost} 'mkdir -p `"${remotePath}`" && sudo rm -rf `"${remotePath}/*`"'"
$scpCommand = "scp -r -P ${port} `"${localFolder}`" ${remoteUser}@${remoteHost}:`"${remotePath}`""
# Execute SSH command to clean remote directory
Write-Host "Cleaning remote directory: $remotePath"
Invoke-Expression $sshCommand
# Execute the command
Write-Host "Executing: $scpCommand"
Invoke-Expression $scpCommand

View File

Before

Width:  |  Height:  |  Size: 314 B

After

Width:  |  Height:  |  Size: 314 B

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -1,11 +1,13 @@
// GLOBAL VARIABLES
var is_pressure_test_ongoing = false; var is_pressure_test_ongoing = false;
var rains_value = 0; var rains_value = 0;
var rains_loop_timing = 2000;
$(document).ready(function () { $(document).ready(function () {
initSessionStorage(); initSessionStorage();
populateUIFromSessionStorage(); populateUIFromSessionStorage();
loopRainsSimulator(); loop_rains_simulator();
// Sets the proper fixture name in the header and title // Sets the proper fixture name in the header and title
var fixturename = "Robin iForte - Simulated"; var fixturename = "Robin iForte - Simulated";
@@ -79,7 +81,7 @@ function toggleStandbyMode() {
populateUIFromSessionStorage(); populateUIFromSessionStorage();
} }
function loopRainsSimulator() { function loop_rains_simulator() {
var rains_tube_age = sessionStorage.getItem("iforte_demo_rains_age"); var rains_tube_age = sessionStorage.getItem("iforte_demo_rains_age");
var rains_lowest = sessionStorage.getItem("iforte_demo_rains_lowest"); var rains_lowest = sessionStorage.getItem("iforte_demo_rains_lowest");
@@ -102,11 +104,9 @@ function loopRainsSimulator() {
$("#iforte_rains_bar_max").width(rains_value + "%"); $("#iforte_rains_bar_max").width(rains_value + "%");
} }
setTimeout(() => { setTimeout(() => {
loopRainsSimulator(); loop_rains_simulator();
}, 1000); }, rains_loop_timing);
} }
function pressureTest() { function pressureTest() {
@@ -131,14 +131,14 @@ function pressureTest() {
} }
function pressure_test_loop(time, temp, pressure) { function pressure_test_loop(time, temp, pressure) {
var is_test_failing = sessionStorage.getItem("iforte_demo_pressure_test");
if (is_pressure_test_ongoing) { if (is_pressure_test_ongoing) {
if (time == 0) { if (time == 0) {
is_pressure_test_ongoing = false; is_pressure_test_ongoing = false;
$("#pt-l1").html(""); $("#pt-l1").html("");
$("#pt-l3").html(""); $("#pt-l3").html("");
var is_test_failing = sessionStorage.getItem("iforte_demo_pressure_test");
if (is_test_failing == 1) { if (is_test_failing == 1) {
$('#pt-l2').html('FAIL') $('#pt-l2').html('FAIL')
$('#pt-l2').addClass('ptf') $('#pt-l2').addClass('ptf')
@@ -161,7 +161,12 @@ function pressure_test_loop(time, temp, pressure) {
"Remaining Time " + "Remaining Time " +
new Date(time * 1000).toISOString().substring(14, 19) new Date(time * 1000).toISOString().substring(14, 19)
); );
$("#pt-l3").html(temp + " °C / delta " + pressure.toFixed(2) + " hPa");
if (is_test_failing == 1) {
$("#pt-l3").html(temp + " °C / delta 0.00 hPa");
} else {
$("#pt-l3").html(temp + " °C / delta " + pressure.toFixed(2) + " hPa");
}
setTimeout(() => { setTimeout(() => {
temp = temp + 1; temp = temp + 1;

View File

@@ -26,7 +26,7 @@
</div> </div>
</div> </div>
</nav> </nav>
<div class="fixed-top text-center device-label" id="pth" onclick="window.location = ('../index.html')"></div> <div class="fixed-top text-center device-label" id="pth" ></div>
<div class="container-fluid in"> <div class="container-fluid in">
<h1>Discovery</h1> <h1>Discovery</h1>
<div class="row" id="boxes"> <div class="row" id="boxes">
@@ -34,7 +34,7 @@
<div class="clearfix"> <div class="clearfix">
<div class="float-left pt02"> <div class="float-left pt02">
<input type="checkbox" id="w-ot"> <input type="checkbox" id="w-ot">
<label for="w-ot" class="pl04"> Move devices with warning to top</label> <label for="w-ot" class="pl04">Move devices with warning to top</label>
</div> </div>
<button class="btn btn-primary float-right" id="scan">Discover (1)</button> <button class="btn btn-primary float-right" id="scan">Discover (1)</button>
</div> </div>

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -55,7 +55,7 @@
<div <div
class="fixed-top text-center device-label" class="fixed-top text-center device-label"
id="pth" id="pth"
onclick="window.location = ('../index.html')"
></div> ></div>
<div class="container-fluid in"> <div class="container-fluid in">

View File

@@ -1,39 +1,39 @@
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"> <meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
<link rel="stylesheet" href="../files/bootstrap.min.css"> <link rel="stylesheet" href="../files/bootstrap.min.css">
<link rel="stylesheet" href="../files/layout.css"> <link rel="stylesheet" href="../files/layout.css">
<script src="../files/jquery-3.3.1.min.js"></script> <script src="../files/jquery-3.3.1.min.js"></script>
<script src="../files/popper.min.js"></script> <script src="../files/popper.min.js"></script>
<script src="../files/bootstrap.min.js"></script> <script src="../files/bootstrap.min.js"></script>
<script src="./base.js"></script> <script src="./base.js"></script>
</head> </head>
<body> <body>
<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark"> <nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">
<div class="container"> <div class="container">
<a class="navbar-brand" href="./index.html"><img src="../files/robe_logo_white.svg"></a><button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"><span class="navbar-toggler-icon"></span></button> <a class="navbar-brand" href="./index.html"><img src="../files/robe_logo_white.svg"></a><button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse" id="navbar"> <div class="collapse navbar-collapse" id="navbar">
<ul class="navbar-nav mr-auto"> <ul class="navbar-nav mr-auto">
<li class="nav-item"><a class="nav-link" href="./index.html">Status</a></li> <li class="nav-item"><a class="nav-link" href="./index.html">Status</a></li>
<li class="nav-item"><a class="nav-link" href="./personality.html">Personality</a></li> <li class="nav-item"><a class="nav-link" href="./personality.html">Personality</a></li>
<li class="nav-item active"><a class="nav-link" href="./logs.html">Logs</a></li> <li class="nav-item active"><a class="nav-link" href="./logs.html">Logs</a></li>
<li class="nav-item"><a class="nav-link" href="./sensors.html">RAINS logs</a></li> <li class="nav-item"><a class="nav-link" href="./sensors.html">RAINS logs</a></li>
<li class="nav-item"><a class="nav-link" href="./discovery.html">Discovery</a></li> <li class="nav-item"><a class="nav-link" href="./discovery.html">Discovery</a></li>
<li class="nav-item"><a class="nav-link" id="scfg">Settings</a></li> <li class="nav-item"><a class="nav-link" id="scfg">Settings</a></li>
<li class="nav-item"><a class="nav-link" id="idnt"><img class="rdmi" src="../files/identify.svg"></a></li> <li class="nav-item"><a class="nav-link" id="idnt"><img class="rdmi" src="../files/identify.svg"></a></li>
</ul> </ul>
</div>
</div> </div>
</nav> </div>
<div class="fixed-top text-center device-label" id="pth" onclick="window.location = ('../index.html')"></div> </nav>
<div class="container-fluid in"> <div class="fixed-top text-center device-label" id="pth" ></div>
<h1>Device logs</h1> <div class="container-fluid in">
<div class="row" id="boxes"> <h1>Device logs</h1>
<div class="col-12 box-c"> <div class="row" id="boxes">
<h2 id="sta_err"><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse" <div class="col-12 box-c">
data-target="#lfb"><i class="blue"></i></button> Logs filter<a class="cfg" <h2 id="sta_err"><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
onclick="cfgm();"><img src="../files/settings.svg"></a></h2> data-target="#lfb"><i class="blue"></i></button> Logs filter<a class="cfg"
onclick="cfgm();"><img src="../files/settings.svg"></a></h2>
<div class="box collapse clearfix" id="lfb"> <div class="box collapse clearfix" id="lfb">
<small>Logs filters not functionnal on this simulator.</small> <small>Logs filters not functionnal on this simulator.</small>
<br> <br>
@@ -362,7 +362,7 @@
<li class="">37°C</li> <li class="">37°C</li>
<li class="dn">-32°C</li> <li class="dn">-32°C</li>
</ul> </ul>
<h3>Display orientation</h3>Side Botom <h3>Display orientation</h3>Side Bottom
</div> </div>
</div> </div>
</div> </div>
@@ -386,7 +386,7 @@
<li class="">34°C</li> <li class="">34°C</li>
<li class="">33°C</li> <li class="">33°C</li>
</ul> </ul>
<h3>Display orientation</h3>Side Botom <h3>Display orientation</h3>Side Bottom
</div> </div>
</div> </div>
</div> </div>
@@ -407,7 +407,7 @@
<li class="">21°C</li> <li class="">21°C</li>
<li class="dn">-32°C</li> <li class="dn">-32°C</li>
</ul> </ul>
<h3>Display orientation</h3>Side Botom <h3>Display orientation</h3>Side Bottom
</div> </div>
</div> </div>
</div> </div>
@@ -459,83 +459,99 @@
</div> </div>
</div> </div>
<script> <script>
var is_sniffing = false;
// CREATES MODAL FOR LOG TOOLS // CREATES MODAL FOR LOG TOOLS
function cfgm() { function cfgm() {
$('#m-t').html('Logs tools'); $('#m-t').html('Logs tools');
$('#m-f').empty(); $('#m-f').empty();
$('.sb').unbind(); $('.sb').unbind();
var tl = c_btn('Download log file', 0, ' dlog'); var tl = c_btn('Download log file', 0, ' dlog');
tl += c_btn('Start DMX sniff', 0, ' ddmx'); if (!is_sniffing) {
$('#m-b').html(tl); tl += c_btn('Start DMX sniff', 0, ' ddmx');
$('#cfg-modal').modal(); } else {
$('.dlog').bind('click', function () { tl += c_btn('Stop DMX sniff', 0, ' ddmx');
close_modal() }
}); $('#m-b').html(tl);
$('.ddmx').bind('click', function () { $('#cfg-modal').modal();
close_modal() $('.dlog').bind('click', function () {
}) // download logs
close_modal()
});
$('.ddmx').bind('click', function () {
// start sniff
if (is_sniffing) {
$('.ddmx').html('Start DMX sniff');
is_sniffing = false;
} else {
$('.ddmx').html('Stop DMX sniff');
is_sniffing = true;
} }
close_modal()
function lfix(l) { })
return l.charAt(0).toUpperCase() + l.slice(1).toLowerCase().replace('ems', 'EMS') }
}
function lfix(l) {
function c_chb(id, t, v, ch) { return l.charAt(0).toUpperCase() + l.slice(1).toLowerCase().replace('ems', 'EMS')
var html = }
'<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input" id="' + id +
'" value="' + v + '"' + ch + '>'; function c_chb(id, t, v, ch) {
html += '<label class="form-check-label" for="' + id + '">' + t + '</label></div>'; var html =
return html '<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input" id="' + id +
} '" value="' + v + '"' + ch + '>';
html += '<label class="form-check-label" for="' + id + '">' + t + '</label></div>';
function c_tit(id, t, e, c, p) { return html
var html = }
'<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse" data-target="#' + id +
'"><i></i></button>'; function c_tit(id, t, e, c, p) {
html += ' ' + t; var html =
if (p) html += '<div class="fall"><input type="checkbox" id="' + id + '_p"> all must pass</div>'; '<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse" data-target="#' + id +
html += '</h3>'; '"><i></i></button>';
html += '<div class="collapse' + c + '" id="' + id + '">'; html += ' ' + t;
if (p) html += '<div class="fall"><input type="checkbox" id="' + id + '_p"> all must pass</div>';
html += '</h3>';
html += '<div class="collapse' + c + '" id="' + id + '">';
if (e) html += '</div>'; if (e) html += '</div>';
return html return html
} }
function c_ftmp(i, t) { function c_ftmp(i, t) {
var html = ''; var html = '';
html += '<div class="form-row">'; html += '<div class="form-row">';
html += '<div class="form-group col-auto"><label class="col-form-label" id="tl' + i + '" for="fts' + i + html += '<div class="form-group col-auto"><label class="col-form-label" id="tl' + i + '" for="fts' + i +
'">' + t + '</label></div>'; '">' + t + '</label></div>';
html += '<div class="form-group col-auto"><select class="form-control" id="fts' + i + '">'; html += '<div class="form-group col-auto"><select class="form-control" id="fts' + i + '">';
html += '<option value="0">-</option><option value="1">&lt;=</option><option value="2">&gt;=</option>'; html += '<option value="0">-</option><option value="1">&lt;=</option><option value="2">&gt;=</option>';
html += '</select></div>'; html += '</select></div>';
html += '<div class="form-group col-auto"><input type="text" class="form-control" size="5" id="ftv' + i + html += '<div class="form-group col-auto"><input type="text" class="form-control" size="5" id="ftv' + i +
'"></div>'; '"></div>';
html += '<div class="form-group col-auto"><label class="col-form-label" for="ftv' + i + html += '<div class="form-group col-auto"><label class="col-form-label" for="ftv' + i +
'">&deg;<span class="tu" t1_tu_v"></span></label></div>'; '">&deg;<span class="tu" t1_tu_v"></span></label></div>';
html += '</div>'; html += '</div>';
return html return html
} }
function c_dt(n, t, e, c, it) { function c_dt(n, t, e, c, it) {
var html = '<div class="form-group' + c + '">'; var html = '<div class="form-group' + c + '">';
html += '<label for="' + n + '" class="col-form-label">' + t + '</label>'; html += '<label for="' + n + '" class="col-form-label">' + t + '</label>';
html += '</div><div class="form-group' + c + '">'; html += '</div><div class="form-group' + c + '">';
html += '<input type="' + it + '" class="form-control" id="' + n + '" step="1">'; html += '<input type="' + it + '" class="form-control" id="' + n + '" step="1">';
html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : ''; html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
html += '</div>'; html += '</div>';
return html return html
} }
function c_sil(id, t, o) { function c_sil(id, t, o) {
var html = '<div class="form-group col-auto"><label class="col-form-label" for="' + id + '">' + t + var html = '<div class="form-group col-auto"><label class="col-form-label" for="' + id + '">' + t +
'</label></div>'; '</label></div>';
html += '<div class="form-group col-auto"><select class="form-control" id="' + id + '">'; html += '<div class="form-group col-auto"><select class="form-control" id="' + id + '">';
for (i = 0; i < o.length; i++) { for (i = 0; i < o.length; i++) {
html += '<option value="' + i + '">' + o[i] + '</option>' html += '<option value="' + i + '">' + o[i] + '</option>'
} }
html += '</select></div>'; html += '</select></div>';
return html return html
} }
</script> </script>
</body> </body>
</html> </html>

View File

@@ -55,7 +55,7 @@
<div <div
class="fixed-top text-center device-label" class="fixed-top text-center device-label"
id="pth" id="pth"
onclick="window.location = ('../index.html')"
></div> ></div>
<div class="container-fluid in"> <div class="container-fluid in">
<h1>Personality</h1> <h1>Personality</h1>

View File

@@ -26,7 +26,7 @@
</div> </div>
</div> </div>
</nav> </nav>
<div class="fixed-top text-center device-label" id="pth" onclick="window.location = ('../index.html')"></div> <div class="fixed-top text-center device-label" id="pth" ></div>
<div class="container-fluid in"> <div class="container-fluid in">
<h1>RAINS logs</h1> <h1>RAINS logs</h1>
<div class="row" id="boxes"> <div class="row" id="boxes">

View File

@@ -30,7 +30,7 @@
</div> </div>
</div> </div>
</nav> </nav>
<div class="fixed-top text-center device-label" id="pth" onclick="window.location = ('../index.html')"></div> <div class="fixed-top text-center device-label" id="pth" ></div>
<div class="container in"> <div class="container in">
<h1>Discovery</h1> <h1>Discovery</h1>
<div class="row" id="boxes"> <div class="row" id="boxes">

View File

@@ -23,7 +23,7 @@
</div> </div>
</div> </div>
</nav> </nav>
<div class="fixed-top text-center device-label" id="pth" onclick="window.location = ('../index.html')"></div> <div class="fixed-top text-center device-label" id="pth" ></div>
<div class="container in"> <div class="container in">
<h1>Device status</h1> <h1>Device status</h1>
<div class="row" id="boxes"> <div class="row" id="boxes">

View File

@@ -30,7 +30,7 @@
</div> </div>
</div> </div>
</nav> </nav>
<div class="fixed-top text-center device-label" id="pth" onclick="window.location = ('../index.html')"></div> <div class="fixed-top text-center device-label" id="pth" ></div>
<div class="container in"> <div class="container in">
<h1>Device logs</h1> <h1>Device logs</h1>
<div class="row" id="boxes"> <div class="row" id="boxes">
@@ -323,22 +323,38 @@
</div> </div>
</div> </div>
<script> <script>
// CREATES MODAL FOR LOG TOOLS
function cfgm() { var is_sniffing = false;
$('#m-t').html('Logs tools');
$('#m-f').empty(); // CREATES MODAL FOR LOG TOOLS
$('.sb').unbind(); function cfgm() {
var tl = c_btn('Download log file', 0, ' dlog'); $('#m-t').html('Logs tools');
tl += c_btn('Start DMX sniff', 0, ' ddmx'); $('#m-f').empty();
$('#m-b').html(tl); $('.sb').unbind();
$('#cfg-modal').modal(); var tl = c_btn('Download log file', 0, ' dlog');
$('.dlog').bind('click', function () { if (!is_sniffing) {
close_modal() tl += c_btn('Start DMX sniff', 0, ' ddmx');
}); } else {
$('.ddmx').bind('click', function () { tl += c_btn('Stop DMX sniff', 0, ' ddmx');
close_modal()
})
} }
$('#m-b').html(tl);
$('#cfg-modal').modal();
$('.dlog').bind('click', function () {
// download logs
close_modal()
});
$('.ddmx').bind('click', function () {
// start sniff
if (is_sniffing) {
$('.ddmx').html('Start DMX sniff');
is_sniffing = false;
} else {
$('.ddmx').html('Stop DMX sniff');
is_sniffing = true;
}
close_modal()
})
}
function lfix(l) { function lfix(l) {
return l.charAt(0).toUpperCase() + l.slice(1).toLowerCase().replace('ems', 'EMS') return l.charAt(0).toUpperCase() + l.slice(1).toLowerCase().replace('ems', 'EMS')

View File

@@ -31,7 +31,7 @@
</div> </div>
</div> </div>
</nav> </nav>
<div class="fixed-top text-center device-label" id="pth" onclick="window.location = ('../index.html')"></div> <div class="fixed-top text-center device-label" id="pth" ></div>
<div class="container in"> <div class="container in">
<h1>Personality</h1> <h1>Personality</h1>
<div class="row" id="boxes"> <div class="row" id="boxes">

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB