From 5e95a9e92aec7886a5f12cc88bfac4918ebc0b5f Mon Sep 17 00:00:00 2001 From: Marco Locatelli Date: Fri, 23 Apr 2021 12:06:47 +0200 Subject: [PATCH] pulsante spegnimento, inserimento data e ora --- PyLog.txt | 6 +++ logger/FTLogger.py | 2 +- logger/log/PyLog.txt | 99 +--------------------------------- sampler/FTSampler.py | 54 ++++++++++++------- server/FTServer.py | 34 +++++++++--- server/static/img/power.svg | 4 ++ server/templates/about.html | 10 ++-- server/templates/home.html | 27 ++++++++-- server/templates/layout.html | 18 +++++++ server/templates/logger.html | 31 +++++++---- server/templates/settings.html | 27 ++-------- 11 files changed, 147 insertions(+), 165 deletions(-) create mode 100644 PyLog.txt create mode 100644 server/static/img/power.svg diff --git a/PyLog.txt b/PyLog.txt new file mode 100644 index 0000000..e6fcfd3 --- /dev/null +++ b/PyLog.txt @@ -0,0 +1,6 @@ +2021-04-21 00:25:00.636728 Program end. Ctrl+C from user +2021-04-21 00:43:00.683259 Caught error: int() argument must be a string, a bytes-like object or a number, not 'NoneType' +2021-04-21 00:46:17.711533 Caught error: int() argument must be a string, a bytes-like object or a number, not 'NoneType' +2021-04-22 15:03:04.132682 Caught error: int() argument must be a string, a bytes-like object or a number, not 'NoneType' +2021-04-22 15:04:27.913191 Caught error: int() argument must be a string, a bytes-like object or a number, not 'NoneType' +2021-04-22 15:34:13.724625 Caught error: int() argument must be a string, a bytes-like object or a number, not 'NoneType' diff --git a/logger/FTLogger.py b/logger/FTLogger.py index 8d5487f..6385c02 100644 --- a/logger/FTLogger.py +++ b/logger/FTLogger.py @@ -36,7 +36,7 @@ if redSrv0.get('SETTINGS:LOG:STATUS') is None: if redSrv0.get('SETTINGS:SELECTED_CH') is None: redSrv0.set('SETTINGS:SELECTED_CH',0) if redSrv0.get('SETTINGS:FOLDER:CURRENT') is None: - redSrv0.set('SETTINGS:FOLDER:CURRENT', "default") + redSrv0.set('SETTINGS:FOLDER:CURRENT', "") for numCh in range(0,8,+1): if redSrv0.get('SETTINGS:IN:MAX:'+str(numCh)) is None: redSrv0.set('SETTINGS:IN:MAX:'+str(numCh),100) diff --git a/logger/log/PyLog.txt b/logger/log/PyLog.txt index 2e7c5bb..f063b4f 100644 --- a/logger/log/PyLog.txt +++ b/logger/log/PyLog.txt @@ -1,98 +1 @@ -2021-03-29 09:58:47.508544 Program end. Ctrl+C from user -2021-03-29 09:58:49.419906 Program end. Ctrl+C from user -2021-03-29 10:06:36.805375 Program end. Ctrl+C from user -2021-03-29 10:16:34.873420 Program end. Ctrl+C from user -2021-03-29 11:31:02.367011 Program end. Ctrl+C from user -2021-03-29 11:36:21.793976 Program end. Ctrl+C from user -2021-03-29 11:36:32.642389 Program end. Ctrl+C from user -2021-03-29 11:36:39.298257 Program end. Ctrl+C from user -2021-03-29 11:37:09.962049 Program end. Ctrl+C from user -2021-03-29 12:26:08.253892 Program end. Ctrl+C from user -2021-03-29 12:34:34.762399 Program end. Ctrl+C from user -2021-03-29 12:35:59.824375 Program end. Ctrl+C from user -2021-03-29 12:41:24.933798 Program end. Ctrl+C from user -2021-03-29 12:43:32.139821 Program end. Ctrl+C from user -2021-03-29 12:45:05.686145 Program end. Ctrl+C from user -2021-03-29 12:46:23.743580 Program end. Ctrl+C from user -2021-03-29 12:53:23.943793 Program end. Ctrl+C from user -2021-03-29 13:04:38.212360 Program end. Ctrl+C from user -2021-03-29 13:11:50.548529 Program end. Ctrl+C from user -2021-03-29 13:12:03.872367 Program end. Ctrl+C from user -2021-03-29 13:12:47.701751 Program end. Ctrl+C from user -2021-03-29 14:49:22.191222 Program end. Ctrl+C from user -2021-03-29 15:04:18.258773 Program end. Ctrl+C from user -2021-03-30 08:54:50.480755 Program end. Ctrl+C from user -2021-03-30 08:55:09.628193 Program end. Ctrl+C from user -2021-03-30 08:57:11.032414 Program end. Ctrl+C from user -2021-03-30 08:57:17.269880 Caught error: can only concatenate str (not "bytes") to str -2021-03-30 08:58:02.637416 Caught error: can only concatenate str (not "bytes") to str -2021-03-30 08:59:26.917913 Caught error: can only concatenate str (not "bytes") to str -2021-03-30 09:00:48.338924 Caught error: can only concatenate str (not "bytes") to str -2021-03-30 09:01:36.599414 Caught error: can only concatenate str (not "bytes") to str -2021-03-30 09:02:03.091920 Caught error: can only concatenate str (not "bytes") to str -2021-03-30 09:02:58.740174 Program end. Ctrl+C from user -2021-03-30 09:10:26.654282 Program end. Ctrl+C from user -2021-03-30 09:10:32.675386 Caught error: strftime() argument 1 must be str, not builtin_function_or_method -2021-03-30 09:11:57.923154 Caught error: module 'datetime' has no attribute 'now' -2021-03-30 09:13:27.237961 Caught error: module 'datetime' has no attribute 'now' -2021-03-30 09:13:53.044379 Caught error: module 'datetime' has no attribute 'now' -2021-03-30 09:15:12.159821 Caught error: module 'datetime' has no attribute 'now' -2021-03-30 09:22:00.948297 Program end. Ctrl+C from user -2021-03-30 09:22:22.153029 Caught error: name 'lastExec' is not defined -2021-03-30 09:22:44.387098 Caught error: unsupported operand type(s) for -: 'float' and 'datetime.timedelta' -2021-03-30 09:24:50.404856 Caught error: sleep length must be non-negative -2021-03-30 09:29:44.893036 Program end. Ctrl+C from user -2021-03-30 09:30:40.621197 Program end. Ctrl+C from user -2021-03-30 09:30:56.786784 Program end. Ctrl+C from user -2021-03-30 09:31:13.197526 Program end. Ctrl+C from user -2021-03-30 09:31:24.975494 Program end. Ctrl+C from user -2021-03-30 09:31:59.845816 Program end. Ctrl+C from user -2021-03-30 10:27:37.838338 Program end. Ctrl+C from user -2021-03-30 10:34:02.215293 Program end. Ctrl+C from user -2021-03-30 10:35:17.726550 Program end. Ctrl+C from user -2021-03-30 10:37:02.170879 Program end. Ctrl+C from user -2021-03-30 10:40:44.353305 Program end. Ctrl+C from user -2021-03-30 10:42:47.689947 Program end. Ctrl+C from user -2021-03-30 10:53:33.297267 Program end. Ctrl+C from user -2021-03-30 11:38:38.717298 Program end. Ctrl+C from user -2021-03-30 11:46:56.641430 Program end. Ctrl+C from user -2021-03-30 14:19:38.149124 Program end. Ctrl+C from user -2021-03-30 14:20:54.350302 Program end. Ctrl+C from user -2021-03-30 22:03:03.117436 Program end. Ctrl+C from user -2021-03-30 22:12:28.454778 Program end. Ctrl+C from user -2021-03-30 22:13:02.315239 Program end. Ctrl+C from user -2021-03-31 09:34:15.961409 Program end. Ctrl+C from user -2021-03-31 10:17:45.300938 Program end. Ctrl+C from user -2021-03-31 11:27:00.292142 Caught error: invalid literal for int() with base 10: b'' -2021-03-31 11:27:00.785487 Caught error: invalid literal for int() with base 10: b'' -2021-03-31 11:28:44.547015 Caught error: invalid literal for int() with base 10: b'' -2021-03-31 11:29:27.065961 Caught error: invalid literal for int() with base 10: b'' -2021-03-31 11:32:52.310001 Caught error: invalid literal for int() with base 10: b'' -2021-03-31 11:37:57.102044 Caught error: invalid literal for int() with base 10: b'' -2021-03-31 12:52:46.545088 Program end. Ctrl+C from user -2021-03-31 12:55:07.891601 Caught error: unsupported operand type(s) for -: 'datetime.datetime' and 'str' -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') -2021-04-01 14:19:28.128726 Program end. Ctrl+C from user -2021-04-01 14:28:52.849487 Program end. Ctrl+C from user -2021-04-01 14:31:27.497836 Program end. Ctrl+C from user -2021-04-01 14:52:01.713444 Caught error: name 'ADS1256' is not defined -2021-04-01 15:10:59.667675 Caught error: name 'fileSave' is not defined -2021-04-01 15:20:07.442727 Caught error: name 'now' is not defined -2021-04-01 15:20:08.570454 Caught error: name 'now' is not defined -2021-04-01 15:21:11.244154 Caught error: name 'now' is not defined -2021-04-02 09:27:42.781175 Caught error: Connection closed by server. -2021-04-08 11:19:48.305652 Caught error: Error 111 connecting to 127.0.0.1:6379. Connection refused. -2021-04-09 09:35:39.271878 Caught error: Error 111 connecting to 127.0.0.1:6379. Connection refused. -2021-04-12 09:44:47.671178 Caught error: Error while reading from socket: (104, 'Connection reset by peer') -2021-04-14 11:56:16.891671 Caught error: Error 111 connecting to 127.0.0.1:6379. Connection refused. -2021-04-16 11:01:11.178539 Caught error: unsupported operand type(s) for /: 'str' and 'int' -2021-04-16 11:06:50.122850 Caught error: unsupported operand type(s) for /: 'str' and 'int' -2021-04-16 14:22:54.029457 Caught error: unsupported operand type(s) for /: 'str' and 'int' -2021-04-16 14:24:04.609002 Caught error: unsupported operand type(s) for /: 'str' and 'int' -2021-04-16 14:44:34.419407 Caught error: Error 111 connecting to 127.0.0.1:6379. Connection refused. -2021-04-19 17:55:54.666011 Caught error: 'str' object cannot be interpreted as an integer -2021-04-19 21:20:16.907473 Caught error: Error 111 connecting to 127.0.0.1:6379. Connection refused. -2021-04-19 21:32:14.973023 Caught error: Error while reading from socket: (104, 'Connection reset by peer') +2021-04-21 00:26:09.976858 Caught error: int() argument must be a string, a bytes-like object or a number, not 'NoneType' diff --git a/sampler/FTSampler.py b/sampler/FTSampler.py index 43bffa3..fc85cd0 100644 --- a/sampler/FTSampler.py +++ b/sampler/FTSampler.py @@ -21,7 +21,7 @@ def getRedisVal(redisKey): return redSrv0.get(redisKey).decode('utf-8') #assegno director log per file di debug -LOG_path = "/home/pi/Flythis/logger/log/" +LOG_path = "/home/pi/Flythis/" #intervallo in millisecondi fra un campionamento e il successivo startingSampleFreq = 250 @@ -31,23 +31,35 @@ redSrv0.set(redSampleFreq,startingSampleFreq) #se non c'è un valore nei campi di redis, popolo il db redSrv0.set('SETTINGS:DECIMALS:COUNT',3) redSrv0.set('SETTINGS:LOG:STATUS',0) + if redSrv0.get('SETTINGS:PASSWORD:CURRENT') is None: redSrv0.set('SETTINGS:PASSWORD:CURRENT',"-") if redSrv0.get('SETTINGS:FOLDER:CURRENT') is None: - redSrv0.set('SETTINGS:FOLDER:CURRENT', "default") + redSrv0.set('SETTINGS:FOLDER:CURRENT', "") if redSrv0.get('SETTINGS:SELECTED_CH') is None: redSrv0.set('SETTINGS:SELECTED_CH',0) - for numCh in range(0,8,+1): - if redSrv0.get('SETTINGS:IN:MAX:'+str(numCh)) is None: - redSrv0.set('SETTINGS:IN:MAX:'+str(numCh),100) - if redSrv0.get('SETTINGS:IN:MIN:'+str(numCh)) is None: - redSrv0.set('SETTINGS:IN:MIN:'+str(numCh),0) - if redSrv0.get('SETTINGS:OUT:MAX:'+str(numCh)) is None: - redSrv0.set('SETTINGS:OUT:MAX:'+str(numCh),100) - if redSrv0.get('SETTINGS:OUT:MIN:'+str(numCh)) is None: - redSrv0.set('SETTINGS:OUT:MIN:'+str(numCh),0) - if redSrv0.get('SETTINGS:UNIT:MEASURE:'+str(numCh)) is None: - redSrv0.set('SETTINGS:UNIT:MEASURE:'+str(numCh),"-") +if redSrv0.get('SETTINGS:CHANNEL:A') is None: + redSrv0.set('SETTINGS:CHANNEL:A',0) +if redSrv0.get('SETTINGS:CHANNEL:B') is None: + redSrv0.set('SETTINGS:CHANNEL:B',1) +if redSrv0.get('RTDATA:SESSION:NAME') is None: + redSrv0.set('RTDATA:SESSION:NAME',"") + +for numCh in range(0,8,+1): + if redSrv0.get('SETTINGS:IN:MAX:'+str(numCh)) is None: + redSrv0.set('SETTINGS:IN:MAX:'+str(numCh),100) + if redSrv0.get('SETTINGS:IN:MIN:'+str(numCh)) is None: + redSrv0.set('SETTINGS:IN:MIN:'+str(numCh),0) + if redSrv0.get('SETTINGS:OUT:MAX:'+str(numCh)) is None: + redSrv0.set('SETTINGS:OUT:MAX:'+str(numCh),100) + if redSrv0.get('SETTINGS:OUT:MIN:'+str(numCh)) is None: + redSrv0.set('SETTINGS:OUT:MIN:'+str(numCh),0) + if redSrv0.get('SETTINGS:UNIT:MEASURE:'+str(numCh)) is None: + redSrv0.set('SETTINGS:UNIT:MEASURE:'+str(numCh),"-") + if redSrv0.get('RTDATA:CH:'+str(numCh)) is None: + redSrv0.set('RTDATA:CH:'+str(numCh),1) + if redSrv0.get('RTDATA:OUT:'+str(numCh)) is None: + redSrv0.set('RTDATA:OUT:'+str(numCh),1) # init oggetto lettura da try: @@ -120,26 +132,30 @@ try: #eccezione da ctrl+c in terminale e chiusura except KeyboardInterrupt: - lastLog = datetime.datetime.now() - print (str(lastLog)+" Program End. Ctrl+C from user\r\n") + now = datetime.datetime.now() + dateFormat ="%d/%m/%Y %H:%M:%S" + lastLog = now.strftime(dateFormat) + print (str(lastLog)+" FTSampler End. Ctrl+C from user\r\n") try: logFile = open(LOG_path+"PyLog.txt", "a") except FileNotFoundError: print("Creating new PyLog.txt") logFile = open(LOG_path+"PyLog.txt", "w+") - logFile.write(str(lastLog)+" Program end. Ctrl+C from user\r\n") + logFile.write(str(lastLog)+" FTSampler end. Ctrl+C from user\r\n") logFile.close() exit() #eccezione da errore e chiusura except Exception as errorMessage: - lastLog = datetime.datetime.now() - print(str(lastLog)+" Caught error " + str(errorMessage)+"\r\n") + now = datetime.datetime.now() + dateFormat ="%d/%m/%Y %H:%M:%S" + lastLog = now.strftime(dateFormat) + print(str(lastLog)+" FTSampler: caught error " + str(errorMessage)+"\r\n") try: logFile = open(LOG_path+"PyLog.txt", "a") except FileNotFoundError: print("Creating new PyLog.txt") logFile = open(LOG_path+"PyLog.txt", "w+") - logFile.write(str(lastLog)+" Caught error: "+str(errorMessage)+"\r\n") + logFile.write(str(lastLog)+" FTSampler: caught error: "+str(errorMessage)+"\r\n") logFile.close() exit() \ No newline at end of file diff --git a/server/FTServer.py b/server/FTServer.py index e20f4f0..431f347 100644 --- a/server/FTServer.py +++ b/server/FTServer.py @@ -108,7 +108,8 @@ def api_channels_all(): 'ChRealMin' : getRedisVal('SETTINGS:OUT:MIN:'+str(numCh)), 'LastSessionName' : getRedisVal('RTDATA:SESSION:NAME'), 'GateOpen': getRedisVal('RTDATA:GATE_OPEN'), - 'CurrentWorkFolder' : getRedisVal('SETTINGS:FOLDER:CURRENT') + 'CurrentWorkFolder' : getRedisVal('SETTINGS:FOLDER:CURRENT'), + 'RealDateStatus' : getRedisVal('SETTINGS:TIME:REAL') } # restituisce in formato json i dati letti da redis return jsonify(channelsData) @@ -256,11 +257,31 @@ def data_delete(): redSrv0.set('SETTINGS:FOLDER:CURRENT', "") return redirect("/logger") +@flaskApp.route("/api/v1/setup/dateTime", methods=['POST']) +def insertDateTime(): + #funzione inserimento data e ora + newDateTime = request.form['dateTimeInput'] + if newDateTime == "": + return redirect("/settings") + else: + workedDateTime = datetime.strptime(newDateTime, '%Y-%m-%dT%H:%M') + #formato per salvare data YYYYmmdd + formatDate = "%Y%m%d" + newDate = workedDateTime.strftime(formatDate) + #formato per salvare time hh.mm + formatTime = "%H:%M" + newTime = workedDateTime.strftime(formatTime) + #imposto data e time su raspberry: + os.system("sudo date +%Y%m%d -s " + str(newDate)) + os.system("sudo date +%T -s " + str(newTime)) + redSrv0.set('SETTINGS:TIME:REAL',1) + return redirect("/logger") + @flaskApp.route("/api/v1/setup/passwordInput", methods=['POST']) def insertPassword(): #funzione inserimento password currentPassword = request.form['PasswordForm'] - redSrv0.set('SETTINGS:PASSWORD:CURRENT', currentPassword, ex=5*60) + redSrv0.set('SETTINGS:PASSWORD:CURRENT', currentPassword, ex=60) return redirect("/settings") @flaskApp.route("/api/v1/setup/saveInMin", methods=['PUT']) @@ -356,11 +377,12 @@ def resetSetup(): # rimando in settings return redirect("/settings") -@flaskApp.route("/api/v1/setup/FTPowerOff", methods=['POST']) +@flaskApp.route("/api/v1/setup/poweroff", methods=['PUT']) + #spegne il sistema def FTShutdown(): - os.system("sudo shutdown -h +1") - #spegne il sistema dopo 1 minuto - return redirect("/") + redSrv0.set('SETTINGS:TIME:REAL',0) + os.system("sudo shutdown -h now") + #spegne il sistema #dichiaro host ipv4 (ottenuto sopra utilizzando il modulo socket) if __name__ == "__main__": diff --git a/server/static/img/power.svg b/server/static/img/power.svg new file mode 100644 index 0000000..6fb9756 --- /dev/null +++ b/server/static/img/power.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/server/templates/about.html b/server/templates/about.html index dcfc021..8b97151 100644 --- a/server/templates/about.html +++ b/server/templates/about.html @@ -4,20 +4,23 @@
-

