8 Commits

Author SHA1 Message Date
marco.locatelli@steamware.net 4283f32d33 Merge remote-tracking branch 'origin/develop' into GestioneQuintoGrado 2023-06-27 10:16:19 +02:00
Marco Locatelli 0e233f5f2d 1.7.1 push 2023-03-29 15:47:52 +02:00
Marco Locatelli 116efb58b5 Merge branch 'develop' of https://gitlab.steamware.net/steamware/AnaLogger into develop 2023-03-29 15:46:41 +02:00
Marco Locatelli a72456a770 1.7.1 gestione k6 - sesto grado 2023-03-22 12:56:08 +01:00
marco.locatelli@steamware.net d0531476d3 Release 1.7.0 2023-03-22 12:52:53 +01:00
marco.locatelli@steamware.net 8d9f23ba70 Merge branch 'GestioneQuintoGrado' into develop 2023-03-22 12:17:20 +01:00
marco.locatelli@steamware.net 43b32c6b8c 1.7.0 gestione equazione fino a quinto grado 2023-03-22 12:16:18 +01:00
marco.locatelli@steamware.net 3aebe55260 introduzione da k1 a k5 2023-03-22 10:33:19 +01:00
4 changed files with 71 additions and 22 deletions
+21 -12
View File
@@ -40,10 +40,18 @@ if redSrv0.get('SETTINGS:LOG:FREQ') is None:
redSrv0.set('SETTINGS:LOG:FREQ', 100)
if redSrv0.get('SETTINGS:DECIMALS:COUNT') is None:
redSrv0.set('SETTINGS:DECIMALS:COUNT',1)
if redSrv0.get('RTDATA:VALUE:K1CONST') is None:
redSrv0.set('RTDATA:VALUE:K1CONST', 0)
if redSrv0.get('RTDATA:VALUE:K6CONST') is None:
redSrv0.set('RTDATA:VALUE:K6CONST', 0)
if redSrv0.get('RTDATA:VALUE:K5CONST') is None:
redSrv0.set('RTDATA:VALUE:K5CONST', 0)
if redSrv0.get('RTDATA:VALUE:K4CONST') is None:
redSrv0.set('RTDATA:VALUE:K4CONST', 0)
if redSrv0.get('RTDATA:VALUE:K3CONST') is None:
redSrv0.set('RTDATA:VALUE:K3CONST', 0)
if redSrv0.get('RTDATA:VALUE:K2CONST') is None:
redSrv0.set('RTDATA:VALUE:K2CONST', 1)
redSrv0.set('RTDATA:VALUE:K2CONST', 0)
if redSrv0.get('RTDATA:VALUE:K1CONST') is None:
redSrv0.set('RTDATA:VALUE:K1CONST', 1)
if redSrv0.get('RTDATA:VALUE:OFFSET') is None:
redSrv0.set('RTDATA:VALUE:OFFSET', 0)
if redSrv0.get('SETTINGS:POWER:UPTIME') is None:
@@ -180,8 +188,12 @@ def calculateValue():
ch2 = getRedisVal('SETTINGS:CHANNEL:B')
v1 = getRedisVal('RTDATA:OUT:' + ch1)
v2 = getRedisVal('RTDATA:OUT:' + ch2)
k1 = getRedisVal('RTDATA:VALUE:K1CONST')
k6 = getRedisVal('RTDATA:VALUE:K6CONST')
k5 = getRedisVal('RTDATA:VALUE:K5CONST')
k4 = getRedisVal('RTDATA:VALUE:K4CONST')
k3 = getRedisVal('RTDATA:VALUE:K3CONST')
k2 = getRedisVal('RTDATA:VALUE:K2CONST')
k1 = getRedisVal('RTDATA:VALUE:K1CONST')
offset = getRedisVal('RTDATA:VALUE:OFFSET')
den = abs(float(v1)-float(v2))
if(den < 0.05):
@@ -203,16 +215,13 @@ def calculateValue():
strValInRaw = (XVal/eFact) + (oldValRaw * (eFact-1) / eFact)
redSrv0.set('RTDATA:VALUE:SMRAW',round(strValInRaw,decimalsCount))
# applicazione correzioni (costanti k1*x^2, k2*x e offset)
newValue = (float(k1)*float(XVal)*float(XVal))+(float(k2)*float(XVal))+float(offset)
# applicazione correzioni fino al quinto grado (costanti k e offset)
newValue = (float(k6)*pow(float(XVal),6)) + (float(k5)*pow(float(XVal),5)) + (float(k4)*pow(float(XVal),4)) + (float(k3)*pow(float(XVal),3)) + (float(k2)*pow(float(XVal),2)) + (float(k1)*float(XVal)) + float(offset)
#salvo in redis nuovo valore corretto e arrotondato
redSrv0.set('RTDATA:VALUE:REAL',round(newValue,decimalsCount))
#if(newValue > 0):
# redSrv0.set('RTDATA:VALUE:REAL',round(newValue,decimalsCount))
#else:
# newValue = 300
# redSrv0.set('RTDATA:VALUE:REAL',round(newValue,decimalsCount))
# Smoothing EWMA valori corretti (fattori k1 k2)
# Smoothing EWMA valori corretti
strValIn = newValue
# EWMA: RILEGGO DA REDIS vecchio valore
oldVal = float(redSrv0.get('RTDATA:VALUE:SMOOTHED'))
+15 -3
View File
@@ -160,8 +160,12 @@ def api_channels_current():
#funzione legge direttamente da redis, ritorna jsonify
result = {
'numCh' : numCh,
'CostanteK1' : getRedisVal('RTDATA:VALUE:K1CONST'),
'CostanteK6' : getRedisVal('RTDATA:VALUE:K6CONST'),
'CostanteK5' : getRedisVal('RTDATA:VALUE:K5CONST'),
'CostanteK4' : getRedisVal('RTDATA:VALUE:K4CONST'),
'CostanteK3' : getRedisVal('RTDATA:VALUE:K3CONST'),
'CostanteK2' : getRedisVal('RTDATA:VALUE:K2CONST'),
'CostanteK1' : getRedisVal('RTDATA:VALUE:K1CONST'),
'Offset' : getRedisVal('RTDATA:VALUE:OFFSET'),
'CalcUMeasure' : getRedisVal('RTDATA:VALUE:UMEASURE'),
'SmoothFact' : getRedisVal('SETTINGS:SMOOTHING:FACTOR'),
@@ -442,10 +446,18 @@ def setDecimalsCount():
@flaskApp.route("/api/v1/kconst", methods=['POST'])
def setKConst():
#scrive su redis la costante K
newK1Const = request.form['K1Const']
redSrv0.set('RTDATA:VALUE:K1CONST', newK1Const)
newK6Const = request.form['K6Const']
redSrv0.set('RTDATA:VALUE:K6CONST', newK6Const)
newK5Const = request.form['K5Const']
redSrv0.set('RTDATA:VALUE:K5CONST', newK5Const)
newK4Const = request.form['K4Const']
redSrv0.set('RTDATA:VALUE:K4CONST', newK4Const)
newK3Const = request.form['K3Const']
redSrv0.set('RTDATA:VALUE:K3CONST', newK3Const)
newK2Const = request.form['K2Const']
redSrv0.set('RTDATA:VALUE:K2CONST', newK2Const)
newK1Const = request.form['K1Const']
redSrv0.set('RTDATA:VALUE:K1CONST', newK1Const)
newOffset = request.form['Offset']
redSrv0.set('RTDATA:VALUE:OFFSET', newOffset)
redSrv0.save()
+2 -2
View File
@@ -25,9 +25,9 @@
<h4>FTLogger</h4>
</div>
<div class="card-body">
Egalware 2022
Egalware 2023
<br>
Ver 1.6.2
Ver 1.7.1
</div>
</div>
</main>
+33 -5
View File
@@ -32,8 +32,12 @@
$("#MaxOut").val(result.MaxOut);
$("#MinIn").val(result.MinIn);
$("#MaxIn").val(result.MaxIn);
$("#K1Const").val(result.CostanteK1);
$("#K6Const").val(result.CostanteK6);
$("#K5Const").val(result.CostanteK5);
$("#K4Const").val(result.CostanteK4);
$("#K3Const").val(result.CostanteK3);
$("#K2Const").val(result.CostanteK2);
$("#K1Const").val(result.CostanteK1);
$("#Offset").val(result.Offset);
$("#CurrentFolder").html(result.CurrentWorkFolder);
$("#UniMisura").val(result.UniMisura);
@@ -358,15 +362,33 @@
<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>
<strong>Setup k6*x^6 + k5*x^5 + k4*x^4 + k3*x^3 + k2*x^2 + k1*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>
<span class="input-group-text">Costante k6: &nbsp;</span>
</div>
<input type="number" step="0.0000001" class="form-control" id="K1Const" name="K1Const"></input>
<input type="number" step="0.0000001" class="form-control" id="K6Const" name="K6Const"></input>
</div>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Costante k5: &nbsp;</span>
</div>
<input type="number" step="0.0000001" class="form-control" id="K5Const" name="K5Const"></input>
</div>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Costante k4: &nbsp;</span>
</div>
<input type="number" step="0.0000001" class="form-control" id="K4Const" name="K4Const"></input>
</div>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Costante k3: &nbsp;</span>
</div>
<input type="number" step="0.0000001" class="form-control" id="K3Const" name="K3Const"></input>
</div>
<div class="input-group">
<div class="input-group-prepend">
@@ -376,7 +398,13 @@
</div>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Offset o: &nbsp;</span>
<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">
<div class="input-group-prepend">
<span class="input-group-text">Offset: &nbsp;</span>
</div>
<input type="number" step="0.0000001" class="form-control" id="Offset" name="Offset"></input>
</div>