sviluppo doppio timer, reset settings

This commit is contained in:
Marco Locatelli
2021-04-01 13:15:22 +02:00
parent 165ba53349
commit cfe6bbf141
5 changed files with 98 additions and 38 deletions
+11 -6
View File
@@ -22,10 +22,20 @@ def getRedisVal(redisKey):
LOG_path = "/home/pi/Flythis/logger/log/"
DATA_path = "/home/pi/data/"
startingSampleFreq = 250
startingWriteFreq = 1000
#intervallo in millisecondi fra un campionamento e il successivo
redSampleFreq = 'SETTINGS:LOG:FREQ'
redSrv0.set(redSampleFreq,startingSampleFreq)
#intervallo in millisecondi fra una scrittura su file e la successiva
redWriteFreq = 'SETTINGS:WRITE:FREQ'
redSrv0.set(redWriteFreq,startingWriteFreq)
#se non c'è un valore nei campi di redis, popolo il db
redSrv0.set('SETTINGS:LOG:STATUS',0)
redisTime = 'RTDATA:TIME:SRV'
if redSrv0.get('SETTINGS:SELECTED_CH') is None:
@@ -45,11 +55,6 @@ if redSrv0.get('SETTINGS:SELECTED_CH') is None:
if redSrv0.get('SETTINGS:OUT:MIN:'+str(numCh)) is None:
redSrv0.set('SETTINGS:OUT:MIN:'+str(numCh),0)
#intervallo in millisecondi fra un campionamento e il successivo
redSampleFreq = 'SETTINGS:LOG:FREQ'
startingFreq = 1000
redSrv0.set(redSampleFreq,startingFreq)
try:
CH = ADS1256.ADS1256()
CH.ADS1256_init()
+1
View File
@@ -74,3 +74,4 @@
2021-03-31 12:55:31.352004 Caught error: unsupported operand type(s) for -: 'datetime.datetime' and 'str'
2021-03-31 13:00:46.530922 Program end. Ctrl+C from user
2021-03-31 13:22:12.133149 Program end. Ctrl+C from user
2021-04-01 10:28:30.317253 Caught error: Error while reading from socket: (104, 'Connection reset by peer')
+29 -7
View File
@@ -52,7 +52,8 @@ def logger():
'title' : 'Logger',
'timeSrv' : getRedisVal('RTDATA:TIME:SRV'),
'timeLog' : getRedisVal('RTDATA:TIME:LOG'),
'Freq' : getRedisVal('SETTINGS:LOG:FREQ'),
'LogFreq' : getRedisVal('SETTINGS:LOG:FREQ'),
'WriteFreq' : getRedisVal('SETTINGS:WRITE:FREQ'),
'Ch0' : getRedisVal('RTDATA:CH:0'),
'Ch1' : getRedisVal('RTDATA:CH:1'),
'Ch2' : getRedisVal('RTDATA:CH:2'),
@@ -78,7 +79,8 @@ def logger():
def setup():
channelsData = {
'title' : 'Settings',
'Freq' : getRedisVal('SETTINGS:LOG:FREQ'),
'LogFreq' : getRedisVal('SETTINGS:LOG:FREQ'),
'WriteFreq' : getRedisVal('SETTINGS:WRITE:FREQ'),
'Ch0' : getRedisVal('RTDATA:CH:0'),
'Ch1' : getRedisVal('RTDATA:CH:1'),
'Ch2' : getRedisVal('RTDATA:CH:2'),
@@ -116,7 +118,8 @@ def api_channels_all():
channelsData = {
'timeSrv' : getRedisVal('RTDATA:TIME:SRV'),
'timeLog' : getRedisVal('RTDATA:TIME:LOG'),
'Freq' : getRedisVal('SETTINGS:LOG:FREQ'),
'LogFreq' : getRedisVal('SETTINGS:LOG:FREQ'),
'WriteFreq' : getRedisVal('SETTINGS:WRITE:FREQ'),
'Ch0' : getRedisVal('RTDATA:CH:0'),
'Ch1' : getRedisVal('RTDATA:CH:1'),
'Ch2' : getRedisVal('RTDATA:CH:2'),
@@ -151,7 +154,8 @@ def api_channels_current():
'numCh' : numCh,
'timeSrv' : getRedisVal('RTDATA:TIME:SRV'),
'timeLog' : getRedisVal('RTDATA:TIME:LOG'),
'Freq' : getRedisVal('SETTINGS:LOG:FREQ'),
'LogFreq' : getRedisVal('SETTINGS:LOG:FREQ'),
'WriteFreq' : getRedisVal('SETTINGS:WRITE:FREQ'),
'CurrIn' : getRedisVal('RTDATA:CH:'+str(numCh)),
'CurrOut' : getRedisVal('RTDATA:OUT:'+str(numCh)),
'MaxOut' : getRedisVal('SETTINGS:OUT:MAX:'+str(numCh)),
@@ -219,10 +223,13 @@ def selectChannel(numCh):
return "OK"
@flaskApp.route("/api/v1/frequency", methods=['POST'])
def setFrequency():
def setWriteFrequency():
#funzione set frequenza scrive su redis LOG:FREQ prendendolo dall'input in pagina html con nome LogFreq
newFrequency = request.form['LogFreq']
redSrv0.set('SETTINGS:LOG:FREQ', newFrequency)
newWriteFrequency = request.form['WriteFreq']
redSrv0.set('SETTINGS:WRITE:FREQ', newWriteFrequency)
#funzione set frequenza scrive su redis LOG:FREQ prendendolo dall'input in pagina html con nome LogFreq
newLogFrequency = request.form['LogFreq']
redSrv0.set('SETTINGS:LOG:FREQ', newLogFrequency)
# rimando in settings
return redirect("/settings")
@@ -236,6 +243,21 @@ def setScale():
# rimando in settings
return redirect("/settings")
@flaskApp.route("/api/v1/setup/resetSettings", methods=['POST'])
def resetSetup():
#setto i campi di redis alla situazione di partenza
redSrv0.set('SETTINGS:LOG:FREQ',250)
redSrv0.set('SETTINGS:WRITE:FREQ',1000)
redSrv0.set('SETTINGS:LOG:STATUS',0)
redSrv0.set('SETTINGS:SELECTED_CH',0)
for numCh in range(0,8,+1):
redSrv0.set('SETTINGS:IN:MAX:'+str(numCh),100)
redSrv0.set('SETTINGS:IN:MIN:'+str(numCh),0)
redSrv0.set('SETTINGS:OUT:MAX:'+str(numCh),100)
redSrv0.set('SETTINGS:OUT:MIN:'+str(numCh),0)
# rimando in settings
return redirect("/settings")
#dichiaro host ipv4 (ottenuto sopra utilizzando il modulo socket)
if __name__ == "__main__":
flaskApp.run(host=ipv4, port=80, debug=True)
+13 -9
View File
@@ -3,7 +3,7 @@
{% block content %}
<main>
<script type="text/javascript">
var intTime=600;
var intTime=200;
// fix visualizzazioni
fixDisplay();
// avvio timer
@@ -45,11 +45,10 @@
const node1 = knob1.node();
// Add it to the DOM.
//console.log(newVal);
// $("#divCh0").val(node);
// $("#divCh0").val(node);
$("#divCh0").html(node0);
$("#divCh1").html(node1);
// $("#divCh0").val(node);
// $("#divCh0").val(node);
//$("#divCh0").append(node);
// const elem0 = document.getElementById('divCh0');
// elem0.appendChild(node);
@@ -77,7 +76,8 @@
$("#Output5").html(result.Out5);
$("#Output6").html(result.Out6);
$("#Output7").html(result.Out7);
$("#LogFrequency").html(result.Freq);
$("#LogFrequency").html(result.LogFreq);
$("#WriteFrequency").html(result.WriteFreq);
$("#LoggerTime").html(result.timeLog);
$("#ServerTime").html(result.timeSrv);
$("#ChanScaleMin").html(result.ChScaleMin);
@@ -112,8 +112,9 @@
</script>
<div class="container-fluid text-center">
<div class="row mx-2 my-2">
<div class="card mb-4 col-6">
<div class="card col-6">
<div class="card-header">
<i class="fas fa-table mr-1"></i>
<strong>Channel 1</strong>
</div>
<div class="card-body">
@@ -124,8 +125,9 @@
</strong>
</div>
</div>
<div class="card mb-4 col-6">
<div class="card col-6">
<div class="card-header">
<i class="fas fa-table mr-1"></i>
<strong>Channel 2</strong>
</div>
<div class="card-body">
@@ -138,7 +140,9 @@
</div>
</div>
<div class="alert alert-info text-center">
<strong>Log period: </strong> <span id="LogFrequency"></span> ms
<strong>Logger period: </strong> <span id="LogFrequency"></span> ms
<br>
<strong>File Write period: </strong> <span id="WriteFrequency"></span> ms
</div>
<!--pulsanti start log e stop log-->
<div class="text-center mx-2 my-2">
@@ -149,7 +153,7 @@
<div class="card-header">
<div class="row">
<i class="fas fa-table mr-1"></i>
<strong class="text-center">
<strong>
Record Log
</strong>
</div>
+44 -16
View File
@@ -3,7 +3,7 @@
{% block content %}
<main>
<script type="text/javascript">
var intTime=400;
var intTime=200;
refreshInput();
// carico la prima volta i dati
@@ -13,7 +13,8 @@
// compilo i dati scaricati
$("#CurrIn").html(result.CurrIn);
$("#CurrOut").html(result.CurrOut);
$("#LogFrequency").html(result.Freq);
$("#LogFreq").val(result.LogFreq);
$("#WriteFreq").val(result.WriteFreq);
$("#LoggerTime").html(result.timeLog);
$("#ServerTime").html(result.timeSrv);
$("#ddlChannels").val(result.numCh);
@@ -22,8 +23,6 @@
$("#MinIn").html(result.MinIn);
$("#MaxIn").html(result.MaxIn);
}});
timeoutSetting = setTimeout(refreshSettings, intTime);
}
// avvio timer
@@ -35,13 +34,14 @@
// compilo i dati scaricati
$("#CurrIn").html(result.CurrIn);
$("#CurrOut").html(result.CurrOut);
$("#LogFrequency").html(result.Freq);
// $("#LogFreq").html(result.logFreq);
// $("#WriteFreq").html(result.writeFreq);
$("#LoggerTime").html(result.timeLog);
$("#ServerTime").html(result.timeSrv);
// $("#MinOut").val(result.MinOut);
// $("#MaxOut").val(result.MaxOut);
// $("#MinIn").html(result.MinIn);
// $("#MaxIn").html(result.MaxIn);
$("#MinIn").html(result.MinIn);
$("#MaxIn").html(result.MaxIn);
}});
timeoutSetting = setTimeout(refreshSettings, intTime);
@@ -69,6 +69,17 @@
})
};
// function resetSettings(){
// $.ajax({
// type: 'PUT'
// ,url: "/api/v1/setup/resetSettings"
// ,data: ""
// ,success: function(){
// alert('Settings Resetted');
// }
// })
// };
function setChannel(ddlChannels) {
// fare vera funzione x salvare QUALE sia il canale attivo ins etup 8all'apertura va impostato 1...)
var selectedText = ddlChannels.options[ddlChannels.selectedIndex].innerHTML;
@@ -89,16 +100,19 @@
<div class="card mb-4">
<div class="card-header">
<i class="fas fa-table mr-1"></i>
<strong>Logger Timer</strong>
<strong>Impostazioni Timer</strong>
</div>
<div class="row" id="setFrequency">
<div class="card-body row">
<form class="col-12" method="POST" action="/api/v1/frequency">
<div class="input-group">
<span class="input-group-text">Periodo di campionamento (ms): &nbsp; <span id="LogFrequency"></span></span>
<input type="number" class="form-control" id="LogFreq" name="LogFreq"></input>
<div class="input-group-append">
<input type="submit" value="SET" class="btn btn-success"></input>
</div>
<div class="input-group my-2">
<span class="col-8 input-group-text">Periodo di campionamento (ms): &nbsp;</span>
<input type="number" class="col-4 form-control" id="LogFreq" name="LogFreq"></input>
</div>
<div class="input-group my-2">
<span class="col-8 input-group-text">Periodo di scrittura (ms): &nbsp;</span>
<input type="number" class="col-4 form-control" id="WriteFreq" name="WriteFreq"></input>
<br>
<input type="submit" value="SET" class="btn btn-success btn-block my-2"></input>
</div>
</form>
</div>
@@ -159,7 +173,6 @@
</div>
<div class="col-2"></div>
</div>
<form method="POST" action="/api/v1/scaleout">
<div class="card-body row text-center">
<div class="col-2 text-center">OUT</div>
@@ -190,6 +203,21 @@
</div>
</h5>
</div>
<div class="card my-2">
<div class="card-header">
<i class="fas fa-table mr-1"></i>
<strong>Reset settings to defaults</strong>
</div>
<div class="card-body">
<form method="POST" action="api/v1/setup/resetSettings">
<div class="row">
<div class="col-2"></div>
<input type="submit" class="col-8 btn btn-danger btn-block my-2" value="RESET SETTINGS"></input>
<div class="col-2"></div>
</div>
</form>
</div>
</div>
</div>
</main>
{% endblock %}