FT Logger

@@ -28,6 +31,5 @@ Analog/Digital logger software
-
{% endblock %} \ No newline at end of file diff --git a/server/templates/home.html b/server/templates/home.html index d8722a2..dbaf47a 100644 --- a/server/templates/home.html +++ b/server/templates/home.html @@ -4,7 +4,8 @@
-
Logger @@ -35,6 +50,12 @@ About
-
+
+
+ +
+
+
{% endblock %} \ No newline at end of file diff --git a/server/templates/layout.html b/server/templates/layout.html index c4b392a..ce48149 100644 --- a/server/templates/layout.html +++ b/server/templates/layout.html @@ -44,8 +44,26 @@
+
+
+
+
+ Data e ora +
+
+
+
+ + + +
+
+
+
+
{% block content %} {% endblock %} +
diff --git a/server/templates/logger.html b/server/templates/logger.html index 887a9c1..7f1ef35 100644 --- a/server/templates/logger.html +++ b/server/templates/logger.html @@ -4,6 +4,7 @@
-
-
+

CANCELLO APERTO

@@ -373,6 +383,5 @@
-
{% endblock %} \ No newline at end of file diff --git a/server/templates/settings.html b/server/templates/settings.html index 1099e96..6e7232c 100644 --- a/server/templates/settings.html +++ b/server/templates/settings.html @@ -5,7 +5,7 @@ -
@@ -146,9 +145,9 @@
- Password:   - - + Password:   + +
@@ -362,24 +361,6 @@
-
-
- - System Power Off -
-
-
-
-
-
- -
-
-
-
-
-
-
{% endblock %} \ No newline at end of file