diff --git a/sampler/FTSampler.py b/sampler/FTSampler.py index cd9862b..cc46038 100644 --- a/sampler/FTSampler.py +++ b/sampler/FTSampler.py @@ -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 diff --git a/server/FTServer.py b/server/FTServer.py index 7c05da5..b9c9f62 100644 --- a/server/FTServer.py +++ b/server/FTServer.py @@ -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 diff --git a/server/templates/about.html b/server/templates/about.html index 02cbaea..68b5880 100644 --- a/server/templates/about.html +++ b/server/templates/about.html @@ -18,7 +18,6 @@ } }}); }; -