Files
marco.locatelli@steamware.net 8516f43e22 typo
2023-07-12 14:51:28 +02:00

629 lines
30 KiB
HTML

{% extends "layout.html" %}
{% block content %}
<main>
<script type="text/javascript">
var intTime=500;
refreshInput();
var timeout = setInterval(dataRefresh, intTime);
var timeoutSetting = setInterval(refreshSettings, intTime);
function fixFloat(actVal, numCount)
{
return parseFloat(actVal).toFixed(numCount)
}
// carico la prima volta i dati
function refreshInput() {
$.ajax({url: "/api/v1/channels/current", success: function(result){
// compilo i dati scaricati
numCount = parseInt(result.DecimalsCount)
numDisplay = parseInt(result.DecimalsDisplay)
$("#CurrIn").html(fixFloat(result.CurrIn,numCount));
$("#CurrOut").html(fixFloat(result.CurrOut, numCount));
$("#LogFreq").val(result.LogFreq);
$("#WriteFreq").val(result.WriteFreq);
$("#TimeBeforeWrite").val(result.TimeBeforeWrite);
$("#DecimalsCount").val(result.DecimalsCount);
$("#DecimalsDisplay").val(result.DecimalsDisplay);
$("#ServerTime").html(result.timeSrv);
$("#ddlChannels").val(result.numCh);
$("#MinOut").val(result.MinOut);
$("#MaxOut").val(result.MaxOut);
$("#MinIn").val(result.MinIn);
$("#MaxIn").val(result.MaxIn);
$("#K1Const").val(result.CostanteK1);
$("#K2Const").val(result.CostanteK2);
$("#Offset").val(result.Offset);
$("#CurrentFolder").html(result.CurrentWorkFolder);
$("#UniMisura").val(result.UniMisura);
$("#ChanThresh").val(result.ChanThresh);
$("#SmoothFact").val(result.SmoothFact);
$("#EFact").val(result.EFact);
$("#CalcUMeasure").val(result.CalcUMeasure);
$("#MinUptime").val(result.MinUptime);
$("#RecPeriod").html(result.SmoothFact*result.LogFreq);
// inizio nascondendo div2 e div3
$("#Div1").show();
$("#Div2").hide();
$("#Div3").hide();
if(result.ShowDiv02 == "1")
{
$("#Div2").show();
$("#Div1").hide();
}
if(result.ShowDiv03 == "1")
{
$("#Div3").show();
$("#Div1").hide();
}
}});
}
function refreshSettings() {
$.ajax({url: "/api/v1/channels/current", success: function(result){
// compilo i dati scaricati
numCount = parseInt(result.DecimalsCount)
numDisplay = parseInt(result.DecimalsDisplay)
$("#CurrIn").html(fixFloat(result.CurrIn,numCount));
$("#CurrOut").html(fixFloat(result.CurrOut, numCount));
$("#LoggerTime").html(result.timeLog);
$("#ServerTime").html(result.timeSrv);
$("#MinIn").html(result.MinIn);
$("#MaxIn").html(result.MaxIn);
}});
}
function dataRefresh() {
// scarico i dati aggioranti
$.ajax({url: "/api/v1/channels/all", success: function(result){
numCount = parseInt(result.DecimalsCount)
numDisplay = parseInt(result.DecimalsDisplay)
$("#SelChannelA").val(result.ChA);
$("#ChannelA").html(fixFloat(result.Channels[result.ChA],numCount+1));
$("#OutputA").html(fixFloat(result.Outs[result.ChA],numCount));
$("#SelChannelB").val(result.ChB);
$("#ChannelB").html(fixFloat(result.Channels[result.ChB],numCount+1));
$("#OutputB").html(fixFloat(result.Outs[result.ChB],numCount));
$("#SelPowerChannel").val(result.SelPowerChannel);
$("#SelProcessing").val(result.SelProcessing);
$("#LogFrequency").html(result.LogFreq);
$("#WriteFrequency").html(result.WriteFreq);
$("#DecimalsCount").html(result.DecimalsCount);
$("#DecimalsDisplay").html(result.DecimalsDisplay);
$("#ServerTime").html(result.timeSrv);
$("#ChanScaleMin").html(result.ChScaleMin);
$("#ChanScaleMax").html(result.ChScaleMax);
$("#ChanRealMin").html(result.ChRealMin);
$("#ChanRealMax").html(result.ChRealMax);
$("#LastSessionName").html(result.LastSessionName);
}});
};
function setupValues(){
$.ajax({
type: 'PUT'
,url: "/api/v1/setup/setupValues"
,data: ""
,success: function(){
alert('Setup Values');
}
})
refreshInput();
refreshSettings();
dataRefresh();
};
function workingValues(){
$.ajax({
type: 'PUT'
,url: "/api/v1/setup/workingValues"
,data: ""
,success: function(){
alert('Working Values');
}
})
refreshInput();
refreshSettings();
dataRefresh();
};
function saveMin(){
$.ajax({
type: 'PUT'
,url: "/api/v1/setup/saveInMin"
,data: ""
,success: function(){
alert('Min Set');
}
})
refreshInput();
refreshSettings();
dataRefresh();
};
function saveMax(){
$.ajax({
type: 'PUT'
,url: "/api/v1/setup/saveInMax"
,data: ""
,success: function(){
alert('Max Set');
}
})
refreshInput();
refreshSettings();
dataRefresh();
};
function setChannelA(ddlChannelA) {
var selectedText = ddlChannelA.options[ddlChannelA.selectedIndex].innerHTML;
var selectedValue = ddlChannelA.value;
$.ajax({
type: 'PUT'
,url: "/api/v1/setup/selectChannelA/" + ddlChannelA.value
,data: ""
});
};
function setChannelB(ddlChannelB) {
var selectedText = ddlChannelB.options[ddlChannelB.selectedIndex].innerHTML;
var selectedValue = ddlChannelB.value;
$.ajax({
type: 'PUT'
,url: "/api/v1/setup/selectChannelB/" + ddlChannelB.value
,data: ""
});
};
function setChannel(ddlChannels) {
var selectedText = ddlChannels.options[ddlChannels.selectedIndex].innerHTML;
var selectedValue = ddlChannels.value;
$.ajax({
type: 'PUT'
,url: "/api/v1/setup/selectChannel/" + ddlChannels.value
,data: ""
});
refreshInput();
refreshSettings();
dataRefresh();
};
function setPowerChannel(ddlPowerChannel) {
var selectedText = ddlPowerChannel.options[ddlPowerChannel.selectedIndex].innerHTML;
var selectedValue = ddlPowerChannel.value;
$.ajax({
type: 'PUT'
,url: "/api/v1/setup/selectPowerChannel/" + ddlPowerChannel.value
,data: ""
});
};
function setProcessing(ddlProcessing) {
var selectedText = ddlProcessing.options[ddlProcessing.selectedIndex].innerHTML;
var selectedValue = ddlProcessing.value;
$.ajax({
type: 'PUT'
,url: "/api/v1/setup/selectProcessing/" + ddlProcessing.value
,data: ""
});
};
//funzione Settings Reset chiede conferma prima di flushare DB redis
function settingsReset(){
var R = confirm("Reset impostazioni?");
if (R == true){
$.ajax({
type: 'POST'
,url: "/api/v1/setup/resetSettings"
,data: ""
})};
};
</script>
<div id="Div1">
<div class="card my-2 col-12">
<div class="row card-header">
<strong>Autenticazione utente</strong>
</div>
<div class="card-body">
<form class="col-12" method="POST" action="/api/v1/setup/passwordInput">
<div class="row input-group my-2">
<span class="input-group-text col-3">Password: &nbsp;</span>
<input type="password" placeholder="Password" class=" form-control col-6" id="PasswordForm" name="PasswordForm"></input>
<input type="submit" value="Login" class="btn btn-success col-3"></input>
</div>
</form>
</div>
</div>
</div>
<div id="Div2">
<div class="row">
<div class="col-6 pr-0">
<div class="card my-2">
<div class="card-header">
<strong>Canale A</strong>
<div class="form-group">
<select class="form-control" id="SelChannelA" onchange="setChannelA(this)">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
</select>
</div>
</div>
<div class="card-body text-center">
Nativo: <span id="ChannelA"></span>
<br>
<strong>Scalato: <span id="OutputA"></span>
</strong>
</div>
</div>
</div>
<div class="col-6 pl-0">
<div class="card my-2">
<div class="card-header">
<strong>Canale B</strong>
<div class="form-group">
<select class="form-control" id="SelChannelB" onchange="setChannelB(this)">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
</select>
</div>
</div>
<div class="card-body text-center">
Nativo: <span id="ChannelB"></span>
<br>
<strong>Scalato: <span id="OutputB"></span>
</strong>
</div>
</div>
</div>
</div>
</div>
<div id="Div3">
<div class="card my-2 col-12">
<div class="row card-header">
<div class="col-5">
<i class="fas fa-table mr-1"></i>
<strong>Taratura</strong>
</div>
<div class="col-7">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Canale n°</span>
</div>
<select class="form-control" id="ddlChannels" onchange="setChannel(this)">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
</select>
</div>
</div>
</div>
<div class="card-body p-1 text-center">
<form method="POST" action="/api/v1/scale">
<div class="row text-center">
<div class="col-1">
</div>
<div class="col-4">
<b>Min</b>
</div>
<div class="col-3">
<b>Now</b>
</div>
<div class="col-4">
<b>Max</b>
</div>
</div>
<div class="row text-center">
<div class="col-1 px-0 mx-0 small">
Out
</div>
<div class="col-4">
<div class="input-group input-group-sm mb-3">
<input type="number" step="0.0000001" class="form-control text-center" id="MinOut" name="MinOut"></input>
</div>
</div>
<div class="col-3 px-0">
<span class="text-center small" id="CurrOut"> </span>
</div>
<div class="col-4">
<div class="input-group input-group-sm mb-3">
<input type="number" step="0.0000001" class="form-control text-center" id="MaxOut" name="MaxOut">
</div>
</div>
<div class="col-1 px-0 mx-0 small">
In
</div>
<div class="col-4">
<div class="input-group input-group-sm mb-3">
<input type="number" step="0.0000001" class="form-control text-center" id="MinIn" name="MinIn"></input>
<div class="input-group-append">
<button type="button" class="btn btn-info" onclick="saveMin()">S</button>
</div>
</div>
</div>
<div class="col-3 px-0">
<span class="text-center small" id="CurrIn"> </span>
</div>
<div class="col-4">
<div class="input-group input-group-sm mb-3">
<input type="number" step="0.0000001" class="form-control text-center" id="MaxIn" name="MaxIn">
<div class="input-group-append">
<button type="button" class="btn btn-info" onclick="saveMax()">S</button>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Unità di misura: &nbsp;</span>
</div>
<input type="text" class="form-control" id="UniMisura" name="UniMisura"></input>
</div>
</div>
</div>
<div class="row text-center">
<div class="col-12">
<input type="submit" value="SET TARATURA" class="btn btn-success btn-block mt-2"></input>
</div>
</div>
</form>
</div>
</div>
<div class="card my-2 col-12">
<div class="row card-header">
<div class="col-7">
<i class="fas fa-table mr-1"></i>
<strong>Processing e Timer</strong>
</div>
<div class="col-5 text-right">
<span id="RecPeriod"> </span>&nbsp;ms
</div>
</div>
<div class="card-body p-1">
<div class="row my-2 text-center">
<div class="col-6"><button type="button" class="btn btn-block btn-sm btn-primary" onclick="setupValues()">Set Parametri Taratura</button></div>
<div class="col-6"><button type="button" class="btn btn-block btn-sm btn-primary" onclick="workingValues()">Set Parametri Lettura</button></div>
</div>
<div class="row">
<div class="col-12">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Selezione Processing</span>
</div>
<select class="form-control" id="SelProcessing" onchange="setProcessing(this)">
<option value="0">Nessuno</option>
<option value="1">Media</option>
<option value="2">RMS</option>
</select>
</div>
</div>
<form class="col-12" method="POST" action="/api/v1/smoothFact">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Fattore di Smoothing: &nbsp;</span>
</div>
<input type="number" min="1" max="100" class="form-control" id="SmoothFact" name="SmoothFact"></input>
<div class="input-group-append">
<input type="submit" value="SET" class="btn btn-success"></input>
</div>
</div>
</form>
<form class="col-12" method="POST" action="/api/v1/eFact">
<div class="input-group input-group-sm mb-3">
<div class="input-group-prepend">
<span class="input-group-text">Valore per EWMA: &nbsp;</span>
</div>
<input type="number" min="1" max="200" step="1" class="form-control" id="EFact" name="EFact"></input>
<div class="input-group-append">
<input type="submit" value="SET" class="btn btn-success"></input>
</div>
</div>
</form>
<form class="col-12" method="POST" action="/api/v1/frequency">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Periodo di campionamento (ms): &nbsp;</span>
</div>
<input type="number" class="form-control" id="LogFreq" name="LogFreq"></input>
</div>
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Periodo di scrittura su file (ms): &nbsp;</span>
</div>
<input type="number" class="form-control" id="WriteFreq" name="WriteFreq"></input>
<br>
</div>
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Ritardo prima scrittura su file (s): &nbsp;</span>
</div>
<input type="number" min="1" max="5" class="form-control" id="TimeBeforeWrite" name="TimeBeforeWrite"></input>
<br>
</div>
<div class="row text-center">
<div class="col-12">
<input type="submit" value="SET" class="btn btn-success btn-block mt-2"></input>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="card my-2 col-12">
<div class="row card-header">
<i class="fas fa-table mr-1"></i>
<strong>Numero Decimali</strong>
</div>
<div class="card-body p-1">
<div class="row">
<form class="col-12" method="POST" action="/api/v1/decimalsCount">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Decimali calcolo: &nbsp;</span>
</div>
<input type="number" min="1" max="5" class="form-control" id="DecimalsCount" name="DecimalsCount"></input>
<div class="input-group-append">
<input type="submit" value="SET" class="btn btn-success"></input>
</div>
</div>
</form>
<form class="col-12" method="POST" action="/api/v1/decimalsDisplay">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Decimali display: &nbsp;</span>
</div>
<input type="number" min="1" max="5" class="form-control" id="DecimalsDisplay" name="DecimalsDisplay"></input>
<div class="input-group-append">
<input type="submit" value="SET" class="btn btn-success"></input>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="card my-2 col-12">
<div class="row card-header">
<div class="col-12">
<strong>Valori per calcolo risultante = k1*x^2 + k2*x + offset</strong>
</div>
</div>
<div class="card-body p-1">
<div class="row">
<form class="col-12" method="POST" action="/api/v1/kconst">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Costante k1: &nbsp;</span>
</div>
<input type="number" step="0.0000001" class="form-control" id="K1Const" name="K1Const"></input>
</div>
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Costante k2: &nbsp;</span>
</div>
<input type="number" step="0.0000001" class="form-control" id="K2Const" name="K2Const"></input>
</div>
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Offset o: &nbsp;</span>
</div>
<input type="number" step="0.0000001" class="form-control" id="Offset" name="Offset"></input>
</div>
<div class="row">
<div class="col-12">
<input type="submit" value="SET" class="btn btn-success btn-block mt-2"></input>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="card my-2 col-12">
<div class="row card-header">
<strong>Unità di misura del risultato di [Valore B / (Valore A - Valore B)]</strong>
</div>
<div class="card-body p-1">
<form method="POST" action="/api/v1/setup/calcMeasureUnit">
<div class="input-group my-2">
<div class="input-group-prepend">
<span class="input-group-text">Unità di misura: &nbsp;</span>
</div>
<input type="text" class=" form-control" id="CalcUMeasure" name="CalcUMeasure"></input>
</div>
<div class="row">
<div class="col-12">
<input type="submit" value="SET" class="btn btn-success btn-block"></input>
</div>
</div>
</form>
</div>
</div>
<div class="card my-2 col-12">
<div class="row card-header">
<strong>Impostazione canale da monitorare per soglia spegnimento</strong>
</div>
<div class="card-body p-1">
<div class="row">
<div class="col-12">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Selezione canale</span>
</div>
<select class="form-control" id="SelPowerChannel" onchange="setPowerChannel(this)">
<option value="10">Nessuno</option>
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
</select>
</div>
</div>
<form class="col-12" method="POST" action="/api/v1/threshold">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Soglia spegnimento:&nbsp;</span>
</div>
<input type="number" step="0.1" min="0" max="3" class="form-control" id="ChanThresh" name="ChanThresh"></input>
</div>
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Attesa spegnimento (sec): &nbsp;</span>
</div>
<input type="number" min="360" class="form-control" id="MinUptime" name="MinUptime"></input>
</div>
<div class="row">
<div class="col-12">
<input type="submit" value="SET" class="btn btn-success btn-block mt-2"></input>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="card my-2 col-12">
<div class="row card-header">
<i class="fas fa-table mr-1"></i>
<strong>Ripristina impostazioni predefinite</strong>
</div>
<div class="card-body">
<div class="row text-center">
<div class="col-12">
<input type="submit" value="RESET IMPOSTAZIONI" class="btn btn-danger btn-block mt-2" onclick="settingsReset()"></input>
</div>
</div>
</div>
</div>
<br>
<br>
</div>
</main>
{% endblock %}