Merge branch 'release/v_1.8.9'

This commit is contained in:
Samuele Locatelli
2023-07-12 14:31:01 +02:00
7 changed files with 447 additions and 291 deletions
+38 -13
View File
@@ -32,16 +32,18 @@ redSamPer='SETTINGS:LOG:EXETIME'
redSampleFreq = 'SETTINGS:LOG:FREQ'
#se non c'è un valore nei campi di redis, popolo il db
redSrv0.set('SETTINGS:LOG:STATUS',0)
redSrv0.set('SETTINGS:POWER:OFF',0)
redSrv0.set('SETTINGS:LOG:STATUS', 0)
redSrv0.set('SETTINGS:POWER:OFF', 0)
if redSrv0.get('SETTINGS:WARNING:EXETIME') is None:
redSrv0.set('SETTINGS:WARNING:EXETIME',0)
redSrv0.set('SETTINGS:WARNING:EXETIME', 0)
if redSrv0.get('RTDATA:EWMA:VETO') is None:
redSrv0.set('RTDATA:EWMA:VETO',0)
redSrv0.set('RTDATA:EWMA:VETO', 0)
if redSrv0.get('SETTINGS:LOG:FREQ') is None:
redSrv0.set('SETTINGS:LOG:FREQ', 70)
redSrv0.set('SETTINGS:LOG:FREQ', 20)
if redSrv0.get('SETTINGS:DECIMALS:COUNT') is None:
redSrv0.set('SETTINGS:DECIMALS:COUNT',1)
redSrv0.set('SETTINGS:DECIMALS:COUNT', 3)
if redSrv0.get('SETTINGS:DECIMALS:DISPLAY') is None:
redSrv0.set('SETTINGS:DECIMALS:DISPLAY', 1)
if redSrv0.get('RTDATA:VALUE:K1CONST') is None:
redSrv0.set('RTDATA:VALUE:K1CONST', 0)
if redSrv0.get('RTDATA:VALUE:K2CONST') is None:
@@ -67,23 +69,23 @@ if redSrv0.get('RTDATA:VALUE:SMRAW') is None:
if redSrv0.get('SETTINGS:POWER:THRESH') is None:
redSrv0.set('SETTINGS:POWER:THRESH', 0)
if redSrv0.get('SETTINGS:SMOOTHING:FUNCTION') is None:
redSrv0.set('SETTINGS:SMOOTHING:FUNCTION', 0)
redSrv0.set('SETTINGS:SMOOTHING:FUNCTION', 2)
if redSrv0.get('SETTINGS:SMOOTHING:FACTOR') is None:
redSrv0.set('SETTINGS:SMOOTHING:FACTOR', 5)
redSrv0.set('SETTINGS:SMOOTHING:FACTOR', 25)
if redSrv0.get('SETTINGS:SMOOTHING:EFACT') is None:
redSrv0.set('SETTINGS:SMOOTHING:EFACT', 3)
if redSrv0.get('SETTINGS:PASSWORD:CURRENT') is None:
redSrv0.set('SETTINGS:PASSWORD:CURRENT',"-")
redSrv0.set('SETTINGS:PASSWORD:CURRENT', "-")
if redSrv0.get('SETTINGS:FOLDER:CURRENT') is None:
redSrv0.set('SETTINGS:FOLDER:CURRENT', "")
if redSrv0.get('SETTINGS:SELECTED_CH') is None:
redSrv0.set('SETTINGS:SELECTED_CH',0)
redSrv0.set('SETTINGS:SELECTED_CH', 0)
if redSrv0.get('SETTINGS:CHANNEL:A') is None:
redSrv0.set('SETTINGS:CHANNEL:A',2)
redSrv0.set('SETTINGS:CHANNEL:A', 2)
if redSrv0.get('SETTINGS:CHANNEL:B') is None:
redSrv0.set('SETTINGS:CHANNEL:B',3)
redSrv0.set('SETTINGS:CHANNEL:B', 3)
if redSrv0.get('RTDATA:SESSION:NAME') is None:
redSrv0.set('RTDATA:SESSION:NAME',"")
redSrv0.set('RTDATA:SESSION:NAME', "")
for numCh in range(0,8,+1):
if redSrv0.get('SETTINGS:IN:MAX:'+str(numCh)) is None:
@@ -137,6 +139,27 @@ def redisSave(CHvalues):
roundedOut = round(scaleVal(CHvalues[chIndex], chIndex), decimalsCount)
redSrv0.set(redAreaOut,roundedOut)
#funzione di gestione dei valori grezzi di ingresso dei canali x taratura min/MAX
def setupScale(CHvalues):
decimalsCount = int(getRedisVal('SETTINGS:DECIMALS:COUNT'))
redLastLog = 'RTDATA:TIME:LOG'
dateFormat ="%d/%m/%Y %H:%M:%S"
rawLastLog = datetime.datetime.now()
lastLog = rawLastLog.strftime(dateFormat)
redSrv0.set(redLastLog,str(lastLog))
for chIndex in range(0,8,+1):
redAreaIn = 'RTDATA:CH:'+str(chIndex)
redAreaOut = 'RTDATA:OUT:'+str(chIndex)
strValIn = float("%.4f" % (CHvalues[chIndex]))
#salvo valore IN filtrato
redSrv0.set(redAreaIn,round(strValIn,decimalsCount))
# salvo i valori scalati in OUT
roundedOut = round(scaleVal(CHvalues[chIndex], chIndex), decimalsCount)
redSrv0.set(redAreaOut,roundedOut)
#funzione di refresh valori scalati
def scaleVal(inValue, chIndex):
#rileggo da redis i valori min/max secondo chIndex
@@ -262,6 +285,8 @@ try:
meanValues = calcMean(dataBox)
#salvo valori
redisSave(meanValues)
#verifica se sono in fase di salvataggio min/max x taratura valori ingresso
setupScale(meanValues)
# controllo soglia spegnimento
checkPowerOff()
# calcolo il valore k*[V2/(V1-V2)] + offset
+29 -4
View File
@@ -118,6 +118,7 @@ def api_channels_all():
'timeSrv' : getRedisVal('RTDATA:TIME:SRV'),
'WriteFreq' : getRedisVal('SETTINGS:WRITE:FREQ'),
'DecimalsCount' : getRedisVal('SETTINGS:DECIMALS:COUNT'),
'DecimalsDisplay' : getRedisVal('SETTINGS:DECIMALS:DISPLAY'),
'Status' : getRedisVal('SETTINGS:LOG:STATUS'),
'Channels': CH,
'Outs': OUT,
@@ -181,6 +182,7 @@ def api_channels_current():
'timeSrv' : getRedisVal('RTDATA:TIME:SRV'),
'LogFreq' : getRedisVal('SETTINGS:LOG:FREQ'),
'DecimalsCount' : getRedisVal('SETTINGS:DECIMALS:COUNT'),
'DecimalsDisplay' : getRedisVal('SETTINGS:DECIMALS:DISPLAY'),
'WriteFreq' : getRedisVal('SETTINGS:WRITE:FREQ'),
'TimeBeforeWrite' : getRedisVal('SETTINGS:LOG:WAITIME'),
'CurrIn' : getRedisVal('RTDATA:CH:'+str(numCh)),
@@ -360,6 +362,20 @@ def insertPassword():
redSrv0.set('SETTINGS:PASSWORD:CURRENT', currentPassword, ex=3600)
return redirect("/settings")
@flaskApp.route("/api/v1/setup/setupValues", methods=['PUT'])
def setupValues():
redSrv0.set('SETTINGS:SMOOTHING:FACTOR', 100)
redSrv0.set('SETTINGS:LOG:FREQ', 10)
redSrv0.save()
return redirect("/settings")
@flaskApp.route("/api/v1/setup/workingValues", methods=['PUT'])
def workingValues():
redSrv0.set('SETTINGS:SMOOTHING:FACTOR', 25)
redSrv0.set('SETTINGS:LOG:FREQ', 20)
redSrv0.save()
return redirect("/settings")
@flaskApp.route("/api/v1/setup/saveInMin", methods=['PUT'])
def setupInMin():
# devo leggere il channel attualmente selezionato
@@ -444,25 +460,34 @@ def setEFact():
@flaskApp.route("/api/v1/frequency", methods=['POST'])
def setWriteFrequency():
#funzione set frequenza scrive su redis LOG:FREQ prendendolo dall'input in pagina html con nome LogFreq
newWriteFrequency = request.form['WriteFreq']
redSrv0.set('SETTINGS:WRITE:FREQ', newWriteFrequency)
newLogFrequency = request.form['LogFreq']
redSrv0.set('SETTINGS:LOG:FREQ', newLogFrequency)
newWriteFrequency = request.form['WriteFreq']
redSrv0.set('SETTINGS:WRITE:FREQ', newWriteFrequency)
timeBeforeWrite = request.form['TimeBeforeWrite']
redSrv0.set('SETTINGS:LOG:WAITIME', timeBeforeWrite)
redSrv0.save()
# rimando in settings
return redirect("/settings")
@flaskApp.route("/api/v1/decimals", methods=['POST'])
@flaskApp.route("/api/v1/decimalsCount", methods=['POST'])
def setDecimalsCount():
#funzione set decimali, scrive su SETTINGS:DECIMALS:COUNT
#funzione set decimali per i calcoli, scrive su SETTINGS:DECIMALS:COUNT
newDecimalsCount = request.form['DecimalsCount']
redSrv0.set('SETTINGS:DECIMALS:COUNT', newDecimalsCount)
redSrv0.save()
# rimando in settings
return redirect("/settings")
@flaskApp.route("/api/v1/decimalsDisplay", methods=['POST'])
def setDecimalsDisplay():
#funzione set decimali da mostrare, scrive su SETTINGS:DECIMALS:DISPLAY
newDecimalsDisplay = request.form['DecimalsDisplay']
redSrv0.set('SETTINGS:DECIMALS:DISPLAY', newDecimalsDisplay)
redSrv0.save()
# rimando in settings
return redirect("/settings")
@flaskApp.route("/api/v1/kconst", methods=['POST'])
def setKConst():
#scrive su redis la costante K
+1 -2
View File
@@ -18,7 +18,6 @@
}
}});
};
</script>
<div class="card my-2">
<div class="card-header">
@@ -27,7 +26,7 @@
<div class="card-body">
Egalware 2023
<br>
Ver 1.8.4
V 1.8.9
</div>
</div>
</main>
+31 -20
View File
@@ -46,22 +46,32 @@
<div id="main">
<div class="container-fluid">
<div id="Div0">
<div class="card col-12 my-2">
<div class="row card-header">
<div class="card my-2">
<div class="card-header">
<strong>Data e ora</strong>
</div>
<div class="card-body">
<div class="col-12 row input-group my-2">
<label for="dateTimeInput" class="input-group-text col-4">Data Interna: &nbsp;</label>
<div class="col-8"><span id="ServerTime" class="input-group-text"></span></div>
</div>
<form class="col-12" method="POST" action="/api/v1/setup/dateTime">
<div class="row input-group my-2">
<label for="dateTimeInput" class="input-group-text col-4">Imposta Data: &nbsp;</label>
<input type="datetime-local" class="col-6" id="dateTimeInput" name="dateTimeInput">
<input type="submit" value="SET" class="btn btn-success col-2">
<div class="card-body p-1">
<div class="row">
<div class="col-12 input-group my-2">
<div class="input-group-prepend">
<label for="dateTimeInput" class="input-group-text">Data Interna: &nbsp;</label>
</div>
<span id="ServerTime" class="form-control"></span>
</div>
</form>
</div>
<div class="row">
<form class="col-12" method="POST" action="/api/v1/setup/dateTime">
<div class="input-group my-2">
<div class="input-group-prepend">
<label for="dateTimeInput" class="input-group-text">Imposta Data: &nbsp;</label>
</div>
<input type="datetime-local" class="form-control" id="dateTimeInput" name="dateTimeInput">
<div class="input-group-append">
<input type="submit" value="SET" class="btn btn-success">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
@@ -70,14 +80,15 @@
</div>
</div>
<!--fine contenuto main, inizio footer (data, ora, logo)-->
<footer class="py-1 bg-light bg-dark text-light fixed-bottom">
<div class="container-fluid">
<div class="d-flex align-items-center justify-content-between small">
<div><span id="ServerTime"></span></div>
<div>&copy; Egalware 2022-2023
<footer class="py-1 bg-dark text-light text-center fixed-bottom">
<div class="row">
<div class="col-6">
V 1.8.9
</div>
<div class="col-6">
&copy; Egalware 2023
</div>
</div>
</div>
</div>
</footer>
</body>
</html>
+53 -30
View File
@@ -15,26 +15,26 @@
timeoutFast = setInterval(dataRefresh, intTime);
timeoutSlow = setInterval(fixTables, intTimeSlow);
function fixFloat(actVal, numCount)
function fixFloat(actVal, numDisplay)
{
return parseFloat(actVal).toFixed(numCount)
return parseFloat(actVal).toFixed(numDisplay)
}
function dataRefresh() {
// scarico i dati aggioranti
$.ajax({url: "/api/v1/channels/all", success: function(result){
numCount = parseInt(result.DecimalsCount)
numDisplay = parseInt(result.DecimalsDisplay)
var divWidth = document.getElementById("divChA").offsetWidth
// compilo i dati scaricati
$("#SelChannelA").html(result.ChA);
$("#OutputA").html(fixFloat(result.Outs[result.ChA],numCount));
$("#OutputA").html(fixFloat(result.Outs[result.ChA],numDisplay));
setGaugeA(divWidth,result.Outs[result.ChA],result.Outmin[result.ChA],result.Outmax[result.ChA]);
$("#SelChannelB").html(result.ChB);
$("#OutputB").html(fixFloat(result.Outs[result.ChB],numCount));
$("#OutputB").html(fixFloat(result.Outs[result.ChB],numDisplay));
setGaugeB(divWidth,result.Outs[result.ChB],result.Outmin[result.ChB],result.Outmax[result.ChB]);
@@ -42,8 +42,8 @@
$("#ServerTime").html(result.timeSrv);
$("#LastSessionName").html(result.LastSessionName);
$("#CurrentFolder").html(result.CurrentWorkFolder);
$("#ResultValue").html(result.ResultValue);
$("#RealValue").html(result.RealValue);
$("#ResultValue").html(fixFloat(result.ResultValue,numDisplay));
$("#RealValue").html(fixFloat(result.RealValue,numDisplay));
$("#Crono").html(result.Crono);
if(result.GateOpen == "0")
@@ -122,6 +122,7 @@
$("#CalcMeasure2").html(result.CalcUMeasure);
$("#SmoothFact").html(result.SmoothFact);
$("#LogFreq").html(result.LogFreq);
$("#RecPeriod").html(result.SmoothFact*result.LogFreq);
}});
// A ogni giro di data refresh fix di tabella cartelle e tabella file
};
@@ -385,21 +386,58 @@
</div>
<div class="card-body">
<div class="row">
<div class="col-1"></div>
<div class="col-5">
<strong>Media Grezza: </strong><span class="h5" id="RealValue"></span>
<div class="col-6">
Media Grezza:
</div>
<div class="col-6">
Media Corretta:
</div>
<div class="col-6">
<span class="h5" id="RealValue"></span>
<span class="h5" id="CalcMeasure1"></span>
</div>
<div class="col-5">
<strong>Media Corretta: </strong><span class="h5" id="ResultValue"></span>
<div class="col-6">
<span class="h5" id="ResultValue"></span>
<span class="h5" id="CalcMeasure2"></span>
</div>
<div class="col-1"></div>
</div>
</div>
</div>
</div>
<div class="col-12 col-xl-6">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-3 text-center">
Smooth Factor:
</div>
<div class="col-3 text-center">
Sample Period:
</div>
<div class="col-3 text-center">
Record Period:
</div>
<div class="col-3 text-center">
System Load:
</div>
<div class="col-3 text-center">
<span class="h5" id="SmoothFact"></span>
</div>
<div class="col-3 text-center">
<span class="h5" id="LogFreq"></span> ms
</div>
<div class="col-3 text-center">
<span class="h5" id="RecPeriod"></span> ms
</div>
<div class="col-3 text-center">
<span class="badge badge-warning" id="ExeWarning">
<img src="../static/img/exclamation-triangle-fill.svg" height="16" widht="16"></img>
</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 col-xl-6">
<div class="card my-2">
<div id="Div7" class="card-header">
@@ -456,24 +494,9 @@
<p class="text-center" id="showData"></p>
</div>
</div>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-5">
Smooth Factor: <span class="h5" id="SmoothFact"></span>
</div>
<div class="col-5">
Sample Period: <span class="h5" id="LogFreq"></span> ms
</div>
<span class="badge badge-warning" id="ExeWarning">
<img src="../static/img/exclamation-triangle-fill.svg" height="20" widht="20"></img>
</span>
</div>
</div>
</div>
<br>
<br>
</div>
</div>
</main>
{% endblock %}
{% endblock %}
+286 -222
View File
@@ -20,12 +20,14 @@
$.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);
@@ -42,16 +44,20 @@
$("#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();
}
}});
}
@@ -60,6 +66,7 @@
$.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);
@@ -74,6 +81,7 @@
$.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));
@@ -87,6 +95,7 @@
$("#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);
@@ -96,6 +105,34 @@
}});
};
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'
@@ -177,7 +214,7 @@
});
};
//funzione powerOff: chiede conferma per spegnimento.
//funzione Settings Reset chiede conferma prima di flushare DB redis
function settingsReset(){
var R = confirm("Reset impostazioni?");
if (R == true){
@@ -205,54 +242,56 @@
</div>
</div>
</div>
<div class="row" id="Div2">
<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 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 class="card-body text-center">
Nativo: <span id="ChannelA"></span>
<br>
<strong>Scalato: <span id="OutputA"></span>
</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 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>
@@ -262,157 +301,117 @@
<div class="row card-header">
<div class="col-5">
<i class="fas fa-table mr-1"></i>
<strong>Impostazioni scalatura</strong>
<strong>Taratura</strong>
</div>
<div class="col-3 text-right">
<label for="sel1"> Canale n°</label>
</div>
<div class="col-4 text-right">
<div class="form-group">
<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>
<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 h6 text-center">
<div class="card-body row text-center">
<div class="col-2"></div>
<div class="col-8">
<div class="row">
<div class="col-2"></div>
<div class="col-8">Input Attuale: &nbsp; <span class="text-center" id="CurrIn">000</span></div>
<div class="col-2"></div>
</div>
</div>
<div class="col-2"></div>
</div>
<div class="card-body row text-center">
<div class="col-2"></div>
<div class="col-8">
<div class="row">
<div class="col-2"></div>
<div class="col-8">Output attuale: &nbsp; <span class="text-center" id="CurrOut">{{ Out0 }}</span></div>
<div class="col-2"></div>
</div>
</div>
<div class="col-2"></div>
</div>
<div class="card-body row text-center">
<div class="col-2"></div>
<div class="col-8">
<div class="row">
<div class="col-5 px-0"><button type="button" class="btn btn-secondary" onclick="saveMin()">Salva Min</button></div>
<div class="col-2"></div>
<div class="col-5 px-0"><button type="button" class="btn btn-info" onclick="saveMax()">Salva Max</button></div>
</div>
</div>
<div class="col-2"></div>
</div>
<div class="card-body p-1 text-center">
<form method="POST" action="/api/v1/scale">
<div class="card-body row text-center">
<div class="col-2">IN</div>
<div class="col-8">
<div class="row text-center">
<div class="col-5 px-0"><input type="number" step="0.0000001" class="form-control text-center" id="MinIn" name="MinIn"></input></div>
<div class="col-2 px-0"></div>
<div class="col-5 px-0"><input type="number" step="0.0000001" class="form-control text-center" id="MaxIn" name="MaxIn"></input></div>
</div>
<div class="row text-center">
<div class="col-1">
</div>
<div class="col-2"></div>
</div>
<div class="card-body row text-center">
<div class="col-2 text-center">OUT</div>
<div class="col-8">
<div class="row">
<div class="col-5 px-0"><input type="number" step="0.0000001" class="form-control text-center" id="MinOut" name="MinOut"></input></div>
<div class="col-2"></div>
<div class="col-5 px-0"><input type="number" step="0.0000001" class="form-control text-center" id="MaxOut" name="MaxOut"></input></div>
</div>
<div class="col-4">
<b>Min</b>
</div>
<div class="col-2">
<div class="col-3">
<b>Now</b>
</div>
</div>
<div class="row">
<div class="input-group my-2 px-0">
<span class="col-6 input-group-text">Unità di misura: &nbsp;</span>
<input type="text" class="col-6 form-control" id="UniMisura" name="UniMisura"></input>
<div class="col-4">
<b>Max</b>
</div>
</div>
<div class="row text-center">
<div class="col-2"></div>
<div class="col-8">
<input type="submit" value="IMPOSTA SCALATURA" class="btn btn-success btn-block mt-2"></input>
<div class="col-1 mx-0">
<b>Out</b>
</div>
<div class="col-2"></div>
</div>
</form>
</div>
</div>
<div class="card my-2 col-12">
<div class="row card-header">
<i class="fas fa-table mr-1"></i>
<strong>Valori per calcolo risultante = k1*x^2 + k2*x + offset</strong>
</div>
<div class="card-body row">
<form class="col-12" method="POST" action="/api/v1/kconst">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Costante k1: &nbsp;</span>
<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>
<input type="number" step="0.0000001" class="form-control" id="K1Const" name="K1Const"></input>
</div>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Costante k2: &nbsp;</span>
<div class="col-3 px-0">
<span class="text-center small" id="CurrOut"> </span>
</div>
<input type="number" step="0.0000001" class="form-control" id="K2Const" name="K2Const"></input>
</div>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Offset o: &nbsp;</span>
<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 mx-0">
<b>Inp</b>
</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>
<input type="number" step="0.0000001" class="form-control" id="Offset" name="Offset"></input>
</div>
<div class="row">
<div class="col-2"></div>
<div class="col-8">
<input type="submit" value="SET" class="btn btn-success btn-block mt-2"></input>
<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 class="col-2"></div>
</div>
</form>
</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 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">
<form class="col-12" method="POST" action="/api/v1/setup/calcMeasureUnit">
<div class="row input-group my-2">
<span class="input-group-text col-4">Unità di misura: &nbsp;</span>
<input type="text" class=" form-control col-5" id="CalcUMeasure" name="CalcUMeasure"></input>
<input type="submit" value="SET" class="btn btn-success col-3"></input>
</div>
</form>
</div>
</div>
<div class="card my-2 col-12">
<div class="row card-header">
<strong>Tipo processing</strong>
</div>
<div class="card-body">
<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">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Selezione Processing</span>
</div>
@@ -424,18 +423,18 @@
</div>
</div>
<form class="col-12" method="POST" action="/api/v1/smoothFact">
<div class="input-group">
<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="40" class="form-control" id="SmoothFact" name="SmoothFact"></input>
<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">
<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>
@@ -445,6 +444,33 @@
</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>
@@ -453,15 +479,84 @@
<i class="fas fa-table mr-1"></i>
<strong>Numero Decimali</strong>
</div>
<div class="card-body row">
<form class="col-12" method="POST" action="/api/v1/decimals">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Numero di cifre decimali: &nbsp;</span>
<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>
<input type="number" min="1" max="4" class="form-control" id="DecimalsCount" name="DecimalsCount"></input>
<div class="input-group-append">
<input type="submit" value="SET" class="btn btn-success"></input>
</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>
@@ -471,10 +566,10 @@
<div class="row card-header">
<strong>Impostazione canale da monitorare per soglia spegnimento</strong>
</div>
<div class="card-body">
<div class="card-body p-1">
<div class="row">
<div class="col-12">
<div class="input-group">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Selezione canale</span>
</div>
@@ -492,56 +587,27 @@
</div>
</div>
<form class="col-12" method="POST" action="/api/v1/threshold">
<div class="input-group">
<span class="input-group-text">Soglia spegnimento: &nbsp;</span>
<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">
<span class="input-group-text">Attesa minima prima dello spegnimento: &nbsp;</span>
<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-2"></div>
<div class="col-8">
<div class="col-12">
<input type="submit" value="SET" class="btn btn-success btn-block mt-2"></input>
</div>
<div class="col-2"></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>Impostazioni Timer</strong>
</div>
<div class="card-body row">
<form class="col-12" method="POST" action="/api/v1/frequency">
<div class="input-group">
<span class="col-6 input-group-text">Periodo di campionamento (ms): &nbsp;</span>
<input type="number" class="col-6 form-control" id="LogFreq" name="LogFreq"></input>
</div>
<div class="input-group">
<span class="col-6 input-group-text">Periodo di scrittura su file (ms): &nbsp;</span>
<input type="number" class="col-6 form-control" id="WriteFreq" name="WriteFreq"></input>
<br>
</div>
<div class="input-group">
<span class="col-6 input-group-text">Ritardo prima scrittura su file (s): &nbsp;</span>
<input type="number" min="1" max="5" class="col-6 form-control" id="TimeBeforeWrite" name="TimeBeforeWrite"></input>
<br>
</div>
<div class="row text-center">
<div class="col-2"></div>
<div class="col-8">
<input type="submit" value="SET" class="btn btn-success btn-block mt-2"></input>
</div>
<div class="col-2"></div>
</div>
</form>
</div>
</div>
<div class="card my-2 col-12">
<div class="row card-header">
<i class="fas fa-table mr-1"></i>
@@ -549,11 +615,9 @@
</div>
<div class="card-body">
<div class="row text-center">
<div class="col-2"></div>
<div class="col-8">
<div class="col-12">
<input type="submit" value="RESET IMPOSTAZIONI" class="btn btn-danger btn-block mt-2" onclick="settingsReset()"></input>
</div>
<div class="col-2"></div>
</div>
</div>
</div>
@@ -561,4 +625,4 @@
<br>
</div>
</main>
{% endblock %}
{% endblock %}
+9
View File
@@ -0,0 +1,9 @@
#!/bin/bash
if [ -a /dev/sd[a-z]1 ]
then
/bin/mount /dev/sd[a-z]1 /mnt/USB
else
/bin/mount /dev/sd[a-z] /mnt/USB
fi