1.8.1 Fix a correzione e media
This commit is contained in:
+20
-15
@@ -185,7 +185,7 @@ def calculateValue():
|
||||
k1 = getRedisVal('RTDATA:VALUE:K1CONST')
|
||||
k2 = getRedisVal('RTDATA:VALUE:K2CONST')
|
||||
offset = getRedisVal('RTDATA:VALUE:OFFSET')
|
||||
eFact = getRedisVal('RTDATA:SMOOTHING:EFACT')
|
||||
eFact = int(getRedisVal('SETTINGS:SMOOTHING:EFACT'))
|
||||
# check val min di 1 x denom EWMA...
|
||||
if(eFact < 1):
|
||||
eFact = 1
|
||||
@@ -201,17 +201,22 @@ def calculateValue():
|
||||
strValInRaw = XVal
|
||||
# EWMAx RAW RILEGGO DA REDIS vecchio valore
|
||||
oldValRaw = float(redSrv0.get('RTDATA:VALUE:SMRAW'))
|
||||
if(oldValRaw == 0):
|
||||
oldValRaw = 0.01
|
||||
#if(oldValRaw == 0):
|
||||
# oldValRaw = 0.001
|
||||
# se variazione < 50% smooth, altrimenti usa il valore nuovo
|
||||
if((abs(XVal - oldValRaw) / oldValRaw) < 0.5):
|
||||
# effettuo smoothing valore
|
||||
strValInRaw = (XVal/eFact) + (oldValRaw * (eFact-1) / eFact)
|
||||
#if((abs(XVal - oldValRaw) / oldValRaw) < 0.9):
|
||||
# # effettuo smoothing valore
|
||||
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)
|
||||
redSrv0.set('RTDATA:VALUE:REAL',round(newValue,decimalsCount))
|
||||
# correzione fattore di scala K2 su cifre significative
|
||||
corrDecCount = decimalsCount - int(round(math.log(float(k2),10),0))
|
||||
if (corrDecCount < 0):
|
||||
corrDecCount = 0
|
||||
#redSrv0.set('RTDATA:VALUE:REAL',round(newValue,decimalsCount))
|
||||
redSrv0.set('RTDATA:VALUE:REAL',round(newValue,corrDecCount))
|
||||
#if(newValue > 0):
|
||||
# redSrv0.set('RTDATA:VALUE:REAL',round(newValue,decimalsCount))
|
||||
#else:
|
||||
@@ -222,12 +227,12 @@ def calculateValue():
|
||||
strValIn = newValue
|
||||
# EWMA: RILEGGO DA REDIS vecchio valore
|
||||
oldVal = float(redSrv0.get('RTDATA:VALUE:SMOOTHED'))
|
||||
if(oldVal == 0):
|
||||
oldVal = 0.01
|
||||
# se variazione < 50% smooth, altrimenti usa il valore nuovo
|
||||
if((abs(newValue - oldVal) / oldVal) < 0.5):
|
||||
# effettuo smoothing valore
|
||||
strValIn = (newValue/eFact) + (oldVal * (eFact-1) / eFact)
|
||||
#if(oldVal == 0):
|
||||
# oldVal = 0.001 * float(k2)
|
||||
## se variazione < 50% smooth, altrimenti usa il valore nuovo
|
||||
#if((abs(newValue - oldVal) / oldVal) < 0.9):
|
||||
# # effettuo smoothing valore
|
||||
strValIn = (newValue/eFact) + (oldVal * (eFact-1) / eFact)
|
||||
redSrv0.set('RTDATA:VALUE:SMOOTHED',round(strValIn,decimalsCount))
|
||||
|
||||
# init array
|
||||
@@ -272,8 +277,8 @@ try:
|
||||
# calcolo il delta time dovuto alle esecuzioni
|
||||
delta = endExec - now
|
||||
# attesa viene fatta sempre
|
||||
waitTime = (int(sampleFreq)*smoothFact)/1000 - delta.microseconds/1000000
|
||||
if(waitTime < 0.0):
|
||||
waitTime = delta.microseconds/1000000 - (int(sampleFreq)*smoothFact)/1000
|
||||
if(waitTime > 1000.0):
|
||||
redSrv0.set('SETTINGS:WARNING:EXETIME',1)
|
||||
else:
|
||||
redSrv0.set('SETTINGS:WARNING:EXETIME',0)
|
||||
|
||||
+1
-1
@@ -420,7 +420,7 @@ def setSmoothFact():
|
||||
return redirect("/settings")
|
||||
|
||||
@flaskApp.route("/api/v1/eFact", methods=['POST'])
|
||||
def setSmoothFact():
|
||||
def setEFact():
|
||||
eFactor = request.form['EFact']
|
||||
redSrv0.set('SETTINGS:SMOOTHING:EFACT', eFactor)
|
||||
redSrv0.save()
|
||||
|
||||
@@ -25,9 +25,9 @@
|
||||
<h4>FTLogger</h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
Egalware 2022
|
||||
Egalware 2023
|
||||
<br>
|
||||
Ver 1.6.2
|
||||
Ver 1.8.1
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
Reference in New Issue
Block a user